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

Vývojová prostředí, simulátory

WinAvr

AtmanAvr

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

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

Bootloader pro ATmega8 board

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.

Ostatní externí zdroje

WinAVR AVR-GCC Tutorial

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í


KategorieElektronika

AVR (naposledy editoval localhost dne 2009-12-27 18:41:43 )