Atmega328au programmieren ohne external Clock?
Ich habe mir selber schon vor einiger Zeit ein Programmierboard gebaut wo ich Attiny's programmiere.
Jetzt ist es so, dass ich auch auf einer eigenen konstruierten Platine den Atmega328 AU verbaue. Am Anfang habe ich mir diese einfach auf dem Arduino Nano programmiert und entlötet und auf mein Board gesetzt.
Jetzt habe ich die Atmega328p einzeln bestellt und habe sie notgedrungen auf den nano gesetzt und mit meinen Programmierboard (Arduino as ISP) den Bootloader gebrannt und programmiert.
Dann ist endlich mein TQFP-32 Adapter gekommen. Da kann ich den IC einlegen und kann so die Kontakte zu entsprechenden Pins herstellen um ihn zu programmieren.
Jetzt stellt sich mir die Frage. Wenn ich mit dem Nano als Programer den Atmega328 programmieren will, müsste ich doch in der Arduino Ide einfach nur als zu Programmieren des Board den Arduino nano eingestellt lassen?
Beim Attiny85 zb. wähle ich ihn ja speziell im Board aus, stelle internal oder extern Clock ein usw.
Wenn ich also als zu programmierendes Boards den nano einstelle, sollte dies funktionieren?
Standardmäßig ist das beim Nano ja so das er für 16 Megahertz external programmiert wird. (benötige ich auch so)
Meine Überlegung ist nur, ob der atmega zum programmieren schon die externe clock braucht oder spielt das bei diesem Abschnitt keine Rolle?
1 Antwort
Der externe Clock wird in dem Moment benötigt, wo die Fuses entsprechend gesetzt sind. Funktioniert das Programmieren zum Beispiel so, dass zuerst der Bootloader geflasht wird und dann die Fuses den Clocks entsprechend programmiert werden, geht es ohne externe Clock... (er nimmt dann noch die interne) Ist das Programmieren aber so eingestellt, dass zuerst die Fuses gesetzt werden und dann programmiert wird, geht es nicht.
Lösungen:
- Reihenfolge der Programmierung beachten (letztlich wird avrdude mit underschiedlichen Befehlen aufgerufen)
- Einfach einen Quarz/Resonator an die entsprechenden Pins mit anschließen...
- HV-Programmierung, ist aber komplizierter
Ich habe bisher auf meinen Platinen einen ISP-Anschluss mit eingeplant... Mit dem 1,27mm Footprint (https://www.tindie.com/products/madworm/tiny-avr-isp-pogo-pin-programming-adapter/) geht das sogar schön platzsparend.
Also habe noch nie mit AVRdude gearbeitet. Nur mit der Arduino IDE. Hab mich nicht weiter für intessiert in welchem Zustand die Controller hier ankommen. Wusste nur das sie kein Bootloader haben und ich ihn mittels Arduino nano as ISP aufgespielt habe.
HV Programmierung hab ich mich auch nur mal kurz auseinander gesetzt, als es darum ging bei einem Attiny den Restepin wieder zurück zu setzten.
Man kann also festhalten, wenn ich ein Quarz + Kondensatoren plaziere, bin ich auf dem sichersten Weg.
Im Grunde benötige ich an dieser Stelle kein Bootloader. Das heißt ich müsste theoretisch den Sketch so aufspielen können. Oder ich muss mir für Arduino IDE noch eine passende Boardinfo suchen. Es gibt auch eine die heißt atmega328p of Breadboard. Aber nur für interne 8mhz. Da ist keine Option zum Wechsel.
https://www.arduino.cc/en/uploads/Tutorial/breadboard-1-6-x.zip