資料介紹
描述
68k-MBC:3 IC 68008 自制電腦
?
?
* * 描述 * *
?
68k-MBC 是一種易于構(gòu)建的 68008 CPU SBC(單板計算機),僅使用容易找到的 TH 部件。
?
它遵循與以前的 Z80-MBC2 ( https://hackaday.io/project/159973 ) 和 V20-MBC ( https://hackaday.io/project/170924 ) 板相同的“概念”,使用 PIC18F47Q10 MCU 作為EEPROM 和“通用”I/O 仿真器(因此不需要“傳統(tǒng)”EPROM 編程器)。
?
您可以在兩個主要的硬件配置選項之間進行選擇:Lite 或 Full。Lite HW 配置選項允許構(gòu)建一個運行 CP/M-68K 的 3 個 IC 68008 系統(tǒng)。
?
它有一個可選的板載 16x GPIO 擴展器,并為 SD(高清仿真)和 RTC 選項使用常見的廉價附加模塊。
?
有兩個板載 RS232 串行端口,它允許連接 RS232 終端,如 uTerm-S ( https://hackaday.io/project/176716 )。
?
?
?
?
* * 原型 * *
在設計的第一階段,我在面包板上使用了一個原型來檢查基本的“概念”。
我在我之前制作的定制板上(PicOne)上使用了 PIC18F47Q10 作為“伴侶”MCU ,它可以直接插入面包板上,并帶有板載 microSD 卡和 USB 串行適配器。:
?
為了制作 PIC18F47Q10 的固件,我使用了帶有MCC插件的MPLAB X IDE 。
這里有一個簡短的視頻,其中包含使用Easy68K作為匯編器和sLoad的自動匯編器工具鏈,這是一個自定義 SW 實用程序,用于從串行端口加載并執(zhí)行摩托羅拉 S-record 格式的可執(zhí)行文件:
?
為了實現(xiàn)真正的自動化工具鏈,面包板上的自動重置電路從串行 USB 適配器獲取 DTR 信號并使用它來重置 MCU(就像在 Arduino Uno 板中一樣),因此可以從批量重置面包板使用Tera Term宏在 PC 中運行的文件。
?
* * 為什么是圖片?* *
那些遵循以前的Z80-MBC2和V20-MBC板會注意到我在這里沒有使用 Atmega MCU。使用 Atmega MCU 允許使用友好的 Arduino IDE 和多種方式來刷新 MCU,因此這是一個促成因素。
不幸的是,Atmega MCU GPIO 端口與 TTL 不兼容,并且在以前的板中使用 CMOS CPU 解決了這個限制,在給定條件下可以實現(xiàn) Atmega MCU 的數(shù)字電平。
但是這里的 68008 CPU 根本沒有 CMOS 技術(shù),所以不能使用 Atmega MCU。
因此,我進行了一些搜索以找到具有三個主要限制的替代 MCU:必須具有 TTL 兼容的 GPIO,必須是 TH 部件并且也便宜。
我發(fā)現(xiàn)的唯一部件是 PIC18F47Q10 MCU,我必須說它很好地完成了前面的約束。此外,它是一款現(xiàn)代 MCU,具有許多有趣的功能以及比以前的 Atmega32 MCU 更多的閃存和 RAM 內(nèi)存。
當然,沒有什么是免費的,選擇 PIC18F47Q10 會帶來一些復雜性。首先是需要一個合適的硬件編程器來燒寫它。第二個是使用專有 IDE (MPLAB X) 編寫或修改比 Arduino IDE 更復雜的源代碼(但我必須說功能強大得多……)。
想要修改固件的人必須安裝 MPLAB X IDE 并學習使用它。MPLAB X 是一款專業(yè)工具,強大的“力量”也帶來了很多復雜性……我希望這不會是個問題,畢竟學會使用像 MPLAB X IDE 這樣的專業(yè)工具總是一件好事.
?
?
* * 硬件概述 * *
這里是 68k-MBC 硬件主要規(guī)格:
?
- 68008 CPU以 8MHz 運行;
- 多重啟動能力;
- 兩個主要的硬件配置選項:Lite或Full。Lite HW 配置選項允許構(gòu)建最少 3 個 IC 68008 系統(tǒng);
- RAM 可配置為128/512/1024KB(僅 Full HW 配置選項支持 1024KB);
- 可選的RTC和microSD(高清仿真)模塊(與Z80-MBC2中使用的相同);
- 可選16x GPIO端口;
- I2C擴展口;
- 2 個串口(僅全硬件配置選項支持串口 2);
- 兩個串行端口的板載RS232 驅(qū)動程序(僅限全硬件配置選項);
- 串行端口 2 上的串行 USB 適配器支持,具有獨立電源(僅限全硬件配置選項);
- 用戶led和key;
- ICSP連接器(用于 PIC18F47Q10),便于固件安裝/升級;
- 它與uTerm ( https://hackaday.io/project/165325 ) 和uCom ( https://hackaday.io/project/165709 ) 附加板兼容。
?
精簡/完整硬件配置選項
68k-MBC 允許在兩個主要硬件配置選項之間進行選擇:Lite或Full。Lite HW 配置允許構(gòu)建最少 3 個 IC 68008 系統(tǒng)。
?
兩種硬件配置完全不同,一些信號以互補的方式運行。IOS 固件首先檢查使用了哪一種硬件配置,并相應地更改信號行為(在需要時)。
?
Lite HW 配置需要的組件少于 Full HW 配置,唯一的例外是一個電阻器 ( R4 ),它僅適用于 Lite HW 配置,而 Full HW 配置不需要(無論如何它不會“傷害”如果存在于完整硬件配置上)。
?
下圖顯示了填充 Lite 配置的 68k-MBC:
?
?
下圖顯示了填充完整配置的 68k-MBC(以前的 PCB 修訂版):
?
?
為了簡化組件的選擇,模塊化 BOM 顯示了兩種硬件配置所需的組件。
首先要做的一項重要任務是配置 PCB 底部的三個焊錫跳線 (SJ1、SJ2、SJ3)。
?
選擇要實施的所需硬件配置后,您必須按以下方式設置三個焊接跳線SJ1、SJ2和SJ3 :
?
- 如果您選擇了全硬件配置,只需打開所有三個跳線;
- 如果您選擇了Lite HW配置,則所有三個跳線都必須短接。
?
警告:如果您不按照上述步驟操作,可能會造成永久性損壞!
?
警告:如果在填充 U1、U2 和 U5 時將三個跳線短接,可能會造成永久性損壞!
在下圖中,SJ1、SJ2 和 SJ3 都被短路以啟用 Lite HW 配置:
?
?
Lite 硬件配置選項的限制
Lite HW 配置選項允許以最少的 BOM 構(gòu)建 68008 系統(tǒng),但與 Full 相比帶來一些限制:
?
- 不支持 1024KB RAM 配置。只允許128/512KB ;
- 在AUX連接器中僅存在 I2C 端口;
- 只能使用串行端口 1(僅在SER1連接器處);
- 無法使用 CPU 中斷。
?
無論如何它可以運行所有提供的軟件,包括CP/M-68K。
?
內(nèi)存配置
兩個 Lite/Full HW 選項支持的 RAM 配置不同。
Full HW 選項允許三種不同的RAM 配置:
?
- ???128KB (1x128KB);
- ???512KB (1x512KB);
- ???1024KB (2x512KB)。
?
要設置 128KB RAM 配置,JP1跳線 ( A17 ) 必須保持打開狀態(tài),而要設置 512KB 或 1024KB 配置,JP1必須關(guān)閉。
?
此操作必須在板子未通電時以及在安裝 RAM 芯片的第一次上電之前完成。
?
請注意,使用 128KB RAM(不支持 2x128KB)時,只允許單個 RAM 芯片配置。
?
Lite HW 選項僅支持 128KB 和 512KB,將JP1設置為 Full 選項(Lite HW 選項不支持 1024KB RAM 配置)。
?
?
串行端口 1 連接器 (SER1/J2)
SER1端口 ( J1? )可以連接到 TTL-RS232 適配器或串行 USB 適配器,如下圖所示(基于 CP2102):
?
該串行 USB 適配器還可以作為 68k-MBC 的電源,并具有用于“自動重置”的DTR信號,以在使用sLoad啟動模式時觸發(fā)上傳 S-record 格式的流,從而實現(xiàn)自動化工具鏈。
請注意,當前不支持SER1端口 ( J2 ) 的CTS引腳,并且在使用串行 USB 適配器時必須斷開連接(作為 NC 引腳)。
串行 USB 適配器的 3V3 引腳也必須斷開:
?
下表列出了 J2 的引腳映射以及如何連接串行 USB 適配器:
?
?
輔助連接器 (AUX/J4)
AUX(J4)連接器擴展了之前板子(V20-MBC和Z80-MBC2)使用的IOEXP連接器,同時支持兩個RS232電平的串口,I2C口,TTL電平串口2口和一個serial-USB帶獨立電源的串口 2 適配器。
兩種 Lite/Full HW 選項配置有兩種不同的引腳映射(Lite 僅支持幾個引腳)。
Full HW 選項的J4引腳映射如下:
?
?
?
Lite HW 選項的J4引腳映射如下:
?
?
?
?
GPIO 連接器 (GPIO/J7)
?
?
?
?
可選 SD 模塊
可選的 SD 模塊用作高清仿真。該模塊是一個常見的 6 針 microSD 模塊,可以在 ebay 上輕松找到:
?
如果 PIC MCU 使用了插座,則需要進行一點切割,以便很好地插入J6連接器。
切口位于連接器附近的直角處,如下圖所示:
?
?
注意插入模塊的方式和位置(唯一正確的連接器是標記為SD-MOD的J6)。如果將其插入錯誤的連接器或以錯誤的方式插入,可能會對模塊和 68k-MBC 板造成永久性損壞!所以插入它,如下圖所示:
?
?
?
可選的 RTC 模塊
RTC 是基于 DS3231 RTC 的通用模塊,如下所示:
?
?
這種便宜的模塊有一個涓流充電電路,如果您使用標準的 CR2032 電池,可能會導致電池“爆炸”。此外,它還會損壞可充電的 LIR2032 電池。有關(guān)更多信息以及如何修復它,請參見?此處。
RTC 模塊在 SDA 和 SCL 上有自己的上拉電阻。因為該值為 4k7(與 68k-MBC 板內(nèi)使用的值相同),所以結(jié)果值為:
4k7 // 4k7 = 2k3
因為這個值很好,所以不需要去掉 RTC 模塊上的上拉電阻。
注意插入模塊的方式和位置(唯一正確的連接器是標記為RTC-MOD的J5)。如果將其插入錯誤的連接器或以錯誤的方式插入,可能會對模塊和 68k-MBC 板造成永久性損壞!所以插入它,如下圖所示:
?
?
?
?
附加板
68k-MBC 與 uTerm (https://hackaday.io/project/165325) 和 uCom (https://hackaday.io/project/165709) 附加板以及垂直的相關(guān) 3D 打印部件兼容或水平組裝:
?
?
?
?
?
兩塊板都允許為 68k-MBC 提供最佳電源。在這種情況下,必須使用 AUX-P (J1) 連接器。
?
* * 軟件概述 * *
PIC18F47Q10 MCU 用作通用 I/O 子系統(tǒng)、Eeprom,以及 68008 CPU 的復位和 8MHz 時鐘發(fā)生器。
運行在 PIC18F47Q10 中的軟件是使用帶有 MCC 插件的 MPLAB X IDE 編寫的 IOS(輸入輸出子系統(tǒng))。
IOS 允許將 PIC18F47Q10 直接與 CPU 系統(tǒng)總線接口,在內(nèi)存映射 I/O 讀取、I/O 寫入和 IRQ 確認 CPU 總線周期期間模擬所需的 I/O 芯片(參見 68008 數(shù)據(jù)表)。
此外,IOS 會在引導階段加載 RAM,向 CPU“提供”加載 RAM 所需的指令。
如果“饋送”算法“看到”存在意外的總線狀態(tài),它會中止引導序列并發(fā)出一條消息警報。
因為 68008 CPU 有一個兩字指令預取機制,所以 IOS 在引導階段的“饋送”算法中處理這個問題,并在引導階段結(jié)束時附加一個 STOP 指令以確保 CPU 不會走得更遠。
IOS模擬的兩個串口的參數(shù)是:115200波特,8N1無流控(無論如何你可以在“選擇啟動模式或系統(tǒng)參數(shù)”菜單中更改兩個串口的速度)。
?
目前IOS允許在各種場景下使用68k-MBC:
- 作為單機運行CP/M-68k;
- 運行獨立的 Basic 解釋器(Enhanced 68K Basic);
- 使用 sLoad 啟動模式作為“現(xiàn)代”嵌入式開發(fā)板;
- 使用 Autoboot 引導模式在開機時運行自定義二進制可執(zhí)行文件。
?
還有各種工具鏈可用作交叉編譯器:
?
- 帶有 Easy68k 的交叉匯編器(Windows);
- 使用 gcc (Linux) 的交叉編譯器;
- 使用 68000 IDE (Windows) 的交叉編譯器。
?
所有細節(jié)都在以下段落中解釋。
?
使用 MPLAB IPE 刷新固件
刷新 IOS 固件的最簡單方法之一可能是使用 MPLAB IPE 實用程序。我已經(jīng)使用了 MPLAB PicKit 4 和 MPLAB SNAP 編程器:
?
?
要將編程器連接到 68k-MBC,您還需要一根簡單的 6 線杜邦電纜,就像上一張照片中的那樣,一側(cè)帶有母排針,另一側(cè)帶有公排針。強烈建議您在兩側(cè)標記引腳1,以免連接時出錯。
?
接下來假設使用 MBLAB SNAP 作為編程設備。還假設已經(jīng)安裝了 MPLAB IPE,并且您已經(jīng)閱讀了 MPLAB SNAP 手冊并且“熟悉”它。
?
第 1 步:您必須先將 MPLAB SNAP 編程器連接到 USB(為其供電),然后使用 ICSP 連接器處的 6 線電纜將其連接到 68k-MBC 板。請注意,68k-MBC * 必須 * 在此階段不通電。
?
第 2 步:現(xiàn)在您可以為 68k-MBC 板供電,然后啟動 MPLAB IPE 實用程序。您必須從設置菜單中選擇高級模式:
?
?
第 3 步:此時您必須使用默認密碼(微芯片)登錄,選中 Keep me logged in 選項,因此“高級模式”將成為默認模式:
?
?
第 4 步:您必須按下連接按鈕來激活編程器。此時 MPLAB IPE 應選擇正確的 PIC MCU (PIC18F47Q10):
?
?
第 5 步:您必須選擇要在 PIC 中寫入的 .hex 文件,使用“瀏覽”按鈕選擇它:
?
?
?
第 6 步:現(xiàn)在是時候按 Program 按鈕將 .hex 文件寫入 PIC MCU:
?
?
第 7 步:編程結(jié)束后,如果您想嘗試讓 PIC MCU 運行以查看結(jié)果,可以選擇從復位中釋放。考慮到 MPLAB SNAP 編程器連接到 68k-MBC 時,PIC MCU 將看到用戶鍵被永久按下。然后你必須按下斷開按鈕:
?
?
第 8 步:現(xiàn)在您可以(按此順序)斷開目標板 (68k-MBC) 的電源,斷開 ICSP 電纜與(68k-MBC 板的)J3 連接器的連接,最后斷開 MPLAB SNAP 編程器與 USB 的連接。全部完成。
?
使用 ARDUINO UNO 作為編程器燒寫固件
尋找一種無需定制程序員即可對 PIC MCU 進行編程的替代方法,我在這里和這里發(fā)現(xiàn)了這個有趣的項目,它使用了一個通用的 Arduino Uno 板,在 PC 端有一個適當?shù)摹翱刂瞥绦颉薄?/font>
所以我已經(jīng)測試了它(在Linux PC上),經(jīng)過一點修改它就可以工作了!
之所以需要修改,是因為 PIC18F47Q10 的器件 ID 已與一個非常相似的器件(PIC18F27Q10)交換。
我所做的另一項修改是在 .ino 文件中添加一個開關(guān),將編程器保持在“待機”狀態(tài),以允許更安全地連接/斷開與未通電目標板的連接/斷開連接。當編程器處于此狀態(tài)時,Arduino Uno 內(nèi)置 LED 閃爍。
您需要構(gòu)建一個非常簡單的“ICSP Shield”(參見 A170421 原理圖),并在 Arduino 板頂部插入一小塊穿孔板和一根帶有 6 針 Dupont 插座的 4 線電纜,如下圖所示(僅針1、3、4 和 5 已連接)用于 ICSP 連接器。
強烈建議您在兩側(cè)標記引腳1,以免連接時出錯:
?
?
這里是對 PIC MCU 進行編程的所有步驟。如果你使用的是 linux 機器,你必須首先編譯 pp3.c(使用命令:gcc -Wall pp3.c -o pp3)。
?
下面假設:
- 您已經(jīng)將 pp.ino 草圖刷入了 Arduino Uno 板;
- 將“ICSP Shield”(A170421)插入 Arduino 板頂部,并將 MODE(SW1)開關(guān)設置為 STBY;
- 您要在 PIC MCU 中寫入的文件 .hex 與“控制程序”(Linux 的 pp3 或 Windows 的 pp3.exe)所在的目錄相同。
?
第 1 步:您必須先將 Aduino Uno 連接到 USB(為其供電)。驗證“ICSP Shield”(A170421) 上的 MODE (SW1) 開關(guān)是否處于 STBY 位置,并且 Arduino Uno 板上的 LED 閃爍。此時,使用 ICSP (J3) 連接器(68k-MBC 側(cè))處的 4 線電纜將其連接到 68k-MBC 板。請注意,68k-MBC * 必須 * 在此階段不通電。
?
第 2 步:現(xiàn)在您可以為 68k-MBC 板供電,然后將“ICSP Shield”(A170421)上的 MODE(SW1)開關(guān)設置在 PROG 位置。Arduino Uno 板上的 LED 現(xiàn)在已關(guān)閉。
請注意,在這種狀態(tài)下,68k-MBC 的 RESET 鍵被禁用,PIC MCU 將看到用戶鍵被永久按下。
?
第 3 步:從要寫入的 .hex 文件和“控制程序”(linux 的 pp3 或 windows 的 pp3.exe)所在的目錄打開一個 shell:
?
?
然后使用命令檢查一切正常(如果您的系統(tǒng)中的 /dev/ttyACM0 串行端口名稱不同,則最終更改):
./pp3 -c /dev/ttyACM0 -s 1700 -p -n -t 18f47q10
?
?
?
第 4 步:使用以下命令對 MCU 進行編程:
?
./pp3 -c /dev/ttyACM0 -s 1700 -t 18f47q10 S310121.hex
?
將 S310121.hex 更改為 .hex 文件的名稱以寫入:
?
?
第 5 步:將“ICSP Shield”(A170421)上的 MODE(SW1)開關(guān)設置在 STBY 位置,然后按下 Arduino Uno 板上的 RESET 按鈕。此時 Arduino Uno 上的 LED 應該再次閃爍。現(xiàn)在 68k-MBC 的 RESET 鍵再次起作用,如果需要,您可以嘗試運行 68k-MBC 板。
?
第 6 步:斷開 68k-MBC 板的電源,然后從 ICSP (J3) 連接器(68k-MBC 側(cè))斷開電纜。
?
第 7 步:斷開 Arduino Uno 與 USB 的連接。全部完成。
所有需要的 SW/FW 已經(jīng)應用了我的更改,并且“ICSP Shield”板 (A170421) 的文檔(原理圖、BOM 等)位于文件部分。
?
注 1:Arduino Uno PIC 編程器應該能夠?qū)?400 多種不同的 PIC 設備進行編程。
?
注 2:我還為“ICSP Shield”(A170421)板制作了一個小型 PCB(18mm x 40mm)。gerber 文件位于 FILES 部分的同一個 .zip 文件中:
?
?
標清圖像
microSD 的內(nèi)容(我從現(xiàn)在起簡稱為 SD)在文件部分被壓縮成一個 zip 文件。
當您更新 IOS 固件時,您也必須始終更新 SD 的內(nèi)容,因為 SD 映像通常適用于給定的 IOS 版本。
您必須將其保留子目錄的結(jié)構(gòu)解壓縮到 FAT 格式的 SD 卡中,以便各種根文件(在 .zip 中作為各種 .DSK 文件等等......)位于根目錄中標清本身。
IOS 僅支持 FAT16 和 FAT32。無論如何,1GB SD 綽綽有余,因為現(xiàn)在很難找到 4GB SD 可能是一個不錯的選擇。
?
關(guān)于 SD 技術(shù),只能使用“傳統(tǒng)”SD(又名 SDSC,容量高達 2GB)和 SDHC 卡(2GB - 32GB)。不支持其他最新類型(因此,沒有 SDXC、SDUC、...)。
讓IOS運行真正需要的只是根文件夾中的所有文件。其他子目錄包含源文件或示例或其他類型的內(nèi)容(請參閱下一段)。
在每個子目錄中都有一個可能包含重要信息/更新的 README.TXT 文件。當您第一次使用 SD 圖像或更新它時,請閱讀它們!
在根目錄中有一個 ChangeLog.txt 文件,其中包含更改日志(與 SD 圖像內(nèi)容相關(guān))。
?
如何進入“選擇引導模式或系統(tǒng)參數(shù)”菜單:
要進入“選擇啟動模式或系統(tǒng)參數(shù)”,您必須按下 RESET 鍵 (SW2),松開并立即按下 USER 鍵 (SW1) 并保持按住直到 USER LED (LD4) 開始閃爍。
另一種方法是同時按下兩個鍵,松開 RESET 鍵并按住 USER 鍵,直到 USER LED 開始閃爍,或者您在屏幕上看到菜單。
?
這是菜單的屏幕截圖:
?
?
sLoad:加載并執(zhí)行從串口 1 發(fā)送的摩托羅拉 s-record 格式的可執(zhí)行文件。它是唯一嵌入到 IOS 固件中的加載實用程序,因此可以在最小的硬件配置中使用,無需任何可選的 SD 或 RTC 模塊;
增強型 68K Basic:加載并執(zhí)行獨立的 Basic 解釋器;
?
Autoboot:加載并執(zhí)行 SD 上的 68008 二進制文件 (AUTOBOOT.BIN)。
?
從磁盤集
?
更改磁盤集
改變串口速度:改變兩個串口的速度。更改將在下次重新啟動后生效;
?
Change CP/M Autoexec:在 CP/M-68K 冷啟動時開啟或關(guān)閉 AUTOEXEC.SUB 批處理文件的執(zhí)行。
?
其余的選擇是不言自明的。
?
在當前的 SD 映像上,文件 AUTOBOOT.BIN 是用 68008 程序集編寫的“Hello World”演示(源代碼位于 SD 上的 \src 文件夾中)。
?
自動引導模式
Autoboot 啟動模式允許在 SD 的根目錄上加載和執(zhí)行二進制文件 (AUTOBOOT.BIN)。
從 IOS S310121-R250521 開始,Autoboot 引導模式允許為二進制可執(zhí)行文件 AUTOBOOT.BIN 設置自定義加載值。
要為加載地址(開始加載二進制文件的地址)和執(zhí)行地址(加載后跳轉(zhuǎn)到的地址)設置自定義十六進制值,您必須在根目錄上創(chuàng)建一個文本文件 AUTOBOOT.ADR SD 有一個文本行,其中包含由空格分隔的兩個值。
即在 linux PC 上創(chuàng)建 AUTOBOOT.ADR 文件,您可以使用以下命令:
回聲“0x400 0x404”> autoboot.adr
將加載地址設置為 0x400,執(zhí)行地址設置為 0x404。
如果未找到 AUTOBOOT.ADR 文件,則將使用默認值(0x400、0x400)。
現(xiàn)在使用 Autoboot 啟動模式時,加載地址和執(zhí)行地址都將顯示如下截圖所示(從 startrek.c 源生成并使用 gcc 交叉編譯器工具鏈編譯的 autoboot.bin 指定所需的自定義加載autoboot.adr 文件中的參數(shù)):
?
?
波特率恢復虛擬按鈕
更改串行端口的速度可能會“失去”對板的控制(即您忘記了速度或設置了錯誤的速度)。在這種情況下,您可以使用“虛擬按鈕”將兩個串行端口重置為默認速度(115200 bps),而無需終端。
要激活波特率恢復“虛擬按鈕”,您必須同時按下 RESET 和 USER 鍵,松開 RESET 鍵并按住 USER 鍵直到 USER LED 開始閃爍(如“選擇啟動模式或系統(tǒng)參數(shù)”菜單)和保持至少 4 秒以上,直到 USER LED 開始快速閃爍。這是波特率恢復“虛擬按鈕”已激活的標志。
下次重新啟動時,兩個串行端口都將設置為默認速度(115200 bps):
?
注意:從 IOS S310121-R250521 開始,波特恢復虛擬按鈕的行為發(fā)生了變化。現(xiàn)在只能在至少一個串行端口設置為非默認 (115200) 值時觸發(fā)。
?
CP/M-68K
這是用于 68000 CPU 的 CP/M-68K v1.3。
CP/M-68K 可以在任何支持的 RAM 配置下運行。我在自定義 Bios 中添加了一個例程來調(diào)整已安裝 RAM (128/512/1024KB) 的大小并相應地調(diào)整 TPA(瞬態(tài)程序區(qū),用戶程序空間)大小。檢測到的 RAM 量打印在登錄消息中:
?
?
您有 16 個 8Mbytes 磁盤,從 A: 到 P:。磁盤A:是“系統(tǒng)”磁盤,主要包含CP/M外部命令。
其他磁盤(從 B: 到 P:)可能包含一些 SW 或為空。對于那些包含 SW 的文件,我添加了一個文件 (README.TXT),其中包含內(nèi)部 SW 的名稱以及需要時的其他信息。
如果您想同時使用 IOS 虛擬化的兩個串行端口,請記住它們被映射為相應的 CP/M 物理設備名稱,如下表所示:
?
物理設備名稱 | IOS設備
-------------------------------------------------- -+------------------
CRT:, PTR:, PTP: | 串口1
TTY:, BAT:, UC1:, UR1:, UR2:, UP1:, UP2:, LPT:, UL1: | 串口 2
?
如何使用 CPMTOOLSGUI 在虛擬磁盤中添加文件
68k-MBC將A:B:C:等任意磁盤映射成SD卡上的鏡像文件,文件名為:DSxNyy.DSK;
其中 x(從 0 到 9)是包含操作系統(tǒng)的磁盤集:
0 = CP/M-68K v1.3
yy(從 00 到 15)是磁盤(00 = A:01 = B:等)。
?
您可以從這里下載 CpmtoolsGUI(英文 Windows 版)。
在新文件夾中提取文件 CpmtoolsGUI.exe 并添加/覆蓋從 SD 內(nèi)的 cpmtools 文件夾中復制的文件 diskdefs。
?
-> 第 1 步
在 CpmtoolsGUI 工具的左上角窗口(Image File)中選擇要添加文件的虛擬磁盤。
對于 CP/M -68K:在 CpmtoolsGUI 的左下方窗口(格式)中為任意磁盤(磁盤 0 - 15)選擇“68kMBC-D0-15”。
在下圖中選擇 (Image File) 磁盤 DS0N00.DSK 對應于 CP/M-68K OS (x = 0) 的磁盤 A: (yy = disk = 00 = A:):
?
?
-> 第 2 步
要將一個或多個文件添加到選定的虛擬磁盤,您只需將右上方的選擇窗口指向 PC 中存儲新文件的文件夾,使用右下方的選擇窗口選擇它們,然后按“<-P”按鈕. 添加后,您將在中心窗口中看到添加的文件名(以及以前存在的其他文件)。
?
-> 第 3 步
按退出按鈕退出 CpmtoolsGUI 工具。
要從虛擬磁盤中提取一個或多個文件,過程相同,只需按“-> G”按鈕即可。
要刪除虛擬磁盤中的文件,請在中央窗口中選擇它,按鼠標右鍵并選擇刪除(您無法覆蓋虛擬磁盤中的文件,但必須先將其刪除)。
?
如何使用 SLOAD
當使用 sLoad 從串口加載摩托羅拉 s-record 格式的可執(zhí)行程序時,請記住將每條傳輸線的 15/90ms 延遲設置到您正在使用的 SW 終端的串口設置中。
下圖中是 TeraTerm 的設置窗口:
?
這是必需的,因為兩個串行端口都不使用任何握手控制。
使用增強型 68K Basic 和上傳 Basic 程序時也需要這樣做。
?
?
SLOAD:如何使用 EASY68K (WINDOWS) 設置 68008 跨匯編器自動工具鏈
使用 sLoad 引導模式,可以設置一個自動化工具鏈,在目標(68k-MBC)上交叉組裝、加載和執(zhí)行 68000 匯編源程序,而無需物理接觸板(如“現(xiàn)代”開發(fā)板),運行來自 Windows 命令行 shell 的單個批處理文件 (AL.BAT)。
要在 Windows 下設置自動化工具鏈,您必須首先安裝 Tera Term 和 Easy68K 匯編器。
您必須使用帶有 DTR 信號的 USB 串行適配器,如硬件部分所述,并且驅(qū)動程序必須已安裝并“鏈接”到 COMx:端口(DTR 信號用于從工作站并啟動 sLoad 加載和執(zhí)行會話)。
在 SD 映像 zip 文件內(nèi)的 \teraterm 文件夾中,有所需的文件和 README.TXT 文件中的詳細說明(請記住根據(jù)您的安裝修改 AL.BAT 和 Load68k.ttl 文件,如 README 中所述.TXT 文件)。
我已經(jīng)在 Windows 10 和 Windows XP VM 下使用過這個工具鏈。
這是一個使用 hello_world_demo.X68 源文件示例的視頻(在 SD 圖像內(nèi)的 \asm_demo 目錄中):
在開始編寫您的第一個程序之前,最好先看看“sLoad-S180221.X68”源文件(在 \src 目錄中)并閱讀開頭注釋中有關(guān)內(nèi)存分配的詳細信息文件。
請注意,當從 AL.BAT 調(diào)用宏 (Load68k.ttl) 時,Tera Term 會重置 68k-MBC。這解釋了 USB 串行適配器上 DTR 信號的需要(它使用相同的“技巧”來上傳 Arduino 草圖)。
您必須關(guān)閉 Tera Term 窗口才能終止 AL.BAT 批處理的執(zhí)行(在新運行之前)。
?
SLOAD:如何設置“DOCKERIZED”GCC + NEWLIB 交叉編譯自動化工具鏈(Linux)
可以在這里找到一個“dockerized”準備使用 gcc + newlib(嵌入式設備的標準 C 庫)工具鏈,并為 68k-MBC 板定制自動上傳:
https://hub.docker.com/r/just4fun4just/68k-mbc
您必須在您的 linux PC 中安裝 docker 和 minicom 才能使用此 docker 映像與 gcc (m68k-elf-gcc) 交叉編譯并啟用自動上傳到 68k-MBC。
按照 68k-MBC Docker Hub 頁面上的說明進行操作:
?
?
下面是著名的 Startrek 游戲的 C 版本示例:
有關(guān)詳細信息,請閱讀 SD 映像內(nèi) /gcc-68k/workdir 文件夾中的 README.TXT 文件。
?
注意 1:從 IOS S310121-R250521 開始,可以將 gcc 生成的 AUTOBOOT.BIN 文件與 Autoboot 引導選項一起使用(您必須將提供的 AUTOBOOT.ADR 文件復制到 SD 映像內(nèi)的 /gcc-68k/workdir 文件夾中zip 文件到 SD 的根目錄,以啟用任何 gcc 生成的 AUTOBOOT.BIN 二進制文件的執(zhí)行)。
?
注意 2:當前 SD 映像包含在 linux 下使用 gcc (m68k-elf-gcc) + newlib(為 68k-MBC 定制的標準 C 庫)交叉編譯器在本地構(gòu)建 docker 映像所需的所有文件。有關(guān)詳細信息,請參閱 SD 映像內(nèi) /gcc-68k/docker 文件夾中的 README.TXT 文件。
?
?
?
?
?
?
?
?
?
?
- 使用Raspberry PI 4單板計算機構(gòu)建Samba NAS服務器
- 用單板計算機制造終結(jié)者頭骨
- Z80 MBC3單板計算機開源
- 使用Arduino和Create Web Editor與Linux單板計算機進行交互
- 使用6809 CPU構(gòu)建計算機
- Banana Pi BPI-M1單板計算機硬件原理圖
- STD Bus 8085單板計算機開源分享
- V20 MBC易于構(gòu)建的8088與8080計算機
- 用于68k-MBC的SPP(標準并行端口)適配器
- 如何使用FPGA總結(jié)設計CPU和計算機 13次下載
- 如何使用太陽能電池為 Raspberry Pi 3 單板計算機供電 7次下載
- SBC電源的散熱考慮 10次下載
- IoT 時代的下一代 SBC 7次下載
- SBC1250多媒體單板機 54次下載
- SBC2440-III單板機 45次下載
- 什么是工業(yè)計算機(IPC)? 385次閱讀
- 工業(yè)計算機與普通計算機的區(qū)別 609次閱讀
- 計算機圖形學:探索虛擬世界的構(gòu)建之道 263次閱讀
- VisionFive 2(8GB+雙千兆網(wǎng)口)開發(fā)板雷卯防雷防靜電推薦圖 410次閱讀
- Banana Pi BPI-W3對比Orange Pi 5 Plus:兩種最受歡迎??的SBC比較 575次閱讀
- 如何用繼電器構(gòu)建計算機的CPU 2503次閱讀
- 米爾MYS-8MMX單板計算機的應用 1588次閱讀
- 計算機輔助技術(shù)有哪些_計算機輔助技術(shù)的應用 3.9w次閱讀
- 源創(chuàng)通信 BPI-M2 Zero 四核開源單板計算機介紹 2616次閱讀
- 源創(chuàng)通信 BPI-M2 Ultra 四核開源單板計算機介紹 3030次閱讀
- 源創(chuàng)通信 BPI-M64 四核心64位開源單板計算機介紹 2619次閱讀
- 源創(chuàng)通信banana pi BPI-M2 四核單板計算機介紹 3270次閱讀
- 高性能雙CPU單板計算機的硬件框圖及功能分析 5552次閱讀
- 如何在單板計算機上構(gòu)建無線傳感器電路 2689次閱讀
- NXP PN7150 NFC控制器單板計算機(SBC)解決方案 7354次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關(guān)電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數(shù)字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅(qū)動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多