Jednodeskový mikropočítač 68k nano

      22.10.2024 Z vraku nějakého starého modemu jsem vykuchal CPU Toshiba TMP68HC000P-16 v majestátním pouzdru DIP64, který se pěkně vyjímal v mé sbírce na zdi, ale ještě lepší by bylo ho zkusit rozběhat v nějaké desce. Jedná se o 32-bitový CISC CPU rodiny Motorola 68000 (68k) avšak pouze s 16-bitovou datovou a 24-bitovou adresovou externí sběrnicí, tedy něco jako odlehčená verze 386SX z plnotučné 386DX. Tento CPU kromě Motoroly vyráběli i další výrobci jako Hitachi a Toshiba na pracovních frekvencích 8 - 20 MHz. Používaly se v řadě populárních počítačů z 80. let jako např. Atari ST, Amiga 500/1000/2000, Apple Macintosh i v embedded zařízeních. Existovala i verze 68EC000, která měla možnost volby provozu 8/16-bitové externí datové sběrnice.
      Hledal jsem tedy nějakou dostatečně jednoduchou, snadno postavitelnou SBC desku bez drahých FPGA/CPLD obvodů a Logout mě nasměroval na OpenHW/SW projekt 68k nano na GitHubu. Deska SBC obsahuje CPU, krystalový oscilátor, 2 paměti SRAM (celkem 1 MB), 2 paralelní paměti EEPROM (celkem 64 kB), klasický UART 16C550 a pár 74xx hradel (vše v DIP pouzdrech). Dále je na desce pár LEDek, tlačítek, expanzní konektory, 44-pinový konektor na IDE disk či CF kartu a USB konektor typu B (pouze pro napájení). V listopadu jsem dělal v JLCPCB větší objednávku desek a tak jsem tam 68k nano též přihodil.

      25.11.2024 Dorazila mi várka plošňáků z JLCPCB a postupně jsem je naposílal zájemcům. Ještě mám dispozici 1 volnou desku. Pomalu jsem se pustil do osazování. Většinu součástek jsem našel v šuplíku kromě pamětí. 512kB SRAMky AS6C4008-55PCN jsem zkusil objednat z AliExpressu za 128 Kč. To je poměrně nízká cena, tak uvidíme, jestli nepřijde nějaký totální fejk. Ještě musím někde vyštrachat ten UART NS16550.

68k nano PCB-top 68k nano PCB-bottom částečně osazený PCB 68k nano
68k nano PCB top 68k nano PCB bottom osazený 68k nano

      16.12.2024 Dorazily 2 SRAMky z Alíku, tak jsem je v rychlosti otestoval pomocí programátoru LabProg-48LV a zdá se že fungujou, alespoň na nižší rychlosti. Místo EEPROM napálím bootloader do klasických EPROMek 27C256. Ty se oproti EEPROM liší na 2 pinech: pin 1 má na 28C256 význam A14 zatím co na 27C256 je to Vpp a pin 27 je na 28C256 WE# (trvale spojeno s VCC) zatím co na 27C256 je to A14. Případně použiju 27C512, která má na pinu 1 A15 (A14 bude trvale na log. 1) a nebude ani třeba piny prohazovat. Pouze se upraví image tak, že se rozdělí na 2 poloviny, dolní se zapíše na adresy 4000h - 7FFFh a horní na adresy C000 - FFFFh.

      2.1.2025 Dnes jsem zkusil zkompilovat bootloader. K tomu je potřeba assembler VASM a pár dalších toolů. Zdrojáky VASM lze stáhnout zde a zkompilovat pro Windows pomocí MinGW32, pro DOS pomocí DJGPP, či GCC pod Linuxem. Na Windows se mi z nějakého důvodu nevytvořil adresář obj_win32 a musel jsem ho vytvořit ručně. Pak už stačilo jen zkompilovat pomocí make -f Makefile.Cygwin CPU=m68k SYNTAX=mot a výslednou binárku přejmenovat na vasmm68k_mot.exe. Dále je asi potřeba disassembler VDA68k, který lze bez problémů zkompilovat taktéž GCC dle přiloženého Makefile. Pro vytvoření ROM image je ještě potřeba sada nástrojů SRecord, které už najdeme zkompilované pro Windows a Linux. Assembler a tooly nahrajeme někam do cesty nebo přímo do adresáře code se zdrojáky bootloaderu z GitHubu a zkompilujeme pomocí make rom. Výsledkem by měly být 2 soubory rom-l.bin a rom-u.bin velikosti 32 kB.

      7.1.2025 Konečně jsem se dokopal k prohledání šuplíčků, vyštrachal ten UART čip NS16550 a mohl tak desku vyzkoušet. Zkompilované ROM image bootloaderu jsem upravil podle odstavce výše a napálil je do 2 EPROMek M27C512-15XFI. Připojil jsem USB převodník k UARTu, pustil terminál na 57600 baudech a připojil 5V napájení. Rozsvítily se LEDky POWER a STATUS a bootloader naběhnul. Když jsem chtěl připojit CF kartu, zjistil jsem, že moje CF-IDE44 redukce má prohozené sloupce 1-43 s 2-44 proti zapojení na desce, takže jsem ještě musel použít plochý kabel a hřebínek, abych to prohodil zpět. Pak už bootloader kartu rozpoznal a zobrazil soubory z FAT16 FS.


68K NANO - ROM VERSION 00009910 (20200711)
(C) 2020 MATT SARNOFF (MSARNOFF.ORG)
TESTING RAM...PASSED

RAM: 1,048,576 BYTES
ROM: 65,536 BYTES
CPU: 12,000,000 HZ
NO REAL-TIME CLOCK DETECTED
CARD DETECTED: 1,020,064 KB 'NO NAME    '
CANNOT LOAD STARTUP.BIN - FILE NOT FOUND

TYPE ? [ENTER] FOR HELP.
> .I
PARTITION SIZE:                 2,040,129 SECTORS
BIOS PARAMETER BLOCK AT SECTOR  63
FILE ALLOCATION TABLE AT SECTOR 69
ROOT DIRECTORY AT SECTOR        567
START OF DATA REGION AT SECTOR  599
COPIES OF FAT:                  2
RESERVED SECTORS:               6
FILE ALLOCATION TABLE SIZE:     249 SECTORS
CLUSTER SIZE:                   32 SECTORS
MAX ROOT DIRECTORY ENTRIES:     512
VOLUME NAME:                    'NO NAME    '

> 
> .L
DOS - DIRECTORY
COMMAND.COM - 54,645 BYTE(S)
RAWSPEED.EXE - 75,412 BYTE(S)
AUTOEXEC.BAT - 179 BYTE(S)
CONFIG.SYS - 10 BYTE(S)
DOOM - DIRECTORY
AUDIO - DIRECTORY
DN - DIRECTORY



Zpět

Aktualizováno 15.1.2025 v 5:13