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

2023-11-01 02:50

本文主要是介绍用计算机设计芯片,厉害了!用6个芯片打造复古经典计算机,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

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

0544b79d60227c206f2ef7f68f3a10f9.png

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

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

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

d82d4a6347695e91f02b2123fe9d5cb3.png

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

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

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

00ce144c3b4fa5b2d37c27a8c0fca912.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%的算力处理其他任务了。

5db695d11896789c962c5042e6133f23.png

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

编程语言和环境

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

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

6039530c1d281c85651e5260364f28ee.png

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

效果展示

cbe1218bfcdb7fe0af16de9f48a5dc5d.png

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

1d58c6e641dd2157fc8bfd8fe58f6b4e.png

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

770084bacacdbceef1e08266eec020da.png

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

总硬件清单

那么这个别具风格的家用计算机具体需要哪些硬件呢?请看以下硬件清单:

·以14.318 MHz运行的ATmega1284微控制器(8位)

·16KB内存储器(16352字节可用于应用程序)

·4KB非易失性EEPROM存储

·具有Cherry MX键开关的机械键盘

·NTSC彩色和单色复合视频输出:

o256色、16色和4色位图图形,分辨率最高为160x200

o分辨率高达640x200的单色位图图形

o40x25和80x25单色文本模式

o40x25彩色文本模式

o40x25彩色平铺图形模式

·单声道音频输出(脉冲波或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

免责声明:本文系网络转载,版权归原作者所有。如涉及作品版权问题,请与我们联系,我们将根据您提供的版权证明材料确认版权并支付稿酬或者删除内容。返回搜狐,查看更多

责任编辑:

这篇关于用计算机设计芯片,厉害了!用6个芯片打造复古经典计算机的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/319961

相关文章

用Java打造简易计算器的实现步骤

《用Java打造简易计算器的实现步骤》:本文主要介绍如何设计和实现一个简单的Java命令行计算器程序,该程序能够执行基本的数学运算(加、减、乘、除),文中通过代码介绍的非常详细,需要的朋友可以参考... 目录目标:一、项目概述与功能规划二、代码实现步骤三、测试与优化四、总结与收获总结目标:简单计算器,设计

Python中的可视化设计与UI界面实现

《Python中的可视化设计与UI界面实现》本文介绍了如何使用Python创建用户界面(UI),包括使用Tkinter、PyQt、Kivy等库进行基本窗口、动态图表和动画效果的实现,通过示例代码,展示... 目录从像素到界面:python带你玩转UI设计示例:使用Tkinter创建一个简单的窗口绘图魔法:用

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

怎么让1台电脑共享给7人同时流畅设计

在当今的创意设计与数字内容生产领域,图形工作站以其强大的计算能力、专业的图形处理能力和稳定的系统性能,成为了众多设计师、动画师、视频编辑师等创意工作者的必备工具。 设计团队面临资源有限,比如只有一台高性能电脑时,如何高效地让七人同时流畅地进行设计工作,便成为了一个亟待解决的问题。 一、硬件升级与配置 1.高性能处理器(CPU):选择多核、高线程的处理器,例如Intel的至强系列或AMD的Ry

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

基于 YOLOv5 的积水检测系统:打造高效智能的智慧城市应用

在城市发展中,积水问题日益严重,特别是在大雨过后,积水往往会影响交通甚至威胁人们的安全。通过现代计算机视觉技术,我们能够智能化地检测和识别积水区域,减少潜在危险。本文将介绍如何使用 YOLOv5 和 PyQt5 搭建一个积水检测系统,结合深度学习和直观的图形界面,为用户提供高效的解决方案。 源码地址: PyQt5+YoloV5 实现积水检测系统 预览: 项目背景

pip-tools:打造可重复、可控的 Python 开发环境,解决依赖关系,让代码更稳定

在 Python 开发中,管理依赖关系是一项繁琐且容易出错的任务。手动更新依赖版本、处理冲突、确保一致性等等,都可能让开发者感到头疼。而 pip-tools 为开发者提供了一套稳定可靠的解决方案。 什么是 pip-tools? pip-tools 是一组命令行工具,旨在简化 Python 依赖关系的管理,确保项目环境的稳定性和可重复性。它主要包含两个核心工具:pip-compile 和 pip

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

SprinBoot+Vue网络商城海鲜市场的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平台Java领域优质创作者,全网30w+