Sprog

Aktualizace 22.2.2016 - rozšíření podpory COM portů, doplněny další mikroprocesory.

S odchodem posledního počítače, vybaveného klasickým printer portem vyvstal zásadní problém. Čím budu programovat jednočipové procesory? Nabízí se jednoduchá možnost - koupit hotový, sériově vyráběný ISP programátor, obvykle připojený na USB. Cena univerzálních programátorů se však pohybuje v řádu několika tisíců. Ve srovnání s cenou procesoru, potažmo vytvářeného zařízení, to představuje i třicetinásobek. Jeho méně časté používání také zrovna nevyvažuje tak vysokou cenu. Proto přišla na řadu jiná možnost. Vyrobím si programátor sám.

Různě sofistikovaných řešení je na internetu široký výběr. Stanovil jsem si několik požadavků:

  • jednoduchá konstrukce, vyrobitelná ve skromných amatérských podmínkách
  • připojení USB, případně RS232 (pomocí zakoupené redukce)
  • žádné programovatelné obvody
  • napájení z programované aplikace

Běžně dostupné USB obvody jsou pouze v SMD provedení, rozteč vývodů 0,8 nebo 0,65 mm. To je trochu komplikace. Jeho připájení vyžaduje notnou dávku zručnosti, nebo speciální vybavení. Ne že bych si neporadil, ale opakovatelnost takového postupu je pochybná. V tomto ohledu jsem radši zvolil RS232. Příslušnou redukci pak můžu využít i k dalším účelům.

Takový ISP programátor přece jen potřebuje trochu inteligence. Když nechci, aby byla součástí programátoru, musí být v obslužném programu. Případné dodatečné úpravy budou jednodušší.

Výsledkem výběru byla nula. Žádné z nalezených řešení nesplňovalo moje představy. Takže přišla na řadu lidová tvořivost. Obvodové řešení popisuje samostatný článek.

Snažil jsem se vytvořit pokud možno jednoduchý a přehledný nástroj. Proto nečekejte žádné velké vymoženosti.

Obslužný program umožňuje obsah bufferu načíst ze souboru, případně uložit do souboru pouze ve formátu Intel Hex (jednotlivé řádky textu začínají dvojtečkou). Podrobný popis formátu najdete na internetu. Obsah bufferu je možné zobrazit, ale nelze jej editovat.

Některé typy mikrokontrolerů mají integrovánu paměť EEPROM pro data. Program SPROG mapuje tuto paměť bezprostředně za vnitřní paměť programu příslušného obvodu. Případný obsah paměti EEPROM tak musí být, spolu s obsahem paměti programu, součástí jednoho souboru.

Běžné operace, jako čtení, smazání, zápis, verifikace a nastavení lock bitů, je možné aplikovat samostatně, nebo "jedním stiskem" tlačítka [Program!]. Provedou se předem vybrané operace.

Aktuální verze programu podporuje následující obvody ATMEL:

  • AT89S51, AT89S52, AT89S53, AT89S8252, AT89S8253, AT89S2051, AT89S4051
  • AT90S1200, AT90S2313, AT90S2323, AT90S2333, AT90S2343, AT90S4414, AT90S4433, AT90S4434, AT90S8515, AT90S8535
  • ATtiny12, ATtiny13, ATtiny24, ATtiny25, ATtiny26, ATtiny43, ATtiny44, ATtiny45, ATtiny48, ATtiny84, ATtiny85, ATtiny87, ATtiny88
  • ATtiny2313, ATtiny4313
  • ATtiny441, ATtiny841
  • ATtiny261, ATtiny461, ATtiny861

Po spuštění programu je načten seznam dostupných COM portů. Na uživatelem vybraném portu pak zkouší detekovat přítomnost programátoru.

Vzhledem k netradičnímu způsobu použití sériového portu je komunikace s jednočipem trochu pomalejší. Srovnání časů pro zápis u některých typů najdete v následující tabulce.

Mikroprocesor Integrovaný port USB redukce
AT89S52 5,5 s 3 min 19 s
AT89S53 *) 4 min 6 s 18 min 28 s
AT89S8253 12 s 6 min 7 s
AT89S2051 2,8 s 55 s
AT90S1200 22 s 2 min 16 s
ATtiny13 4 s 1 min 50 s
ATtiny2313 7 s 3 min 40 s

*) Nejhorší situace je u AT89S53 a AT89S8252. Absence stránkového režimu programování u těchto typů způsobuje velmi výrazné prodloužení časů čtení a zápisu. Vynecháním zápisu bajtů s hodnotou 0FFh (smazaný) se dosáhlo zkrácení doby programování, zejména pokud není využita celá paměť obvodu.

Při použití USB redukce dochází k významnénu prodloužení časů všech operací. To je dáno časováním rámců USB protokolu.

Částečné zlepšení situace, ale pouze pro operaci zápisu, bylo docíleno optimalizací ovládání vodiče MOSI. Doba zápisu je tak závislá na zapisovaných datech. Oproti uvedeným maximálním časům se může zkrátit teoreticky až o třetinu.

Sprogram SPROG je freeware.

Program se neinstaluje, soubory z archívu rozbalte do libovolného adresáře (např. C:\SPROG).