Ich bastle zurzeit an einem Projekt herum welches auf dem UNO R3 basiert.
Ich habe eine eigenständige Leiterplatte mit einem Atmega328 (TQFP32) darauf.
Da das PinOut vom TQFP32 und dem MLF-Footprint identisch sind, dachte ich mir, ich brenne gleich den UNO bootloader auf
meine Platte....
Nun hab ich diesbezüglich ein paar Fragen:
-Ich habe die ISP schön sauber auf einem Stecker nach PinOut des AVR mkii. Wie kann ich nun mit dem genannten den Bootloader des UNO auf meinen Atmega brennen?
-Meine Leiterplatte läuft auf 3.3Volt. Ist das ein Problem für den bootloader?
-Kommt der Bootloader mit dem TQFP32 Footprint klar? Das PinOut von UNO und TQFP32 ist meines Wissens identisch
-Auf was sollte ich im Allgemeinen achten wenn ich den bootloader brenne? Gibt es vorarbeiten die geleistet werden müssen?
Ich habe die ISP schön sauber auf einem Stecker nach PinOut des AVR mkii. Wie kann ich nun mit dem genannten den Bootloader des UNO auf meinen Atmega brennen?
z.B. mit der Arduino IDE. Unter Tools->Burn Bootloader (in Deutsch wird's so ähnlich heissen).
Meine Leiterplatte läuft auf 3.3Volt. Ist das ein Problem für den bootloader?
Nein, für den Bootloader nicht, aber vielleicht für die Fuses. Auch sollte man den ATmega328 lt. Datasheet mit 3.3V nur bis ca. 12 MHz betreiben, somit kannst Du den Bootloader für den UNO nicht nehmen, dieser ist für 16 MHz ausgelegt. All das musst Du beachten, wenn Du das richtige Board für das Brennen des Bootloaders auswählst.
Kommt der Bootloader mit dem TQFP32 Footprint klar? Das PinOut von UNO und TQFP32 ist meines Wissens identisch
Der Bootloader muss das nicht wissen, Du musst ihn nur extern richtig beschalten.
Auf was sollte ich im Allgemeinen achten wenn ich den bootloader brenne? Gibt es vorarbeiten die geleistet werden müssen?
Wie gesagt: Du musst das richtige Board auswählen, allenfalls einen neuen Eintrag im boards.txt machen, damit der richtige Bootloader (in Deinem Fall z.B. der für den Lilypad) und die richtigen Fuse-Einstellungen genommen werden.
z.B. mit der Arduino IDE. Unter Tools->Burn Bootloader (in Deutsch wird's so ähnlich heissen).
Jap, ich habe schon gesehen, dass es da einen Eintrag "Bootloader installieren" unter Tools aufgeführt ist...aber wie zum Teufel schaffe ich es, das die IDE mit meinem Programmer kommuniziert? Ich habe einiges dazu gelesen, werde aber nicht wirklich schlau daraus...
Nein, für den Bootloader nicht, aber vielleicht für die Fuses. Auch sollte man den ATmega328 lt. Datasheet mit 3.3V nur bis ca. 12 MHz betreiben, somit kannst Du den Bootloader für den UNO nicht nehmen, dieser ist für 16 MHz ausgelegt. All das musst Du beachten, wenn Du das richtige Board für das Brennen des Bootloaders auswählst.
Aha, der begriff des Bootloaders und dessen Funktion ist mir noch ein wenig schleierhaft aber gut wenn das keine Rolle spielt! Hmm...das mit den 12MHz ist mir wohl durch die Lappen...Aber das ganze auf 5V aufzubohren ist eine kleine Sache
Na dann, ich versuch das mal und hoffe darauf keine Rauchzeichen zu erhalten!
UNOMEGA:
Aha, der begriff des Bootloaders und dessen Funktion ist mir noch ein wenig schleierhaft aber gut wenn das keine Rolle spielt! Hmm...das mit den 12MHz ist mir wohl durch die Lappen...Aber das ganze auf 5V aufzubohren ist eine kleine Sache
der begriff des Bootloaders und dessen Funktion ist mir noch ein wenig schleierhaft
Da kann ich dich vielleicht ein wenig verwirren : Wenn du eh einen Programmer verwendest und nicht über die serielle Schnittstelle "andauernd" neue sketches laden willst, brauchst du gar keinen Bootloader.
Den Bootloader hab ich draufgebracht ohne das was abgeraucht ist...
Danke an sth77 für den Link. Jetzt wird mir einiges klar!
und zum Thema ob mit oder ohne BL:
Ich muss nicht andauernd neue Firmware draufklatschen aber doch ab und an...
Jetzt stellt sich mir aber ein anderes Problem:
Wenn ich über die IDE etwas uploaden möchte kommt immer folgende fehlermeldung:
"avrdude: stk500_getsync(): not in sync: resp=0x00"
alles was es im Internet dazu gibt, hab ich schon gelesen und bin nicht schlauer als zuvor... Weiss jemand was ich falsch mache?
Kurz noch zur Config:
Win7 Enterprise (bin Lokal Admin), 64Bit
Arduino IDE 1.0.2
Arduino UNO R3 -> respektive einen Atmega328AU (ja, ich hab die Checksumme für den Dude umgestellt im Config ^^)
es hängt eigentlich nichts am Pozi ausser Quarz und ein paar C's...
An den SPI leitungen sind Schieberegister dran, alles unbelastet...
Den Bootloader hab ich draufgebracht ohne das was abgeraucht ist...
Welchen Bootloader? Welchen Quartz verwendest Du (Frequenz)? Wie sieht die Stromversorgung aus (am besten komplettes Schaltbild)?
Bis zum ersten erfolgreichen Upload mit einem DIY-Arduino hatte ich auch etwas zu kämpfen. Bei mir wurden die Probleme hauptsächlich von der Stromversorgung verursacht (Flash-Programmierung braucht mehr Strom als der Betrieb).
Ich hab einfach den Bootloader draufgeknallt, welcher in der IDE hinterlegt ist. Ich nehme stark an, dass das der richtige für den 328 sein wird...
Folgendes weiss ich unterdessen:
Auf dem UNO ist ein 328P verbaut und ich hab den "normalen" 328 (also nicht PicoPower/automotive)
Den Bootloader hab ich draufgekriegt in dem ich im AVRDude die DiviceSignature an den "Normalen" angepasst habe (letzter Block von 0x0F auf 0x14)...soweit so gut.
Wenn ich jetzt aber versuche Software zu uploaden, kommt immer der gleiche Fehler: "avrdude: stk500_getsync(): not in sync: resp=0x00"
Was die Beschaltung anbelangt, habe ich mich schön ans datenblatt von atmel gehalten: Stütz-C, 16MHz Osci von SYWARD mit zwei mal 22pF-Cs. Die Spannungsversorgung erfolgt direkt vom Regler her (5V fix -> gemessen mit kalibriertem Messmittel (RUAG ^^) 4.981V, der Regler kann 3A pumpen...) welcher noch mit 10uF/22uF gestützt bzw. gefiltert ist.
Schaltungsmässig ist aus meiner Warte alles i.O -- oder seht ihr das anders?
Wie stellst du die Verbindung zwischen uC und PC her? COM-Port->MAX232 oder USB->UART Adapter? Damit der Bootloader funktioniert, muss der Auto-Reset der Arduino-IDE funktionieren oder du musst manuell den Reset-Button drücken (das soll gehen, aber das Timing habe ich persönlich noch nicht hinbekommen). Für den Auto-Reset wird die DTR-Leitung der seriellen Schnittstelle verwendet ( http://arduino.cc/en/uploads/Main/Arduino_Uno_Rev3-schematic.pdf ). Die CPU-Frequenzen lassen sich übrigens in der boards.txt einstellen bzw. du legst für deine Schaltung ein neues board an.
das soll gehen, aber das Timing habe ich persönlich noch nicht hinbekommen
Während des kompilierens RESET Taster gedrückt halten, und sobald die IDE Upload anzeigt, loslassen.
Eventuell auch in den Einstellungen "Ausführliche Ausgaben" anhaken.
Eine LED am Arduino Rx Pin könnte auch helfen ( aber da kann man auch gleich besser Auto-Reset: das DTR Signal über einen Kondensator an Reset anschliessen )