Anlaufzeit Atmega

Naja, optiboot ist nicht schlecht :wink: Startet zumindest nach einem power-on-reset instantan. Zumindest sollte das so sein, wenn man im source-code nachschaut.

Der Atmega8 hat sogar noch eine wesentlich grössere Anlaufzeit als der Atmega328.

Habe aber auch erlebt das der Atmega8 nur dann den Sketch auf dem Breadboard ausführt wenn ich RX mit der Masse verbunden habe !

Wenn man auf den Bootloader verzichtet, wie programmiere ich dann die Chips über Arduino?

Vielen Dank.

Mit einem programmier adapter (ISP). Die gibt es fuer 15-20€ - z.b. USBtiny, USBasp...

Den USBTiny hab ich ...
Bräuche ich eine andere Software als die Entwicklungsumgebung von Arduino ?

Danke

Nein :wink:

Allerdings ist der upload merklich langsamer. Mein patch diesbezueglich wurde und wird ignoriert...

Einfach bei der betreffenden board-definition folgendes (angepasst) einfuegen (bis IDE V0023):

MeinSuperBoard.upload.using=arduino:usbtinyisp

Ab IDE 1.0 muss einfach nur die zeile mit "...upload.protocol=..." geloescht werden. Dann kann im menue der programmer typ ausgewaehlt werden.

Wenn man auf den Bootloader verzichtet, wie programmiere ich dann die Chips über Arduino?

Unter Benutzung eines Bootloaders wird der Sketch über TX/RX übertragen.

Hat man keinen wird dabei MOSI/MISO benutzt, wenn ich mich nicht irre !

madworm:
Nein :wink:

Allerdings ist der upload merklich langsamer. Mein patch diesbezueglich wurde und wird ignoriert...

Einfach bei der betreffenden board-definition folgendes (angepasst) einfuegen:

MeinSuperBoard.upload.using=arduino:usbtinyisp

Wo genau füge ich den Code ein?

Und den optiboot habe ich gedownloadet mit der Version 0018 verknüpft in den Ordner Bootloaders, jedoch nach Neustart des Programmes wird kein Optiboot im Menue Board angezeigt :frowning:

  1. Falls nichts schwerwiegendes dagegen spricht, wuerde ich mindestens die IDE V0023 verwenden. Dort ist ein guter optiboot dabei. Und der startet nach einschalten das programm bei mir instantan.

  2. In der datei 'boards.txt' muss das eingefuegt werden. Und zwar bei dem board, welches von nun an mit dem ISP bespielt werden soll. U.u. sollten auch die FUSE settings angepasst werden, wenn man den bootloader runterputzen will/muss. Zur ermittlung derer siehe meine signatur.

Hier ein beispieleintrag (gueltig bis IDE V0023) von mir (einmal mit bootloader, einmal mit ISP + FUSE bits angepasst --> 512 bytes mehr FLASH frei)

##############################################################
#
# to activate this board, select it and use:
#
# 'Burn Bootloader' - 'w/ USBtinyISP' just once
# this makes sure the correct FUSE settings are used
#
8x8RGBLedMatrix1.name=8x8 RGB LED Matrix - ATmega168 / 16MHz Quartz / USBtiny
8x8RGBLedMatrix1.upload.maximum_size=16384
8x8RGBLedMatrix1.upload.speed=115200
8x8RGBLedMatrix1.upload.using=arduino:usbtinyisp
8x8RGBLedMatrix1.bootloader.low_fuses=0xFF
8x8RGBLedMatrix1.bootloader.high_fuses=0xDD
8x8RGBLedMatrix1.bootloader.extended_fuses=0x05

## just so the IDE doesn't throw an error
## it will be overwritten, but we need the correct FUSE settings
8x8RGBLedMatrix1.bootloader.path=optiboot
8x8RGBLedMatrix1.bootloader.file=optiboot_diecimila.hex
##

8x8RGBLedMatrix1.bootloader.unlock_bits=0x3F
8x8RGBLedMatrix1.bootloader.lock_bits=0x3F
8x8RGBLedMatrix1.build.mcu=atmega168
8x8RGBLedMatrix1.build.f_cpu=16000000L
8x8RGBLedMatrix1.build.core=arduino
#
#
#
##############################################################



##############################################################
#
# to activate this board, select it and use:
#
# 'Burn Bootloader' - 'w/ USBtinyISP' just once
# this makes sure the correct FUSE settings are used
#
8x8RGBLedMatrix2.name=8x8 RGB LED Matrix - ATmega168 / 16MHz Quartz / optiboot Bootloader
8x8RGBLedMatrix2.upload.protocol=stk500
8x8RGBLedMatrix2.upload.maximum_size=15872
8x8RGBLedMatrix2.upload.speed=115200
8x8RGBLedMatrix2.bootloader.low_fuses=0xFF
8x8RGBLedMatrix2.bootloader.high_fuses=0xDD
8x8RGBLedMatrix2.bootloader.extended_fuses=0x04
8x8RGBLedMatrix2.bootloader.path=optiboot
8x8RGBLedMatrix2.bootloader.file=optiboot_diecimila.hex
8x8RGBLedMatrix2.bootloader.unlock_bits=0x3F
8x8RGBLedMatrix2.bootloader.lock_bits=0x0F
8x8RGBLedMatrix2.build.mcu=atmega168
8x8RGBLedMatrix2.build.f_cpu=16000000L
8x8RGBLedMatrix2.build.core=arduino
#
#
#
##############################################################

Ab version 1.0 reicht es aus die zeile "...upload.protocol=..." in 'boards.txt' zu loeschen und den programmer typ im menue auszuwaehlen.

Sehr viel Neuland für mich, das mit den Bootloader.

Verstehe nicht warum er mir den optiboot im menue nicht anzeigt obwohl ich es wie in der Anleitung eingefügt habe.

Wäre es möglich das du mir über Teamviewer das in die Board.txt einfügst?

Vielen Dank.

Teamviewer... ist das irgendwas von windows? Bei mir ist microsoft-freie zone.

Oh mist...

ich habe den Befehl eingebene er lädt leider nicht über USBtiny zeigt nur ein error an.
Dabei ist eigentlich alles richtig angeschlossen, da der normale Bootloader auch wunderbar laufen tut.

Du musst dich schon etwas deutlicher ausdruecken... welcher befehl, was wo eingestellt, exakte fehlermeldungen, welches board...

Ok habs hin bekommen er uploadet wunderbar vom Usbtiny, problem jetzt er spinnt total.
Die Led, pin 13, blinkt nur sehr schwach.

Woran kann das liegen?
Muss ich zusätzlich noch was ändern ?

Das problem liegt in zeile 42!

Zeile 42?

ich habe in die Board.txt den befehl atmega8.upload.using=arduino:usbtinyisp

er lädt über tinyisp, aber egal welchen Code die LED13 blinkt nur sehr schwach obwohl ich sie im programmcode als HIGH geschrieben habe.

Hätte ich vorher noch was machen müssen?
Worin könnte das Problem liegen?

Jedenfalls springt der Code sofort an, das ist echt SUPER!

42

Es handelt sich dabei um die Antwort auf die vom Autor bewusst unklar gelassene Frage „nach dem Leben, dem Universum und dem ganzen Rest“

Das gebe ich immer als antwort, wenn die daten nicht fuer eine sinnvolle ausreichen.

Und wenn ich in meine glaskugel blicke, so sehe ich, dass du vermutlich den pin 13 nicht als ausgang definiert hast. Aber da ich den code nicht sehe (der empfang ist heute schlect), ist das etwas vage.

nicht schlecht... darauf hätte ich auch kommen müssen --- die Zeile hatte ich versehentlich gelöscht und es nicht mitbekommen.

Aber das läuft ja viel zu gut, da muss es doch Nachteile bei dieser Methode geben oder?

Selbstverständlich gibt es auch Schattenseiten...
Du hast die volle Kontrolle über die Fuses und Lockbits, kannst also mit wenigen Handgriffen den Mikrocontroller ins nicht mehr programmierbare Jenseits befördern. ]:smiley:
Spaß beiseite, der Arduino-Ansatz, eine kinderleichte, komplette Entwicklungsumgebung zu haben, wird dadurch aufgeweicht. Zusätzliche Hardware wird benötigt, die Programmierung ist somit risikobehaftet, Fehlerquellen vervielfacht. Aber was solls? So lernt man ja auch mehr über fie Mikrocontroller. Der ISP-Anschluss ist ja auch nicht umsonst auf dem Arduino-Board. :smiley:

... aber egal welchen Code die LED13 blinkt nur sehr schwach obwohl ich sie im programmcode als HIGH geschrieben habe.

pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, HIGH);