logo nanoSoft

AVR ISP pre paralelný port, programovanie AT89S8252

ISP technológia bola pôvodne vyvinutá pre procesory typu AVR fy ATMEL. Neskôr bola prenesená aj na niektoré obvody kompatibilné s 8051 od tohto výrobcu. Sú to napríklad obvody AT89S53 a AT89S8252. V ďalšom texte sa bude popisovať programovanie AT89S8252, programovanie ostatných typov, ktoré podporujú ISP je úplne rovnaké. Najjednoduchšie a najrýchlejšie sa vo fáze počiatočného vývoja pracuje na kontaktnom poli.

Potrebujeme:

Postup práce:
  1. Do kontaktného poľa opatrne vložíme a zatlačíme mikropočítač. Treba dať si pozor, aby sa pri zatláčaní nepozohýbali jeho vývody. Ak je obvod nový jeho vývody nie sú zohnuté kolmo dolu, ale šikmo. Netrafia sa preto dobre do otvorov kontaktného poľa. Preto je dobré vývody ohnúť tak, aby boli pokiaľ možno kolmo. Dá sa to urobiť naraz tlakom vývodov o rovnú plochu (stôl).
  2. Mikropočítač potrebuje pri programovaní napájanie. Napájacie napätie 5V je najlepšie priviesť na pozdĺžne kontakty poľa. Na vývod č.20 treba pripojiť nulový potenciál a na vývod č.40 kladné napätie 5V. Kedže program bude uložený do vnútornej pamäte programu, je potrebné pripojiť signál EA (vývod č. 31) na 5V.
  3. Na vývody č.18 a 19 pripojíme kryštál. Pre účely programovania je jeho frekvencia ľubovolná. Nemôže byť väčšia, ako maximálna možná, čo je 24MHz. Pre spoľahlivý štart oscilátora je potrebné ešte pripojiť na každý vývod kondenzátor proti nulovému potenciálu. Hodnota môže byt podľa katalógového listu v rozmedzí 20 až 40pF.
  4. Teraz do poľa vložíme programovaciu redukciu. Najvhodnejšia orientácia vzľadom na mikropočítač je na obrázku v bode č. 7. Rozloženie signálov v redukcii je nasledovné:
    Konektor ISP
    Rozmiestnenie signálov programovacej pätice, pohľad zhora
  5. Programátor pripojíme na napájacie napätie. Nulový potenciál na vývodoch 10, 8, 6, 4 slúži zároveň ako tienenie medzi dátovými signálmi MISO, SCK, RST, MOSI, mali by preto byť všetkypripojené na nulový potenciál. Pozor na prepólovanie napájacieho napätia!
  6. Nakoniec prepojíme dátové signály z programátora s príslušnýmisignálmi mikropočítača. Tie sú rozmiestnené podľa nasledovného obrázka:
    Rozmiestnenie vývodov 8051
    Rozmiestnenie vývodov obvodu 8051 a kompatibilných (pohľad zhora)
  7. Celkové zapojenie je vidieť na nasledovnom obrázku
    Zapojenie ISP programátora
    Prepojenie ISP programátora a miktoradiča
  8. Stačí len pripojiť 5V napájacie napätie a pripojímeprogramátor. Programátor sa pripája na paralelný port osobného počítača.
    Pozor na polaritu. Prepólovanie napájacieho napätia má za následok zničenie mikropočítača AT89S8252.
  9. Programovací software je potrebné skopírovať z adresy http://www.LancOS.com Doporučujem verziu PonyProg2000, ktorá je síce označená ako vývojová beta verzia, ale funguje dobre a vie programovať aj mnohé novšie obvody. Existuje pomerne veľa jazykových verzií programu ponyProg. V tomto návode je prezentovaná anglická jazyková verzia. Možno už existuje česká verzia, ale myslím si že je vhodnejšie naučiť sa rozumieť a používať práve anglický spôsob označovania jednotlivých príkazov a operácií. Pri prechode na profi programy sa to zíde. Tieto nebývajú nikdy lokalizované do národných verzií. Inštalácia by mala byť bezproblémová.
  10. Prvé spustenie. Po prvom spustení uvidíme nasledovné okno:
    PonyProg2000
    Okno programu PonyProg2000
  11. V prvom rade je potrebné nastaviť príkazom Setup - Interface Setup rozhranie a typ programátora. Celé nastavenie vyzerá nasledovne:
    Nastavenie portu
    Treba nastaviť paralelný port. Typ programátora zvolit AVR ISP I/O. Pri programovaní obvodov AT89 je potrebné nastaviť invertovanie signálu RESET. Tento má opačnú polaritu, ako pri obvodoch AVR. Týmto je nastavenie hotové.
  12. Teraz vykonáme kalibráciu. Je potrebná, aby sa programovací softvare dokázal prispôsobiť rýchlosti PC. Kalibrácia sa vykoná príkazom Setup - Calibration . Objaví sa dialógové okno, ktoré stačí potvrdiť a počkať, kým sa kalibrácia vykoná. Počas kalibrácie nesmú bežať iné programy, CPU a pevný disk má byť nečinný.
    Kalibr8cia rýchlosti
    Kalibrácia časovania
    Upozornenie : Predchádzajúce nastavenia sa robia iba prvý krát po spustení. PonyProg si ich zapamätá a nie je nutné ich opakovane vykonávať pri ďalšom spustení programu ponyProg.
  13. Nastavíme typ obvodu pre programovanie. V nástrojovej lište sú dve rozbaľovacie ponuky. Prvou sa volí rodina obvodov a v druhej konkrétny obvod z danej rodiny. Vyberieme si rodinu AT89S micro a obvod AT89S8252.
    Voľba obvodu pre programovanie
    Voľba obvodu pre programovanie
  14. Naplnenie programovacieho buffera. Zatiaľ asi nemáte žiadny program, ktorým by ste overili zápis do obvodu. Najjednoduchšie si zápis môžeme vyskúšat tak, že programovací buffer vyplníme nejakou hodnotou, ktorú potom zapíšeme do mikropočítača. Vyplnenie programovacej pamäte sa urobí príkazom Utility - Fill Buffer . Do dialógového okna sa zadáva do políčka From počiatočná adresa, do políčka To koncová adresa a do políčka Value hodnota ktorá sa má do programovacieho buffera vložit. Všetky údaje sa môžu zadávať ako hexadecimálne konštanty ak začínajú znakom 0x, alebo ako osmičkové čísla ak začínajú znakom 0, alebo ako desiatkové čísla ak začínajú číslicou (okrem číslice 0). Čistá pamäť programu AT89S8252 obsahuje hodnotu 0xFF. Zmente túto hodnotu na 0. Rozsah adries môžete nechať od 0 do 0xFFFF aj tak sa vyplní iba tá časť buffera ktorá zodpovedá skutočnej pamäti AT89S8252 (8KiB pamäť programu a 2KiB pamäť dát).
    Vyplnenie programovacieho buffera hodnotou
    Vyplnenie programovacieho buffera hodnotou 0
  15. V tomto okamihu je všetko pripravené a môžeme vyskúšať zapísať program do mikropočítača. Najjednoduchšie sa to urobí pomocou ikon v nástrojovej lište. V dolnom riadku nástrojovej lišty sú dve trojice veľmi podobných ikon. Prvá trojica slúži na čítanie a druhá trojica slúži na zápis informácii. A prečo sú tam až tri? Pamäť FLASH v mikropočítači AT89S8252 je rozdelená na dve časti, ktoré sú nezávislé a plnia odlišnú funkciu. Je to pamäť programu a pamäť dát. Pamäť programu začína v bufferi od adresy 0 po adresu 1FFFH (čo je 8KiB). Pamäť dát začína v bufferi na adrese 2000H a končí na adrese 27FFH (čo je 2KiB).
    Zápis
    Ikony pre čítanie a zápis informácií z/do mikropočítača

    Prvá z trojice ikon urobí čítanie/zápis oboch pamätí. Je teda vhodné ju používať ak potrebujeme zapísať aj pamäť programu aj pamäť dát.
    Druhá ikona robí  čítanie/zápis pamäte programu. Používame juvtedy keď potrebujeme zapísať iba pamät programu.
    Tretia ikona robí čítanie/zápis pamäte dát.
    Nateraz stačí zapisovať iba pamäť programu a teda programovanie pamäteprogramu spustíme piatou ikonou. ikona pre zápis programu
    Nasledovne sa otvorí dialógové okno, ktoré varuje, že pôvodný obsah pamäte mikropočítača bude nenávratne prepísaný. Samozrejme, že o to nám práveide. Potvrdíme programovanie tlačidlom Yes.
    Dialóg - zápis programu
    Dialóg - potvrdenie zápisu

    V zápätí sa objaví nasledovné stavové okno ktoré informuje o priebehuprogramovania.
    Zápisovanie
    Stavové okno zobrazujúce priebeh programovania
    Počas programovania sa postupne indikuje, aká časť obvodu je už naprogramovaná. Po skončení programovania sa automaticky spustí kontrola (verifikácia), či obsah pamäte mikropočítača naozaj zodpovedá informáciám, ktoré sme chceli naprogramovať. Po skončení verifikácie sa zobrazí oznam, že program bol úspešne zapísaný.

  16. Ak sa stane že programovanie z nejakého dôvodu nie je môžnévykonať objaví sa takéto okno:
    Mikropočítač neodpovedá
    Mikropočítač neodpovedá
    Znamená to, že niekde je chyba. Treba sa vrátiť úplne na začiatok tejto stránky a dôkladne skontrolovať všetky body. Dôvod, prečo nie je možné obvod naprogramovať môže byť rôzny. Najčastejšie to býva nesprávne pripojený programátor (otočený programovací adaptér, alebo poprehadzované programovacie signály). Ďalšou častou chybou je zlé nastavenie programovacieho rozhrania v programe PonyProg (bod č. 11). Často sa zabúda na inverziu signálu RESET. Je vhodné skontrolovať napájacie napätie pomocou voltmetra.
    Vo veľmi ojedinelých prípadoch môže ísť o chybu spôsobenú osobným počítačom PC. Zatiaľ na jedinom type počítača HP Brio sa mi nepodarilo uvedený programátor uviesť do činnosti. No je to naozaj takmer poslednámožnosť, rovnako ako aj to, že mikroradič je vadný. Pokiaľ mikroradičunebolo prepólované napájacie napätie tak funguje. Zničenie prepólovanímsa dá ľahko spoznať podľa toho, že obvod sa dosť zahrieva, aj keďpolarita napájania je už správna.

Programovanie mikropočítača programom získaným z internetu

V predchádzajúcej časti sme si zapojili mikroradič a programátor a overili sme správnosť zapojenia naprogramovaním pamäte programu na hodnotu 0. Samozrejme, že takýto "program" nevykoná žiadnu rozumnú úlohu. Ak by sme pozreli v tabuľke inštrukcií čo reprezentuje kód 0 zistili by sme že je to inštrukcia NOP (No Operation).  Znamená to, že každá inštrukcia v pamäti programu vykoná žiadnu činnosť.
Teda vieme programovať pamäť programu mikropočítača.

Hlavná stránka
Copyright ing. Peter Plesník