Arduino Forum

International => Deutsch => Topic started by: Elektrix on Dec 19, 2017, 08:52 pm

Title: Bootloader in-circiut brennen?
Post by: Elektrix on Dec 19, 2017, 08:52 pm
Hallo allerseits,

ich zeichne gerade den Schaltplan für eine Messplatine, auf der ein ATmega328P in SMD-Version zum Einsatz kommen soll. Ich würde gerne den Bootloader erst auf den Chip brennen, wenn die Platine fertig bestückt ist. Dazu würde ich dann die entsprechenden Programmierpins (MISO, MOSI, SCK) über Jumper führen, damit ich zum Brennen die Verbindungen ins Board auftrennen und dort den Programmierer anschließen kann - soweit klar.

Meine Frage ist, in welchem Zustand sind die I/O-Pins des ATmega während des Brennvorgangs? Im Board hängt da andere Hardware dran und ich will verhindern, daß da komische Sachen passieren. Im Datenblatt (lange Version) des ATmega habe ich nichts darüber gefunden, sonst auch nicht.

Kann mir jemand da weiterhelfen? Würde mich freuen.

Viele Grüße

heliosoph
Title: Re: Bootloader in-circiut brennen?
Post by: postmaster-ino on Dec 19, 2017, 09:04 pm
Hi

Sck wird wohl einen Takt bekommen.
MISO und MOSI wird wohl der Kommunikation zwischen Brenner und Target entsprechen - also irgend ein Digital-Signal.

Sinnvoll wäre Es wohl, wenn Du die Verbindung zu Deiner Peripherie auftrennst, wenn Du per ISP brennst.
Also den ISP-Steckplatz 'ganz normal' verdrahten, daran passiert eh Nichts, wenn nicht Gebrannt wird.
Die Verbindung zur Peripherie mit Jumpern ... wenn Das keinen Vibrationen ausgesetzt ist, wüsste ich nicht, was dagegen spricht.

MfG
Title: Re: Bootloader in-circiut brennen?
Post by: uwefed on Dec 19, 2017, 09:05 pm
Quote
Meine Frage ist, in welchem Zustand sind die I/O-Pins des ATmega während des Brennvorgangs?
Es werden Daten auf (MISO, MOSI, SCK, Reset) übertragen. Deswegen kommt irgendein Rechtecksignal daher.
Die anderen I/O Pins des ATmega sind Eingänge.

Grüße Uwe
Title: Re: Bootloader in-circiut brennen?
Post by: Doc_Arduino on Dec 19, 2017, 09:17 pm
Hallo,

man kann die ISP Leitungen über Längswiderstände entkoppeln, ist aber auch nicht immer nutzbar. Darum zeige ich dir mal die Luxusversion ohne Jumper. Sobald der Programmer aktiv wird zum flashen regelt das Resetsignal alles andere. Alle I/Os des µC musst du selbst per Pullup oder Pulldown auf definierten Pegel halten für deine weitere Schaltung.

(https://forum.arduino.cc/index.php?action=dlattach;topic=517999.0;attach=237903)




Title: Re: Bootloader in-circiut brennen?
Post by: Elektrix on Dec 19, 2017, 09:30 pm
DANKE für die schnellen und kompetenten Antworten!!

Mir gings vor allem darum, ob die I/O Pins Eingänge oder Ausgänge sind. Sie dann auf einen definierten Pegel zu ziehen ist eine gute Idee. Die Schaltung ohne Jumper ist natürlich sehr luxuriös :-)

Danke und einen schönen Abend

Elektrix
Title: Re: Bootloader in-circiut brennen?
Post by: Doc_Arduino on Dec 19, 2017, 11:11 pm
Hallo,

für definierte Pegel musste natürlich nur auf den Leitungen Sorge tragen die in deiner weiteren Schaltung Eingänge sind. Weil sich sonst undefinierter Eingang seitens µC einem undefinierten Eingang seitens der angeklemmten Schaltung gegenüberstehen während der µC im Reset gehalten wird. Gilt natürlich auch generell, falls sonst die Schaltung verrückt spielt. Das als Nachtrag.