Historie vzniku programátoru
AT-master
Záložky: Rozhodnutí - Slepice nebo vejce ?
- 1. změna - Realizace - 2. změna
I) Rozhodnutí
Koncem června roku 2003
jsem zjistil, že už se neobejdu bez programátoru 40-pinových procesorů Atmel
(v dalším textu budu říkat 40-pinovým procesorům "velké" a 20-pinovým
"malé") a nějaký dospělý
programátor si musím pořídit (zatím jsem měl jen
programátor malých
Atmelů).
Požadavky, které měl programátor
splňovat, byly následující:
1) programátor musí umět programovat
bez redukce čipy jak velké, tak malé,
2) všechen potřebný SW musí být dostupný bezplatně,
3) programátor musí být k PC připojen pomocí sériového portu (tj. musí být
"inteligentní";
časování nesmí být závislé na hardware PC),
4) programátor musí jít snadno amatérsky vyrobit (nesmí používat oboustranné
plošné spoje).
Nejdříve jsem samozřejmě hledal na internetu, ale žádná konstrukce nesplňovala
všechny moje požadavky.
Proto jsem se rozhodl pro konstrukci vlastní. Velkým
omezením pro mne však je, že neumím vytvářet
programy pro PC. Proto jsem se
rozhodl za základ mého zapojení použít konstrukce
Easy Downloader 1.1
a Easy Downloader 2.0
od Wichita Sirichote.
Z informací, publikovaných na jeho stránkách, se totiž dal
odvodit komunikační
protokol, používaný mezi PC a programátorem. Díky tomu jsem si mohl postavit
vlastní
hardware (nazval jsem ho AT-master) a k němu použít hotový obslužný SW
(ezdl4.exe).
II) Co bylo dříve - slepice, nebo vejce ?
Na nepájivém kontaktním poli jsem
"zadrátoval" svůj AT-master. Ale co dál?
Neměl jsem čím
naprogramovat master procesor, který by ho řídil. Představte si
malou domácí elektronickou "laboratoř",
umístěnou v obýváku. K dispozici
jsem měl pouze svůj programátor TSP-IC a
programátor
malých Atmelů.
Dnes už vím (viz IIb), jak jsem mohl postupovat jednoduše, ale
ve chvíli, kdy jsem byl před tento problém
postaven, jsem zvolil zbytečně
neschůdné a složité řešení:
IIa) Jak jsem to neměl dělat, ale dělal
Na jiném kontaktním poli jsem zadrátoval
druhý - provizorní AT-master, kde jako
master fungoval malý
Atmel. Pomocí funkčního
programátoru
malých Atmelů jsem nejprve odladil firmware pro
programování (zatím
také pouze) malých Atmelů. Jakmile mi provizorní HW fungoval pro malé
Atmely,
doplnil jsem zapojení o čítače pro adresování AT89C51 a firmware
jsem příslušně upravil. Celkově jsem
po relativně dosti hodinách ladění
dospěl do stadia, kdy takto zapojený provizorní
AT-master dokázal
naprogramovat AT89C51. Nyní jsem tedy měl
funkční (i když provizorní) programátor velkých Atmelů
(= slepici). Pomocí něj
jsem konečně mohl programovat procesor do skutečného
AT-mastera
(= vejce, z kterého také měla být
slepice).
IIb) Jak jsem to měl dělat, ale nedělal
Kdybych již tehdy věděl to, co vím dnes, byl bych ve stejném stadiu jako při
postupu podle bodu IIa
mnohokrát rychleji: Postup je velmi jednoduchý. Místo
AT89C51 je třeba použít AT89S8252. Ten je sice
o něco dražší, ale zato má jednu velice
důležitou vlastnost. Je ho možno naprogramovat nejen v režimu
paralelním, ale
také v režimu sériovém (ISP). Stačilo tedy použít TSP-IC, udělat si jednoduchou
redukci
a "vejce" by bylo za několik minut (!) hotové.
Na stránce TSP-IC
je fotografie, znázorňující připojení AT89S8252 k TSP-IC.
III) Změna
Nyní jsem tedy měl jednak čím programovat, jednak použitelné části firmware
a tak už za relativně
krátkou dobu jsem "dokončil" vývoj a chtěl se pustit
do návrhu plošného spoje a konečné realizace.
V tu chvíli však (naštěstí)
nastal zlom. V katalogu GM electronic jsem totiž zjistil, že procesory AT89C55
jsou nahrazeny novějšími AT89C55WD
s jiným programovacím algoritmem. Stáhl jsem si
příslušný
datasheet
a zjistil jsem, že se stávajícím AT-masterem by
procesory AT89C55WD programovat nešly.
Důvody byly tři:
- nedostatek ovládacích pinů na master procesoru,
- nemožnost přepínat napájecí napětí z 5V na 6,5 V (a také ho vypínat) a
- nemožnost generovat krátký (200 až 500 ns) programovací impuls.
Usoudil jsem, že konstruovat programátor pouze na procesory, které už se
nevyrábějí nebo brzy
přestanou vyrábět, je nesmysl. Bylo jasné, že
AT-master musí umět programovat i AT89C55WD.
Přemýšlel jsem tedy, jak co
nejjednodušeji zapojení upravit. Ze všech možných řešení jsem nakonec
zvolil
doplnění přístroje mikroprocesorem AT90S1200. Ten má dva úkoly. Jednak přebírá
funkci
brány P1 masteru, tj. ovládá celou bránu P1 programovaného procesoru
(platí jen pro velké procesory),
jednak generuje požadované krátké impulsy.
Po uvolnění brány P1 masteru tu najednou byl dostatek
volných ovládacích pinů.
Tři jsou vyhrazeny na řízení AVR procesoru AT90S1200, další potom
pro navýšení
počtu ovládacích signálů pro nový programovací algoritmus a pro ovládání
napájecího napětí
slave procesoru.
Poznámka:
právě teď 25. 9. 2003 (když připravuji tyto www stránky) jsem zjistil, že
existuje také
Easy
Downloader 3.0, který
Wichit Sirichote navrhl pro 89C55WD. Na rozdíl
ode mne si autor
ale nedělal žádné násilí s generováním krátkých (200-500ns) impulsů.
Tento údaj považuje pouze
za minimální délku impulsu, i když z
datasheetu výrobce
to vůbec nevyplývá !!!
Snad někoho moje konstrukce zaujme i tak ...
IV) Realizace
V předchozím odstavci jsem uvedl, že jsem hledal co nejjednodušší úpravu
a rozhodl se pro AT90S1200.
Slovo nejjednodušší se zde však vztahuje výhradně
k HW - kromě běžných součástek pro přepínání
a vypínání napájecího napětí
přibyl do zapojení vlastně pouze jediný integrovaný obvod. O co jednodušší
je
HW, o to složitější je SW. Pro mne toto řešení totiž znamenalo úplně od píky
začít s procesory typu AVR.
Do té doby jsem pouze věděl, že existují.
Nastudoval jsem tedy instrukční soubor, na internetu vyhledal
příklady
jednoduchých aplikací a začal s prvními experimenty. Naštěstí požadavky na SW
pro AT90S1200,
použitý v programátoru AT-master, byly poměrně primitivní.
Relativně brzy jsem tedy mohl přistoupit
k odladění spolupráce AT90S1200
s AT89C51. Nelze tvrdit, že to šlo hladce, ale asi v polovině srpna 2003
bylo
možné pokročit ještě dál - začít přepisovat všechny rutiny, které bylo třeba
po doplnění AT90S1200
do AT-mastera upravit.
Jakmile se AT-master, sbastlený na nepájivém kontaktním poli, zdál být
funkční
(úpravy hodnot některých součástek během vývoje byly nutné), navrhl
a zhotovil jsem plošné spoje obou
pater a postavil jsem první prototyp.
V) Druhá změna
Protože prototyp fungoval dobře, začal jsem se připravovat na publikování
výsledného schema, plošných
spojů a SW, ale hned na začátku jsem tuto práci
přerušil. Napadlo mne totiž, jak s téměř nulovým navýšením
nákladů výrazně
zvýšit užitnou hodnotu ATmastera. Můj nápad spočíval v tom, že AT-mastera
vybavím
možností upgradovat jeho firmware pomocí ISP. Tato myšlenka znamenala
sice jen nevelkou změnu
v zapojení (doplnění o dva jumpery a jiné využití
některých pinů master procesoru), ale zato značnou úpravu
plošných spojů.
Přesto jsem do toho šel a úpravu realizoval. Výsledek mého snažení vidíte
na těchto stránkách.
Úvodní stránka
Hlavní stránka
AT-mastera
Ruční řízení AT-mastera
Komunikační protokol AT-mastera
Programátor TSP-IC
Jakékoliv ohlasy a otázky pište prosím na adresu: lubos.ruckl@quick.cz
Aktualizováno: 14. 10. 2003