Indholdsfortegnelse:

Sådan programmeres en AVR (arduino) med en anden Arduino: 7 trin
Sådan programmeres en AVR (arduino) med en anden Arduino: 7 trin

Video: Sådan programmeres en AVR (arduino) med en anden Arduino: 7 trin

Video: Sådan programmeres en AVR (arduino) med en anden Arduino: 7 trin
Video: LDmicro 21: настройка режима C и Arduino Mega (программирование микроконтроллера с помощью LDmicro) 2024, November
Anonim
Sådan programmeres en AVR (arduino) med en anden Arduino
Sådan programmeres en AVR (arduino) med en anden Arduino
Sådan programmeres en AVR (arduino) med en anden Arduino
Sådan programmeres en AVR (arduino) med en anden Arduino
Sådan programmeres en AVR (arduino) med en anden Arduino
Sådan programmeres en AVR (arduino) med en anden Arduino

Denne instruks er nyttig, hvis:

* du har din arduino med atmega168, og du har købt en atmega328 hos din lokale elektronikbutik. Det har ikke en arduino bootloader * du vil lave et projekt, der ikke bruger arduino - bare en almindelig AVR -chip (som USBTinyISP) - du har en ren attiny2313/attiny48 osv., Som du vil brænde firmware på. Normalt skulle du have en internetudbyder (i systemprogrammerer) som USBTinyISP for at programmere din nye chip. Med arduinoen kan du lære den at være en programmør takket være et stort stykke arbejde udført af Randall Bohn. Han skabte Mega -ISP - en arduino -skitse, der fungerer som en programmør.

Trin 1: Hvad har du brug for?

Hvad har du brug for ?
Hvad har du brug for ?

* en fungerende Arduino (eller en klon - jeg bruger BBB - BareBonesBoard og en RBBB - RealBareBonesBoard af ModernDevices) * en chip, du vil programmere (testet med atmega8, atmega168, atmega368, attiny2313, attiny13) * et brødbræt eller et bræt med ISP header * 3 lysdioder + 3 modstande * brødbrætstråde

Trin 2: Fremstilling af Mega-isp-programmereren på et brødbræt

Fremstilling af Mega-isp-programmereren på et brødbræt
Fremstilling af Mega-isp-programmereren på et brødbræt
Fremstilling af Mega-isp-programmereren på et brødbræt
Fremstilling af Mega-isp-programmereren på et brødbræt
Fremstilling af Mega-isp-programmereren på et brødbræt
Fremstilling af Mega-isp-programmereren på et brødbræt

Der er to måder at forbinde din Arduino til at programmere en chip.

Du kan tilslutte din avr -chip til et brødbræt og tilslutte 5v og GND til de respektive stifter (tjek databladet!) + En pullup -modstand for at nulstille og føre stifter fra din arduino til chippen. Disse er linjerne på Arduino og deres funktion 13 - SCK 12 - MISO 11 - MOSI 10 - RST (Nulstil) Eller du kan lave et 2x3pin ISP -header, som du kan tilslutte til et kort, der giver et (et andet arduino -kort). Pinout for ISP -header er på det tredje billede Der er 3 lysdioder for at angive status for programmereren. pin 9 - blå led - det er programmørens puls. pin 8 - rød led - angiver en fejl pin 7 - grøn led - angiver, at programmeringen finder sted (jeg var doven, så jeg matchede ikke farverne i mit setup) Her er tegningerne lavet i Fritzing Du kan også lave en MEGA-isp skjold. Yaroslav Osadchyy designet skjoldet i ørn. Du kan få ørnfilerne på hans websted:

Trin 3: Upload af skitsen

Upload af skitsen
Upload af skitsen

Download skitsen fra mega-isp google-kode. (Avrisp.03.zip i skrivende stund). Pak det ud, og kør arduino ide og åbn avrisp.pde. Upload det til dit arduino -bord. Heartbeat led skulle begynde at slå.

Trin 4: Brug af Avrdude

Brug med Avrdude
Brug med Avrdude

For at bruge med avrdude (og alle GUI'er, der bruger det), skal du vælge 'avrisp' programmereren. den sikreste bitrate er 19200.

For at teste din nye atmega168 fra kommandolinjen, prøv: $ avrdude -p m168 -P /dev /ttyUSB0 -c avrisp -b 19200 /dev /USB0 er porten, som arduino er forbundet til min linux -boks (din kan være com5). Dette kan kontrolleres i arduino IDE i Værktøjer -> Seriel port. Du bør få: [kabturek@hal -9000 ~]# avrdude -p m168 -P /dev /ttyUSB0 -c avrisp -b 19200 avrdude: AVR -enhed initialiseret og klar til at acceptere instruktioner Læsning | #################################################### | 100% 0.13s avrdude: Enheds signatur = 0x1e9406 avrdude: safemode: Sikringer OK avrdude udført. Tak skal du have. Det betyder, at alt er ok. Hvis du får fejl - tjek det sidste trin.

Trin 5: Brænding af USBtinyISP -firmware til en Attiny2313

Brænder USBtinyISP -firmware til en Attiny2313
Brænder USBtinyISP -firmware til en Attiny2313
Brænder USBtinyISP -firmware til en Attiny2313
Brænder USBtinyISP -firmware til en Attiny2313
Brænder USBtinyISP -firmware til en Attiny2313
Brænder USBtinyISP -firmware til en Attiny2313

USBTinyISP er en fantastisk programmør fra LadyAda, der er virkelig billig - 22 $. Jeg havde en ekstra attiny2313 og nogle dele, så jeg besluttede at lave en selv. Hvis du ikke har nogen erfaring med at lave PCB i råd, køber du sættet, fordi det er højere kvalitet, end du selv kan lave:). Køb i det mindste printkortet, hvis du vil bygge et. Du kan få det fra Adafruit. Tilslut ATtiny2313 På det sidste billede kan du se attiny2313 med benene, der bruges til internetudbyderen, i rødt. Billedet er fra LadyAda avr tutorial. Brænding af firmwaren: Pak USBTinyISP -firmware ud. Gå til spi dir og kør $ avrdude -p pt2313 -P /dev /ttyUSB0 -c avrisp -b 19200 for at kontrollere, om alt er ok med chippen. Indstil nu sikringerne: $ avrdude -P /dev /ttyUSB0 -c avrisp -b 19200 -pt2313 -U hfuse: w: 0xdf: m -U lfuse: w: 0xef: m Nu skal du vedhæfte den 12mhz eksterne oscillator til chippen. Og brænd firmwaren: $ avrdude -B 1 -pt2313 -U flash: w: main.hex -P /dev /ttyUSB0 -c avrisp -b 19200 Voila. Din attiny2313 har USBTinyISP -firmwaren.

Trin 6: Brænding af Arduino Bootloader

Brænder Arduino Bootloader
Brænder Arduino Bootloader
Brænder Arduino Bootloader
Brænder Arduino Bootloader
Brænder Arduino Bootloader
Brænder Arduino Bootloader

Jeg snød lidt, fordi jeg brugte en RBBB til at forenkle forbindelserne. Skemaet er på billede #2. Hvis du bruger 2 arduinoer, skal du bruge billedet #3 og tilslut ISP -stiften til ICSP 2x3header på den anden (slave) arduino. Tilslut kun usb -strømmen til det første kort. GUI-metoden Dette er en lidt vanskelig årsag, du kan ikke bare bruge Værktøjs-> Burn Bootloader-> w/ AVR ISP, fordi standardhastigheden er for stor til mega-isp. Find avrdude.conf, der følger med arduino IDE (i arduino/hardware/tools/avrdude.conf), og ændre grænsen for avrisp programmerer fra 115200 til 19200 (omkring linje 312) Find og ændr i avrdude.conf programmerer id = "avrisp"; desc = "Atmel AVR ISP"; baudrate = 115200; # standard er 115200 type = stk500;; til: programmerer id = "avrisp"; desc = "Atmel AVR ISP"; baudrate = 19200; # standard er 115200 type = stk500;; Nu kan du bruge Værktøjer -> Burn Bootloader -> w/AVR ISP (efter at du har valgt det korrekte kort fra menuen Værktøjer) Kommanlinje Du kan også bruge kommandolinjen: Rediger arduino/hardware/bootloaders/atmega/Makefile og skift ISPTOOL/PORT /HASTIGHED til: # indtast parametrene for avrdude isp -værktøjet ISPTOOL = avrisp ISPPORT = /dev /ttyUSB0 ISPSPEED = -b 19200 nej du kan skrive $ make diecimila_isp for at brænde sikringer og bootloaderen. Test Tilslut nu din nye arduino til usb og brænd det blinkende!

Trin 7: Fejlfinding

Fejlfinding
Fejlfinding

Avrdude fejl: avrdude: ser_open (): kan ikke åbne enhed "/dev/ttyUSB0": Ingen sådan fil eller mappe Du har angivet den forkerte port (-P), eller din arduino er ikke tilsluttet. tjek forbindelsen avrdude: Device signature = 0x000000 avrdude: Yikes! Ugyldig enheds signatur. Dobbelttjek forbindelser, og prøv igen, eller brug -F til at tilsidesætte denne kontrol. Dette er en slags generel fejl. Din chip genkendes ikke. Kontroller forbindelsen på kortet (GND/5V forbundet til stifter?) Du får denne fejl, når din chip er konfigureret til at bruge en ekstern oscillator, og den ikke fungerer (der er ikke en eller den er ikke oscillerende korrekt - 22pf hætter mangler ?)

Anbefalede: