厲害了!用6個晶片打造復古經典計算機,CPU 竟然是——ATmega1284!

在很多人看來,打造一台家用的計算機需要太多硬體:主板、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

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論