Inhoudsopgave:

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
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

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

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
Video: Embedded systems, the road to Linux Early boot, comparing and explaining different systems. 2024, September
Anonim
Hoe de GPIO-pinnen en Avrdude van een Raspberry Pi te gebruiken voor een bit-bang-programma DIMP 2 of DA PIMP 2
Hoe de GPIO-pinnen en Avrdude van een Raspberry Pi te gebruiken voor een bit-bang-programma DIMP 2 of DA PIMP 2

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

Sluit de jumperdraden aan
Sluit de jumperdraden aan
Sluit de jumperdraden aan
Sluit de jumperdraden aan
Sluit de jumperdraden aan
Sluit de jumperdraden aan
Sluit de jumperdraden aan
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: