Inhoudsopgave:
- Stap 1: Wat heb je nodig?
- Stap 2: De Mega-isp-programmeur op een breadboard maken
- Stap 3: De schets uploaden
- Stap 4: Gebruiken met Avrdude
- Stap 5: USBtinyISP-firmware branden op een Attiny2313
- Stap 6: De Arduino Bootloader branden
- Stap 7: Problemen oplossen
Video: Een AVR (arduino) programmeren met een andere Arduino - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:20
Dit instructables is handig als:
* je hebt je arduino met atmega168 en je hebt een atmega328 gekocht bij je plaatselijke elektronicawinkel. Het heeft geen arduino-bootloader * je wilt een project maken dat geen arduino gebruikt - alleen een gewone AVR-chip (zoals de USBTinyISP) - je hebt een schone attiny2313/attiny48 enz. waarop je firmware wilt branden. Normaal gesproken zou u een ISP (In System Programmer) zoals USBTinyISP moeten hebben om uw nieuwe chip te programmeren. Als je de arduino hebt, kun je hem leren een programmeur te zijn dankzij het geweldige werk van Randall Bohn. Hij creëerde Mega-ISP - een Arduino-schets die werkt als een programmeur.
Stap 1: Wat heb je nodig?
* een werkende Arduino (of een kloon - ik gebruik de BBB - BareBonesBoard en een RBBB - RealBareBonesBoard van ModernDevices) * een chip die je wilt programmeren (getest met atmega8, atmega168, atmega368, attiny2313, attiny13) * een breadboard of een bord met ISP-header * 3 leds + 3 weerstanden * breadboard-draden
Stap 2: De Mega-isp-programmeur op een breadboard maken
Er zijn twee manieren om je Arduino aan te sluiten om een chip te programmeren.
Je kunt je avr-chip op een breadboard aansluiten en 5v en GND aansluiten op de respectieve pinnen (bekijk de datasheet!) + een pullup-weerstand om te resetten en de pinnen van je arduino naar de chip te bedraden. Dit zijn de lijnen op Arduino en hun functie 13 - SCK 12 - MISO 11 - MOSI 10 - RST (Reset) Of je kunt een 2x3pin ISP-header maken die je kunt aansluiten op een bord dat er een heeft (een ander arduino-bord). De pinout voor de ISP-header staat op de derde afbeelding. Er zijn 3 leds om de status van de programmeur aan te geven. pin 9 - blauwe led - het is de hartslag van de programmeur. pin 8 - rode led - geeft een fout aan pin 7 - groene led - geeft aan dat de programmering plaatsvindt (ik was lui dus ik kwam niet overeen met de kleuren in mijn setup) Hier zijn de tekeningen gemaakt in Fritzing Je kunt ook een MEGA-isp-afscherming. Yaroslav Osadchyy ontwierp het schild in adelaar. Je kunt de adelaarsbestanden op zijn site krijgen:
Stap 3: De schets uploaden
Download de schets van mega-isp google code.(avrisp.03.zip op het moment van schrijven). Pak het uit en voer arduino ide uit en open avrisp.pde. Upload het naar je Arduino-bord. Heartbeat-led zou moeten beginnen te kloppen.
Stap 4: Gebruiken met Avrdude
Om te gebruiken met avrdude (en alle GUI's die het gebruiken) moet je de 'avrisp' programmer selecteren. de veiligste bitrate is 19200.
Om je nieuwe atmega168 vanaf de commandoregel te testen, probeer je: $ avrdude -p m168 -P /dev/ttyUSB0 -c avrisp -b 19200 /dev/USB0 is de poort waarop arduino is aangesloten op mijn linux-box (die van jou kan com5) zijn. Dit kan worden gecontroleerd in arduino IDE in Tools -> Serial Port. Je zou moeten krijgen: [kabturek@hal-9000 ~]# avrdude -p m168 -P /dev/ttyUSB0 -c avrisp -b 19200 avrdude: AVR-apparaat geïnitialiseerd en klaar om instructies te accepteren Lezen | ################################################## | 100% 0.13s avrdude: Apparaathandtekening = 0x1e9406 avrdude: safemode: Zekeringen OK avrdude klaar. Bedankt. Dat betekent dat alles in orde is. Als u fouten krijgt, controleer dan de laatste stap.
Stap 5: USBtinyISP-firmware branden op een Attiny2313
De USBTinyISP is een geweldige programmeur van LadyAda die echt goedkoop is - 22 $. Ik had een reserve attiny2313 en wat onderdelen, dus besloot ik er zelf een te maken. Als je geen ervaring hebt met het maken van PCB's, raad ik je aan de kit te kopen omdat deze van hogere kwaliteit is dan je zelf kunt maken:). Koop op zijn minst de PCB als je er een wilt bouwen. Je kunt het krijgen van Adafruit. Sluit de ATtiny2313 aan Op de laatste foto zie je de attiny2313 met de pinnen die gebruikt worden voor ISP in het rood. De afbeelding is van LadyAda avr-tutorial. De firmware branden: Pak de USBTinyISP-firmware uit. Ga naar de spi dir en voer $ avrdude -p pt2313 -P /dev/ttyUSB0 -c avrisp -b 19200 uit om te controleren of alles in orde is met de chip. Stel nu de zekeringen in: $ avrdude -P /dev/ttyUSB0 -c avrisp -b 19200 -pt2313 -U hfuse:w:0xdf:m -U lfuse:w:0xef:m Nu moet je de 12mhz externe oscillator op de chip aansluiten. En brand de firmware: $ avrdude -B 1 -pt2313 -U flash:w:main.hex -P /dev/ttyUSB0 -c avrisp -b 19200 Voila. Uw attiny2313 heeft de USBTinyISP-firmware.
Stap 6: De Arduino Bootloader branden
Verbinden Ik heb een beetje vals gespeeld omdat ik een RBBB heb gebruikt om de verbindingen te vereenvoudigen. Het schema staat op foto #2. Als je 2 arduino's gebruikt, gebruik dan afbeelding #3 en sluit de ISP-pin aan op de ICSP 2x3header op de tweede (slave) arduino. Sluit alleen de usb-voeding aan op het eerste bord. De GUI-manier Dit is een beetje lastig omdat je niet gewoon Tools-> Burn Bootloader -> met AVR ISP kunt gebruiken, omdat de standaardsnelheid te hoog is voor mega-isp. Zoek avrdude.conf dat wordt geleverd met arduino IDE (in arduino/hardware/tools/avrdude.conf) en verander de grenssnelheid voor avrdude programmer van 115200 naar 19200 (rond regel 312) Zoek en wijzig in avrdude.conf programmer id = "avrisp"; desc = "Atmel AVR ISP"; baudrate = 115200; # standaard is 115200 type = stk500;; naar: programmeur id = "avrisp"; desc = "Atmel AVR ISP"; baudrate = 19200; # standaard is 115200 type = stk500;; Nu kun je Tools -> Burn Bootloader -> w/ AVR ISP gebruiken (nadat je het juiste board hebt geselecteerd in het menu Tools)Commanline Je kunt ook de opdrachtregel gebruiken: arduino/hardware/bootloaders/atmega/Makefile bewerken en ISPTOOL/PORT wijzigen /SPEED om: # voer de parameters in voor de avrdude isp-tool ISPTOOL = avrisp ISPPORT = /dev/ttyUSB0 ISPEED = -b 19200 nee je kunt $ make diecimila_isp schrijven om zekeringen en de bootloader te branden. Test Sluit nu je nieuwe arduino aan op usb en verbrand de blinkende!
Stap 7: Problemen oplossen
Avrdude-fouten: avrdude: ser_open(): kan apparaat niet openen "/dev/ttyUSB0": geen dergelijk bestand of map U hebt de verkeerde poort (-P) opgegeven of uw arduino is niet aangesloten. controleer de verbinding avrdude: Device signature = 0x000000 avrdude: Yikes! Ongeldige apparaathandtekening. Controleer de verbindingen nogmaals en probeer het opnieuw, of gebruik -F om deze controle te negeren. Dit is een soort algemene fout. Uw chip wordt niet herkend. Controleer de verbinding op het bord (GND/5V aangesloten op pinnen?) U krijgt deze foutmelding wanneer uw chip is geconfigureerd om een externe oscillator te gebruiken en deze niet werkt (er is er geen of hij oscilleert niet goed - 22pf caps missend ?)
Aanbevolen:
Een ATtiny programmeren met Arduino: 7 stappen (met afbeeldingen)
Programmeer een ATtiny met Arduino: Hieronder volgen aanwijzingen voor het programmeren van de ATtiny-microcontrollers met behulp van de Arduino IDE. In gewoon Engels is dit hoe u 8-pins Atmel-chips programmeert zoals u normaal een Arduino zou doen. Dit is cool omdat de ATtiny klein is, en - nou ja - dit maakt het mogelijk
Nog een andere instructie over het gebruik van de DIYMall RFID-RC522 en Nokia LCD5110 met een Arduino: 8 stappen (met afbeeldingen)
Nog een andere Instructable over het gebruik van de DIYMall RFID-RC522 en Nokia LCD5110 met een Arduino: waarom voelde ik de behoefte om nog een Instructable te maken voor de DIYMall RFID-RC522 en de Nokia LCD5110? Nou, om je de waarheid te zeggen, ik werkte ergens vorig jaar aan een Proof of Concept met beide apparaten en op de een of andere manier "misplaatst"
Een AVR-bord programmeren met een Arduino-bord: 6 stappen
Hoe een AVR-bord te programmeren met een Arduino-bord: Heb je een AVR-microcontrollerbord liggen? Is het lastig om het te programmeren? Nou, je bent op de juiste plek. Hier laat ik je zien hoe je een Atmega8a-microcontrollerbord programmeert met een Arduino Uno-bord als programmeur. Dus zonder verder
Een LAPTOP-CPU (en andere coole dingen!) Upgraden om een LANGZAME/DEAD-laptop in een SNELLE laptop te veranderen: 4 stappen
Een LAPTOP-CPU upgraden (en andere coole dingen!) om een LANGZAME/DEAD-laptop in een SNELLE laptop te veranderen! erg verouderd … Het LCD-scherm was kapot en de belangrijkste harde schijf was vastgelopen, dus de laptop was in wezen dood … Zie foto's en
Een PLC programmeren om een stoplicht te bedienen: 7 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Een PLC programmeren om een stoplicht te bedienen.: PLC's worden gebruikt in alles wat we dagelijks tegenkomen. Van de machines die artikelen zoals bier, frisdrank, soep en vele andere verpakte goederen inblikken of bottelen tot de transportbanden bij Walmart en de stoplichten op sommige kruispunten, PLC's raken een