Forum: Mikrocontroller und Digitale Elektronik Masseprobleme - galvanisch getrennte ISP-Programmer?


von David M. (md2k7)


Lesenswert?

Hallo,

ich habe öfters Probleme mit Massen beim "Arbeiten" (=Basteln) hier in 
der Werkstatt. Das Notebook hängt per Schaltnetzteil am Netz, während 
Fischls usbasp Programmer am Notebook und an der Zielschaltung hängt - 
Massen somit verbunden.

Wenn ich dann gleichzeitig mit dem Oszi irgendwas messen will, wo ich 
die Oszi-Masse (mit PE verbunden) an einen ständig schaltenden (oder 
auch nur nicht-Masse (->Brummen)) Punkt klemme (zB Oszi an Last einer 
H-Brücke), habe ich irgendwo eine zusätzliche Verbindung gebaut, die mir 
so überhaupt nicht passt (in der gleichzeitig gehörten Musik - über 
Audiokabel auch mit dem Notebook massenverbunden - hört man
Piepsen).

So wie ich mir das erklären kann, ist im Schaltnetzteil des Notebooks 
(oder des Verstärkers) PE entweder mit der Ausgangsmasse verbunden, oder 
zumindest per Kondensator gekoppelt.

1. Warum kann bei den ganzen tollen SNTs der Ausgang nicht komplett 
getrennt sein? Bei konventionellen Trafos hatte man das doch auch 
(zumindest die mit Schirmwicklung oder getrennten Kammern...).

2. Welche galvanisch getrennten Programmer kennt ihr? (möglichst billig 
(und) zum Nachbauen)

Gruß
David


P.S. Alternativen die mir dazu einfallen:

- Oszi-Masse immer mit Schaltungsmasse verbinden...
- Notebook auf Akku rennen lassen
- Notebook-Netzteil über Trenntrafo anschließen (oder das Oszi (keine 
Sorge ich würde keine 230V Schaltungen so ausmessen))

aber alles eher umständlich.

von 6645 (Gast)


Lesenswert?

Alle Massen mit einem Kabel verbinden ist das einfachste. Die 
Notebookmasse kommt ueber den Schirm und GND der seriellen 
Schnittstelle.

von David M. (md2k7)


Lesenswert?

Was mich eher stört ist ja eigentlich nur, warum meine Notebookmasse 
gleich PE ist?!


PPS: zwischen Oszi-Masse und z.B. Schaltungsversorgung fließt dann 
scheinbar unbegrenzter Strom (zum Glück habe ich die Schaltung aus einem 
300mA Steckernetzteil versorgt).

Zwischen PE und Schaltungsmasse messe ich aber nur einen Widerstand von 
ca 250 Ohm... -> muss aber ein großer Kondensator sein, der da koppelt?! 
(wenn die 50Hz Brumm da so durchgehen?!)

von Matthias (Gast)


Lesenswert?

Das Problem haben wir hier auch. Das teuflische daran ist, dass bei 
einem Controller mit Debug-Wire (Atmel-AVR), bei einer Verbindung 
Notebook mit Programmer/Debugger und der Schaltung am Labornetzteil eine 
Potentialdifferenz auftreten kann, die sich dann beim Einstecken des 
Programmers an der Schaltung auf den Debug-Wire Eingang (Reset) 
auswirkt.
Dann ist der Controller tot.

Ich hab mich mal umgeschaut was z.B. eine galv. Trennung für USB kosten 
würde. Die Schaltnetzteile haben die zumind. kapazitive Kopplung von GND 
und PE, weil sich darüber EMV Störungen (ESD, etc.) ableiten lassen, die 
man nicht anders weg bekommt.

Ich denke in einem Labor od. einer Bastlerwerkstatt bekommt man das nur 
dann weg, wenn man sich ein schönes Massekonzept überlegt.

Trenntrafo - Galv. Trennung USB - Galv. Trennung Labornetzteil.
Mag jetzt für " 6645" ein wenig übertrieben klingen, aber das Problem 
ist, dass man auch an Schaltungen arbeiten muss, die z.B. intern eine 
galv. Trennung haben. Wenn man dann auf der anderen Seite wieder mit nem 
Oszi od. ähnlichen Geräten ran musss, dann passts mit den Massen wieder 
nicht, da dann der Schaltungseingang wieder eine Rückwirkung auf den 
Schaltungsausgang hat über PE vom Oszi. Da dürfte es nur helfen, wenn 
die einzelnen Komponenten jeweils auf einer "Insel" sitzen (Oszi. 
Labornetzteil, ...)

Oder hat jemand einen anderen Vorschlag?

von ... .. (docean) Benutzerseite


Lesenswert?

Was spricht dagegen die ISP Leitungen über Optokoppler zu führen 
(Datenrichtungen beachten)?

Kann man ja ne Adapter Platine für basteln...

Hatte sowelche Probs bisher nicht (Gott sei Dank)

von Frankl (Gast)


Lesenswert?

Da ich schon Dimmer und H-Brücke geproggt habe, war mir die direkte 
Verbindung zu unsicher. Mein ISP arbeitet seid fünf Jahren mit 
Optokopplern und ich bin zufrienden.

von crappythumb (Gast)


Lesenswert?

Interesse an galv. getrenntem STK500-Programmer mit USB-Schnittstelle?

Habe ich Anfang des Jahres mal designt und seitdem auch problemlos im 
täglichen Gebrauch - nette Nebenfunktion: funktioniert herab bis zu 2,7V 
Target Spannung.

Bei Interesse, eine Email an meinen o.g. Namen plus "@gmx.de" schicken. 
Dann sehen wir weiter... :)

Gruß
H.

von Michael S. (msk) Benutzerseite


Angehängte Dateien:

Lesenswert?

Ich bin auch gerade dabei, meinen ISP mittels Optokoppler auf dem Target 
zu beschalten, weil ich verschiedene Programmer benutzen möchte. Zur 
Zeit versuche ich, das mit dem STK600 als Programmer zum Laufen zu 
bekommen - leider mit wenig Erfolg. avrdude meldet bei 
Programmierversuchen immer "Target reverse inserted". Die Beschaltung 
habe ich schon zigmal überprüft, Reset wird bei dem Programmierversuch 
auch ausgelöst (sehe ich an ein paar LEDs an den Ausgängen des 
Target-Controllers).
Ich nutze den 10-poligen Stecker am STK600.

Nun stellen sich mir folgende Fragen (die ja vielleicht jemand 
beantworten kann, der schon Optokoppler am ISP erfolgreich in Betrieb 
hat):

1. Kann das STK600 (und andere Programmer) die LEDs der Optokoppler und 
die Spannungsversorgung für einen Optokoppler (den für MISO) überhaupt 
treiben? Durch die LEDs fließen jeweils so etwa 7,5 mA, was der eine 
HCPL2630 aufnimmt, kann ich gerade nicht sagen.

2. Ist beim STK600 irgendwas Spezielles zu beachten (Jumper etc.)? Die 
Doku ist leider sehr dürftig. VTarget ist gesteckt.

3. Kann die Beschaltung der Optokoppler Probleme bereiten? Prinzipiell 
habe ich im statischen Zustand (manuell) Ein- und Ausgänge nachgemessen 
- die entsprechen den erwarteten Werten.
Siehe dazu auch mein angehängtes Schaltbildchen (sorry für die 
chaotische Leitungsführung, Kicad ist da nicht sehr kooperativ). P6 ist 
der 10-polige ISP-Stecker auf dem Target, P8 sind Jumper, um die 
Verbindung zwischen Optokopplern und uC kappen zu können, Vcc und GND 
ist die Spannungsversorgung des Targets (5 V)...


Was ich an Problemen ausschließen kann:

1. uC ist nicht "verfust".
2. ISP-Kabel sollte nicht zu lang sein (10 cm).
3. SCK dürfte nicht hoch getaktet sein.
4. Optokoppler sollten flott genug sein (HCPL2630, 10 MBaud)

Irgendwie gehen mir gerade die Ideen für die Fehlersuche aus und ein 
Oszi habe ich leider auch nicht hier... :o(

von Peter D. (peda)


Lesenswert?

@Michael

Mach mal nen ordentlichen Schaltplan, wo man auch was erkennen kann, 
nicht so ein Drahtknäuel.

Benutze Labels, auf beiden Seiten natürlich unterschiedliche, sonst sind 
sie kurzgeschlossen.

Mache eine Seie links und die andere rechts und die OK dazwischen (einen 
umgedreht).


Peter

von Stephan (Gast)


Lesenswert?

@Michael

Ich würde mich mal nach der "ADUMxxxx" Serie bei Analog Devices 
umschauen. Mit denen würdest du das im Aufbau wesentlich einfach 
gestallten können. Früher konnte man diese auch ohne Probleme als 
Samples bekommen(habe lange nicht mehr nachgeschaut).
Habe damit einmal über einen PIC mehrere 4-20mA Konverter ohne Probleme 
betrieben.

greetz

von Michael S. (msk) Benutzerseite


Lesenswert?

So, anbei nochmal die etwas besser gezeichnete Beschaltung des ISP über 
Optokoppler. Ich hoffe, jetzt ist die Schaltung besser nachvollziehbar. 
Ich habe nur die für die ISP-Beschaltung relevanten Dinge gezeichnet, 
alles andere zur besseren Übersicht weggelassen (Spannungsversorgung uC, 
Port-Connectors usw...)

@Stephan: Sind die HCPL2630 grundsätzlich nicht geeignet oder warum 
schlägst Du die ADUMxxxx-Serie vor?

von Michael S. (msk) Benutzerseite


Angehängte Dateien:

Lesenswert?

Mist, Anhang vergessen - hier ist er nun, der übersichtlichere 
Schaltplan...

von AVRuser (Gast)


Lesenswert?

Hallo,

Du hast einen Fehler gemacht, durch den Du keine Potentialtrennung mehr 
hast.
Die Optokoppler 1A und 1B haben, da es ein Baustein ist, eine gemeinsame 
Spannungsversorgung (Pins 5 und 8 bei OK1); die beiden Ausgänge hast Du 
einmal links (Pin 7 an OK1A) und einmal rechts (Pin 6 an OK1B) liegen. 
Das geht so nicht; nun besteht eine leitende Verbindung zwischen den 
beiden Seiten. Für die genannten Optokoppler solltest Du einzelne 
Bausteine verwenden, oder aber dem Hinweis von msk folgen:

Die Trenn-Bausteine "ADUMxxxx" sind ein einziges IC; hier wird  nur eine 
Spannungsversorgung auf beiden Seiten des ICs benötigt (incl. 
Abblock-Kondensatoren), sonst nichts. Es gibt sie mit verschiedenen 
Kanal-Anzahlen und Daten-Richtungen. Sie sind einfach einzusetzen und 
auch recht stromsparend, und sie können (falls nötig) auch verschiedene 
Spannungen auf beiden Seiten des Bausteins verwenden (=> Pegel-Wandler).

von AVRuser (Gast)


Lesenswert?

>oder aber dem Hinweis von msk folgen:

Sorry, ich meinte natürlich "stephan" ... :-))

von Michael S. (msk) Benutzerseite


Angehängte Dateien:

Lesenswert?

AVRuser schrieb:
> Hallo,
>
> Du hast einen Fehler gemacht, durch den Du keine Potentialtrennung mehr
> hast.
> Die Optokoppler 1A und 1B haben, da es ein Baustein ist, eine gemeinsame
> Spannungsversorgung (Pins 5 und 8 bei OK1); die beiden Ausgänge hast Du
> einmal links (Pin 7 an OK1A) und einmal rechts (Pin 6 an OK1B) liegen.

Jep, da habe ich mich nur beim Zeichnen vertan, der OK1B sollte 
eigentlich OK3B sein. Ich habe das mal in der angehängten Schaltung 
berichtigt. So ist es auch auf der Schaltung verlötet.

Prinzipiell sollte die Schaltung aber so funktionieren?

> Die Trenn-Bausteine "ADUMxxxx" sind ein einziges IC; hier wird  nur eine
> Spannungsversorgung auf beiden Seiten des ICs benötigt (incl.
> Abblock-Kondensatoren), sonst nichts. Es gibt sie mit verschiedenen
> Kanal-Anzahlen und Daten-Richtungen. Sie sind einfach einzusetzen und
> auch recht stromsparend, und sie können (falls nötig) auch verschiedene
> Spannungen auf beiden Seiten des Bausteins verwenden (=> Pegel-Wandler).

Klingt sehr gut, die werde ich mir auf alle Fälle mal für die nächste 
Platine anschauen.

von AVRuser (Gast)


Lesenswert?

Von der Schaltung her sollte es funktionieren. Die AVRs können normal 
10mA für die LEDs in den Optokopplern liefern; ob der ISP-Programmer 
dies kann, weiss ich nicht ... (sollte aber eigentlich.)

Ich habe gerade nicht die max. Signal-Frequenz für die Optokoppler zur 
Hand; sollte es Probleme geben, hilft es vielleicht, die 
ISP-Taktfrequenz zu verringern.

von Michael S. (msk) Benutzerseite


Lesenswert?

AVRuser schrieb:
> Ich habe gerade nicht die max. Signal-Frequenz für die Optokoppler zur
> Hand; sollte es Probleme geben, hilft es vielleicht, die
> ISP-Taktfrequenz zu verringern.

Das habe ich auch schon probiert, leider ohne Ergebnis.

Was mich etwas verwundert, ist, dass die Fehlermeldung "Target reverse 
connected" nicht nur dann kommt, wenn ich den Programmierversuch bei 
angeschaltetem Target starte, sondern auch dann, wenn es abgeschaltet 
ist. Ich würde da eher ein "Target not found" erwarten...
Da stellt sich mir die Frage, ob ich vielleicht am STK600 etwas falsch 
gejumpert habe (obwohl es nach nicht viel zu jumpern gibt, VTarget ist 
gesteckt).

von Michael S. (msk) Benutzerseite


Lesenswert?

So, ich habe mir mal den Programmer "USBasp" bestellt und 
zusammengelötet und nun funktioniert auch das Programmieren per 
Optokoppler. freu
Zusätzlich habe ich mal sowohl mit dem STK600 als auch mit dem USBasp 
versucht, ohne Optokoppler zu programmieren. Das geht bei beiden.
Nur das Programmieren per STK600 über die Optokoppler funktioniert 
nicht. Weder am 10-poligen noch am 6-poligen Anschluss.

Im Prinzip fallen mir als Problemquellen dann nur noch ein:

1. Das STK600 kann die LEDs in den Optokopplern nicht treiben.

2. Der High-Pegel am ISP-Anschluss des ist nicht 5 V, wofür aber die 
Vorwiderstände der LEDs ausgelegt sind.

Gegen 1. spricht, dass bei jedem Programmierversuch per STK600 zumindest 
das Reset funktioniert.
Die Pegel bzw. die ganzen Signalfolgen kann ich mir leider mangels Oszi 
nicht anschauen. :o(
Daher die Frage: Weiß jemand, welche Pegel am STK600 am ISP-Anschluss 
anliegen? Die Doku ist ja leider extrem zurückhaltend mit 
Informationen...

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.