Inhoudsopgave:
- Stap 1: Verwijder het netsnoer en verwijder de 9V-batterij
- Stap 2: Sluit de jumperdraden aan
- Stap 3: Schakel de RPi. in
- Stap 4: Installeer Avrdude
- Stap 5: Bewerk het Avrdude-configuratiebestand
- Stap 6: Download of kopieer het.hex Flash-bestand naar /home/pi
- Stap 7: Controleer of Avrdude kan praten met de ATMEGA48V-10PU
- Stap 8: Flash het.hex-bestand naar de ATMEGA48V-10PU
- Stap 9: Eenvoudige probleemoplossing als de flitser is mislukt
Video: Hoe de GPIO-pinnen en Avrdude van een Raspberry Pi te gebruiken om DIMP 2 of DA PIMP te Bit-bang-programma te gebruiken 2: 9 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:14
Dit zijn stap-voor-stap instructies voor het gebruik van een Raspberry Pi en het gratis open-source commando avrdude om een DIMP 2 of DA PIMP 2 te bit-bang-programmeren. Ik neem aan dat je bekend bent met je Raspberry Pi en de LINUX opdrachtregel. U hoeft niet bekend te zijn met het programmeren van AVR-chips, maar het helpt als er iets misgaat, omdat u de uitvoer van avrdude kunt lezen en een idee hebt van wat u moet doen.
Deze procedure duurt de eerste keer ongeveer 1 uur en daarna telkens 5 tot 10 minuten.
Je zal nodig hebben:
1) Een Raspberry Pi met GPIO-pinnen en voeding. Ik gebruik een Raspberry Pi Zero W met GPIO-pinnen erop gesoldeerd. Het besturingssysteem zou Raspberry Pi OS (voorheen Raspbian) moeten zijn. Ik gebruik Raspbian Lite (Stretch), wat een beetje oud is. Deze opdrachten zouden nog steeds moeten werken op de nieuwste versie van Raspberry Pi OS.
In de toekomst zal ik naar de Raspberry Pi verwijzen als "RPi".
2) Vrouw-naar-vrouw jumperdraden. Koop een van elk van deze kleuren: rood, zwart, blauw, geel, groen, paars. Ik gebruik bruin in plaats van paars.
3) Een DIMP 2 of DA PIMP 2 met de optionele 10-pins ICSP-header erin gesoldeerd. Ik gebruik hier een DIMP 2, maar de instructies zijn hetzelfde voor de DA PIMP 2.
4) Internettoegang voor de RPi, zodat u het gratis open-sourcecommando avrdude kunt installeren.
5) Een kopie van het.hex-flashbestand voor uw DIMP 2 of DA PIMP 2. U kunt het.hex-bestand zelf bouwen vanuit de onbewerkte broncode, maar ik zal u hier niet laten zien hoe u dat moet doen.
6) Een manier om in te loggen op de RPi: gebruik een netwerkverbinding of directe toegang tot de console. Je moet er commando's op kunnen uitvoeren.
Stap 1: Verwijder het netsnoer en verwijder de 9V-batterij
Controleer eerst of het netsnoer is aangesloten op de DIMP 2 of DA PIMP 2 en is aangesloten op het lichtnet. Indien dit het geval is, GEVAAR: GEVAAR VAN DODELIJKE SCHOK. Draag rubberen handschoenen en zet vervolgens de hoofdtuimelschakelaar op de DIMP 2 of DA PIMP 2 uit. Trek vervolgens het netsnoer uit het stopcontact en koppel het netsnoer los van de DIMP 2 of DA PIMP 2. U kunt uit de rubberen handschoenen zodra het netsnoer is verwijderd.
Verwijder vervolgens de 9V-batterij. De DIMP 2 wordt van stroom voorzien door de RPi via de rode (Vcc) en zwarte (GND) draden. Zet de schuifschakelaar op de DIMP 2 of DA PIMP 2 uit voor het geval dat.
Stap 2: Sluit de jumperdraden aan
Als de RPi niet is ingeschakeld, begint u met het aansluiten van de jumperdraden. In de toekomst bevinden de GPIO-pinnen zich op de Raspberry Pi en de ICSP-pinnen op de DIMP 2 (header J3) of DA PIMP 2 (header J1).
Raadpleeg het diagram dat ik in elkaar heb geplaveid en de foto's als je verdwaald bent.
Het RPi-gedeelte van het diagram is afkomstig van pinout.xyz.
Het ATMEGA48V-10PU-gedeelte van het diagram is copyright 2016 Atmel Corp.
Ik claim redelijk gebruik van deze tekeningen vanwege de belangrijke, transformerende toevoegingen.
Zwart gaat van GPIO pin 6 naar ICSP pin 10. Dit is GND (Ground)
Geel gaat van GPIO-pin 12 naar ICSP-pin 9. Dit is MISO.
Groen gaat van GPIO-pin 16 naar ICSP-pin 1. Dit is MOSI.
Blauw gaat van GPIO pin 18 naar ICSP pin 7. Dit is SCK of SCLK (SClock)
Paars (bruin in mijn foto's) gaat van GPIO-pin 32 naar ICSP-pin 5. Dit is RESET.
Rood gaat van GPIO-pin 4 naar ICSP-pin 2. Dit is Vcc (5V Power)
Stap 3: Schakel de RPi. in
Ga je gang en zet de RPi aan. Het voltmetergedeelte van DIMP 2 of DA PIMP 2 zou ook moeten opstarten, maar dat weet je niet door op het display te kijken. Meet bij twijfel de spanning met de rode sonde op pin 20 op de ATMEGA48V-10PU en de zwarte sonde op pin 4, 6 of 8 op de ICSP-header. Het zou ongeveer 5VDC moeten zijn.
Stap 4: Installeer Avrdude
Mijn instructies tonen alleen commandoregelcommando's. Als u een GUI hebt, wilt u een Terminal openen om deze opdrachtregelopdrachten uit te voeren.
Log in als de standaard gebruiker pi. Het standaardwachtwoord is framboos
Installeer de opdracht avrdude door het volgende te typen bij de opdrachtprompt van de terminal:
sudo apt-get install avrdude
Stap 5: Bewerk het Avrdude-configuratiebestand
Bewerk het avrdude-configuratiebestand door te typen:
sudo nano /etc/avrdude.conf
Voeg deze regels toe aan het midden van het bestand waar de andere programmeursdefinities staan. Wat ik deed, is het gedeelte met de programmeur er recht boven voor id = "linuxgpio" kopiëren, en het er dan rechtsonder plakken (op regel 1274), en vervolgens de nieuwe sectie bewerken.
programmeur
id = "pi_1"; desc = "Gebruik de Linux sysfs-interface om GPIO-lijnen te bitbangen"; typ = "linuxgpio"; reset = 12; sck = 24; mosi = 23; miso = 18;;
Sla het bestand vervolgens op door te drukken op: Ctrl-O
En sluit vervolgens de nano-editor door te drukken op: Ctrl-X
Stap 6: Download of kopieer het.hex Flash-bestand naar /home/pi
Kopieer het.hex flash-bestand naar de RPi. Ik neem aan dat je weet hoe je dit moet doen. HINT: Gebruik de opdracht wget, curl, git of scp om het bestand van het web naar de RPi te krijgen.
Het.hex-bestand van DIMP 2 is hier, samen met de broncode:
github.com/dchang0/dimp2
Een aangepaste versie van het.hex-bestand van DA PIMP 2 is hier. Dit heb ik niet getest!
github.com/jcwren/DaPimp2
Als de bovenstaande versie van het.hex-bestand van DA PIMP 2 niet werkt, is de originele DA PIMP 2-broncode van Mikey Sklar hier te vinden. Je zult het zelf moeten compileren tot een werkend.hex-bestand. Ik behandel dat niet in deze instructies omdat het een lange (maar niet moeilijke) tutorial zal zijn. Ik heb met succes verschillende werkende DA PIMP 2-eenheden geprogrammeerd met behulp van deze broncode:
drive.google.com/open?id=0Bx5Als-UeiZbSUdH…
Of u kunt hier naar de hoofdpagina van DA PIMP 2 gaan en op de link naar de broncode klikken.
mikeysklar.blogspot.com/p/da-pimp-battery-…
Zet het.hex-bestand op dit pad en de bestandsnaam op de RPi…
Voor de DIMP2:
/home/pi/dimp2.hex
Voor de DA PIMP 2:
/home/pi/da_pimp2.hex
Stap 7: Controleer of Avrdude kan praten met de ATMEGA48V-10PU
Voer het avrdude-commando uit om er zeker van te zijn dat het kan praten met de ATMEGA48V-10PU-chip op de DIMP 2 of DA PIMP 2.
cd /home/pi
sudo avrdude -c pi_1 -p m48 -v
U krijgt ongeveer een pagina met uitvoer. Kijk naar het einde. Als u een dergelijk antwoord krijgt, kunt u doorgaan.
avrdude: AVR-apparaat geïnitialiseerd en klaar om instructies te accepteren
Lezen | ################################################## | 100% 0.00s
Zo niet, dan is er iets mis en moet je het uitzoeken. Hoogstwaarschijnlijk is het een verkeerde bedrading, maar een andere veelgehoorde klacht die ik heb gezien, is dat de ATMEGA48V-10PU-chip nep is. Het lijkt erop dat veel van hen die op Amazon of ebay worden verkocht, nep zijn. De exemplaren die door Mouser of Digikey en andere geautoriseerde distributeurs worden verkocht, zijn echt.
Stap 8: Flash het.hex-bestand naar de ATMEGA48V-10PU
Voer deze opdracht uit om de chip te programmeren…
Voor de DIMP2:
cd /home/pi
sudo avrdude -c pi_1 -p m48 -U flash:w:dimp2.hex
Voor de DA PIMP 2:
cd /home/pi
sudo avrdude -c pi_1 -p m48 -U flash:w:da_pimp2.hex
U krijgt ongeveer een pagina met uitvoer. Zoek naar deze regels:
avrdude: flash schrijven (1528 bytes):
Schrijven | ################################################## | 100% 0,79s
avrdude: verifiëren …
avrdude: 1528 bytes aan flash geverifieerd avrdude: safemode: Zekeringen OK (E:FF, H:DF, L:62)
Als je zo ver bent gekomen, zou je het LED-display moeten zien met nullen voor de spanning. Als je de nullen ziet, ben je klaar! Als dat niet het geval is, gaat u verder met de volgende stap.
Als u de nullen ziet, sluit u uw RPi gracieus af met deze opdracht:
sudo afsluiten -h nu
Wanneer het aan/uit-lampje op de RPi uitgaat (de DIMP 2 of DA PIMP 2 blijft branden), kunt u de voeding van de RPi loskoppelen. Koppel vervolgens de jumperdraden tussen de RPi en de DIMP 2 of DA PIMP 2 los.
Stap 9: Eenvoudige probleemoplossing als de flitser is mislukt
Als u geen nullen op het display van uw DIMP 2 of DA PIMP 2 ziet, is het tijd om het probleem op te lossen.
Nogmaals, controleer eerst uw bedrading.
Controleer vervolgens de zekeringstatussen die worden weergegeven door avrdude. Het is mogelijk dat uw chip is geleverd met zekeringen die op andere waarden zijn ingesteld dan de fabrieksinstellingen. De zekeringen van de chip moeten mogelijk worden gereset, wat een totaal ander hardwareapparaat vereist. Dit is een probleem met veel van de nep ATMEGA48V-10PU-chips die op ebay worden verkocht - het zijn oude chips die uit afgedankte hardware zijn gehaald en de zekeringen zijn geplaatst en de verkoper heeft niet de moeite genomen om de zekeringen opnieuw in te stellen.
Soms is de chip niet eens een ATMEGA48V-10PU. Het kan een andere chip zijn die opnieuw is gelabeld. Meestal kun je deze vervalsingen zien door goed naar de markeringen aan de boven- en onderkant van de chip te kijken. Het is verstandiger om uw ATMEGA48V-10PU via een vertrouwde leverancier als Mouser of Digikey te krijgen.
Aanbevolen:
Een debugger gebruiken op een ESP32: 11 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Hoe een debugger op een ESP32 te gebruiken: Heb je ooit een kijkje in je code willen nemen om te zien waarom het zich gedraagt zoals het is? Traditioneel zou je in ESP32-projecten eindeloze printinstructies moeten toevoegen om te proberen te achterhalen wat er aan de hand was, maar er is een betere manier! Een debugger
Een Arduino programmeren Een andere Arduino gebruiken om een scrollende tekst weer te geven zonder een bibliotheek - Ajarnpa
Een Arduino programmeren Een andere Arduino gebruiken om een scrollende tekst weer te geven zonder een bibliotheek: Sony Spresense of Arduino Uno zijn niet zo duur en vereisen niet veel stroom. Als uw project echter beperkingen heeft op het gebied van stroom, ruimte of zelfs budget, kunt u overwegen om Arduino Pro Mini te gebruiken. In tegenstelling tot Arduino Pro Micro, is Arduino Pro Mi
Raspberry Pi GPIO-circuits: een LDR analoge sensor gebruiken zonder een ADC (analoog naar digitaal converter) - Ajarnpa
Raspberry Pi GPIO-circuits: een LDR analoge sensor gebruiken zonder een ADC (analoog naar digitaal converter): in onze eerdere Instructables hebben we u laten zien hoe u de GPIO-pinnen van uw Raspberry Pi kunt koppelen aan LED's en schakelaars en hoe de GPIO-pinnen hoog kunnen zijn of Laag. Maar wat als je je Raspberry Pi wilt gebruiken met een analoge sensor? Als we een
Autonome regeling van het toerental van de motor met behulp van een feedbacksysteem van een op IR gebaseerde toerenteller - Ajarnpa
Autonome regeling van het toerental van de motor met behulp van feedbacksysteem van een op IR gebaseerde toerenteller: er is altijd behoefte aan automatisering van een proces, of het nu een eenvoudig/monsterlijk proces is. methoden om ons kleine stukje land water te geven / te irrigeren. Het probleem van geen huidige toevoerleiding
Een batterijpakket van 4,5 volt maken van een batterij van 9 V: 4 stappen
Een 4,5 volt batterijpakket maken van een 9V-batterij: deze instructie gaat helemaal over het splitsen van een 9V-batterij in 2 kleinere 4,5V-batterijpakketten. De belangrijkste reden om dit te doen is 1. Je wilt 4,5 volt 2. Je wilt fysiek iets kleiners dan een 9V batterij