Tu a tam objeví zpráva o divMMC od SinDiKatu. Nikdo to nikde neviděl, ale sem tam se otom píše na fóru nebo vyjde nějaká recenze, třeba od Shreka. Myslím, že nastal čas na oficiální představení divMMC SinDiKat edition.
Tak tedy divMMC SinDiKat edition je jen další obyčejné divMMC, založené na opensource základu Maria Prata. Ale protože dělat obyčejný hardware je nuda, má naše divMMC v poslední revizi, podle mého mínění, několik zajímavých vlastností:
- dva sloty pro microSD karty
- zdroj 4MHz hodin nezávislý na spectru
- průchozí sběrnice ZX Spectra
- obvod reálného času – RTC72423 na portu #03
- záloha RTC 3V baterií
- konektor pro joystick – KEMPSTON s až 3 tlačíky
- standardních 512 kiB RAMky a standardní 8kiB EEPROM
- propojka zákazu zápisu do EEProm
- propojka pro běh na Spectrum +2A/+2B/+3
- propojka blokování Kempston joysticku
- napájení je přímo ze spectra, spotřeba cca 40mA
- tlačítka RESET a NMI
- indikační led pro aktivitu karet, napájení a indikaci Mapcond
- plná podpora z ESXDOSu / plně podporuje ESXDOS – včetně RTC
Vznik nového divMMC by se dal popsat v krátosti asi takto: [z00m] já se naštvu (ostřeji) a nakreslím schéma divmmc!; [pvym] jestli nakreslíš schéma, já nakreslím plošňák!; [z00m] o dva tři dny později přišel e-mail a tam schéma; [pvym] o dva tři dny později jsem měl nastrkané součástky v KiCadu
Na desce zbývalo ještě trochu místa. Co tam přidat? Jako majiteli toastracku mi občas chyběla možnost připojení joysticku tak byla volba jasná. Protože jsem nevěděl, zda půjde do Xilinxe doplnit adresaci Kempstonu přidal jsem na desku i dekodér adresy z 74LS688 a budič 74LS240 pro datovou sběrnici. O další dva tři týdny později byla první verze divMMC SinDiKat byla nakreslená. Shodli jsme se na tom, že zůstaneme u nastavení propojkami pro volbu stroje +2A/+3, zákaz zápisu do EEProm a blokaci Kempston joysticku. Prostě proto, že propojky fungují vždy a je na první pohled vidět, co je nastavené.
Následovala delší pauza, během které nám vyráběli desky. Byl čas zjistit jak programovat Xilinxe z čehož jsem měl strach. Strach většinou pramení z neznalosti, ale po nalezení prográmku xc3prog a zjištění, že podporuje kdejaký JTAG adaptér se začalo vyjasňovat. Nakonec jsem použil svůj Olimex ARM-USB-TINY-H, bylo však třeba přidat v xc3prog další USB vid/pid pro tento jtag adaptér, protože do té doby uměl xc3prog programovat jen pomocí Olimexu ARM-USB-OCD-H.
Pak jsem si nainstaloval Xilinx ISE – vývojové prostředí pro CPLD/FPGA a zkusil do něj cvičně nahrát projekt divMMC a dal přeložit. Až později jsem si uvědomil, že jsem Xilinxe v prototypovém divMMC nakrmil novým *.jed souborem, který vznikl kompilací ze zdrojových kódů a ne původním Mariovým *.jed souborem. Možnost úprav a funkční překlad se později hodil k úpravám VHDL pro adresaci kempstonu a RTC.
Jako každý prototyp, měl i tento své mouchy: špatně zapojené sloty microSD karet. Kdo by byl řekl, že se pinově liší od velké SD karty 🙂 Pár přeškrabů a drátků to spravilo a první divMMC SinDiKat bylo na světě.
Druhá verze označená jako rev. 2 měla opravené připojení microSD slotů a vyhozený HW dekodér adres vytvořený pomocí 74LS688 pro Kempston a adresace byla dopsána do CPLD.
Třetí revize divMMC vznikla o několik měsíců později. Při osazovaní součástek ze spodní strany desky mi přišlo líto, že je tam (ještě na desce rev.2) ještě spousta nevyužitého místa. Můj kolega nazývá takové plošné spoje jako festival ztraceného místa. Ve třetí verzi desky (rev.3) tedy přibyl obvod reálného času RTC72423 i se zálohovací baterií. Adresace se rovněž vešla do Xilinxe. Tím se definitivně vyčerpaly všechny volné piny použitého Xilinxe. RTC72423 je SMD variantou obvodu RTC72421, který je používán, ale i emulován, v mnoha spectráckých zařízeních. RTC nemusí být osazeno, pokud pro něj nemáte využití.
Na CPLD by je ještě hodila jedna volná nožička pro ledku indikující režim MAPRAM. Teď je na všech divMMC vyvedena ledka se vzdáleně podobným signálem MAPCOND a nikoli MAPRAM jako u divIDE. Tím, že je divMMC celé v CPLD, je tudíž signál MAPRAM interní. Výsledkem je, že ledka MAPCOND svítí poněkud častěji a ne jen pokud přepnete do módu MAPRAM. V odkazované Shrekově recenzi je to popsané ještě pro revizi 2 bez RTC, tam se dá z Xilinxe MAPRAM vytáhnout na ledku drátkem z oné poslední volné nožičky, která zbyla na adresaci RTC. Další drobná změna se týče odstranění montážních děr pro konektor joysticku, který se tak definitivně připojuje k divMMC jen na originál DB9 piny, které jdou koupit samostatně.
Během těch měsíců se také stalo to, že na nás padlo virové uzavření hranic a vlastně všeho. SinDiKat se několikrát sešel on-line. Z00m nelenil, nakreslil pro divMMC krabičku, včetně otvoru pro konektor joysticku, který tak nahradil velký DB9. Vyhrál si s návrhem uchycení za velké integrované obvody tak dobře, že deska v krabičce sedí i bez výše zmíněných montážních děr.
DivMMC je na čtyřvrstvé desce plošných spojů, aby se dala udělat průchozí sběrnice na tak malé ploše. Všechny „nezajímavé“ a pasivní součástky jsou vespodu. Jedna vrstva mědi je použitá jen jako zem. Snad díky malým rozměrům (krátkým spojům), důkladnému zemnění a vlastnímu 4MHz clocku je podle ohlasů divMMC stabilní s různými spectry i klony. Když už bylo divMMC v krabičce, ještě zbývalo dodělat samolepku, ať divMMC vypadá k světu. Asi by bylo ještě co vylepšovat, ale s použitým CPLD jsme téměř na konci možností. Ale jak se říká, nikdy neříkej nikdy. Máme v plánu ještě vylepšit naše divMMC ve VHDL o jednu vlastnost. Ale nerad píšu o něčem, co není hotové. Na tomto místě bych rád poděkoval z00movi za tehdejší plodnou diskuzi, která ho dovedla k překreslení schématu, což byl první impuls pro tvorbu tohoto hardwaru. Díky také za krabičku, kterou pro divMMC vytvořil a vytisknul. Za tisk krabiček a podporu též děkuji Ikonovi. Za sebe mohu říci, že jsem si užil hezkých pár dní routováním desky, což je má oblíbená činnost. Díky tedy za tuto týmovou spolupráci.
Výsledkem je, že jsem ke svým Sinclairům nepřipojil dlouho nic jiného, tedy co se týče storage zařízení. Nejlepší na tom je, že mi pár kusů divMMC ještě zbývá.
Pavel Vymetálek – pvym
Odkazy:
- Shrekova recenze divMMC
- Utilitka xc3prog pro naprogramování Xilinxe
- z00mova stránka na Thingiverse s krabičkou divMMC
- Moje stránka o divMMC
Fotogaléria:
To chci!
Já taky!!!
jak se to dá získat ? Míra
Stačí napsat e-mail 🙂 Poslední odkaz v článku a tam je kontakt.
Spätné upozornenie: divMMC v luxusní edici – CI5 the amateurs
Spätné upozornenie: Novinky počas #zostantedoma | SinDiKat