厉害了!用6个芯片打造复古经典计算机

[复制链接]
1083|7
手机看帖
扫描二维码
随时随地手机跟帖
微信小助手|  楼主 | 2020-3-28 21:39 | 显示全部楼层 |阅读模式
Hi,同学们
熊猫老师来啦~
今天给大家看点猛的!
419155e7f53a4005f5.png

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

51545e7f531cf29d5.png

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

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

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

377065e7f532c55dba.png

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

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

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

152375e7f5341918fd.png

该计算机使用 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% 的算力处理其他任务了。

154975e7f535536303.png

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

编程语言和环境


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

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

125795e7f536a0cc76.png

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

效果展示


135655e7f53738114c.png

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

344915e7f537db41d3.png

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

71035e7f538461484.png

寻找 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 或者改进其已有的设计。


免责声明:整理本文出于传播相关技术知识,版权归原作者所有。

给我们的公众号来个关注呗~

以上内容来源于公众号「嵌入式ARM」
每天教你一个小知识
扫码关注更多

使用特权

评论回复

相关帖子

王栋春| | 2020-3-28 21:41 | 显示全部楼层
DOS**深刻的界面

使用特权

评论回复
微信小助手|  楼主 | 2020-3-28 21:42 | 显示全部楼层

暴露年龄了~

使用特权

评论回复
王栋春| | 2020-3-28 21:43 | 显示全部楼层

当初上学接触电脑就是这个 还有basic

使用特权

评论回复
微信小助手|  楼主 | 2020-3-28 21:46 | 显示全部楼层
王栋春 发表于 2020-3-28 21:43
当初上学接触电脑就是这个 还有basic

其实当初我也是 怀念青春年少的时光转眼间  vb都凉了

使用特权

评论回复
王栋春| | 2020-3-28 22:01 | 显示全部楼层
微信小助手 发表于 2020-3-28 21:46
其实当初我也是 怀念青春年少的时光转眼间  vb都凉了

哈哈  不知你还记得考试时十多张卷子的情景吗  

使用特权

评论回复
微信小助手|  楼主 | 2020-3-29 11:42 | 显示全部楼层
王栋春 发表于 2020-3-28 22:01
哈哈  不知你还记得考试时十多张卷子的情景吗

哈哈 这是要手写代码吗 还是“上机”的日子爽

使用特权

评论回复
王栋春| | 2020-3-29 12:47 | 显示全部楼层
微信小助手 发表于 2020-3-29 11:42
哈哈 这是要手写代码吗  还是“上机”的日子爽

当然是手写答卷了  一道题两张纸

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

81

主题

139

帖子

2

粉丝