4. Ondra SD‎ > ‎

4.2. Firmware

Firmvér modulu OndraSD je navrhnutý tak, aby zabezpečoval komunikáciu s SD kartou a dáta vedel zasielať na základe požiadaviek počítaču Ondra.

SD karta musí byť naformátovaná na FAT32. Podporované sú karty SD a SDHC s kapacitou do 32GB.
Keďže FAT súborový systém nemaže názvy súborov (len ich označí ako zmazané), pre rýchlejšiu odozvu je vhodné po odstránení väčšieho množstva súborov kartu nanovo naformátovať, príp. defragmentovať.

Modul reaguje na krátke príkazy s definovanými parametrami:

 Príkaz Význam Parameter Popis
 A Alter settings
 0, 1 zmena prenosovej rýchlosti (0-9600, 1-57600)
 C Change directory
 dirname[8+3] zmena adresára, parameter je názov adresára (11 znakov)
 D     Dir - výpis aktuálneho adresára (adresáre a súbory BIN a TAP)
 E Echo znak vráti znak, ktorý bol zadaný ako parameter
 F Get File
 filename[8+3] odvysiela súbor, parameter je názov súboru (11 znakov)
 I Illuminate 0, 1
 ovládanie LED
 K Version - vráti číslo verzie firmvéru ako jeden bajt
 L Start Loader - začne vysielať súbor zavádzača
 M Message - informačná správa
 N No Loader
 - zastaví vysielanie zavádzača
 P Ping
 - vráti znak *, slúži na zistenie pripojenia modulu
 X Reset - reset modulu
 S Set time
 7b date/time
 Nastavenie RTC (pozri datasheet k DS1307)
 T Date and time
 - Odošle 7 bajtov s aktuálnym dátumom a časom
 R Read Block
 4b ADDR
 vyčíta 512 bajtov (+1b ACK hneď na úvod) daného bloku z SD karty
 W Write Block
 4b + 512b zapíše 512 bajtov ako blok na SD kartu, vráti 1b ACK
* názov súboru a adresára musí obsahovať 11 znakov, t. j. 8 znakov názov a 3 znaky prípona. Znak "." ako odelovač nesmie byť použitý. V prípade kratšieho názvu treba doplniť znaky medzery.
** príkazy môžu byť zadávané malými aj veľkými písmenami

Zároveň modul vyhodnocuje, či nenastal reset počítača Ondra, na základe ktorého sa sám nastaví do počiatočného stavu.

Príklady príkazov:

 c/ návrat do root adresára
 c.. návrat o úroveň vyššie
 cTEST    XXX zmeň adresár na TEST.XXX
 fJETPAC  BIN vyšli súbor JETPAC.BIN
 i1 zapni LED
 a1 zmeň prenosovú rýchlosť na 57600 Bd
 eX vráť znak X

Upozornenie: Príkaz aj s parametrami musí byť zadaný vo veľmi krátkom čase, asi 1/2 sekundy, inak je považovaný za neplatný. Toto je dôležité pri testovaní modulu voči PC a zadávaní príkazov cez terminálový program.

Po zapnutí začne modul vysielať po sériovej linke obsah súboru __LOADER.BIN . Ten slúži na prvotnú komunikáciu s modulom a pre prípadné zavedenie ďalších súborov do počítača Ondra.
Vysielanie sa opakuje približne každé dve sekundy, časový odstup slúži na sputenie príjmu (# a Enter) na klávesnici počítača, čím dôjde k prenosu vysielaného súboru a jeho následnému spusteniu. Vysielanie je signalizované žltou LED diodou.

Ak sa vyskytnú chyby pri prevádzke modulu, napíšte prosím autorovi. Kontakt je na úvodnej stránke. Podľa možností uveďte typ chyby (ak sa prejavuje blikaním) a typ karty (kapacita, výrobca, trieda).

Pri chybe komunikácie s SD kartou je prostredníctvom modrej LED signalizovaný kód chyby.
LED bliká podľa kódu chyby. Krátke odstupy medzi odvysielaním kódu signalizujú kód chyby SD karty, dlhšie odstupy cca 2 sekundy signalizujú kód chyby FAT systému. Výnimkou je chýbajúci zavádzač, ktorý je signalizovaný s krátkou medzerou.

  krátka medzera (1s)
 1 chyba incializácie karty
 2 chyba rozlíšenia typu karty
 3 chyba nastavenia dĺžky bloku
 4 chyba pri čítani bloku z karty
 5 chyba pri zápise bloku na kartu
 6 chyba pri detekcii SDHC kariet
 8 chýba súbor zavádzača
  dlhá medzera (2s)
 2 nie je FAT32
 3 nenájdený Volume ID sektor
 4 zlá veľkosť sektoru
 5 zlý počet FAT tabuliek
 6 zlé číslo root klastra
 7 chyba na VolumeID

Zmeny vo verziách firmvéru:
2.2 - opravené low-level rutiny BlockRead, BlockWrite, doplnené potvrdenie konca bloku - podpora pre CP/M
      - doplnené rutiny SETTIME a DATETIME pre RealTimeClock
      - oprava chybného čítania, ak cluster obsahuje iba jeden sektor (prejaví sa štandardne len pri kartách menších ako 128MB)
      - vyžaduje 89C4051 (4kB flash)
2.1 - neverejná verzia pre podporu CP/M
1.3 - úprava inicializačnej rutiny, číta viac typov kariet
1.2 - podpora kariet SDHC bez MBR, zmena v detekcii SDHC kariet
1.1 - podpora kariet SD bez MBR
1.0 - základná verzia

Comments