PP 01 SD-ROM
Foto: RomBor
PP 01 SD-ROM
Foto: RomBor
Takto na breadboarde vznikal
PP 01 SD-ROM
Foto: RomBor
Schéma PP 01 SD-ROM
Zdroj: RomBor

SD-ROM Modul

Ako už názov napovedá, SD-ROM Modul je moderná periféria k PP01, ktorá slúži ako plnohodnotná náhrada pôvodných ROM modulov a pridáva nové možnosti záznamu a čítania súborov z SD karty štandardnej veľkosti. Pripája sa k počítaču ako štandardný ROM Modul cez rozširujúci konektor v ľavej hornej časti počítača. Oproti bežnému modulu, ktorý obsahuje iba pamäte EPROM, z ktorých sa načítavajú rôzne programové rozšírenia, SD-ROM Modul obsahuje, okrem iného, hlavne mikrokontrolér ATmega328P, slot pre SD kartu a namiesto EPROM statickú pamäť RAM 32 kB. Naviac, ovládač SD-ROM zahŕňa jednoduchý súborový manažér a rozširuje BASIC o príkazy pre nahrávanie súborov a prácu s adresármi.

Popis zapojenia

SD-ROM Modul je pripojený na zbernicu cez budiče 74245. Vzhľadom na to, že táto zbernica umožňuje prenos dát iba smerom do PP 01, úrovne na pinoch DIR budičov pevne určujú ich smer - IC7 (dátová zbernica) smer do PP 01, IC8 a IC9 (adresová zbernica) smer z PP 01. Keďže na zbernici chýbajú adresové signály A11 a A12, tie sú "reštaurované" pomocou prioritného dekodéra 74148 (IC6) z výberových signálov /CS0 až /CS7, ktoré pôvodne vyberajú jednu z ôsmych 1 kB alebo 2 kB EPROM v ROM Module. 74148 zároveň vytvára signál /OEM, ktorý jednak otvára budiče 74245 a zároveň uvoľňuje dáta zo SRAM na dátovú zbernicu. Čítanie zo SRAM je teda počítačom aktivované, ak je aktívny niektorý zo signálov /CSx.

ATMEL nemá možnosť čítať zo SRAM, ale, samozrejme, zápis je možný. Pred zahájením zápisu aktivuje ATMEL signál /CSW, čím sa zablokuje 74148, deaktivuje sa tým signál /OEM a tak sa zabráni kolízii na vnútornej zbernici. Pre zápis jedného bytu do SRAM musí ATMEL najprv pripraviť adresu pamäťovej bunky do dvoch zreťazených posuvných registrov 74595 (IC3, IC4). To sa udeje prostredníctvom SPI (MOSI - dáta a SCK - hodiny pre zápis). Impulzom na ALE sa zapíše vyslaná adresa do výstupného registra. Následne sa na dátovú zbernicu pripraví zapisovaný byte a impulzom na /WEM sa zapíše do SRAM. Samotná SRAM je pripojená na vnútornú adresovú a dátovú zbernicu. Adresovým vodičom A14 určuje ATMEL, s ktorou 16 kB bankou SRAM sa bude pracovať. Signál /CSM sa aktivuje, ak je aktívny aspoň jeden zo signálov /CSW alebo /OEM (IC5C, IC5D).

SD karta je k ATMELu (IC1) pripojená štandardne cez SPI (MOSI, MISO, SCK, /SS). Signály MOSI, SCK a /SS majú upravené napäťové úrovne odporovými deličmi (R2 až R7). Napájacie napätie pre SD kartu je znížené z 5 V na cca. 3,6 V za pomoci dvoch diód D1 a D2 a filtrované kondenzátormi C5 a C6.

Sériová linka je tvorená jednoduchým prevodníkom TTL úrovní (na strane ATMELu) na RS232, resp. V.24 na strane PP 01. T1, R13, R14 a R15 upravujú výstupné dáta TxD. T2, D1, R16 a R17 zasa vstupné dáta RxD.

ATMEL je taktovaný frekvenciou 16 MHz za pomoci kryštálu Q1 a pomocných kondenzátorov C1 a C2. Resetovací obvod je tvorený iba pomocou C1 a C8 a tlačidla S1. Pomerne vysoké hodnoty R1 aj C8 sú nutné z dôvodu pomalého nábehu napájania samotného PP 01, čo pri nižších hodnotách spôsobovalo nemožnosť inicializácie alebo "zablokovanie" SD karty.

LED diódy indikujú 5 rôznych stavov: aktivitu SD karty, aktívnu banku SRAM, čítanie zo SRAM, zápis do SRAM a komunikáciu po sériovej linke.

Firmvér

Aktuálna verzia: v0.9 (9.12. 2018)

Firmvér v ATmega328P v prvom rade zabezpečuje prístup na SD kartu za pomoci knižnice MMC/SD/SDHC card library. Druhou dôležitou úlohou je komunikácia s PP 01 cez sériovú linku V.24. SD-ROM je tu v úlohe Slave, ktorý prijíma povely od PP 01 v úlohe Master. Na základe daných povelov tak SD-ROM sprístupňuje PP 01 súbory na SD karte a napĺňa obsah SRAM, ktorá je potom prístupná na čítanie, rovnako ako pôvodný ROM Modul.

Ovládací program

Aktuálna verzia: v0.B (7.7. 2019)

Ovládací program je akousi nadstavbou GBASICu, ktorá rozširuje GBASIC o nové príkazy a funkcie, ktoré umožňujú pristupovať k súborom na SD karte. Ovládací program ďalej rozširuje znakovú sadu o malé písmená a tiež umožňuje zadávanie malých písmen z klávesnice. Inicializácia ovládacieho programu sa prevedie zadaním príkazu ROM. Detailný popis je uvedený v užívateľskej príručke.

Súbor ppsdrom.rmm, ktorý je treba uložiť do koreňového adresára SD karty alebo do adresára SDRoot v prípade Emulátora, je súčasťou archívu so zdrojovými súbormi.

Zmeny vo verzii v0.B

  • Pridaná alternatíva príkazov LOAD N$ CODE od[,len] a SAVE N$ CODE od,len, ktoré fungujú úplne rovnako ako s AT.
  • Pri ukladaní binárneho súboru (AT, CODE) sa nepridáva prípona .cod.
  • Manager:
    • Pridané nahratie všeobecného súboru (prípona iná ako .ppb, .pta alebo .rom) na zvolenú adresu.
    • Pridané zadanie masky pre zobrazované súbory. Vyberá sa klávesom `C`.
    • Pri výbere súboru .ppb a voľbe spustenia programu sa číslo štart riadku vezme zo súboru. Ak štart riadok nebol nastavený, spustí sa program od začiatku.
  • Rozšírený zoznam verejných rutín ovládacieho programu. Popis pridaný do príručky ako príloha č. 5.

Zmeny z oficiálne nevydanej verzie v0.A

  • Ak pri inicializácii príkazom ROM dôjde ku komunikačnej chybe, prevedie sa ihneď návrat do BASICu s chybou, aby nedošlo ku zbytočnému "zamrznutiu" a užívateľ vedel, že je problém s V.24 komunikáciou.
  • Pridané príkazy LOAD N$ VRAM a SAVE N$ VRAM pre načítanie alebo uloženie celej Video RAM do súboru.

Download