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