Inhaltsverzeichnis:

So verwenden Sie die GPIO-Pins und Avrdude eines Raspberry Pi zum Bit-Bang-Programmieren von DIMP 2 oder DA PIMP 2: - Gunook
So verwenden Sie die GPIO-Pins und Avrdude eines Raspberry Pi zum Bit-Bang-Programmieren von DIMP 2 oder DA PIMP 2: - Gunook

Video: So verwenden Sie die GPIO-Pins und Avrdude eines Raspberry Pi zum Bit-Bang-Programmieren von DIMP 2 oder DA PIMP 2: - Gunook

Video: So verwenden Sie die GPIO-Pins und Avrdude eines Raspberry Pi zum Bit-Bang-Programmieren von DIMP 2 oder DA PIMP 2: - Gunook
Video: Raspberry Pi GPIO Elektronik Einstieg: Komponenten, Kits, Breadboard Erklärung, GPIO Grundlagen 2024, Juli
Anonim
So verwenden Sie die GPIO-Pins und Avrdude eines Raspberry Pi zum Bit-Bang-Programmieren von DIMP 2 oder DA PIMP 2
So verwenden Sie die GPIO-Pins und Avrdude eines Raspberry Pi zum Bit-Bang-Programmieren von DIMP 2 oder DA PIMP 2

Dies ist eine Schritt-für-Schritt-Anleitung zur Verwendung eines Raspberry Pi und des kostenlosen Open-Source-Befehls avrdude zum Bit-Bang-Programmieren eines DIMP 2 oder DA PIMP 2. Ich gehe davon aus, dass Sie mit Ihrem Raspberry Pi und dem LINUX vertraut sind Befehlszeile. Sie müssen nicht mit der Programmierung von AVR-Chips vertraut sein, aber es hilft, wenn etwas schief geht, da Sie die Ausgabe von avrdude lesen können und eine Vorstellung davon haben, was zu tun ist.

Dieser Vorgang sollte beim ersten Mal etwa 1 Stunde und danach jedes Mal 5 bis 10 Minuten dauern.

Du wirst brauchen:

1) Ein Raspberry Pi mit GPIO-Pins und Netzteil. Ich verwende einen Raspberry Pi Zero W mit angelöteten GPIO-Pins. Das Betriebssystem sollte Raspberry Pi OS (ehemals Raspbian) sein. Ich verwende Raspbian Lite (Stretch), was schon etwas alt ist. Diese Befehle sollten noch auf der neuesten Version von Raspberry Pi OS funktionieren.

In Zukunft werde ich den Raspberry Pi als "RPi" bezeichnen.

2) Buchse-zu-Buchse-Überbrückungsdrähte. Holen Sie sich eine dieser Farben: Rot, Schwarz, Blau, Gelb, Grün, Lila. Ich verwende braun statt lila.

3) Ein DIMP 2 oder DA PIMP 2 mit dem optionalen 10-poligen ICSP-Header eingelötet. Ich verwende hier einen DIMP 2, aber die Anweisungen sind die gleichen für den DA PIMP 2.

4) Internetzugang für das RPi, damit Sie den kostenlosen Open-Source-Befehl avrdude installieren können.

5) Eine Kopie der.hex-Flash-Datei für Ihren DIMP 2 oder DA PIMP 2. Sie können die.hex-Datei selbst aus dem Rohquellcode erstellen, aber ich werde Ihnen hier nicht zeigen, wie das geht.

6) Irgendeine Möglichkeit, sich beim RPi anzumelden – verwenden Sie entweder eine Netzwerkverbindung oder einen direkten Konsolenzugriff. Sie müssen in der Lage sein, Befehle darauf auszuführen.

Schritt 1: Entfernen Sie das Netzkabel und entfernen Sie die 9-V-Batterie

Überprüfen Sie zunächst, ob das Netzkabel am DIMP 2 oder DA PIMP 2 angeschlossen und an das Stromnetz angeschlossen ist. Wenn ja, GEFAHR: LETHAL SCHOCKGEFAHR. Tragen Sie Gummihandschuhe und schalten Sie dann den Hauptwippschalter am DIMP 2 oder DA PIMP 2 aus. Ziehen Sie dann das Netzkabel aus der Netzsteckdose und ziehen Sie das Netzkabel vom DIMP 2 oder DA PIMP 2 ab Ziehen Sie die Gummihandschuhe aus, sobald das Netzkabel entfernt wurde.

Entfernen Sie dann die 9-V-Batterie. Der DIMP 2 wird vom RPi über die roten (Vcc) und schwarzen (GND) Drähte mit Strom versorgt. Schalten Sie den Schiebeschalter am DIMP 2 oder DA PIMP 2 für alle Fälle aus.

Schritt 2: Schließen Sie die Überbrückungsdrähte an

Schließen Sie die Überbrückungsdrähte an
Schließen Sie die Überbrückungsdrähte an
Schließen Sie die Überbrückungsdrähte an
Schließen Sie die Überbrückungsdrähte an
Schließen Sie die Überbrückungsdrähte an
Schließen Sie die Überbrückungsdrähte an
Schließen Sie die Überbrückungsdrähte an
Schließen Sie die Überbrückungsdrähte an

Beginnen Sie mit dem Anschließen der Jumper-Drähte, während das RPi nicht eingeschaltet ist. In Zukunft befinden sich die GPIO-Pins auf dem Raspberry Pi und die ICSP-Pins auf dem DIMP 2 (Header J3) oder DA PIMP 2 (Header J1).

Beziehen Sie sich auf das Diagramm, das ich zusammengeschustert habe, und die Fotos, wenn Sie sich verirren.

Der RPi-Teil des Diagramms stammt von pinout.xyz.

Der ATMEGA48V-10PU-Teil des Diagramms ist urheberrechtlich geschützt von 2016 Atmel Corp.

Ich beanspruche die faire Verwendung dieser Zeichnungen aufgrund der signifikanten, transformativen Ergänzungen.

Schwarz geht von GPIO-Pin 6 zu ICSP-Pin 10. Dies ist GND (Masse)

Gelb geht von GPIO-Pin 12 zu ICSP-Pin 9. Dies ist MISO.

Grün geht von GPIO-Pin 16 zu ICSP-Pin 1. Dies ist MOSI.

Blau geht von GPIO-Pin 18 zu ICSP-Pin 7. Dies ist SCK oder SCLK (SClock)

Lila (in meinen Fotos braun) geht von GPIO-Pin 32 zu ICSP-Pin 5. Dies ist RESET.

Rot geht von GPIO-Pin 4 zu ICSP-Pin 2. Dies ist Vcc (5V Power)

Schritt 3: Schalten Sie das RPi ein

Fahren Sie nun das RPi hoch. Der Voltmeter-Teil von DIMP 2 oder DA PIMP 2 sollte ebenfalls hochfahren, aber Sie werden es nicht erkennen, wenn Sie auf das Display schauen. Messen Sie im Zweifelsfall die Spannung mit dem roten Tastkopf an Pin 20 am ATMEGA48V-10PU und dem schwarzen Tastkopf an Pin 4, 6 oder 8 am ICSP-Header. Es sollte etwa 5 V DC betragen.

Schritt 4: Installieren Sie Avrdude

Meine Anweisungen zeigen nur Befehlszeilenbefehle. Wenn Sie eine GUI haben, sollten Sie ein Terminal öffnen, um diese Befehlszeilenbefehle auszuführen.

Melden Sie sich als Standardbenutzer pi an. Das Standardpasswort ist Himbeere

Installieren Sie den Befehl avrdude, indem Sie Folgendes an der Eingabeaufforderung des Terminals eingeben:

sudo apt-get install avrdude

Schritt 5: Bearbeiten Sie die Avrdude-Konfigurationsdatei

Bearbeiten Sie die avrdude-Konfigurationsdatei, indem Sie Folgendes eingeben:

sudo nano /etc/avrdude.conf

Fügen Sie diese Zeilen in der Mitte der Datei hinzu, wo sich die anderen Programmierdefinitionen befinden. Was ich getan habe, ist, den Programmierabschnitt direkt darüber für id = "linuxgpio" zu kopieren, ihn dann direkt darunter einzufügen (in Zeile 1274) und dann den neuen Abschnitt zu bearbeiten.

Programmierer

id = "pi_1"; desc = "Verwenden Sie die Linux-sysfs-Schnittstelle für Bitbang-GPIO-Leitungen"; type = "linuxgpio"; zurücksetzen = 12; sck = 24; mosis = 23; Miso = 18;;

Speichern Sie dann die Datei durch Drücken von: Strg-O

Und dann beenden Sie den Nano-Editor durch Drücken von: Strg-X

Schritt 6: Laden Sie die.hex Flash-Datei herunter oder kopieren Sie sie nach /home/pi

Kopieren Sie die.hex-Flash-Datei auf das RPi. Ich gehe davon aus, dass Sie wissen, wie das geht. HINWEIS: Verwenden Sie den Befehl wget, curl, git oder scp, um die Datei aus dem Web auf das RPi herunterzuladen.

Die.hex-Datei von DIMP 2 ist hier zusammen mit dem Quellcode:

github.com/dchang0/dimp2

Eine angepasste Version der.hex-Datei von DA PIMP 2 ist hier. Das habe ich nicht getestet!

github.com/jcwren/DaPimp2

Wenn die obige Version der.hex-Datei von DA PIMP 2 nicht funktioniert, ist der ursprüngliche Quellcode von Mikey Sklar hier. Sie müssen es selbst in eine funktionierende.hex-Datei kompilieren. Ich behandle das in dieser Anleitung nicht, da es sich um ein langes (aber nicht schwieriges) Tutorial handelt. Ich habe erfolgreich mehrere funktionierende DA PIMP 2-Einheiten mit diesem Quellcode programmiert:

drive.google.com/open?id=0Bx5Als-UeiZbSUdH…

Oder Sie gehen hier auf die Hauptseite von DA PIMP 2 und klicken auf den Link zum Quellcode.

mikeysklar.blogspot.com/p/da-pimp-battery-…

Legen Sie die.hex-Datei in diesem Pfad und Dateinamen auf dem RPi…

Für den DIMP 2:

/home/pi/dimp2.hex

Für den DA-PIMP 2:

/home/pi/da_pimp2.hex

Schritt 7: Überprüfen Sie, ob Avrdude mit dem ATMEGA48V-10PU kommunizieren kann

Führen Sie den Befehl avrdude aus, um sicherzustellen, dass er mit dem ATMEGA48V-10PU-Chip auf dem DIMP 2 oder DA PIMP 2 kommunizieren kann.

cd /home/pi

sudo avrdude -c pi_1 -p m48 -v

Sie erhalten eine Ausgabeseite. Schau dir das Ende an. Wenn Sie eine solche Antwort erhalten, können Sie fortfahren.

avrdude: AVR-Gerät initialisiert und bereit, Anweisungen anzunehmen

Lesen | ################################################ | 100 % 0,00 s

Wenn nicht, dann stimmt etwas nicht und Sie sollten es herausfinden. Höchstwahrscheinlich handelt es sich um eine Fehlverdrahtung, aber eine andere häufige Beschwerde, die ich gesehen habe, ist, dass der ATMEGA48V-10PU-Chip eine Fälschung ist. Es scheint, dass viele von ihnen, die auf Amazon oder ebay verkauft werden, Fälschungen sind. Die von Mouser oder Digikey und anderen autorisierten Distributoren verkauften sind echt.

Schritt 8: Flashen Sie die.hex-Datei auf den ATMEGA48V-10PU

Führen Sie diesen Befehl aus, um die Programmierung des Chips durchzuführen…

Für den DIMP 2:

cd /home/pi

sudo avrdude -c pi_1 -p m48 -U flash:w:dimp2.hex

Für den DA-PIMP 2:

cd /home/pi

sudo avrdude -c pi_1 -p m48 -U flash:w:da_pimp2.hex

Sie erhalten ungefähr eine Seite der Ausgabe. Suchen Sie nach diesen Zeilen:

avrdude: Flash schreiben (1528 Byte):

Schreiben | ################################################ | 100 % 0,79 s

avrdude: verifizieren …

avrdude: 1528 Byte Flash verifiziert avrdude: abgesicherter Modus: Sicherungen OK (E:FF, H:DF, L:62)

Wenn Sie so weit gekommen sind, sollten Sie die LED-Anzeige mit Nullen für die Spannung sehen. Wenn Sie die Nullen sehen, sind Sie fertig! Wenn nicht, fahren Sie mit dem nächsten Schritt fort.

Wenn Sie die Nullen sehen, fahren Sie Ihr RPi mit diesem Befehl ordnungsgemäß herunter:

sudo shutdown -h jetzt

Wenn die Betriebsanzeige am RPi erlischt (der DIMP 2 oder DA PIMP 2 brennt immer noch), können Sie das Netzteil vom RPi trennen. Ziehen Sie dann die Überbrückungsdrähte zwischen dem RPi und dem DIMP 2 oder DA PIMP 2 ab.

Schritt 9: Einfache Fehlerbehebung, wenn der Flash fehlgeschlagen ist

Wenn auf dem Display Ihres DIMP 2 oder DA PIMP 2 keine Nullen angezeigt werden, ist es an der Zeit, Fehler zu beheben.

Überprüfen Sie auch hier zuerst Ihre Verkabelung.

Überprüfen Sie dann die von avrdude angezeigten Sicherungszustände. Es ist möglich, dass bei Ihrem Chip die Sicherungen auf andere Werte als die Werkseinstellungen eingestellt waren. Möglicherweise müssen die Sicherungen des Chips zurückgesetzt werden, was ein völlig anderes Hardwaregerät erfordert. Dies ist ein Problem bei vielen der gefälschten ATMEGA48V-10PU-Chips, die bei ebay verkauft werden - es handelt sich um alte Chips, die aus ausrangierter Hardware gezogen wurden, und die Sicherungen wurden eingestellt, und der Verkäufer hat sich nicht die Mühe gemacht, die Sicherungen zurückzusetzen.

Manchmal ist der Chip nicht einmal ein ATMEGA48V-10PU. Es könnte ein anderer Chip sein, der umbenannt wurde. Normalerweise können Sie diese Fälschungen erkennen, indem Sie sich die Markierungen auf der Ober- und Unterseite des Chips genau ansehen. Es ist klüger, Ihren ATMEGA48V-10PU über einen vertrauenswürdigen Lieferanten wie Mouser oder Digikey zu beziehen.

Empfohlen: