        ------------------------------------------------------------
 Tyto stránky jsou provozovány na serveru WWW.MOBIL.CZ s laskavým souhlasem
                               jeho autorů.

    Servisní stránka (skoky na vše důležité, kódování, kontakty atd..)
                       ------------------------------
            Jsi už [Image] člověk na téhle stránce od 24.7.1997
                              ---------------

                             Programátor ATMELů

              PS: Je tam nová verze plně funkčného softwaru !!

Je to nejednodušší verze programátoru, konstruovaná s ohledem na
jednoduchost konstrukce a snadnou dostupnost jednotlivých součástek.
Programátor je připojitelný rovnou na paralelní port. Software je napsaný v
PASCALu, nová verze s použitím TV. Mělo by to fungovat bez větších problémů
na první zapojení Obě verze SW podporují tzv. DEBUG mód, jenž by měl
výrazně zjednodušit případné oživování. Odzkoušel jsem to na LPT on board z
6x86 VX boardu. S časovacími rutinami jsme si dali opravdu hodně práce,
takže to musí fungovat bez jakýchkoli problémů na snad všech počítačích.

Tento programátor je součástí systém LAB-51. Je sice zcela samostatný, ale
byl vyvinut jako jeho část....

Zde je článek, který byl vytištěn a elektroinzertu 11,12/96 a připravujeme
opětovný výtisk v některém z periodik

Firma ATMEL známá svými FLASH a EEPROM pamětmi přišla v roce 1995 na trh s
obdobou procesoru řady 8051. AT89C51 - Což je obdoba Klasické 87C51,
obsahující místo klasické paměti typu EPROM paměť typu FLASH. V tomto
článku chci představit svůj programátor obdobných obvodů v 20-ti vývodovém
pouzdře AT89C2051.

Cílem bylo postavit jednoduchý programátor, který si bude moci každý
postavit doma a bude mu fungovat bez větších potíží na první zapojení.

[Oblazek zapojeni pinu AT8920C51] Popis obvodu AT89C2051:

        o - Kompatibilita s Intel 8051
        o - 2 kB interní programové FLASH (1000 zápisových cyklů)
        o - Rozsah napětí od 2.7 do 6 V
        o - Plně statické operace
        o - oscilátor 0 Hz až 24 MHz
        o - Dvouúrovňová ochrana dat
        o - 128 bytů vnitřní paměti RAM
        o - 15 programovatelných I/O pinů
        o - Dva 16. bitové čítače/časovače
        o - Analogový komparátor
        o - 5 zdrojů přerušení
        o - Programovatelný UART - (RS232)
        o - 2 úsporné režimy napájení

Jedinou podstatnou inovací oproti standardním procesorům řady 51 je
analogový komparátor na pinech P1.0 a P1.1. Jeho výstup je softwarově
přístupný na bitu P3.6.

Systém ochrany dat je velmi důkladně propracovaný. U typu AT89C51 je
dokonce znemožněno připojit vnější paměť s programem, kterým by bylo možno
přenést obsah vnitřní paměti FLASH a tak podobně.

Jedinou nevýhodou tohoto obvodu je malá a nerozšiřitelná paměť programu i
dat. Je určen pro jednoduché aplikace, kde není příliš prostoru a mnoho
vodičů. Je pouze škoda, že k jeho funkci mu nestačí pouze RC článek pro
generování hodinové frekvence, a že ho výrobce nedistribuje také v OTP
verzi. Tím by se z něho stal plnohodnotný konkurent k známým RISCovým
jednočipovým procesorům firmy Microchip - 16C84/16C54. Poslední dobou se
stírají cenové rozdíly (16C54 lze koupit za 50 Kč a 89C2051 za 90 Kč) a
díky tomu je čím dál tím oblíbenější.

Dle našich měření se průměrná spotřeba pohybuje kolem 12 mA, nejnižšího
příkonu lze dosáhnout kolem hodinového kmitočtu cca 2 MHz, kdy se spotřeba
pohybuje kolem 6 mA na samotný procesor (případně + 2mA na miniaturní
7805). Pro nižší frekvence se už spotřeba snižuje naprosto zanedbatelně.

Pokud by jste měli zájem o bližší specifikace, zde je možný download
originálního anglicky psaného DATASHEETu v .PDF souboru. Nebo pro bližší
informace WWW.ATMEL.COM.

Programovací algoritmus by bylo možno popsat v bodech asi takto :

   * 1) Zapnutí napájení pro ATMELa 5 V mezi piny GND a Vcc, piny RST a GND
     připojit na GND a počkat nejméně 10 milisekund
   * 2) Nastavení RST na log. 1 Nastavení PROG (P3.2) na log. 1
   * 3) Připojení na piny P3.3, P3.4, P3.5 a P3.7 nastavení typu
     pogramovacího módu.
   * 4) Připojení kód pro instrukci na adrese 000H na port P1
   * 5) Nastavení na RST +12V
   * 6) Puls do log. 0 na PROG (P3.2) po dobu 1.2 ms
   * 7) RST na log. 1 a pro případnou verifikaci na bity P3.3, P3.4, P3.5 a
     P3.7 nastavit sekvenci pro verifikaci. Data jsou na P1.
   * 8) Inkrementování čítače adresy pulsem na XTAL1, připojení dat další
     instrukce na P1
   * 9) Opakování kroky 5 až 8 dokud nepřekročíš 2 kB, nebo nenaprogramuješ
     celý soubor
   * 10) Vypínací sekvence: XTAL1 na log. 0 RST na log. 0 Odpoj napájení
     obvodu

Během programování není vhodné čekat danou dobu 1.2 ms, výhodnější je číst
místo toho kontrolní pin P3.1 RDY/BSY. Jenom tak je možno zajistit
naprogramování skutečně všech obvodů.

                             Programovací módy

                         [tabulka pro programování]

                       Velikost jednotlivých impulsů

                                  [Image]

                Časový diagram pro programování a verifikaci

                    [časový diagram programování ATMELa]

Konstrukce programátoru:

Programátor je osazený na dvoustrané desce plošného spoje.

Pro funkci není nezbytně nutné, aby byl tento spoj prokovený, Na desce je
pouze několik míst, která je nutno ručně prokovit např. kouskem drátu. -
Propojka těsně pod Zenerovou diodou, prokov pod konektorem, prokov mezi
obvody 74574 a 74157, 2x pro připojení pinu 15 z 74157. Osobně doporučuji
použití neprokoveného plošného spoje pouze těm zručnějším, protože
zaletování neprokoveného spoje není jednoduché.

Pro obvod ATMEL 89C2051 doporučuji použít precizní patici, nebo v zájmu
snadného vyjímání obvodu je možno použít nouzovou verzi, osadit klasickou
patici a do ní vložit ještě jenou, aby nebyla ta zaletovaná příliš
mechanicky namáhaná..

V zapojení jsou použity dvě obyčejné LED diody, červená signalizuje zápis,
zelená zapnutí napájení pro ATMELa.

Napájení je zajištěno buďto přes externí vstup +5 a +12 V, nebo z alespoň
+16V. V případě první varianty, není vhodné osazovat oda stabilizátory,
neboť při připojení stabilizovaného napětí na jejich výstup, spotřebovávají
asi 50 mA, které mění na tepelný výkon. Proto je při osazování dobré
uvážit, jakou variantu napájení budeme častěji používat.

V první verzi schématu byl ještě použit obvod 74573, ale praxe ukázala, že
jeho použití není vzhledem ke koncovému zapojení paraelního portu (viz.
článek o LPT) je výrazně vhodnější použít oba buffery reagující pouze na
hranu a nikoli na úroveň. Výhodnější je tedy použít 2x 8-bitový klopný
obvod "D" 74574.

Osazovací plánky a výkresy plošného spoje, jsou v měřítku 2,5:10 přiloženy
(pro 300 dpi)

Originální velikost je v souboru, připraveném na konci pro download.

Strana Součástek : [Výkres strany součástek]

.Strana Spojů :       [Výkres strany spojů]

Osazovací plán      [Osazovací plánek]

Důležité upozornění : Vzhledem k neidentifikovatelným stavům na LPT po
předchozích aplikacích je nezbytně nutné, aby jste napájení pro programátor
zapínali vždy až po spuštění ovládacího programu. V konstrukci jsme se
snažili tento vliv maximálně omezit, ale nikdy se to nemůže v zájmu
jednoduchosti podařit stoprocentně. Např. rezidentní programy pro tisk
mohou totiž uvést LPT před startem programu do téměř libovolného stavu.

literatura: [DATASHEET ATMEL AT89c2051]

Pokud máte zájem o problematiku jednočipových procesorů a mikropočítačů,
obraťte se na adresu fsg@mobil.cz, nebo na moji domácí stránku a vstupte do
naší skupiny FSg (Free Singlechip Group).

Desku s plošným spojem dostanete ke koupi ve firmě STARMANS electonics
s.r.o v ulici 5. Května č. 1 za cca 120 Kč, z nichž autor nikdy neuvidí ani
korunu.

V roce 1996 vyrobili: Vladimír Myslík & Jan Řehák

V roce 1997 po nich SW přepsal do snesitelné verze Tomáš Dresler.

---------------------------------------------------------------------------

Download všeho potřebného

     Starou verzi softwaru včetně zdrojáků, komunikačních rutin si můžete
     stáhnou tady: Atmel programátor (Varuji vás, editace zdrojového kódu v
     .PAS souborech je na vaše vlastní nebezpečí, tato verze vznikla za
     jednu dlouhou noc...)

     Výrobní dokumentaci - Atm2051_.exe - Je to balik samorozbalovacích
     .EXE  souborů, vcetně .GIFů plošňáku a BRD a SCH souboru pro EAGLE 2.6
     a vyšší.

     Nová verze používající Turbovision  - LAST UPDATE 19.11.1997 !!!!

     Novou verzi SW, podporující TurboVision, neboli poněkud použitelné
     uživatelské rozhraní si v plně funkční verzi, bez helpu a s ne úplně
     dodělanými grafickými detaily můžete prozatím bez zdrojáku stáhnout
     tady : progatm.exe . Tuto verzi po mých úpěnlivých prosbách spáchal
     Tomáš Edison Dresler, za což mu tímto převelice děkuji.

---------------------------------------------------------------------------
Pokud máte nějaké návrhy, nebo připomínky, pošlete MAIL.

                                                         Jan Řehák
---------------------------------------------------------------------------
