Aplikace
Deska s AVR Mega8 a rozhraním RS-485
AVRBat Navrh "inteligentni" baterie
Knihovny
AvrKnihovny je sbírka rutin pro ovládání všeho možného jednočipem AVR.
Tipy a triky
Kondenzátory u krystalu - U Mega8 výrobce pro 16MHz doporučuje kondenzátory 12-22pF. Zjistili jsme, že s 22pF oscilátor na některých deskách nenaběhne, 15pF vypadá, že funguje spolehlivě. Poradil MartinLocker, tímto mu děkuji. -- KamilRezac 2006-08-30 08:13:20
Vývojová prostředí, simulátory
HAPSIM - simulátor s rozšířeními typu LCD, klávesnice, vizualizované LED diody...
VMLAB - další vizuální simulátor, free pro omezenou velikost kódu
Avr a Eclipse - win - rozchození Eclipse a avr-gcc pro win
Avr a Eclipse - lin - rozchození Eclipse a avr-gcc pro linux (v němčině)
Programátory (hw i sw)
avrdude -- software (AVR Downloader/UploaDEr) na ovládání mnoha programovacího hardwaru. Pro Linux, Windows, FreeBSD, MacOS X.
uisp - software na ovládání mnoha programovacího hardwaru. Pro Linux, Windows (s cygwinem). Poslední release 2005-02-07.
PonyProg -- software pro win s pěkným gui, zvládá většinu programátoru typu 4 odpory
AVRStudio - software od Atmelu ovládající hardware přes protokoly STK500 a AVRISP (a zřejmě i STK500v2, což je úplně jiný protokol).
Mnoho (všechny uvedené tady) programovacího hardwaru používá pro svou funkčnost mikrořadič, který musíte taky nějak naprogramovat. Můžete použít nějaký hotový programátor nebo si postavit STK200-type dongle.
Aby se programovací hardware s programovaným procesorem vůbec domluvil, musí procesoru běžet oscilátor. Takže když naprogramujete špatné FUSES a vyberete něco jiného než interní oscilátor (a v obvodu ho nemáte), po opuštění programovacího módu procesor už nebude komunikovat. Proto některé programátory poskytují "záchranné hodiny" které je potřeba přivést na pin XTAL1 (ty hodiny bývají generované pořád, nedají se zapínat).
STK200 - triviální programátor, stačí několik odporů, na paralelní port
AVR910 -- základní programátor podle Atmel specifikace
HVProg -- Založený na Evertool. Vy6aduje 5V a 12V. Paralelni programator pro pripad, ze si poskodite pojistky (fuses)
AVR-Doper -- hardware, na USB (softwarově), módy ISP a HVSP, protokol STK500, softwarově nastavitelné ISP clock, programovaný obvod má k dispozici UART do PC. Bulk endpointy. Používá ATmega8.
biprog - nejen ISP programátor -- komunikuje s AVRprog i s STK500 pluginem. KamilRezac zapojení upravil pro USB.
USBasp -- USB programátor AVR se softwarovou implementací USB protokolu (nepoužívá žádný převodník), od verze 5.2 (<2006) podpora v avrdude. Zapisuje 5kB/s. Jen ISC mód, nižší clock se nastavuje jumperem. Obsahuje ATmega48 nebo ATmega8. Existuje mnoho alternativ layoutu PCB.
USBAVR-ISP -- programátor se sw implementací USB
AProg -- Zápis prý 25kB/s. Asi vlastní rozhraní k řídícímu softwaru. Autor: "špatná práce s fuse bity, chybějcí nové obvody a ne příliš přívětivé uživatelské rozhraní."
AProg910 -- nástupce AProg
IsoJtagISP AVR Programmer -- opticky izolovaný JTAG debugger/programátor kombinovaný s ISP programátorem na USB, neobvyklé rozložení pinů na konektoru
USB-AtmelPrg -- podpora ISP a JTAG, vlastní protokol a vlastní software (jen Linux), univerzální programovací "kabel"
AVRminiProg - hardware, na USB (softwarově), umí protokoly AVRISP mkII, JTAGICE mkII, AVRDragon (ISP, JTAG, HVSP and HVPP). Zřejmě používá Bulk endpointy, což je v rozporu s USB specifikací, takže nefunguje na Linuxu.
USBtinyISP - hardware, na USB (softwarově), jen ISP mód. Vlastní protokol, ovladatalné s avrdude od 5.5 (vyšlo 2007-10-30) a (s dodaným extra softem) s AVRstudiem. Softwarově nastavitelné ISP clock. Avrdude neumí ISC clock detekovat. Používá ATtiny2313. Nepotřebuje 12 Mhz krystal.
HappyJTAG2 - JTAG/programovanie/debug, alebo ISP/programovanie. Windows + napojenie na AVRStudio pomocou JTAGICE mkII kompatibilného protokolu.
jméno |
port |
protokol |
módy |
integrák |
ISP clock |
USBtinyISP |
USB (sw) |
vlastní |
ISP |
ATtiny2313 |
softwarově |
AVRminiProg |
USB (sw) |
AVRISP mkII, JTAGICE mkII, AVRDragon |
ISP, JTAG, HVSP and HVPP |
ATmega16 nebo ATmega168 |
autodetekce |
AVR-Doper |
USB (sw) |
STK500 |
ISP, HVSP |
ATmega8 |
softwarově |
biprog |
COM (+USB) |
AVR910, STK500 |
ISP(?) |
ATmega8 (+FT232RL) |
softwarově |
HVProg |
port |
STK500 |
ISP, HVSP, HVPP |
At90s8535 or Mega8535 |
? |
USBasp |
USB (sw) |
USBasp |
ISP |
ATMega48 or an ATMega8 |
přes jumper |
USBAVR-ISP |
USB (sw) |
STK500v2, AVR910 |
ISP |
Atmega168 |
autodetekce |
AProg |
COM, USB |
vlastní |
ISP |
ATmega8, FT232BM |
softwarově |
IsoJtagISP |
USB |
AVR910 |
ISP |
ATmega16, FTD232R |
? |
USB-AtmelPrg |
USB |
vlastní |
ISP |
ATmega8,FT245BM |
softwarově |
HappyJTAG2 |
USB |
JTAGICE mkII |
JTAG alebo ISP |
FT2232 |
softwarově |
Programátory na USB: Linux: nepotřebují (jaderné) ovladače, aplikace je ovládají přes libusb, (správně) nefungují bulk endpointy na low-speed zařízeních (např na softwarové implementaci USB). Windows: bulk endpointy fungují i na low-speed zařízeních (v rozporu s normou), je potřeba instalovat ovladače (neplatí pro HID).
relevantní Atmel Application Notes
AVR068: protokol STK500v2 nebo i AVRISP, původně jen pro COM porty, kalibrace interního RC cílového CPU, upgrade firmwaru v samotněho programátoru
AVR109: definovaný protokol pro bootloader AVR109
AVR910: ISP, 6 pinový konektor, příklad programátoru založeného na AT90S1200
Bootloadery
Bootloader je malý "program" v mikrořadiči, který po resetu (případně je navíc nutné aktivovat určitý pin) pokusí získat z počítače novou verzi programu, tj. není potřeba žádný programovací hardware.
boofa -- na protokolu AVR109, zatím pro M16 a M32
http://www.dl5neg.de/bootloader/bootloader.html -- na protokolu AVR109, pro M8
STK500 bootloader -- na protokolu STK500, pro M128
AVRUSBBoot -- USB bootloader, o kterém autor tvrdí, že se vejde do 1kB bloku.
USBaspLoader - s PC spojeno přes "softwarové" USB, bootloader ktery se tvari jako programator USBasp, ktery je ovladatelný z avrdude, 2kB, volitelny a konfigurovatelný pin
BootloadHID - 2kB, s PC spojeno přes "softwarové" USB, zařízení se tváří jako HID - ve Windows nepotřebuje ovladače, jen přes speciální freeware program jen pro Windows,
avrprog-boot - nějaký s rozhraním AVR910
ICE
ATmega16 a větší mají na křemíku on-chip-debugger (OCD) periférii a je možno je debugovat v obvodu. Tomu se bůhvíproč říká ICE (in-circuit-emulation?). Na spojení s mikrořadičem se používá obecné JTAG rozhraní: 4 normální piny MCU a reset - používá se konektor 2x5 pinů. V kontextu AVR se výrazy OCD, ICE a JTAG často používají záměnně. Atmel prodává adaptér JTAG ICE II, jeho schema je veřejné, ale jeho firmware a dokumentace instrukcí v targetu není. Přesto existují klony. Malé procesory umívají ladění přes "DEBUGwire" po resetovacím pinu - to taky není dokumentováno ale AVaRICE to částečně zvládá. V hardwaru se zřejmě vždy používá firmware od Atmelu.
Používání s GNU nástroji: Laděný procesor se připojí k "JTAG adaptéru" desetidrátovou kšandou. JTAG adaptér (obsahuje obvykle ATmega16 nebo poodbný) se připojí přes sériovou linku (nebo USB FTDI čip a virtuální sériový port) k počítači. Na sériový port se navěsí AVaRICE, které poskytuje TCP rozhraní pro GDB. A GDB je ovládáno z nějakého IDE podle chuti uživatele.
"aquaticus" - jednoduchý JTAG hardware (použili při stavbě dálkově ovládané ponorky)
http://www.scienceprog.com/build-your-own-avr-jtagice-clone/
http://www.volny.cz/ladmanj/jtag_ice.html s ATmega163
http://pk-design.net/HtmlCz/ProgCables.html - galvanické oddělění, bez schématu i PCB, 2 analogové vstupy
AVaRICE - program překládající příkazy z GDB (gdb-stub) (přes TCP) a posílá je do ICE (hardware) (přes sériový port nebo USB-serial převodník)
Evertool - JTAG debugger (hardware) s protokolem JTAGICE a programátor s AVRISP/STK500, generuje záchranné hodiny. Používá firmware z originálního JTAGICE od Atmelu. Potřebuje dva procesory (ISP a JTAG jsou zvlášť). Na sériový port, (Nějaká omezení pro komerční užití.) Varianty PCB s USB převodníkem (Evertool-USB) a pouze s JTAG rozhraním (Evertool LIGHT).
HappyJTAG2 - JTAG adapér obsahuje jen FT2232 převodník USB-JTAG (a I2C, UART). Podporuje aj ISP programování ( jen Windows podporuje aj priame napojenie na AVRStudio, neustále rozširovaná podpora ďalších AVR8 modelov)
Ostatní externí zdroje
AVR Freaks - hafo informací, ukázkové projekty na všechno možné, diskuzní fóra...
AVR Fuse Calculator -- online formulář pro výpočet fuses
http://www.kvetakov.net/clanky/avr/ -- ukázky programování
