Hilfe zum Ändern der Clock-Quelle des ATMega328 auf External Clock

Ich möchte die Fuse-Bits des ATMega328 ändern, um mit einem externen Takt (Funktions-/Signalgenerator) anstelle des Quarzes zu arbeiten. Die Taktfrequenz beträgt 8 MHz. Ich habe es monatelang versucht und alle meine Versuche sind gescheitert, da ich die Chips aufgrund falscher Verbindungen oder falsch verstandener Bits gesperrt habe.

Ich verstehe den Teil, in dem wir den CKSEL auf 0000 (externe Uhr) setzen müssen.

Ich verstehe auch, wie wir das Avrdude verwenden und den Takteingang (Funktionsgenerator) mit dem XTAL1 verbinden

Mein Befehl wäre in etwa so:

avrdude -c avrispmk2 -p atmega328p -P COM6 -U lfuse:w:0xe0:m -U hfuse:w:0xde:m -U efuse:w:0xff:m

Ich habe mir einen avrispmk2 ISP gekauft und denke, dass ich an dieser Stelle die passenden Anschlüsse auf dem Steckbrett habe.

Meine Frage ist, welche Art von Änderungen muss ich nach dem Brennen der Chipsicherung an der Datei boards.txt vornehmen?

Muss ich die Fuse-Bits oder irgendetwas Extras in die boards.txt einfügen?

atmega328p.name=Mynewarduino
atmega328p.upload.protocol=avrispmkII
atmega328p.upload.maximum_size=32256
atmega328p.build.mcu= atmega328p
atmega328p.build.f_cpu=8000000L // clock speed is 8mhz now
atmega328p.build.core=arduino
atmega328p.build.variant=standard

Was sollte noch in der benutzerdefinierten boards.txt-Datei enthalten sein?

Ich versuche es seit Monaten und würde mich sehr über Antworten oder Kommentare freuen. Könnten Sie mir bitte die Schritte erklären, die ich befolgen kann, ohne einen weiteren Chip zu ruinieren?

Wenn ich das Verfahren richtig verstehe, sind dies die Schritte?

  1. Stellen Sie geeignete Verbindungen mit ATmega328 und dem chiplosen Arduino-Board her, verbinden Sie sich mit dem ISP (mkii)

  2. Brennen Sie die Sicherungen mit dem Avrdude gemäß den Sicherungsbits, während der Signalgenerator mit 8 MHz an XTAL1 angeschlossen ist

  3. Ändern Sie in boards.txt die F_CPU auf 8000000L (oder müssen Sie einen neuen Eintrag in boards.txt erstellen?)

  4. Laden Sie dann die Blink-Skizze mit Arduino IDE hoch (muss ich mit dem Programmierer hochladen?)

Wenn ich einen Schritt verpasse, würde ich mich freuen, zu hören.

Antworten (1)

Kopieren Sie den vorhandenen Eintrag und ändern Sie das verwendete Präfix. Jeder Eintrag muss eine eindeutige Kennung haben, und das Menü zeigt die verschiedenen <identifier>.nameWerte für jeden Eintrag. Ändern Sie nur die Variablen, die für den neuen Chip wichtig sind, in diesem Fall den f_cpuWert.

Wenn Sie keinen Bootloader verwenden, ändern Sie den maximum_sizeParameter auf die volle Größe des Flash auf dem Chip, dh 32768, und vergessen Sie nicht, die BOOTRST-Sicherung zu deprogrammieren. Andernfalls setzen Sie den Wert so, dass er die BOOTSZ-Sicherungen und die Größe des kompilierten Bootloaders ergänzt.

Hallo Ignacio, entschuldigen Sie mein schlechtes Verständnis, aber können Sie den Teil "jeder Eintrag muss eine eindeutige Kennung haben" und den Teil "Präfix" klären? Kann ich nach dem Ändern der Fuse-Bits immer noch die Arduino IDE zum Hochladen der Skizzen verwenden? (Bootloader)
Wenn bereits ein Eintrag vorhanden ist, der "atmega328p" verwendet, müssen Sie Ihren Eintrag ändern, um etwas anderes zu verwenden.
Tut mir leid, Ignacio, wie kann ich meinen Eintrag ändern, um etwas anderes als "gültiges" Präfix zu verwenden? Ich dachte, atmega328p ist der offizielle Name des Teils, der nicht geändert werden kann. Ich würde mich freuen, wenn Sie mir in diesem Fall ein Beispiel geben würden
Die Kennung hat nichts mit dem Teil zu tun. Es ist einfach ein Handle für die IDE.
Die Fuse-Bit-Parameter spielen nur eine Rolle, wenn der Bootloader auf den Chip gebrannt wird (über ISP). Ansonsten haben sie keinen Nutzen oder Effekt.