Obsah:

Jak naprogramovat AVR (arduino) pomocí jiného Arduina: 7 kroků
Jak naprogramovat AVR (arduino) pomocí jiného Arduina: 7 kroků

Video: Jak naprogramovat AVR (arduino) pomocí jiného Arduina: 7 kroků

Video: Jak naprogramovat AVR (arduino) pomocí jiného Arduina: 7 kroků
Video: Programování AVR s Arduinem 2024, Listopad
Anonim
Jak naprogramovat AVR (arduino) pomocí jiného Arduina
Jak naprogramovat AVR (arduino) pomocí jiného Arduina
Jak naprogramovat AVR (arduino) pomocí jiného Arduina
Jak naprogramovat AVR (arduino) pomocí jiného Arduina
Jak naprogramovat AVR (arduino) pomocí jiného Arduina
Jak naprogramovat AVR (arduino) pomocí jiného Arduina

Tento návod je užitečný, pokud:

* Máte arduino s atmega168 a koupili jste atmega328 v místním obchodě s elektronikou. Nemá zavaděč arduino * chcete vytvořit projekt, který nepoužívá arduino - jen běžný AVR čip (jako USBTinyISP) - máte čistý attiny2313/attiny48 atd., Na který chcete vypálit firmware. Normálně byste k naprogramování nového čipu museli mít ISP (In System Programmer) jako USBTinyISP. Mít arduino ho můžete naučit být programátorem díky skvělé práci, kterou odvedl Randall Bohn. Vytvořil Mega -ISP - skicu arduina, která funguje jako programátor.

Krok 1: Co potřebujete?

Co potřebuješ ?
Co potřebuješ ?

* funkční Arduino (nebo klon - používám BBB - BareBonesBoard a RBBB - RealBareBonesBoard od ModernDevices) * čip, který chcete naprogramovat (testováno s atmega8, atmega168, atmega368, attiny2313, attiny13) * prkénko nebo deska se záhlavím ISP * 3 LED + 3 odpory * dráty pro nepájivé pole

Krok 2: Výroba programátoru Mega-isp na prkénku

Výroba programátoru Mega-ISP na prkénku
Výroba programátoru Mega-ISP na prkénku
Výroba programátoru Mega-ISP na prkénku
Výroba programátoru Mega-ISP na prkénku
Výroba programátoru Mega-ISP na prkénku
Výroba programátoru Mega-ISP na prkénku

Existují dva způsoby, jak připojit Arduino k programování čipu.

Můžete připojit svůj avr čip na prkénko a připojit 5v a GND k příslušným pinům (podívejte se na datový list!) + Vytahovací odpor k resetování a drátové piny od vás arduino k čipu. Toto jsou řádky na Arduinu a jejich funkce 13 - SCK 12 - MISO 11 - MOSI 10 - RST (Reset) Nebo si můžete vytvořit 2x3pin ISP záhlaví, které můžete zapojit do desky, která ho poskytuje (další arduino deska). Pinout pro záhlaví ISP je na třetím obrázku K dispozici jsou 3 LED diody indikující stav programátora. kolík 9 - modrá LED - jeho odezva programátora. pin 8 - červená LED - indikuje chybu pin 7 - zelená LED - indikuje, že probíhá programování (byl jsem líný, takže jsem neodpovídal barvám v mém nastavení) Zde jsou výkresy vytvořené ve Fritzing Můžete také vytvořit Štít MEGA-isp. Yaroslav Osadchyy navrhl štít v orlu. Soubory orla můžete získat na jeho webu:

Krok 3: Nahrání náčrtu

Nahrávání náčrtu
Nahrávání náčrtu

Stáhněte si skicu z mega-isp google kódu. (Avrisp.03.zip v době psaní článku). Rozbalte jej a spusťte arduino ide a otevřete avrisp.pde. Nahrajte jej na svoji desku arduino. Kontrolka tepu by měla začít bít.

Krok 4: Používání s Avrdude

Použití s Avrdude
Použití s Avrdude

Chcete -li použít s avrdude (a všemi GUI, která jej používají), musíte vybrat programátor 'avrisp'. nejbezpečnější bitrate je 19200.

Chcete -li otestovat svůj nový atmega168 z příkazového řádku, zkuste: $ avrdude -p m168 -P /dev /ttyUSB0 -c avrisp -b 19200 /dev /USB0 je port, ke kterému je arduino připojeno k mému linuxovému boxu (váš může být com5). To lze zkontrolovat v arduino IDE v Nástroje -> Sériový port. Měli byste získat: [kabturek@hal -9000 ~]# avrdude -p m168 -P /dev /ttyUSB0 -c avrisp -b 19200 avrdude: Zařízení AVR inicializováno a připraveno přijímat pokyny Čtení | ############################################################################# | 100% 0.13s avrdude: Device signature = 0x1e9406 avrdude: safemode: Fuses OK avrdude done. Děkuji. To znamená, že je vše v pořádku. Pokud se zobrazí chyby - zkontrolujte poslední krok.

Krok 5: Vypálení firmwaru USBtinyISP na Attiny2313

Vypalování firmwaru USBtinyISP na Attiny2313
Vypalování firmwaru USBtinyISP na Attiny2313
Vypalování firmwaru USBtinyISP na Attiny2313
Vypalování firmwaru USBtinyISP na Attiny2313
Vypalování firmwaru USBtinyISP na Attiny2313
Vypalování firmwaru USBtinyISP na Attiny2313

USBTinyISP je skvělý programátor od LadyAda, který je opravdu levný - 22 $. Měl jsem náhradní attiny2313 a některé díly, tak jsem se rozhodl, že si jeden vyrobím sám. Pokud nemáte žádné zkušenosti s výrobou desek plošných spojů, doporučuji si ji koupit, protože je kvalitnější, než si můžete sami vyrobit:). Pokud si ji chcete postavit, kupte si alespoň desku plošných spojů. Můžete jej získat od společnosti Adafruit. Připojte ATtiny2313 Na posledním obrázku můžete vidět attiny2313 s piny použitými pro ISP červeně. Obrázek je z tutoriálu LadyAda avr. Vypalování firmwaru: Rozbalte firmware USBTinyISP. Přejděte na spi dir a spusťte $ avrdude -p pt2313 -P /dev /ttyUSB0 -c avrisp -b 19200 a zkontrolujte, zda je s čipem vše v pořádku. Nyní nastavte pojistky: $ avrdude -P /dev /ttyUSB0 -c avrisp -b 19200 -pt2313 -U hfuse: w: 0xdf: m -U lfuse: w: 0xef: m Nyní byste měli na čip připojit externí oscilátor 12 MHz. A vypálit firmware: $ avrdude -B 1 -pt2313 -U flash: w: main.hex -P /dev /ttyUSB0 -c avrisp -b 19200 Voila. Váš attiny2313 má firmware USBTinyISP.

Krok 6: Vypálení zavaděče Arduino

Vypalování bootloaderu Arduino
Vypalování bootloaderu Arduino
Vypalování bootloaderu Arduino
Vypalování bootloaderu Arduino
Vypalování bootloaderu Arduino
Vypalování bootloaderu Arduino

Připojování Trochu jsem podváděl, protože jsem použil RBBB ke zjednodušení připojení. Schéma je na obrázku č. 2. Pokud používáte 2 arduino, použijte obrázek č. 3 a připojte pin ISP k ICSP 2x3header na druhém (slave) arduinu. Připojte pouze USB napájení k první desce. Způsob GUI Je to trochu ošidné, protože nemůžete použít pouze Nástroje-> Vypálit bootloader-> s AVR ISP, protože výchozí rychlost je pro mega-ISP příliš velká. Najděte avrdude.conf, který je dodáván s arduino IDE (v arduino/hardware/tools/avrdude.conf) a změňte hranici pro avrisp programátor z 115200 na 19200 (kolem řádku 312) Najděte a změňte v avrdude.conf programátor id = "avrisp"; desc = "Atmel AVR ISP"; přenosová rychlost = 115200; # výchozí je 115200 typ = stk500;; pro: programátor id = "avrisp"; desc = "Atmel AVR ISP"; přenosová rychlost = 19200; # výchozí je 115200 typ = stk500;; Nyní můžete použít Tools -> Burn Bootloader -> w/AVR ISP (after you select the appropriate board from the Tools menu) Commanline Můžete také použít příkazový řádek: Edit arduino/hardware/bootloaders/atmega/Makefile a změnit ISPTOOL/PORT /RYCHLOST na: # zadejte parametry pro nástroj avrdude isp ISPTOOL = avrisp ISPPORT = /dev /ttyUSB0 ISPSPEED = -b 19200 ne, můžete napsat $ make diecimila_isp k vypálení pojistek a bootloaderu. Test Nyní připojte nové arduino k USB a spálit blinky!

Krok 7: Odstraňování problémů

Odstraňování problémů
Odstraňování problémů

Chyby Avrdude: avrdude: ser_open (): nelze otevřít zařízení "/dev/ttyUSB0": Žádný takový soubor nebo adresář Zadali jste nesprávný port (-P) nebo vaše arduino není připojeno. zkontrolujte připojení avrdude: Podpis zařízení = 0x000000 avrdude: Fuj! Neplatný podpis zařízení. Znovu zkontrolujte připojení a zkuste to znovu nebo pomocí -F tuto kontrolu přepište. Toto je druh obecné chyby. Váš čip nebyl rozpoznán. Zkontrolujte připojení na desce (GND/5V připojeno k pinům?) K této chybě dojde, když je váš čip nakonfigurován pro použití externího oscilátoru a nefunguje (žádný neexistuje nebo nekmitá správně - 22pf cap) chybí?)

Doporučuje: