Forum: Mikrocontroller und Digitale Elektronik Hot Swapping eines Microcontrolles


von Christian P. (cp753951)


Lesenswert?

Hallo Zusammen!

Ich muss bei ca. 100 Atmega328ps Fuses setzen und ein Programm 
draufspielen.
Dafür habe ich mir eine Platine mit einer ZIF Fassung gebastelt, 
allerdings frage ich mich, ob ich guten Gewissens den uC wechseln kann, 
wärend der USB Programmer noch angeschlossen ist und läuft, oder ob ich 
besser jedes Mal das USB Kabel rausziehe. Meine Sorge wäre, dass 
kurzzeitig nur einige Beine kontakt haben.

MfG
Christian

von was (Gast)


Lesenswert?

Christian P. schrieb:
> nur einige Beine

Welche denn? Die allerwenigsten werden für diese Anwendung beschaltet 
sein müssen.

Die die es sein müssen, kann man ja durchspielen.

Hochohmig verhindert relevante Ströme.

von Christian P. (cp753951)


Lesenswert?

Verbunden sind eigentlich nur Reset, SCK, MOSI, MISO, RX, TX, GND und 
VCC.
Ich frage mich halt, was passiert, wenn die Versorgungspinne keinen 
Kontakt mehr haben, aber dafür z.B. einer der Programmier Pinne noch 5V 
vom Programmer bekommt, oder sind dessen Ausgänge hochohmig?

von Einer K. (Gast)


Lesenswert?

Christian P. schrieb:
> oder sind dessen Ausgänge hochohmig?
Dessen?
Wer ist "dessen"?

von Christian P. (cp753951)


Lesenswert?

Arduino Fanboy D. schrieb:
> Wer ist "dessen"?

An der Stelle war der Programmer gemeint, auch wenn sie wahrscheinlich 
nicht hochohmig sind. Ich hatte nähmlich nicht verstanden, was "was" mir 
mit

> Hochohmig verhindert relevante Ströme.

Sagen wollte.

von Einer K. (Gast)


Lesenswert?

Christian P. schrieb:
> An der Stelle war der Programmer gemeint,
Natürlich darfst du deinen Programmer geheim halten.
Ich verstehe dann nur nicht, wie dir irgendjemand deine Frage 
beantworten soll.

Aber was solls, du bekommst das auch so schon hin!
Da bin ich voll Vertrauen!

von Christian P. (cp753951)


Lesenswert?

Achso, ich dachte du meinst ob es sich um den uC oder den Programmer 
handelt. Ich nutze einen pololu usb avr programmer v2.
Wobei ich nicht sehe, warum es bei der Frage, ob ein uC beim raus und 
reinstecken in eine aktive Schaltung beschädigt werden kann, auf den 
genauen Programmer Typ ankommt. Wenn das so kritsch wäre, dann sollte 
ich die Schaltung wohl immer erstmal abschalten.

von Andre (Gast)


Lesenswert?

Christian P. schrieb:
> Atmega328ps

Der kommt im TQFP Gehäuse.. Testkontakte/Federpins & einspielen per ISP 
wäre mein Favorit.

Zur eigentlichen Frage & warum der Programmierer wichtig ist: Falls eine 
Datenleitung Spannung bekommt aber VCC keinen Kontakt hat, fließt Strom 
durch die Schutzdioden und der Chip läuft los.
Das kann problemlos sein. Das kann aber genauso gut für einige seltsame 
Fehler sorgen, z.B. kaputte Pins, Programmierfehler oder Fuses vergurkt 
weil die Spannung wacklig war, ...
Die meisten hochwertigen Programmierer schalten ihre I/Os komplett 
hochohmig wenn nichts läuft, damit wäre das Risiko deutlich geringer.
Bei den Nachbauten weiß man das nicht so genau.

Ich würde da wahrscheinlich einen simplen Schalter und 74HC... 
Bustreiber mit Verzögerung am Enable vorsehen, damit der Controller 
ungestört anlaufen kann.
Und nen Angst-Kerko nah am Sockel.
Als Sahnehäubchen könnte man den Schalter am PC einlesen & den Vorgang 
automatisch starten, plus große pass/fail Anzeige.

Beitrag #6312976 wurde von einem Moderator gelöscht.
von Christian P. (cp753951)


Lesenswert?

Vielen Dank für die ausfürliche Antwort. Tut mir leid, mir war nicht 
bekannt, dass es einen Atmega328ps gibt, ich habe einen 328p und das s 
war als Pulural gemeint.
Wenn ich das richtig verstehe, kann es höchstens passieren, dass der uC 
über die Spannung an einem Pin versucht zu starten. Da der eigentlich 
Programmiervorgang aber doch erst startet, wenn ich die ZIF Fassung 
verriegelt habe und damit ja der Kontakt sicher ist, sollte das doch 
eigentlich kein Problem sein, oder?
Zum programmieren habe ich mir in Atmel Studio soein Production File 
gemacht, wo man dann mit einem Konpfdruck direkt die Fuses und den 
Flashspeicher schreibt und überprüft.

: Bearbeitet durch User
von Axel S. (a-za-z0-9)


Lesenswert?

Christian P. schrieb:

> Ich nutze einen pololu usb avr programmer v2.
> Wobei ich nicht sehe, warum es bei der Frage, ob ein uC beim raus und
> reinstecken in eine aktive Schaltung beschädigt werden kann, auf den
> genauen Programmer Typ ankommt

Wirklich nicht? Dabei ist das doch trivial einzusehen. Ein guter 
Programmer wird alle Anschlüsse der Testfassung hochohmig oder auf GND 
schalten [1] und dem Anwender dann signalisieren, daß er jetzt 
hotpluggen darf.

Und erst wenn der Anwender seinerseits sagt, daß der neue Controller in 
der Fassung steckt, wird Vcc zugeschaltet und an den restlichen 
Leitungen passend gewackelt.


[1] Also z.B. GND bleibt verbunden, Signale werden per Pulldown auf GND 
gezogen, Vcc ist abgeschaltet.

von oszi40 (Gast)


Lesenswert?

Axel S. schrieb:
> Also z.B. GND bleibt verbunden,

Naja so die Hoffnung. Bei schiefem Einstecken könnte die Masse auch der 
letzte kontaktierte Anschluss sein? Inwieweit dabei statische Aufladung 
eine Rolle spielt, wäre auch noch interessant. Über einen Arbeitsstuhl 
kann man "schöne statische Aufladung" erzeugen und messen!

von Rolf M. (rmagnus)


Lesenswert?

Christian P. schrieb:
> Wenn ich das richtig verstehe, kann es höchstens passieren, dass der uC
> über die Spannung an einem Pin versucht zu starten.

Und dass er dadurch kaputt geht. Laut Datenblatt ist es ausdrücklich 
nicht erlaubt. An keinem Pin außer RESET dürfen mehr als Vcc+0,5V 
anliegen.
Die Schutzdioden der I/O-Pins sind halt nicht dafür gedacht, dass über 
sie der µC versorgt wird.

oszi40 schrieb:
> Axel S. schrieb:
>> Also z.B. GND bleibt verbunden,
>
> Naja so die Hoffnung. Bei schiefem Einstecken könnte die Masse auch der
> letzte kontaktierte Anschluss sein?

Und? Das ist ja kein Problem, so lange alle anderen Pins auch auf GND 
liegen oder hochohmig sind.

> Inwieweit dabei statische Aufladung eine Rolle spielt, wäre auch noch
> interessant. Über einen Arbeitsstuhl kann man "schöne statische Aufladung"
> erzeugen und messen!

Dafür gibt's entsprechendes ESD-Equipment, das bei professioneller 
Arbeit ja wohl hoffentlich vorhanden ist.

von Christian P. (cp753951)


Lesenswert?

Danke für die Antwort, ich werde die Schaltung dann wohl besser immer 
ausschalten.

> Dafür gibt's entsprechendes ESD-Equipment, das bei professioneller
> Arbeit ja wohl hoffentlich vorhanden ist.

Das mag ja sein, nur mach ich das halt als Hobby zuhause, ich kann mir 
ja ein ESD Armband anziehen.

: Bearbeitet durch User
von oszi40 (Gast)


Angehängte Dateien:

Lesenswert?

Rolf M. schrieb:
> Das ist ja kein Problem, so lange alle anderen Pins auch auf GND
> liegen oder hochohmig sind.

Bilder sagen mehr als Worte.  Einen statisch aufgeladenen Chip sollte 
man möglichst so einsetzen ,daß die Entladung nie über die 
empfindlicheren Eingangsstufen stattfindet. 100x Schrott wäre viel 
Lehrgeld.

von buggy (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:
> Christian P. schrieb:
>> An der Stelle war der Programmer gemeint,
> Natürlich darfst du deinen Programmer geheim halten.
> Ich verstehe dann nur nicht, wie dir irgendjemand deine Frage
> beantworten soll.
>
> Aber was solls, du bekommst das auch so schon hin!
> Da bin ich voll Vertrauen!

Schön, wie hier immer irgend jemand rumpissen muss. Von dir ist man ja 
auch nix anderes gewohnt...

Hättest du mal alleine "Programmer?" geschrieben, hättest du 
Tastaturabnutzung verhindert und jemand anderem geholfen. So hast du nur 
dein Ego in Himmel hoch geschossen.

PS: Meine Tippse kommt vom Sperrmüll. Kostet mich nix.

von F. F. (foldi)


Lesenswert?

Christian P. schrieb:
> Dafür habe ich mir eine Platine mit einer ZIF Fassung gebastelt,
> allerdings frage ich mich, ob ich guten Gewissens den uC wechseln kann,
> wärend der USB Programmer noch angeschlossen ist und läuft,

Nicht gerade hunderte, aber bei den Attiny10 mache ich das so. 
Allerdings schalte ich die Stromversorgung kurz aus, für den Wechsel.
Ich lese den nächsten Controller aber wieder im Atmel Studio ein; also 
Spannung Check.

: Bearbeitet durch User
von Axel S. (a-za-z0-9)


Lesenswert?

Rolf M. schrieb:
> oszi40 schrieb:
>> Axel S. schrieb:
>>> Also z.B. GND bleibt verbunden,
>>
>> Naja so die Hoffnung. Bei schiefem Einstecken könnte die Masse auch der
>> letzte kontaktierte Anschluss sein?
>
> Und? Das ist ja kein Problem, so lange alle anderen Pins auch auf GND
> liegen oder hochohmig sind.

Gut. Wenigstens einer hat es verstanden. Abgesehen davon sprach ich 
natürlich von den Pins der Testfassung, nicht von denen des µC.
Darum geht es ja gerade beim Hotplugging, daß deren Zustand für eine 
gewisse Zeit unbekannt ist.

von M. Agnet (Gast)


Lesenswert?

Axel S. schrieb:
> Ein guter
> Programmer wird alle Anschlüsse der Testfassung hochohmig oder auf GND
> schalten [1]

Ein derartiger Programmer ist ggfs. unbrauchbar.
Reset wird zum Programmieren auch genutzt, kann aber auch zum IO 
umgefust werden. Wenn das Programm den Reset-IO für irgendwas benutzt 
und den auf 1 schaltet (z.B. für eine Betriebsanzeige), dann schießt der 
Programmer diesen Pin zuverlässig ab.

von Oliver S. (oliverso)


Lesenswert?

Bei 100 Stück und diesen Fragen könnte man auch mal nach 
Programmierservice googlen.

Oliver

von fchk (Gast)


Lesenswert?

Christian P. schrieb:
> Danke für die Antwort, ich werde die Schaltung dann wohl besser
> immer
> ausschalten.

Du kannst auch beispielsweise so etwas zwischen Programmer und Sockel 
schalten:

https://www.ti.com/lit/ds/symlink/sn74cbt3245a.pdf

Während des Programmierens wird OE auf Low gehalten, beim Wechseln auf 
High. Bei High werden die Pins hochohmig, und Du kannst dann den Chip 
wechseln.

Zusätzlich solltest Du an jedem angeschlossenen Pin eine ESD-Schutzdiode 
anbringen. Sowas z.B.

https://www.semtech.com/products/circuit-protection/esd-protection/uclamp0501h

fchk

von Axel S. (a-za-z0-9)


Lesenswert?

M. Agnet schrieb:
> Axel S. schrieb:
>> Ein guter
>> Programmer wird alle Anschlüsse der Testfassung hochohmig oder auf GND
>> schalten [1]

> Ein derartiger Programmer ist ggfs. unbrauchbar.

Das mit dem Zitieren mußt du noch üben. Pro-Tip: man schneidet beim 
zitieren nicht Teile weg, die eine Aussage tragen.

> Reset wird zum Programmieren auch genutzt, kann aber auch zum IO
> umgefust werden. Wenn das Programm den Reset-IO für irgendwas benutzt
> und den auf 1 schaltet (z.B. für eine Betriebsanzeige), dann schießt der
> Programmer diesen Pin zuverlässig ab.

Du bist verwirrt. Wenn die Betriebsspannung abgeschaltet ist, dann 
passiert gar nichts, wenn der µC in die Fassung gesteckt wird. 
Insbesondere wird an keinem Pin ein H ausgegeben.

von Einer K. (Gast)


Lesenswert?

buggy schrieb:
> Schön, wie hier immer irgend jemand rumpissen muss. Von dir ist man ja
> auch nix anderes gewohnt...
Du bist ja mal ein lustiger Vogel....
Der einzige, der ohne jede Fachlichkeit in den Thread grätscht...
Genau DAS tut, worüber er sich aufregt.

Habe für dich einen Antrag auf unbefristete Merkbefreiung gestellt.
Ich denke mal, als Regelstab in einem Schwerwasserreaktor machst du 
sicherlich eine gute Figur.

von Pandur S. (jetztnicht)


Lesenswert?

ZIF Fassung ? Ein Mega wird doch eh Incircuit programmiert, was soll da 
ein Sockel ?

Der Poster ist ein Troll, er die letzten 30 Jahre geschlafen hat...

von Christian P. (cp753951)


Lesenswert?

Joggel E. schrieb:
> ZIF Fassung ? Ein Mega wird doch eh Incircuit programmiert, was soll da
> ein Sockel ?
>
> Der Poster ist ein Troll, er die letzten 30 Jahre geschlafen hat...

Was soll denn diese Unterstellung?
Ich habe die Atmegas halt schon hier, die Platinen sind aber noch in 
Fertigung, da wollte ich halt schonmal das Programm drauf laden.

von Thomas Z. (usbman)


Lesenswert?

Christian P. schrieb:
> Ich habe die Atmegas halt schon hier, die Platinen sind aber noch in
> Fertigung,

Wegen 100 Controller so ein Aufwand? Ich behaupte in der Schaltung 
programmieren ist sehr viel einfacher.
So muss jeder aus der Stange raus programmiert werden  und in eine 
Stange wieder reingesteckt werden. Dann wieder raus wenn er denn in die 
Schaltung kommt.
Ich gehe hier von DIL aus, weil sonst macht das Ganze überhaupt keinen 
Sinn.

von Christian P. (cp753951)


Lesenswert?

Thomas Z. schrieb:
> Wegen 100 Controller so ein Aufwand? Ich behaupte in der Schaltung
> programmieren ist sehr viel einfacher.
> So muss jeder aus der Stange raus programmiert werden  und in eine
> Stange wieder reingesteckt werden. Dann wieder raus wenn er denn in die
> Schaltung kommt.

Natürlich ist es effizienter das in der Schaltung zu machen. Nun habe 
ich aber halt jetzt die Zeit dafür und werde es deshalb vorher machen.

Ich wollte mich noch bei allen für die konstruktiven Beiträge bedanken, 
ich werde wohl vor dem Wechsel des ICs die Spannung immer abstellen.

MfG

Christian

von Teo D. (teoderix)


Lesenswert?

Christian P. schrieb:
> ich werde wohl vor dem Wechsel des ICs die Spannung immer abstellen.

Quark, mach hinne!
Einen so dämlich (bzw. mit ABSICHT) konstruierten Programmer müßtest du 
dir schon selber stricken!

von oszi40 (Gast)


Lesenswert?

Christian P. schrieb:
> Nun habe
> ich aber halt jetzt die Zeit dafür und werde es deshalb vorher machen.

WENN Du sicher bist, dass es dann funktioniert. Wahrscheinlich würde ich 
erst mal 3 testen bevor ich 100 zu Schrott mache.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.