„Programletöltés bemutatása néhány napjainkban népszerű mikrovezérlő családra” változatai közötti eltérés

Innen: HamWiki
Ugrás a navigációhoz Ugrás a kereséshez
(Első verzió)
(Nincs különbség)

A lap 2007. augusztus 27., 02:36-kori változata

Szinte mindannyian belefutottunk már olyan problémába, amelyet mikrovezérlővel könnyebb lett volna megoldani. Amennyiben már valaki megvalósította a probléma megoldására alkalmas szoftvert és ezt publikálta, akkor általában igen egyszerű dolgunk van. A feladat mindössze a program mikrovezérlőbe történő betöltésére korlátozódik.

Az alábbiakban ehhez próbálunk segítséget nyújtani, hogyan lehet minimális költségből, ingyenes szoftverekkel letölteni a kódot.

PIC mikrovezérlő

A PIC mikrovezérlő igen népszerű, a Microchip gyártja és a ChipCad Kft. forgalmazza hazánkban. De több elektronikai bolt készletében is fellelhető némely típus.

Amit tudni kell a program letöltés folyamatáról

A programot napjainkban Flash tárolja, amelybe beleírva megőrzi a kódot, de igény szerint később nagyságrendileg 10.000 alkalommal felül is írhatjuk egy újabbra.

  • A program letöltését két lábon, I2C buszon végzi, ahol az egyik láb a CLK, a másik a kétirányú DATA. A vissza irány a chip azonosításához és a betöltött kód ellenőrzéséhez kell.
  • A program letöltési üzemmódba léptetés háromféleképp történhet:
    1. Alacsony feszültségű programozáskor egy erre a célra fenntartható PGM láb tápfeszre történő felhúzásával. Hátrány: egy I/O portot elveszítünk.
    2. PGM láb helyett az MCLR/Vpp, azaz RESET/Programozó lábon keresztül jelzünk a mikrovezérlőnek. Ez a láb egy 3 állapotú láb, amely L szinten RESET-eli a mikrovezérlőt, H szinten nem csinál semmit. Azonban a tápfeszültég + legalább 7 volt hatására ugyanazt érjük el, mint a PGM láb aktiválásával értünk volna el. Előnye: PGM láb ebben az esetben szabadon felhasználható I/O.
    3. Bootloader használata: gyárilag vagy a bolt által beletöltött szoftver, amely képes bekapcsoláskor az egyik lábon való jelzés hatására RS232-n keresztül fogadni adatot, amit bele is tölt a mikrovezérlőbe. Hátrány: speciális kód kell hozzá, amely a programmemória bizonyos szeletét, ahol a bootloader található, nem írja felül. Ellenkező esetben a bootloadert csak egyszer tudjuk használni.
  • A programozáskor elegendő a két tápfesz láb, a Vpp, a PGC (clock) és PGD (data) lábak bekötése. A programozás nem csak IC programozóban, hanem beforrasztás után, az áramkörben is történhet. Ezt ICSP-nek (In Curcuit Serial Programming) hívják, és igen praktikus.

Alábbiakban bemutatott technika a Vpp lábon ad jelzés a mikrovezérlőnek, hogy programozó módban van.

A legegyszerűbb program letöltő

PicProg.png

A fenti programozóáramkör alaplapi RS232 interfésszel működik, USB-RS232 konverteren tapasztalat szerint nem. A rajz alapjában véve ICSP-re van kihegyezve, de ha az IC-be, mint barátunknak küldendő alkatrészbe szeretnénk a kódot letölteni, akkor erre csak egy IC foglalat kell és az ábrán látható forrszem alkalmas az IC programletöltés során szükséges +5V-os tápfeszültségének biztosítására.

Egy dologra célszerű figyelni: a PC földje a PIC +5V-ja, ezért más kábellel az áramkör a programozás közben ne legyen a PC-vel összedugva.

Ingyenes szoftver:

  • Jaakko Picprog szoftvere (http://hyvatti.iki.fi/~jaakko/pic/) nagyon jól dolgozik. A 8 bites PIC-típusok 99 %-át viszi, szóval ezek közül szinte mindent. Paraméterezése:
picprog -p /dev/ttyS0 -i amitletolteniakarsz.hex --erase --burn
  • Pikdev (http://pikdev.free.fr/) egy integrált szoftver, amely típust Jaakko szoftvere esetleg nem vinne, azt szoktam ezzel megpróbálni.

ATMEL ATMEGA sorozat

Az ATMEL is elég nagy jelentőséggel bíró mikrovezérlő gyártó. Hazánkban sok helyen lehet kapni (Például: http://www.mscbp.hu, http://www.codix.hu, de kisebb üzletekben is)

Az ATMEL a fentiekkel ellentétben SPI buszos interfészt ad a programletöltésre. A legegyszerűbb programozó elektronika mindössze drótokat tartalmaz, amelyet a PC alaplapi parallel portjáról hajthatunk meg.

Egyik lehetséges bekötés (bsd = Brian Dean's Programmer):

Parallel port ATMEL AVR sorozata (ATtiny, ATMEGA)
Pin 7 AVR RESET
Pin 8 AVR CLK (clock bemenet)
Pin 9 AVR MOSI (Master Out, Slave IN --> parancsok)
Pin 10 AVR MISO (Master In, Slave Out --> Adat visszaolvasás)
Pin 18 AVR GND

Ingyenes szoftver: avrdude (http://download.savannah.gnu.org/releases/avrdude/). Használata például ATMEGA48 esetén:

avrdude -p m48 -c bsd -U flash:w:amitletolteniakarsz.hex:i

A fentiek alapján látható, hogy az ICSP-jellegű (áramkörben programozó) letöltőkábele nagyon egyszerű, pusztán egy 5 eres szalagkábel, végén egy DB25-ös PC parallel portjára dugható csatlakozóval.

Aki nagyobbra vágyik: ARM7-es architektúra (ARM7TDMI)

Az ARM architektúra nem egy gyártó, hanem egy szervezet tulajdona, amelyet a fentiekkel ellentétben sok gyártó gyárt. Ezek közül hazánkban könnyen beszerezhető egyrészt az ATMEL SAM-jai, a másik, első blikkre nehezebben tönkretehető típus az NXP lpc21xx. De még van sok-sok más gyártó is. Lásd: http://www.gnuarm.com/ArmDevices_frame.html

Ezek valódi 32 bites, 50-250 MHz-es órajellel működő RISC (1 órajel/utasítás) processzorok, tehát igen fürgék. JTAG-en keresztül lehet letölteni bele a szoftvert.

Szoftver letöltése

  • JTAG interfészen keresztül, ami teljes mértékű debuggolást is lehetővé tesz.
  • PC parallel portját használhatjuk, közvetlen kábel, semmi extra.
  • Szoftvernek az OpenOCD javasolható, amely TCP portot nyit a terminálkapcsolatnak debuggoláshoz és program letöltéshez.