Hot Swapping eines Microcontrolles

OP #6312874
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
OP #6312940
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.
Gast #6312968
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.
OP #6312978
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.
#6313153
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.
Gast #6313199
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!
#6313248
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.
OP #6313293
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.
Gast #6313386
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.
#6313408
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.
#6313438
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.
Gast #6313448
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.
Gast #6313493
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
#6313499
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.
Gast #6313842
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.
#6315229
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.
OP #6315254
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren