Indholdsfortegnelse:
- Trin 1: Hvad har du brug for?
- Trin 2: Fremstilling af Mega-isp-programmereren på et brødbræt
- Trin 3: Upload af skitsen
- Trin 4: Brug af Avrdude
- Trin 5: Brænding af USBtinyISP -firmware til en Attiny2313
- Trin 6: Brænding af Arduino Bootloader
- Trin 7: Fejlfinding
Video: Sådan programmeres en AVR (arduino) med en anden Arduino: 7 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:31
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?
* 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
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
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
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
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
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
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:
Sådan programmeres ESP32 M5Stack StickC med Arduino IDE og Visuino: 12 trin
Sådan programmeres ESP32 M5Stack StickC med Arduino IDE og Visuino: I denne vejledning lærer vi, hvordan du programmerer ESP32 M5Stack StickC med Arduino IDE og Visuino. Se en demonstrationsvideo
Sådan programmeres og bootloades ATtiny85 med USBasp: 5 trin
Sådan programmeres og bootloades ATtiny85 med USBasp: I denne Instructable lærer du nøjagtigt, hvordan du bootloader og programmerer en ATtiny85 -mikrochip på den enkleste måde, jeg kunne finde ud af. Dette er min første instruks, så hvis du har nogle råd eller tips til, hvordan du laver bedre guider, er du velkommen til at samarbejde
Sådan programmeres PIC MCU med PICkit -programmer ved hjælp af et brødbræt: 3 trin
Sådan programmeres PIC MCU med PICkit -programmering ved hjælp af et brødbræt: Du behøver ikke dyre og sofistikerede værktøjer til at spille med PIC (eller andre) mikrokontrollere. Alt du behøver er et brødbræt, hvor du tester dit kredsløb og programmering. Selvfølgelig er en form for programmerer og IDE nødvendig. I denne instruktion
Sådan programmeres Arduino Pro Mini med Arduino Uno: 4 trin
Sådan programmeres Arduino Pro Mini med Arduino Uno: Jeg skrev dette som en del af et andet projekt, men så besluttede jeg mig for at bruge en Pro Micro, som kan programmeres direkte fra den bærbare computer. Dette kan dog være nyttigt en dag (eller for nogen) så Jeg lader det være her
Sådan programmeres et AVR -kort ved hjælp af et Arduino -kort: 6 trin
Sådan programmeres et AVR -kort ved hjælp af et Arduino -kort: Har du et AVR -mikrokontrollerkort liggende? Er det svært at programmere det? Nå, du er på det rigtige sted. Her vil jeg vise dig, hvordan du programmerer et Atmega8a mikrokontrollerkort ved hjælp af et Arduino Uno -kort som programmerer. Så uden længde