ATmega mit sehr niedrigem Takt programmieren

Die ATmega Mikrocontroller von Atmel können mit unterschiedlichen Frequenzen betrieben werden. Ist die Frequenz zu niedrig kann es sein, dass die Programmierung nicht mehr oder nur teilweise möglich ist. Dies lässt sich jedoch leicht beheben.

Im Folgenden ist ein Beispiel zu sehen, in dem versucht wird die Informationen eines ATmega 328P abzufragen, was jedoch zu einem Fehler führt. Der Mikrocontroller ist auf eine Frequenz von 128kHZ und den internen Oszilator eingestellt. Die Programmierung erfolgt über einen USBTinyISP, die ISP Schnittstelle und das Tool avrdude.

$ avrdude -p m328p -c usbtiny
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.


avrdude done.  Thank you.

Der gezeigte Fehler wird dadurch hervorgerufen, dass der USBTinyISP versucht die Daten mit einer zu hohen Frequenz zu übertragen und der Mikrocontroller diese nicht so schnell verarbeiten kann. Mit der Option -B lässt sich die Frequenz anpassen. Je größer der Wert um so geringer die Frequenz zur Übertragung. Mit dem Wert 250 war die Übertragung von Daten selbst bei einem eingestellten Takt von 128kHZ möglich.

$ avrdude -p m328p -c usbtiny -B 250

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.06s

avrdude: Device signature = 0x1e950f

avrdude: safemode: Fuses OK (E:05, H:DE, L:E3)

avrdude done.  Thank you.

Verwandte Artikel