Arduino am Steckbrett - geht nicht ??
« | 18 Aug 2019 | »Wenn mich etwas nervt, dann sind das Fehlschläge obwohl ich es genau so mache wie in einem Tutorial im Netz oder auf Youtube.
Ein Beispiel, über das ich schon öfters gestolpert bin (weil ich den richtigen Weg immer wieder vergesse), ist das Setup eines ATmega328p direkt auf einem Breadboard mit seinem 8MHz internen Quarz.
Folgt man den Anweisungen auf arduino.cc bekommt man bzw. bekomme ich die Meldung:
Yikes! Invalid device signature.
Zuerst mal kurz und prägnant die Lösung:
Der ATmega328 ist mit dem Standard Bootloader und 16 MHz externen Oszillator konfiguriert. Ohne diesen Taktgeber läuft er nicht.
Man muss entweder das Bauteil an die Pins 9 und 10 anschließen oder den Chip in einem Uno-Board “brennen”.
Und jetzt das ganze nochmals mit etwas Pros verfeinert:
Ziel: ATmega328p ohne UNO Board direkt betreiben
Kleine Aufgaben kann der ATmega328 ganz leicht ohne weitere Bauteile erledigen. Er hat nämlich einen 8 MHz Quarz-Oszillator verbaut, mit dem er autonom arbeiten kann, sobald er Strom (so ab 3 Volt) zugeführt bekommt.
Wegen der anderen Taktfrequenz, kann man aber nicht mehr die “normale” Arduino UNO Konfiguration nutzen (die ja auf 16 MHz ausgelegt ist), sondern man installiert dafür ein eigenes ATmega328 on breadboard (Internal 8 MHz internal clock) Board-Package und kompiliert die Sketches eben dort.
Das ist auch gut auf arduino.cc dokumentiert und läuft so ab:
- breadboard-1-6-x.zip herunterladen.
- Den Inhalt dann nach
%USERPROFILE%\Documents\Arduino\hardware
kopieren. (Fallshardware
noch nicht existiert, den Ordner einfach anlegen). Am Ende befindet sich dann imhardware
Ordner das Unterverzeichnisbreadboard
. - Arduino IDE neustarten, damit man den Eintrag ATmega328 on breadboard (Internal 8 MHz internal clock) im Board-Menü finden kann.
- Nun nimmt man ein fertiges Arduino UNO Board, steckt es an und lädt den
Sketch
Examples/ArduinoISP/ArduinoISP
auf dieses Board (und zwar noch mit den üblichen UNO Einstellungen - also BoardArduino/Genuino UNO
)
So, und jetzt käme es eigentlich zum Verkabeln der PINs 10, 11, 12, 13 am
Board mit den Breadboard-PINs 0, 17, 18, 19 und laut Tutorial zum brennen des
Bootloaders über die Arduino as ISP
Einstellung mit dem neu installierten
Breadboard-Setup.
Aber Fehlanzeige, die oben erwähnte Meldung
Yikes! Invalid device signature.
killt die gute Laune.
Die korrekte Lösung:
Man braucht also ein zweites UNO Board, wo man den Chip wechseln kann (also KEINE SMD Variante), oder man baut den Oszillator samt 22pF Kondensatoren gegen Ground auf ein Steckbrett, und startet den Chip dann im “üblichen” Modus.
So kann man dann den neuen 8-MHz Bootloader aufspielen.
Sobald dieser Schritt abgeschlossen ist, kann man den ATmega328 vom UNO Board entfernen und alles weitere am Breadboard (ohne Osziallator) erledigen. Weitere Bootloader oder Sketch-Uploads sollten nun funktionieren.
Und noch ‘ne Info zum Abschluss:
Nicht vergessen, dass ein am Breadboard verbauter Oszillator nicht durch längere Leitungswege oder Schalter zu sehr vom Chip abgeschnürt ist. Wie ich schon lernen musste kann eine solche Konstellation auch eine unnötige Spaßbremse sein.