历史上的今天
返回首页

历史上的今天

今天是:2024年09月11日(星期三)

正在发生

2020年09月11日 | 如何仅用6个芯片组装一台计算机?

2020-09-11 来源:eefocus

在很多人看来,打造一台家用的计算机需要太多硬件:主板、CPU 等等。但实现一个 8 位的计算机远没有这么复杂。近日,一位名为 Matt Sarnoff 的开发者就仅用了 6 个芯片就组装好了一台计算机。它不仅能有音视频输入输出,还可以完成编程任务。不愧是经典又复古的 8 位电脑。

 

 

时至今日,8-bit 风格的电脑依然有着不朽的魅力。那么,是否可以使用经典的 CPU 来完成现在的计算任务,同时保留 8-bit 的风格呢


近日,一位名为 Matt Sarnoff 的开发者开发了一款经典的家用计算机,名为 Amethyst。它有一个集成式的键盘,能够生成声音和图像。其中有一个高级编程语言,能够让用户自己编程。更重要的是,这个计算机只需要 6 块芯片,其中包括一个 ATMEGA1284P 的 CPU,一个 USB 接口芯片,以及 4 个简单的集成电路。


可以看到,你可以在上面完成一些基本操作。这个计算机还可以显示彩色图像。

 

 

那么,怎样用这些简单的硬件组装一台计算机呢?

 

Amethyst :六个芯片打造家用计算机

据作者介绍,Amethyst 是一种复古风格的家用九三级,围绕 ATmega1284 微控制器打造。它能够合成 NTSC 视频输出,有着高色彩和高分辨率模式、单声道音频输出和一个完整的机械键盘。

 

 

该计算机使用 Forth 编程语言,有图像和声音指令、调试器和屏幕编辑功能。它采用一个 USB Type-B 接口,提供 5V 的电源和与一台 PC 的连接沟通。

 

此外,Amethyst 兼容 Optiboot (Arduino) bootloader,能够将固件加载到上面,不需要特殊的编程硬件。

 

硬件配置

在硬件配置上,首先是 CPU。作者使用了 ATMEGA1284P。这是一个 2008 年发布的 CPU,有 128KB 的闪存和 16KB 的内存。它的运行主频最高达到 20MHZ,有一个内置的序列界面控制器以及 32 位的输入 / 输出 pin。


如何让这个电脑输入和输出视频?作者找出了 4 个 7400 芯片——两个多路复用器和两个并行到串行移位寄存器。

 

具体而言,他将 CPU 上的 8 个 pin 设置并行,将其同时传入 4 个芯片中,从而将它们转换高速串行比特流。通过这种方式,他能够让计算机在屏幕上显示出 215 种不同的颜色。当然,这样带来的代价也很大,为了跟上屏幕刷新,CPU 只剩下 25% 的算力处理其他任务了。

 

 

计算机的整体电路图示。这是一个单板计算机,使用 6 个芯片,生成 215 色视频。键盘直接焊在板子上,同样支持音频和四个串行 I/O 链接,用于外围任务,如游戏控制或存储设备。该电脑使用了自带的 Forth 虚拟机,提供编程环境。
编程语言和环境

 

由于最终目的是提供一个轻量级的编程环境,所以作者选择了 Forth 而不是 Basic。Forth 是嵌入式系统的语言,具有交互性以及可高效编译代码的功能,可以在有限空间内发挥作用。由于 1284P 不能够直接从 RAM 中执行已编译的代码,因此将代码编译为中间字节代码,之后该字节码将作为数据提供给从 1284P 的虚拟机。虚拟机的代码是用汇编代码编写的,并进行了适当的手动调整以使其尽可能高效。

 

 

作者能够使用先进的激光切割机,因此设计以及制造木箱(wooden case)并不是很困难。机械键盘的开关直接焊接在 Amethyst 的单印刷电路板上,这个键盘的空格键在 Enter 键上方。

 

作者所用机械键盘的空格键不像一般键盘那样位于中间,而在 Enter 键的上面。

 

 

从上图来看,这台电脑提供了一个命令行界面,用户可以进行各种操作。

 

 

更有趣的是,电脑还自带了一个游戏。游戏中,玩家扮演机器人「#」,并从一大推字符中寻找「kitten」。

 

 

寻找 kitten 的游戏界面,可见这个计算机能够完成很多任务,具有一定的性能。
总硬件清单

 

那么这个别具风格的家用计算机具体需要哪些硬件呢?请看以下硬件清单:
·     以 14.318 MHz 运行的 ATmega1284 微控制器(8 位)
·     16KB 内存储器(16352 字节可用于应用程序)
·     4KB 非易失性 EEPROM 存储
·     具有 Cherry MX 键开关的机械键盘
·     NTSC 彩色和单色复合视频输出:
o  256 色、16 色和 4 色位图图形,分辨率最高为 160x200
o  分辨率高达 640x200 的单色位图图形
o  40x25 和 80x25 单色文本模式
o  40x25 彩色文本模式
o  40x25 彩色平铺图形模式
·     单声道音频输出(脉冲波或 PWM)
·     USB 串行通信速度高达 57600 波特
·     四个 SPI 扩展端口,用于外设、控制器和存储设备
·     仅 6 个芯片(ATmega1284、FT320X、2 个 74HC157 和 2 个 74HC166)

 

完整的原理图、PCB 文件以及系统代码都可以在 Github 里找到。同时,作者也表示欢迎读者通过已提供的信息构建自己的 Amethyst 或者改进其已有的设计。

 

参考连接:
https://spectrum.ieee.org/geek-life/hands-on/build-this-8bit-home-computer-with-just-5-chips
https://github.com/74hc595/Amethyst/blob/master/README.md


推荐阅读

史海拾趣

FINTEK公司的发展小趣事

FINTEK公司成立于2000年代初,正值半导体技术快速发展的时期。公司初创时,便聚焦于开发高性能的模拟信号处理器(ASP)芯片。创始人带领团队,经过数年的不懈努力,成功研发出了一款具有创新性的ASP芯片,该芯片在功耗、信噪比和信号处理速度上均优于市场同类产品。这一技术突破不仅为公司赢得了首轮融资,也吸引了众多行业巨头的关注,为FINTEK在电子行业的初步立足奠定了坚实的基础。

Asian Best Components Co Ltd公司的发展小趣事

在电子行业的快速发展中,Asian Best Components Co Ltd始终坚持环保理念,致力于推动绿色生产。公司积极采用环保材料和工艺,减少生产过程中的废弃物排放和能源消耗。同时,公司还加大了对环保技术的研发投入,推出了一系列环保型电子元件,为行业的可持续发展做出了积极贡献。这种环保理念不仅提升了公司的社会形象,也为公司的长远发展奠定了坚实的基础。

Carling Technologies公司的发展小趣事

随着技术的不断进步和市场需求的多样化,Carling Technologies开始扩展其产品线,涵盖了液压磁热断路器、电子控制以及配电装置等多个领域。同时,公司也积极开拓全球市场,通过设立海外办事处和与当地企业合作,将产品销往世界各地。这一阶段的发展使得Carling Technologies成为了全球电气和电子开关领域的领先制造商之一。

ATM [Advanced Technical Materials]公司的发展小趣事

在20世纪初期,电子技术和机械自动化的发展为ATM的出现奠定了基础。1939年,美国的Luther Simjian提出了ATM的设计雏形,并成功说服一家公司制作了样板试验产品。然而,由于当时的技术限制和公众接受度不高,这些早期ATM并未得到广泛应用。

Handok Co Ltd公司的发展小趣事

中国ATM的发展历程始于20世纪80年代中期。1987年,中国银行在珠海推出了中国大陆第一台ATM,标志着ATM在中国开始了发展。随后,经过数十年的快速发展,中国ATM市场经历了多个阶段,从初级阶段到专业化阶段,再到如今的快速发展阶段。中国ATM市场的繁荣,不仅反映了国内银行业电子化建设的成果,也体现了电子行业的快速发展和普及。

HSMC公司的发展小趣事

武汉弘芯半导体制造有限公司(HSMC)于2017年11月在武汉市东西湖区临空港经济技术开发区正式成立。公司自成立之初便立下了宏伟的愿景——成为全球领先的CIDM(委托代工与芯片设计整合制造)晶圆厂之一。HSMC汇聚了来自全球半导体晶圆研发与制造领域的顶尖专家团队,致力于集成电路产业先进晶圆与封装制造技术的自主化,为我国电子科技业与芯片设计业贡献力量。

问答坊 | AI 解惑

密码锁

密码锁用1602多位如何解决????…

查看全部问答>

急!!!!Platform build中生成SDK的问题?

Platform build 菜单栏中的Platform的下的命令build SDK不能用!是灰色的,不知道是啥子原因! 我的PLATFORM BUILD 可以定制操作系统,已经弄了几天了,但还有个问题一直没有解决,请高手指点一下,先谢谢各位了!…

查看全部问答>

再次请教S3C2440+WinCE5.0+4.2BSP下使用4GB的SDHC大容量SD卡驱动问题,大家指点

再次请教S3C2440+WinCE5.0+4.2BSP下使用4GB的SDHC大容量SD卡驱动问题,大家指点!!! 大家好,谢谢大家一直以来这么热心的回复的我帖子,帮助我,谢谢大家,祝大家工作顺利! 我的环境:S3C2440+WinCE5.0+4.2BSP,开发板是广嵌科技的GEC2440。 ...…

查看全部问答>

i2c是什么玩意?

在网上看了好多i2c的资料  但感觉还是云里雾里的  不明白怎么用?求大虾指点!…

查看全部问答>

神器!Launchpad游戏扩展板

这是继MSP430的MP3扩展板(DSP C5000)后的又一个华丽的扩展板。 说说功能吧!扩展板提供一路VGA输出,VGA的DA采用电阻分压的方式,分辨率为400×300,并且支持两个任天堂的游戏手柄, 打游戏嘛!手柄肯定不能少。主芯片是一片Spartan 3的FPGA ...…

查看全部问答>

TI BQ77910 写程序软件问题

我安装好这两个软件之后打开无发选择BQ77910  一直是在BQ77908上面,页面无法点击!不知道是怎么回事!在别的电脑上也装过也是不行!是不是我下的软件有问题?软件是在TI官网下的!…

查看全部问答>

画PCB用哪个软件好?

求教各位大神,尤其是已经工作的,在公司做项目画PCB一般是用哪个软件呢?…

查看全部问答>

c2000launchpad仿真器成功连接2812开发板

不用把隔离芯片去掉,只需要引出线来就行了,还有要拔掉launchpad上给2807供电的电源线的跳线。我连接了7根线,不知道3.3和gnd不连接行不行,没有试,大家可以试试,不要接错线哦。。。。。。。。。。…

查看全部问答>

怎么将tms570功耗降到最低?

我在用tms570ls1224,迫切需要降低整体功耗。mcu基本只有最小系统,有几个按钮输入。以下是我的降频措施: 1)已经把主频降到16Mhz; 2)各种外设时钟都关掉; 内核供电的1.2V电流已经能降到20mA左右,但3.3V电流一直在50-60mA左右。 请教还有 ...…

查看全部问答>

如何实现PWM调光

本帖最后由 ssssadw 于 2016-6-4 14:02 编辑 新手一枚,请大神帮忙解惑!目前接触到一块LED的控制板,按照板子画出了如下的电路,输入是12v,实现的是LED的高亮与低亮,对于7脚接出的电路不太理解,是用两个三极管产生PWM波吗?对于高低亮的控制 ...…

查看全部问答>