Forum: Mikrocontroller und Digitale Elektronik Isolation und Pegelanpassung bei Programmierern und Debuggern


von Heinz-Wilhelm F. (h-w-frickelfixer)


Angehängte Dateien:

Lesenswert?

Willkommen geneigte Forumsbeitragleser,

In diesem Forenbeitrag würde ich gerne die Planung und das Entwurf eines 
Adapters diskutier und dokumentieren, der in die Kabelverbindung 
zwischen dem Programmierer/Debugger und der Zielhardware eingefügt wird 
und den Programmierer/Debugger von der Zielhardware isolieret sowie die 
oftmals benötigte Pegelwandlung durchführen.

Ich habe, wie sicherlich viele hier, den Bedarf und hätte dafür am 
liebsten ein generelle Lösung,die vielleicht nicht die Preiswerteste 
aber dem aktuellen Stand der Technik entspricht, zuverlässig und einfach 
(nach zu) bauen ist.

Dafür benötigte ich EURE Hilfe, mir fehlt die praktische Erfahrung und 
auch so einiges an Hintergrundwissen.

Final soll ein Wiki Eintrag entstehen, der eine geprüfte Lösung 
umschreibt, die jeder einfach nachvollziehen und nachbauen kann.

.
Anforderungen:

Isolation:
keine gemeinsamen Massen – Bummschleifen, Einstreuung ...
Isolation gegen Fehlspanngen - Netzspannung an der Zielhardware ...

Pegelanpassung:
weit verbreitetet Programmierer/Debugger Spannungen – 3,3V; 5V
wandeln in
weit verbreitetet Zielhardwarespannungen – 1,8V; 3,3V; 5V

Bandbreite:
so schnell wie möglich:

Kanalanzahl:
mindestens 2 – seriell TX RX
maximal ? - abhängig von Bedarf und verfügbarer Hardware

.
Begriffsdefinitionen:
siehe Anhang: Schema und Begriffe – Bitte auf Fehler prüfen

PC - PC, Laptop... Code bereitstellen, PUD steuern
PUD - Programmierer,Debugger... Signal- und Protokollumsezter zur ZHW
ZHW - Zielhardware... das was Programmiert werden soll
IUP - derZuEntwerfendeAdapter für Isolation und Pegelanpassung
PWPUD - Pegelwandler im IUP der mit dem PUD Hardware verbunden ist
PWZHW - Pegelwandler im IUP der mit dem ZHW Hardware verbunden ist

von Peter D. (peda)


Lesenswert?


von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

Hallo Heinz,

Die Frage ist, für welche Schnittstellen möchtest Du das machen? Mit 
fallen spontan SWD und JTAG ein. SWD wäre etwas kniffeliger, weil es 
dort ein bidirektionales Signal gibt.

Ich entwickle gerade einen kabellosen SWD debugger. Das löst das 
Isolationsproblem schon mal. Hat noch ein paar andere nette 
Eigenschaften, aber antürlich das Problem, dass die Bandbreiten nicht so 
hoch sind, wie z.B. bei einer Anbindung via USB.

Bei der galvanischen Trennung von Kabel gebundenen debuggern, würde ich 
evtl. einfach z.B. an der USB-Schnittstelle ansetzen. Das wäre in Deiner 
Grafik dann zwischen dem ersten und zweiten, grünen Kästchen.

liebe Grüße,

Torsten

von Heinz-Wilhelm F. (h-w-frickelfixer)


Lesenswert?

Dann Fang ich mal mit dem mir am klarsten Punkt an:

Pegelanpassung:
PWZHW:
Aus den Schema geht hervor PWZHW des IUP wird aus der ZHW versorgt.
Also ist die Versorgungsspannungen der ZHW gleich dem Pegel im PWZHW.
5V - ist noch oft zu finden - also auf jeden Fall unterstützen
3,3V - ist ja zur Zeit Standard
1,8V - viele stromsparenden Mikrokontroller (Bluetooth) arbeiten auch 
mit dieser Spannungsebene,
ich zum Beispiel möchte gern mit den nRF51822 rumspielen, 
Spannungsversorgung aus Supercap 2,7Vmax

Seht Ihr noch andere Max Min Spannungen als?
Vmax 5V
Vmin 1,8V

PWPUD:
Die Spannugsversorgung PWPUD des IUP erfolgt aus dem PUD.
Viele PUD unterstützen 5V oder 3,3V, manche kann man umschalten.

Seht Ihr noch andere anders Spannungsebenen als?
Vmax PWPUD 5V
Vmin PWPUD 3,3V

Einige Programmierer messen die Spannung der ZHW und passen dann der 
Pegel an.
Bei meinem AVR Dragon (VTG PIN) soll das der Fall sein.
Bei einigen Programmierern (Segger J-link) für ARM Cortex Prozessoren 
via SWD gibt es einen Vtref PIN.
Ich nehme mal an, da wird auch die Targetspannung gemessen und dann 
eingestellt.

Hier brauch ich Eure Mithilfe, mir fehlt die praktische Erfahrung, was 
macht man mit solch einem Target-Spannung-Erkennugs-PIN am besten?

Ist die Anforderungen bezüglich Pegelanpassung damit schon erledigt oder 
gibt’s da noch was, was ich vergessen habe?

von HansG (Gast)


Lesenswert?

Aber warum erst so spät isolieren ?
Warum nicht bereits an der Schnittstelle PC <-> Programmer ?
Das ist im Gegensatz zur Vielfalt an prozessorspezifischen 
Programmierschnittstellen eine Standardschnittstelle, (USB, RS232..), da 
gibt es genug fertig zu kaufen.

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

Heinz-Wilhelm F. schrieb:
> Pegelanpassung:

> ich zum Beispiel möchte gern mit den nRF51822 rumspielen,

Der kann z.B. nur SWD und damit reicht eine einfache unidirektionale 
galvanische Trennung und Pegelanpassung nicht aus. Du must an der Stelle 
das Protokoll beobachten, um zu wissen in welcher Richtung das SWDIO 
Signal geht.

Der Default ist: Debugger -> Target

Dazu müsstest Du dann noch einen kleinen Zustandsautomaten haben, der 
die Richtung auf der Leitung erkennt.

von Falk B. (falk)


Lesenswert?

Ein schnöder USB-Isolator tut das alles für fast jeden beliebigen 
Programmieradapter zum kleinen Preis. Problem gelöst.

Wieder mal ein schönes Beispiel, wie man Probleme akademisch aufblasen 
kann . . .

: Bearbeitet durch User
von Frank K. (fchk)


Lesenswert?

Falk B. schrieb:
> Ein schnöder USB-Isolator tut das alles für fast jeden beliebigen
> Programmieradapter zum kleinen Preis. Problem gelöst.
>
> Wieder mal ein schönes Beispiel, wie man Probleme akademisch aufblasen
> kann . . .

Wenn Du mit einem XDS560v2 Debug/Trace für 1k5€ arbeiten würdest, 
hättest Du die Isolation sicher auch vor der teuren Probe anstelle 
dahinter. Und ab USB2 High Speed ist die galvanische Isolation auch 
nicht mehr so billig.

Tellerrand, sage ich da nur.

PS: Andere Leute haben das Problem so gelöst:
https://www.nxp.com/docs/en/application-note/AN5233.pdf
http://www.st.com/content/ccc/resource/technical/document/user_manual/67/7e/03/07/81/c3/49/9f/CD00149078.pdf/files/CD00149078.pdf/jcr:content/translations/en.CD00149078.pdf
https://hohlerde.org/rauch/elektronik/projekte/iso-dragon/index.en.html

Ich würde das hier für eigene Konstruktionen empfehlen:
http://www.analog.com/en/products/interface-isolation/isolation/standard-digital-isolators/adum241e.html

fchk

von Falk B. (falk)


Lesenswert?

@ Frank K. (fchk)

>> Wieder mal ein schönes Beispiel, wie man Probleme akademisch aufblasen
>> kann . . .

>Wenn Du mit einem XDS560v2 Debug/Trace für 1k5€ arbeiten würdest,
>hättest Du die Isolation sicher auch vor der teuren Probe anstelle
>dahinter.

Jaja, die liebe Paranoia und die Vollkaskomentalität. Mann O Mann.

> Und ab USB2 High Speed ist die galvanische Isolation auch
> nicht mehr so billig.

Billiger als 1500 Euro auf jeden Fall.

https://www.nxp.com/docs/en/application-note/AN5233.pdf
http://www.st.com/content/ccc/resource/technical/d...

>https://hohlerde.org/rauch/elektronik/projekte/iso...

naja, allein die URL sagt alles . . .

"Finally, connecting the target's ground to your computer's ground 
should be optional, not mandatory."

Schwachsinn^3. Eben halt die typische Galvanische Trennungs-Manie!


>Ich würde das hier für eigene Konstruktionen empfehlen:
>http://www.analog.com/en/products/interface-isolat...

Ja und? Die Dinger sind gut, aber für einen vollständigen Isolator 
braucht es noch ne Menge Arbeit. Und Know How.

Außerdem. Wie oft raucht ein Programmieradapter ab, wenn man ansatzweise 
weiß was man tut? Die Mega-Frickler mit Nano-Wissen zählen hier nicht!

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

Falk B. schrieb:

>
> Außerdem. Wie oft raucht ein Programmieradapter ab, wenn man ansatzweise
> weiß was man tut? Die Mega-Frickler mit Nano-Wissen zählen hier nicht!

Falk, wenn Dich das Thema nicht interessiert: was spräche den dagegen, 
es einfach zu ignorieren?

von Falk B. (falk)


Lesenswert?

@Torsten Robitzki (Firma: robitzki.de) (torstenrobitzki)

>Falk, wenn Dich das Thema nicht interessiert: was spräche den dagegen,
>es einfach zu ignorieren?

Warum? Es steht einfach mal Aussage gegen Aussage. Und einer muss ja mal 
ne Gegenposition zu den ewig gleichen Bedenkenträgern einnehmen. Es ist 
ein Scheißjob, aber einer muss ich tun. Mach ich gern. ;-)

von Til S. (Firma: SEGGER) (til_s)


Lesenswert?


von Heinz-Wilhelm F. (h-w-frickelfixer)


Lesenswert?

@ falk
allgemein:

Bedenkenträgern sind immer gern willkommen

also Pegelwandeln muss ich oft schon zwischen PUD und ZHW
bei ADU und Co gibt’s Isolation gleich oben mit drauf
von daher ist dies für mich die richtige Stelle für eine Isolation.
Ich möchte den PUD auch schützen, wenn er keine 1500 Euro kostet,
wenn der kaputt geht steht man erst mal ohne da,
nicht jeder hat Schubladen voll von den Teilen.

Sicher gibt es Menschen die keine Fehler machen.
Immer das Potential zwischen den Komponenten und gegen Erde messen bevor 
Sie diese verbindet.
Immer dafür sorgen, dass, selbst im Fehlerfall, die Netzspannung nicht 
an den PUD gelangen kann.
Ich gehöre leider nicht zu diesen Menschen die keine Fehler machen und
als Frickler habe ich auch nicht für alles das benötigte Equipment.

Dieser Adapter soll dabei helfen, ZHW und PUD oder ähnliche Komponenten 
möglichst sicher zu trennen und soll dazu beitragen, dass Fehler 
möglichst geringen Folgen haben.

Isolation:
Das Thema Isolation ist schon komplexer und
in der Phase von Anforderung und Entwurf
schwer zu fassen, da zum Beispiel die Daten der verfügbaren Hardware 
fehlen.

Klar ist das für durchgängige Isolation jede Komponente einzeln geprüft 
werden muss.
Hier geht es aber erst mal nur um den IUP,
die weiteren Komponenten sind ja nicht wirklich bekannt.

Was verstehst du unter einem „vollständigen Isolator“ ?
Welche Anforderungen würdest Du an Isolation stellen?

von Stefan F. (Gast)


Lesenswert?

Angesichts der Tatsache dass man handelsübliche USB Isolatoren ab 10 
Euro haben kann, ist jede weitere Planung in diesem Bereich reine Zeit 
und Geld Verschwendung.

Weiterhin braucht man während des Debuggens nur sehr selten eine 
universelle Pegelanpassung, wie sie zum Beispiel die teuren Geräte von 
Atmel enthalten.

Ich finde zwar schön, dass man die gängigen Mikrocontroller aufgrund 
ihres weiten Spannungsbereiches sehr gut an Batterien betreiben kann. 
Doch beim Debuggen kann ich gut und gerne damit leben, mich auf 5V oder 
3,3V zu beschränken.

Eine Deppensichere Lösung die Mensch und Maschine vor allen denkbaren 
Fehler schützt wird unverhältnismäßig teuer, hat mit Sicherheit 
Nebenwirkungen und verleitet zum Leichtsinn.

Normale Menschen experimentieren zuerst an alten Computern und mit 
billigen Bauteilen. Sollte es dabei mal knallen, muss man dem Schrott 
nicht lange nachtrauern. Man bekommt automatisch einen bleibenden 
Eindruck ins Hirn gebrannt, der einen in Zukunft stets daran erinnert, 
besser aufzupassen.

By the Way: In meiner Küche steht ein Gasherd, wir kochen dort mit 
offenem Feuer. Der Toaster hat offene Glüh-Drähte. Und in der 
Besteck-Schublade liegen scharfe Küchenmesser zwischen den 
Brot-Schmier-Messern. Was für ein Wahnsinn, das muss alles abgesichert 
werden! Ohne Schutzkleidung darf niemand mehr die Küche betreten. Und 
erst die Kinder, die hätten wir gar nicht erst in die Welt setzen 
dürfen. Schlimm schlimm.

> Wieder mal ein schönes Beispiel, wie man Probleme akademisch
> aufblasen kann

Exakt. Das nennt man Over-Engineering.

von Frank K. (fchk)


Lesenswert?

Stefan U. schrieb:
> Angesichts der Tatsache dass man handelsübliche USB Isolatoren ab 10
> Euro haben kann, ist jede weitere Planung in diesem Bereich reine Zeit
> und Geld Verschwendung.
>
> Weiterhin braucht man während des Debuggens nur sehr selten eine
> universelle Pegelanpassung, wie sie zum Beispiel die teuren Geräte von
> Atmel enthalten.
>
> Ich finde zwar schön, dass man die gängigen Mikrocontroller aufgrund
> ihres weiten Spannungsbereiches sehr gut an Batterien betreiben kann.
> Doch beim Debuggen kann ich gut und gerne damit leben, mich auf 5V oder
> 3,3V zu beschränken.

Du vielleicht. Du bist aber auch nur ein einfacher AVR-Bastler. Im 
echten Leben gibts noch viel mehr:
Controller mit integrierten 24 Bit ADCs, wo Du möglichst wenig Störungen 
über Deine Probe einbringen willst und deswegen ein vitales Interesse 
daran hast, die Isolationsbarriere möglichst dicht am Controller zu 
haben. Würdest Du das Debugger-USB mit vor die Isolationsbarriere 
nehmen, würdest Du von den 24 Bit garantiert die untersten 6 Bit 
versauen. Mindestens.
Controller, bei denen das Bezugspotential auf einigen 100V und mehr 
liegt, wie man es in der Energietechnik mitunter findet. Das ist 
definitiv nicht mehr SELV, sondern nachhaltig ungesund.
Controller, die nur noch mit 1.8V oder 1.2V Kernspannung arbeiten und 
auch debuggt und programmiert werden müssen.

Nur weil etwas in deiner kleinen Welt nicht existiert und nie existieren 
wird, ist es nicht gleich völliger Unsinn. Du gehörst einfach nicht zur 
Zielgruppe.

Es gibt durchaus sinnvolle Begründungen für das Ansinnen des OP. Einige 
davon habe ich genannt. Und die sind nicht akademisch sondern 
industriell. Und neben mir verdienen vielleicht auch einige andere 
Mitleser hier damit gutes Geld damit.

fchk

von Stefan F. (Gast)


Lesenswert?

Ist dieses Forum hier denn die richtige Anlaufstelle für industrielle 
Entwicklungen?

von Heinz-Wilhelm F. (h-w-frickelfixer)


Lesenswert?

@alle

So einen USB Isolator hat hoffentlich jeder zu Hause liegen.
Ich glaube nicht das der Diskussionswürdig ist.

Warum sollte die angestrebte Lösung so wie komplizierte als die ADUM USB 
Isolator Lösung sein?

Bei den ADUMs gibs menge Auswahl, wie den schon erwähnten ADUM240D.

Im Schema ist (hoffentlich) deutlich zu erkennen, das die Pegelanpassung 
damit erreicht wird, dass man die Versorgungsspannung an die 
dazugehörige Seite des Adapters anschließt, das wars.
Isolation ist dann an der Stelle auch schon passiert.


Es geht hier erstmals darum die Anforderungen zu Definieren, dann das 
Design zu machen und
und mit Eurer Hilfe die Stolpersteine zu finden und hoffentlich zu 
beseitigen.

von Heinz-Wilhelm F. (h-w-frickelfixer)


Lesenswert?

@torstenrobitzki
interessantes Projekt kabellosen SWD debugger
bei mir geht’s eher um eine möglichst Protokoll unabhängigen Adapter
also von Serial, SWD, JTAG, ISP, I2C ...
wirklich nur Isolieren und Pegelwandeln – Protokoll sollte eigentlich 
egal sein

Allerdings hast Du einen Knackpunkt schon gefunden.
Bei SWD (ARM) und DebuggWire (Atmel) gibt es bidirektionale 
Kommunikation über eine Leitung (über einen PIN). Bei Segger hat man das 
so gelöst.
https://www.segger.com/products/debug-probes/j-link/accessories/isolators/j-link-swd-isolator/
Der Verwendete Hochgeschwindigkeitsoptokoppler hat den Charme,
dass das Bidirektionale (ein PIN) Signal in 2 unidirektionale Signale 
aufteilt wird, indem einfach 2 Ports in unterschiedliche Richtung 
benutzt werden,
elektrisch dank der Dioden in Sperrrichtung kein Problem.

Nur haben Optokoppler Probleme mit Geschwindigkeit, Spannungspegel und 
Preis.
Weshalb ich eher in Richtung ADUM oder TI ISO gehen würde.
Wie die korrekte Beschaltung aussieht für: mach aus einmal bidirektional 
zweimal unidirektional und zurück, ist mir noch nicht ganz klar.
Da wäre ich für EURE Hilfe dankbar.

von Falk B. (falk)


Lesenswert?

@Heinz-Wilhelm Frickel (h-w-frickelfixer)

Der Name ist Programm?

>also Pegelwandeln muss ich oft schon zwischen PUD und ZHW
>bei ADU und Co gibt’s Isolation gleich oben mit drauf

km/h, ICE, und Eschede
PVC, FCK is nich OK. ;-)


>von daher ist dies für mich die richtige Stelle für eine Isolation.
>Ich möchte den PUD auch schützen, wenn er keine 1500 Euro kostet,
>wenn der kaputt geht steht man erst mal ohne da,

Jaja, passiert auch jeden Tag und dann bricht die Fricklerwelt zusammen.

>Sicher gibt es Menschen die keine Fehler machen.

Nur wer nichts macht, macht nichts falsch.
Darum geht es gar nicht. Sondern um die Verhältnismäßigkeit bzw. 
Wahrscheinlichkeit von Fehlern und deren Folgen.

>Immer das Potential zwischen den Komponenten und gegen Erde messen bevor
>Sie diese verbindet.

Unsinn.

>Immer dafür sorgen, dass, selbst im Fehlerfall, die Netzspannung nicht
>an den PUD gelangen kann.

Das ist ein anderes Thema. Bei solchen Schaltungen ist eine Trennung + 
Schutz zweifelsohgne richtig und wichtig.

Aber wieviel Bastler machen das? Wieviele Paranoide und latent paranoide 
leben in der ständigen Angst, es könnte was kaputt gehen. OMG! Wir 
werden alle sterben!

>Ich gehöre leider nicht zu diesen Menschen die keine Fehler machen und
>als Frickler habe ich auch nicht für alles das benötigte Equipment.

Dort liegt dein Problem. Du frickelst, anstatt hin wund wieder mal in 
Ruhe und mit solidem Arbeiten Probleme weitestgehend zu vermeiden. Das 
gilt nicht nur für Profis, auch für Bastler.

>Dieser Adapter soll dabei helfen, ZHW und PUD oder ähnliche Komponenten
>möglichst sicher zu trennen und soll dazu beitragen, dass Fehler
>möglichst geringen Folgen haben.

Idiotensichere Dinge werden nur von Idioten benutzt.


>Das Thema Isolation ist schon komplexer und
>in der Phase von Anforderung und Entwurf
>schwer zu fassen, da zum Beispiel die Daten der verfügbaren Hardware
>fehlen.

Hier wird scho wieder arg akademisch/philosophisch. Willst du den Stein 
der Weisen finden?

>Was verstehst du unter einem „vollständigen Isolator“ ?

Ich hab gar nicht das Bedürfnis, diesen Begriff zu definieren.

>Welche Anforderungen würdest Du an Isolation stellen?

Endliche.

Beitrag "Re: ISP sicher an PC ("USB-Isolator"?)"

Das ist KEINE eierlegende Wollmilchsau sondern eine pragmatische Lösung. 
Er kann nur 3,3V IO-Spannung, hat einfachen ESD-Schutz und fertig. Wenn 
auf dem Zielboard eine höhere Spannung den Weg zur 3,3V findet, sind 
zumindest die ISO-Koppler kaputt. So what! Kann man ggf. tauschen. Die 
Isolationsspannung wird durch die ISO-Koppler auf 4-5kV begrenzt, das 
reicht aber für eine sichere Netztrennung. Mehr schaffen handelsübliche 
Netzteile auch nicht.

K.I.S.S. !!!

von Gerhard O. (gerhard_)


Lesenswert?

Bei mir diente bei einem STM32 Projekt in der Firma ein HC-05 Blutooth 
Serial Link um Schleifen zwischen PC und Meßgeräte zu vermeiden. 
Funktionierte wunderbar.

von Falk B. (falk)


Lesenswert?

@Heinz-Wilhelm Frickel (h-w-frickelfixer)

>bei mir geht’s eher um eine möglichst Protokoll unabhängigen Adapter
>also von Serial, SWD, JTAG, ISP, I2C ...
>wirklich nur Isolieren und Pegelwandeln – Protokoll sollte eigentlich
>egal sein

Also die eierlegende Wollmilchsau. Das geht regelmäßig schief ;-)
Aber mach mal.

von Frank K. (fchk)


Lesenswert?

Heinz-Wilhelm F. schrieb:
> @torstenrobitzki
> interessantes Projekt kabellosen SWD debugger
> bei mir geht’s eher um eine möglichst Protokoll unabhängigen Adapter
> also von Serial, SWD, JTAG, ISP, I2C ...
> wirklich nur Isolieren und Pegelwandeln – Protokoll sollte eigentlich
> egal sein

Protokoll ja. Treiber nicht. Vergiss es einfach.

Es gibt beispielsweise bidirektionale Levelshifter. Die sind aber mit 
Vorsicht zu genießen, denn die automatische Erkennung der 
Übertragungsrichtung ist trickreich, und schon ein einfacher 10k Pullup 
kann reichen, damit das ganze nicht mehr funktioniert. Eine universelle 
Allzwecklösung für Inputs, Push-Pull Outputs und OpenDrain I/O kann es 
daher nicht geben - das geht nicht.

Ein Isolationsadapter ist daher immer schnittstellenspezifisch.

Am sichersten ist es, wenn die Debug Probe die Datenrichtungsumschaltung 
steuert. Die kennt ja ihr Protokoll. Microchip macht das beim Isolator 
für ICSP in Verbindung mit dem RealIce so.

Es gibt bidirektionale Isolatoren zB für I2C. Das ist aber wie gesagt 
alles mit etwas Vorsicht zu genießen, weil da einige gewiefte 
Schaltungstricks angewendet werden, damit das überhaupt geht.

fchk

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

Heinz-Wilhelm F. schrieb:
> Bei Segger hat man das
> so gelöst.
> 
https://www.segger.com/products/debug-probes/j-link/accessories/isolators/j-link-swd-isolator/

Ich sehe die schematische Darstellung, kann mir aber noch nicht ganz 
vorstellen, wie das funktioniert, wenn es etwas konkreter wird.

> Wie die korrekte Beschaltung aussieht für: mach aus einmal bidirektional
> zweimal unidirektional und zurück, ist mir noch nicht ganz klar.

Ah ok, dann sind wir schon zu zweit. Vielleicht mit 2 Optokoplern pro 
Richtung?

Theoretisch kann man bei SWD natürlich durch beobachten des Protokols 
erkennen, welche Richtung das Signal hat. Die Lösung von Segger scheint 
aber ohne diese Komplikation auszukommen.

von Strubi (Gast)


Lesenswert?

Moin,

ich habe ein ähnliches Problem (Remote-JTAGger) per Ethernet erschlagen. 
Per Standard-RS485-Ansatz lässt sich das auch lösung und galvanisch 
komplett trennen. JTAG und SWD lässt sich recht gut ohne 
Performanceeinbussen tunneln, beim FTDI-MPSSE-Protokoll kann man sich 
inspirieren lassen.
Das Gefuddel mit bidirektionaler Uebertragung per galvanische Entkoppler 
würde ich eher nicht angehen, wenn nicht zwingend nötig, wenn das gut 
funktionieren soll, muss man recht teure Bausteine hernehmen. In dem 
Fall ist ein Tunnel eleganter.

von Heinz-Wilhelm F. (h-w-frickelfixer)


Lesenswert?

@falk
Du hast Schwierigkeiten den Bedenken konstruktiv zu formulieren.
Zusammenfassung deiner Anforderungen anhand des verlinkten Artikels:
„Gehäuse muss sein“
kein DC/DC Wandler für die Spannungsversorgung/übertragung (war auch nie 
angedacht)
Kriechweg sollte der Isolationsspannung entsprechen

Wenn das alles ist, dann können wir uns darüber später unterhalten, wenn 
es um das Hardwaredesign geht.

von Heinz-Wilhelm F. (h-w-frickelfixer)


Angehängte Dateien:

Lesenswert?

.
> Protokoll ja. Treiber nicht. Vergiss es einfach.
.
> Ein Isolationsadapter ist daher immer schnittstellenspezifisch.
.
> Allzwecklösung für Inputs, Push-Pull Outputs und OpenDrain I/O kann es
> daher nicht geben - das geht nicht

Du hast recht da war ich wohl ein wenig mit mir durchgegangen, I2C war 
natürlich Mist.

Danke für die Links für für die Fertiglösungen einige kannte ich noch 
nicht.

> Es gibt beispielsweise bidirektionale Levelshifter.
.
> Am sichersten ist es, wenn die Debug Probe die Datenrichtungsumschaltung ...

Ich habe da noch Verständnisproblem.
Wenn ich mir die Segger SWD Isolator anschaue dann denke ich, dass das 
mit der Richtung kein Problem ist.
Da da 2 Clevere Teile über ein festes Protokoll miteinander 
kommunizieren wüsste ich nicht warum der IUP eine Richtung wissen muss.
Hab mal das Schema an gehangen, sonst ist das alles zu theoretisch.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Heinz-Wilhelm F. schrieb:
> Wenn ich mir die Segger SWD Isolator anschaue dann denke ich, dass das
> mit der Richtung kein Problem ist.

Und, sieh Dir mal SWDIO an. Welcher Optokoppler wird wann aktiv?

Diese Leitung ist der Knackpunkt, und das stark vereinfachte Schaltbild 
lässt hier die wesentlichen Informationen weg.

von Heinz-Wilhelm F. (h-w-frickelfixer)


Lesenswert?

@rufus
> Und, sieh Dir mal SWDIO an. Welcher Optokoppler wird wann aktiv?
>
> Diese Leitung ist der Knackpunkt, und das stark vereinfachte Schaltbild
> lässt hier die wesentlichen Informationen weg.

Du hast Recht das Schema ist zu stark vereinfacht.
Für mich stand das Thema bidirektional Kommunikation erst später an, 
deshalb hänge ich in der Recherche ein wenig hinterher.

@alle
Wenn ich mir das Bild zur Hardware anschaue.
https://www.segger.com/fileadmin/images/products/J-Link/Accesory/Isolators/J-Link_SWD_Isolator_ShrinkWrap_Notes_400x.jpg
(muss man stark vergrößern)
Dann sehe ich auf der "Emulatore side" nur Spannunsgsversorung, 
Optokoppler mit Grundbeschaltung, PowerLED und Mister mysteriöser 
Dreifuß.
Auf der "Target side" Optokoppler mit Grundbeschaltung, 
Levershifter/Treiber mit Grundbeschaltung, PowerLED, ResetLED, weiter in 
Richtung Target dann noch Hühnerfutter, sieht aus wie Widerstände zur 
Strombegrenzung und Pulldowns/Pullups und Mister mysteriöser Dreifuß.

Ich nehme mal an, das Mister mysteriöser Dreifuß ein Schalter (FET) ist.
Wenn am Ausgng ein Low  Signal anliegt, ist der Eingang des Überträgers 
in die Gegenrichtung durchgeschaltet.
Wenn am Ausgang ein high Signal anliegt, dann trennt der Schalter den 
Eingang des Überträgers in die Gegenrichtung auf.
Damit wir eine Art Selbsthaltung vermieden.

von Frank K. (fchk)


Lesenswert?

So:
Für ARM SWD/SWO brauchst Du:
SWCLK D-->T
SWDIO D<->T
SWO   D<--T
RST   D-->T

Mein Vorschlag:
Si8606AD-B-IS
https://www.silabs.com/documents/public/data-sheets/Si860x.pdf

Der hat zwei bidirektionale Koppler und zwei unidirektionale Kanäle.
SWCLK und RST verwenden die unidirektionalen Kanäle auf den Pinpaaren 
4-13 und 5-12, SWDIO und SWO die bidirektionalen Kanäle auf den 
Pinpaaren 3-14 und 6-11. Bei SWO brauchst Du an der Debuggerseite noch 
einen Pullup (3k oder so).

Damit wäre Dein konkretes Problem speziell für diesen Fall gelöst - mit 
einer Ausnahme: Die Si86xx gehen nur bis 3V Betriebs- und Signalspannung 
runter.

Diese digitalen Isolatoren sind für so etwas ganz praktisch. Wenn Du 
aber tatsächlich empfindliche Analogschaltungen auf Deinem Target hast, 
würde ich zu echten Optokopplern greifen. Die digitalen Isolatoren 
koppeln nämlich kapazitiv (TI) oder induktiv (Analog, SI), und dafür 
müssen sie die Signale auf hohe Trägerfrequenzen aufmodulieren, was ggf. 
zu Störungen führen kann. Optokoppler haben genau dieses Problem nicht, 
dafür aber andere. Auch das ist ein Punkt, warum es universelle Lösungen 
nicht geben kann.

fchk

von Heinz-Wilhelm F. (h-w-frickelfixer)


Lesenswert?

@fchk
Danke für den Vorschlag, bin am Datenblatt studieren.

Interessant ist, dass bei dem Bauteil auch das Signale auf hohe 
Trägerfrequenzen aufmoduliert wird, hier als ein RF-Signal statt 
induktive oder kapazitive Kopplung.

Da keiner der Hersteller separate Versorgungen (PINS) für die 
Übertragungsteil und den Treiberteil vorgesehen hat und alle Hersteller 
angegeben sehr effizient zu übertragen und kleine Ströme für die 
Überträge angeben.

Analog
Dynamic Supply Current
Dynamic Input I 0.01 mA/Mbps Inputs switching, 50% duty cycle

TI
High-level input current 10 μA

Silocon Labs
leider nichts gefunden

(Zu den Trägerfrequenzen hab ich keine Angaben gefunden.)

Stellt sich die Frage, ob überhaupt kritische Stromspitzen entstehen, 
die schwer gefiltert werden können.

Im  Treiberteil wird bis 500mal mehr Strom bewegt, natürlich mit 
niedrigerer Frequenz, aber immer hin bei max 150Mhz.
Das wird wohl die weit aus größere Störquelle sein.


@alle
Hat jemand Erfahrungen mit den Verschiedenen Digitalen Isolatoren und 
den Störungen die diese Produzieren?

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.