habe bei meinem zum Strom sparen modifizierten Arduino Mega Board nun auch den Stromverbrauch im Betrieb reduzieren wollen (im Schlaf: 51uA).
Dafür fröhlich den "clock_prescale_set (clock_div_256);" gesetzt (das sind dann 125kHz) und nu kann ich nicht mehr Flashen... ja da war doch was... Nick Gammon hat mich gewarnt:
Warning: Once the clock is set to 128 KHz, you will have trouble programming the board. You need to add -B250 to the AVRdude command line. For example, to put the clock back to using the crystal:
avrdude -c usbtiny -p m328p -U lfuse:w:0xFF:m -B25
0
Und wie kann ich diese "-B250" nun in der Arduino IDE hinzufügen? Oder wie rufe ich den AVRDude "händisch" auf?
Funktioniert auch (mit einem anderen Mega) aber dem ich den CPU Clock auf 125kHz gesetzt habe, will damit auch nicht... bekomme "avrdude: stk500v2_ReceiveMessage(): timeout"
Jemand noch eine Idee? Habe schon den Uploadspeed von 115200 auf 9K6 runter gesetzt. Macht es Sin aus B250 B500 oder B128 zu machen?
Leider nein. Habe ja auch nicht die Fueses geändert, sondern im Code den Clock Divider mit
clock_prescale_set (clock_div_128);
16MHz Quarz ist noch drauf.
Wird denn der Code im Flash überschrieben wenn Bootloader neu drauf kommt? Und wird damit auch der ClockDivider Eintrag in den Registern überschrieben??
Programmiere den Mega mit einem leeren UNO Board und RX/TX verbunden.
Eine Frage habe ich noch zum flashen mit USBTinyISP: wird dabei der Bootloader automatisch überschreiben oder kann man das einstellen (falls ja wo?)?
Wenn du per ISCP Adapter ein Programm aufspielst, wird in der Regel vorher das ganze Flash gelöscht.
Der Bootloader wird also nicht überschrieben, sondern gelöscht.
Allerdings bleiben die Fuses auf Bootloader Betrieb stehen.
(falls du kein Vorkehrungen triffst)
Du kannst allerdings auch Anwendung UND Bootloader gleichzeitig schreiben.
Dazu muss von der anwendung.hex die letzte Zeile entfernt werden, und der Inhalt der bootloader.hex da dran kopiert werden. Also ein verschmelzen der beiden hex Dateien.
(ohne Gewähr)