mikrocontroller.net

Forum: HF, Funk und Felder EMV von Datenleitungen?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

Ich arbeite derzeit an einem Projekt, bei dem über 3 UARTs Daten an 3 
Boards von einem µC aus übermittelt werden.
Bei einzelnen Modulen funktioniert die Datenübertragung einwandfrei. 
Stecke ich aber nun zwei Pins neben der einen Datenleitung die andere 
an, so verliert die Schnittstelle bis zu 10 Bytes an Daten. Dieses 
Phänomen lässt sich durch ein- und ausstecken des Kabels gut 
reproduzieren und andere Fehlerquellen sich dadurch meiner Meinung nach 
auch ausschließen.
Jetzt meine Frage: Hat das was mit EMV zu tun oder ist das etwas 
anderes? Und wie lässt sich das beheben?

Zusatz: Im Moment arbeite ich mit Kabeln, die an Buchsenstecker gelötet 
sind. Ich habe schon versucht durch umwickeln mit einem Kabel, das ich 
auf GND lege die Leitung zu "schirmen", aber das bringt wenig Erfolg..

Danke schon mal für die Hilfe!

Autor: Msd (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Erstmal die Signale messen. Dann kann man sich ins Reich der EMV 
begeben.

Ach übrigens.

Benedikt schrieb:
> reproduzieren und andere Fehlerquellen sich dadurch meiner Meinung nach
> auch ausschließen.

Nein das ist nicht korrekt. Wenn deine "Verbindung" auf Kante läuft und 
bereits jegliche Margins aufgefressen sind, kann ein Tropen zu viel das 
Fass zum Überlaufen bringen. Dieses "Phänomen" könntest du theoretisch 
auch hier beobachten haben.

Also erstmal messen.

Außerdem kann dir hier keiner Fragen zum EMV-Aufbau beantworten, wenn du 
nicht mal den Systemaufbau konzeptionell dargestellt hast. EMV zu 
bewerten macht nur im Hinblick auf das Gesamtsystem Sinn -> 
GND-Verbindungen, Versorgung, Planes, Schirmung, Gehäuse, Taktquellen, 
ach so viel Themen...

Autor: Test (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Grundsätzlich ist mit EMV eigentlich eher das störende Verhalten einer 
Schaltung gemeint. Du hast vermutlich ein Signalintegritätsproblem. Das 
ganze beginnt schon damit, dass du längere Strecken (???) über UART 
brückst. Dafür ist UART nicht gemacht. Ein paar Zentimeter sind meist 
kein Problem aber darüber hinaus gibt es Probleme. Natürlich gibt es 
Ausnahmen aber im Gunde ist UART für längere Distanzen nicht geeignet. 
Darum hat man Schnittstellen definiert welche U(S)ART auf Pegel bringen 
die einen höheren Störabstand haben. Plug and Play bieten sich dafür 
RS232 und RS422 an. Für die gibt es sog. Transceiver ICs die dann für 
eine störunempfindlichere Übertragung sorgen.

Natürlich ist das jetzt erstmal ein gedanklicher Schnellschuss und die 
Probleme könnten auch noch an tausenden anderen Stellen liegen (fehlende 
Masseverbindungen, Aufbau, ...) Darum solltest du Schaltplan und Foto 
vom Aufbau hier posten. Vielleicht sieht man da schon was.

Als erste Maßnahme kannst du (soweit es die Sensoren zulassen) die 
Datenrate reduzieren. Je langsamer, desto unwarscheinlicher ist es, dass 
die Störung für eine Bitänge anhält. Außerdem kannst du versuchen immer 
nur einen Sensor anzusprechen (?) damit der sog. Crosstalk zwischen den 
Leitungen nicht stattfinden kann. Natürlich müssen die Sensoren das 
ganze mitmachen und nicht ungefragt selbst Daten senden.

Ein paar weitere Infos (welche Sensoren, Aufbau, ...) wäre gut ...

Autor: oszi40 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bevor ich das Wort EMV in den Mund nehme schau ich immer erst nach den 
Masseleitungen.

Autor: my2ct (Gast)
Datum:

Bewertung
-2 lesenswert
nicht lesenswert
Benedikt schrieb:
> Jetzt meine Frage: Hat das was mit EMV zu tun oder ist das etwas
> anderes?

Wenn die EMV gegeben ist, sich elektromagnetisch also alles verträgt, 
kann es nicht zu Störungen kommen.

Autor: Benedikt (Gast)
Datum:

Bewertung
-3 lesenswert
nicht lesenswert
Danke soweit.

Könnte jemand die Störung mal simulieren und den entsprechenden 
Oszi-Screen posten. Brauche einen visuellen Überblick über die Störung.

Danke
Benedikt

Autor: Msd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Benedikt schrieb:
> Danke soweit.
>
> Könnte jemand die Störung mal simulieren und den entsprechenden
> Oszi-Screen posten. Brauche einen visuellen Überblick über die Störung.

Danke, dass du dich nun entlarvt hast.

Beitrag #5819380 wurde von einem Moderator gelöscht.
Autor: DerEchteBenedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, danke schonmal für die vielen Antworten. Die Antwort oben drüber war 
nicht ich..
Ich übertrage über eine Strecke von maximal 15cm und wollte eigentlich 
auch andere Schnittstellen als UART verwenden, aber das funktioniert 
leider nicht mit der Hardware.
Ich werde mir das ganze heute mal am Oszi anschauen und auch eine 
geringere Datenrate testen.
Prinzipiell funktioniert mein Aufbau so, dass über einen Master an 3 
Slaves jeweils 1024 byte gesendet werden und danach ein Enable Signal 
kommt, sodass die Slaves die Daten mit minimaler Verzögerung an ihre 
Treiberbausteine geben können.
Einen so wirklichen Schaltplan habe ich noch nicht, aber ich bin auch 
gerade dabei ein Shield zu designen. Hier würde ich sowohl in Top & auch 
Bottom Layer eine Ground-Fläche einfügen um derartige Störungen zu 
vermeiden. Sollte das nicht die Lösung bringen würde ich optional schon 
Sockel für die Rs323 Treiberbausteine einbauen um die Datenübertragung 
so dann zu sichern.

Autor: jemand (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
DerEchteBenedikt schrieb:
> Einen so wirklichen Schaltplan habe ich noch nicht, aber ich bin auch
> gerade dabei ein Shield zu designen. Hier würde ich sowohl in Top & auch
> Bottom Layer eine Ground-Fläche einfügen um derartige Störungen zu
> vermeiden.

Ich bin zu 99% sicher, dass das nicht dein Problem ist.

Jetzt miss doch erst mal die Signale mit dem Oszilloskop. Ich wette, 
dass irgenwo Masse nicht richtig verbunden ist oder dergleichen.

Eine "EMV Störung" bei einer 15cm UART-Leitung klingt nicht besonderes 
plausiebl.

Autor: Robert S. (robert_s68)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Foto vom Aufbau würde helfen.

Was für eine Datenrate? Datenverlust nur im Zeitpunkt des Einsteckens?

Autor: Msd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
DerEchteBenedikt schrieb:
> Hi, danke schonmal für die vielen Antworten. Die Antwort oben drüber war
> nicht ich..

Ok dann nehme ich meine Anschuldigung zurück :)

Autor: Msd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
my2ct schrieb:
> Wenn die EMV gegeben ist, sich elektromagnetisch also alles verträgt,
> kann es nicht zu Störungen kommen.

Auch das ist nicht korrekt. EMV ist die Beziehung zwischen zwei Geräten. 
Es gibt auch außerhalb der EMV Ursachen für Störungen. Signalpegel, 
Reflexionen usw.

Von daher ist die Frage prinzipiell korrekt, ob es sich hier um ein EMV 
relevantes Problem handelt.

Wie aber bereits mehrfach angemerkt wurde, sollten erstmal die internen 
Vorgänge untersucht (gemessen) werden.

Autor: DerEchteBenedikt (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Mein derzeitiger Aufbau ist angehängt. Versorgt wird alles im Moment 
über einen USB HUB, der am Laptop angeschlossen ist, von daher sollte 
eine gemeinsame Masse ja gewährleistet sein oder?
Datenrate sind 115200 Bit/s und die Fehler treten nicht nur beim 
Einstecken auf.

Autor: DerEchteBenedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Messen werde ich jetzt dann, aber wie messe ich richtig, sodass ich 
Fehler erkennen kann? Bei 1024 (bzw 3072) Byte Daten pro Übertragung 
sehe ich doch kein Land am Osziloskop oder?

Autor: Msd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Am besten du lässt dir von einem Hardware-Kollegen mal zeigen wie man 
mit einem Oszilloskop mist.

Es geht um die prinzipielle Signalform und nicht um Bits oder Bytes. Das 
kann man sich danach anschauen.

Sender und Empfänger sind zu unterscheiden und die Wahl des Messpunktes 
ist hier entscheidend. Fang nicht an hier mit den Masseklemmzangen des 
Tastkopfes zu messen und den irgendwo nen Meter entfernt anzustecken.

Autor: Msd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vermutung, da ich nichts genaues in dem Kabelverschlag erkenne:

Dem Signal ist Masseweg viel zu lang.
Die aufgezogene Schleife über den langen Masseweg sammelt alles ein.

Verbinde mal alle Boards auf kurzem Weg mit GND.

Autor: jemand (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
DerEchteBenedikt schrieb:
> Messen werde ich jetzt dann, aber wie messe ich richtig, sodass ich
> Fehler erkennen kann? Bei 1024 (bzw 3072) Byte Daten pro Übertragung
> sehe ich doch kein Land am Osziloskop oder?

Mach halt ein Augendiagramm.
Triggere auf beide Flanken, stell die Zeitbasis so ein, dass genau 1 Bit 
auf den Schirm passt.
Dann schaltest du "Persist" oder wie auch immer das bei deinem Scope 
heißt ein und lässt das ein bischen rennen. Da sollte dann so ein 
Viereck zu sehen sein.
Man kann dann ganz gut erkennen, wie Flanken und Pegel aussehen, und ob 
es Glitches gibt oder dergleichen.

Der Aufbau sieht mir übrigens stark nach einem Masseproblem aus. Mehrere 
PC über die UART verbunden oder dergleichen. Bei so vielen USB-Kabeln 
kann das gar nicht sauber sein.

Autor: Robert S. (robert_s68)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wackelkontakt beim Stecken der Leitungen ist ausgeschlossen? 
Eingefangenen EM Mist kann ich mir da jetzt nicht wirklich als Ursache 
vorstellen, GND scheint auch vorhanden und mitgeführt zu sein, und 
115200 bps ist langsam genug dass es bei TTL Signalisierung über die 
15cm keine Probleme geben dürfte.

Autor: Flo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
DerEchteBenedikt schrieb:
> Prinzipiell funktioniert mein Aufbau so, dass über einen Master an 3
> Slaves jeweils 1024 byte gesendet werden und danach ein Enable Signal
> kommt, sodass die Slaves die Daten mit minimaler Verzögerung an ihre
> Treiberbausteine geben können.

Klingt für mich als würdest du mehrere UART Ausgänge 
aufeinanderschalten?

Mach doch mal ne Prinzipskizze.

Autor: DerEchteBenedikt (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Also ich hab mich jetzt ein bisschen mit dem Oszi beschäftigt, musst 
aber ganz normal mit den Messspitzen messen und habe GND direkt am 
Empfängerboard angeschlossen & den RX vom Empfänger gemessen.
Die ersten beiden Bilder(4291 & 4293) wurden mit der USB 
Spannungsversorgung versorgt und die GND-Leitungen von jedem Board extra 
nocheinmal zusammen geschlossen. Hier scheinen mir die Peaks eher 
zufällig zu kommen.
Danach habe ich den ganzen Spaß mit dem Labornetzteil versorgt (4295) 
und eine Sache ist mir aufgefallen und zwar, dass die Logikpegel um 1,2V 
höher sind, als bei der USB-Versorgung.

Eine Prinzipskizze kann ich in Form eines LogicAnalyzer Diagramms geben.
Es werden erst nacheinander die Daten geschickt und dann wie gesagt über 
einen Enable die Daten an die Treiber weiter gegeben.

Autor: DerEchteBenedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also wenn ich jetzt 1&1 richtig zusammen zählen kann zieht meine gesamte 
Schaltung zu viel Strom, dass der Laptop sie nicht mehr richtig 
versorgen kann. Deswegen habe ich zu niedrige Pegel und verliere bytes? 
Ich würde jetzt im nächsten Schritt die gesamte Schaltung über das 
Labornetzteil versorgen & schauen ob es dann funktioniert.

Autor: DerEchteBenedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Edit zu oben: Es gehen anscheinend immer noch Daten verloren und wenn 
man an den Verbindern ruckelt funktioniert es manchmal wieder, nachdem 
es sich "aufgehängt" hat.

Autor: Msd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
DerEchteBenedikt schrieb:
> Also wenn ich jetzt 1&1 richtig zusammen zählen kann zieht meine gesamte
> Schaltung zu viel Strom, dass der Laptop sie nicht mehr richtig
> versorgen kann. Deswegen habe ich zu niedrige Pegel und verliere bytes?

Auch das kann man messen.

Wenn Sender und Empfänger in zulässigen Spannungsbereich arbeiten (und 
vor allem im gleichen), dann sollte das funktionieren.

Die Pegel sehen gut aus. Auch wenn 3,0 V etwas untypisch sind, das kann 
viele Ursachen haben.

Die Spikes auf den Signalen sind jetzt zwar nicht der Brüller, machen 
aber vorerst nicht solche Probleme. Begründbar sind die mit der 
Messmethode und dem Kabelaufbau.

Mit Prinzipskizze wurde meiner Meinung nach gemeint, was du mit welchen 
Signalen verbindest. Also ein einfacher Schaltplan. Jede 
TX-RX-Verbindung darf nur eine Direktverbindung sein oder Bedarf 
entsprechende Entkopplung, sonst treiben Signale aufeinander. Das war 
damit gemeint.

Autor: Phototip (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
DerEchteBenedikt schrieb:
> IMG_4291.jpg
> IMG_4293.jpg
> IMG_4295.jpg

Hast du das USB-Logo links unter dem Bildschirm des Oszis gesehen?

Die Asnchlüsse sind bestimmt nicht zum Spaß da, sondern erlauben, Screen 
Shots zu machen, ohne das sich die halbe Raumbeleuchtung im Bildschirm 
spiegelt.

Wenn schon Smart Phone - dann Raumbeleuchtung und Blitzfunktion aus.

Autor: DerEchteBenedikt (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Phototip schrieb:
> Hast du das USB-Logo links unter dem Bildschirm des Oszis gesehen?
>
> Die Asnchlüsse sind bestimmt nicht zum Spaß da, sondern erlauben, Screen
> Shots zu machen, ohne das sich die halbe Raumbeleuchtung im Bildschirm
> spiegelt.
>
> Wenn schon Smart Phone - dann Raumbeleuchtung und Blitzfunktion aus.

Ich weiß prinzipiell wie man ein Oszi bedient, habe aber leider kurzer 
Hand keinen USB Stick gehabt.

Ist das im Anhang mit Prinzipskizze gemeint?
Und was ist mit "Signale aufeinander Treiben" gemeint?

Autor: Msd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
DerEchteBenedikt schrieb:
> Ist das im Anhang mit Prinzipskizze gemeint?
> Und was ist mit "Signale aufeinander Treiben" gemeint?

Es gibt Leute die meinen UART wäre ein Bus und man könne mehrere 
Teilnehmer drauflegen. Dann treiben zwei TX-Ports z.B. auf einen RX. Je 
nach Zustand treiben dann zwei TX aufeinander.

Was ist da so schwer zu verstehen.

Stell dir vor das eine TX sendet 0 (es "verbindet" den Ausgang mit GND) 
das andere sendet 1 ("verbindet" den Ausgang mit VCC) --> Dann knallt 
es.

Autor: DerEchteBenedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Msd schrieb:
> Es gibt Leute die meinen UART wäre ein Bus und man könne mehrere
> Teilnehmer drauflegen. Dann treiben zwei TX-Ports z.B. auf einen RX. Je
> nach Zustand treiben dann zwei TX aufeinander.
>
> Was ist da so schwer zu verstehen.
>
> Stell dir vor das eine TX sendet 0 (es "verbindet" den Ausgang mit GND)
> das andere sendet 1 ("verbindet" den Ausgang mit VCC) --> Dann knallt
> es.

Ach so, ja das war mir ja klar. Hab ich ja auch so umgesetzt... Konnte 
nur mit dem Begriff "aufeinander treiben" nicht so wirklich was 
anfangen.

Autor: Felix F. (wiesel8)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
1. Laut IMG4295 hast du 4,38V. Der STM läuft aber nominal mit 3,3V (Max 
3.6). Sieht für mich aus, als würdest du 3,3V und 5V mischen oder was 
komplett falsches machen.

2. Da du ja eh einen Logic Analyzer hast, könntest du parallel mit 
messen und überprüfen ob auch hier die Zeichen verloren gehen.

3. Für mich sieht es nach einem Fehler im Hardware Aufbau aus oder deine 
Software kann keine 3 USARTs gleichzeitig verarbeiten, aber EMV ist es 
garantiert nicht!

mfg

Autor: soso... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
DerEchteBenedikt schrieb:
> Also ich hab mich jetzt ein bisschen mit dem Oszi beschäftigt, musst
> aber ganz normal mit den Messspitzen messen und habe GND direkt am
> Empfängerboard angeschlossen & den RX vom Empfänger gemessen.
> Die ersten beiden Bilder(4291 & 4293) wurden mit der USB
> Spannungsversorgung versorgt und die GND-Leitungen von jedem Board extra
> nocheinmal zusammen geschlossen. Hier scheinen mir die Peaks eher
> zufällig zu kommen.
> Danach habe ich den ganzen Spaß mit dem Labornetzteil versorgt (4295)
> und eine Sache ist mir aufgefallen und zwar, dass die Logikpegel um 1,2V
> höher sind, als bei der USB-Versorgung.
>
> Eine Prinzipskizze kann ich in Form eines LogicAnalyzer Diagramms geben.
> Es werden erst nacheinander die Daten geschickt und dann wie gesagt über
> einen Enable die Daten an die Treiber weiter gegeben.

Da hats was mit den Pegeln. Auf Bild 1 und 2 sind es 3V, auf Bild 3 
4,4V.

Die 4,4V riechen stark nach 5V auf nicht 5V-Tolerantes Ziel getrieben.

Jetzt wärs an der Zeit, ein Blockschaltbild inklusive Versorgung zu 
liefern.

Autor: Msd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Msd schrieb:
> Wenn Sender und Empfänger in zulässigen Spannungsbereich arbeiten (und
> vor allem im gleichen), dann sollte das funktionieren.

Hast du das verstanden bzw. mal geprüft?

Autor: Msd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Quick and dirty-Methode.

UART-Verbindung aller Boards trennen und mal überall Daten auf TX 
raushauen.

Pegel messen.

Sollte überall gleich sein.

Ich nehme mal an die Boards die du da verknüpperst funktionieren in sich 
als Einzelteilnehmer oder können da prinzipiell auch Fehler drauf sein? 
Auf deutsch: Habt ihr das entwickelt und gefertigt oder zugekauft?

Autor: DerEchteBenedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
soso... schrieb:
> Da hats was mit den Pegeln. Auf Bild 1 und 2 sind es 3V, auf Bild 3
> 4,4V.
>
> Die 4,4V riechen stark nach 5V auf nicht 5V-Tolerantes Ziel getrieben.

Msd schrieb:
> Msd schrieb:
>> Wenn Sender und Empfänger in zulässigen Spannungsbereich arbeiten (und
>> vor allem im gleichen), dann sollte das funktionieren.
>
> Hast du das verstanden bzw. mal geprüft?

Die TX/RX Pins des Slaves sind 5V Tolerant. (Datenblatt : "The first 14 
pins, those that comprise the shortened Arduino Uno footprint, are 5V 
tolerant. This means that you can safely attach any of your 5V Arduino 
shields.." Tx/RX sind D0 und D1).

Msd schrieb:
> Auf deutsch: Habt ihr das entwickelt und gefertigt oder zugekauft?

Die Boards sind alle zugekauft. STM32 und Papilio Duo.

Kann es auch sein, dass die Baudrate bei beiden durch unterschiedliche 
Oszilatoren unterschiedlich ist und somit am Ende Bits verloren gehen?

Autor: Grundlagen! (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Kann es auch sein, dass die Baudrate bei beiden durch unterschiedliche
>Oszilatoren unterschiedlich ist und somit am Ende Bits verloren gehen?



Nicht raten, lernen.

Schau Dir doch mal Grundlagen der UART-Übertragung an. Leicht 
differierende Baudraten werden toleriert.

Autor: Msd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
DerEchteBenedikt schrieb:
> Die TX/RX Pins des Slaves sind 5V Tolerant. (Datenblatt : "The first 14
> pins, those that comprise the shortened Arduino Uno footprint, are 5V
> tolerant. This means that you can safely attach any of your 5V Arduino
> shields.." Tx/RX sind D0 und D1).

ist denn auch sichergestellt, dass der 3,3V Treiber vom 5V-Empfänger 
verstanden wird?

Gugg es dir ganz konkret an und zwar für beide Richtungen. Im Datenblatt 
(operational conditions blablabla).

Welche IO-Spannung wird verwendet?

Also mit welcher Spannung sendet TX, mit welcher IO-Spannung emfpängt 
RX.

Liegen die zulässigen VIL/VOL VIH/VOH.

Wieso liegen die Signale mal auf 3,3V mal auf 5V.

Nur weil eine der Senken auch 5V-Tolerant ist, heißt das nicht, dass die 
andere Seite die geringere Spannung auch versteht.

Autor: DerEchteBenedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Msd schrieb:
> Liegen die zulässigen VIL/VOL VIH/VOH.
>
> Wieso liegen die Signale mal auf 3,3V mal auf 5V.
>
> Nur weil eine der Senken auch 5V-Tolerant ist, heißt das nicht, dass die
> andere Seite die geringere Spannung auch versteht.

Okay soweit verstanden. Also der Master (Tx only) hat eine VOH von 
2.7v-3.6v Die Slaves sind an 5V Toleranten Pins mit dem Master 
verbunden, das eigentliche LogicLevel des Papilio Duo ist aber 3,3V. Die 
5V Toleranz wird über einen limitierenden Vorwiderstand sichergestellt.

Was passiert denn wenn ich die 3,3V über den Vorwiderstand gebe? Fehlt 
dann Spannung zur genauen Level Unterscheidung? Sollte das der Fall sein 
müsst ich einen Level Shifter zwischen schalten richtig?

Autor: Robert S. (robert_s68)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn der Master (grüne Platine, stm32f429 discovery?) mit 3V3 arbeitet 
und die Slaves (rote Platinen, Papilio Duo) mit 3V3, wo kommen dann die 
>4V her?

Autor: Msd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
DerEchteBenedikt schrieb:
> Okay soweit verstanden. Also der Master (Tx only) hat eine VOH von
> 2.7v-3.6v Die Slaves sind an 5V Toleranten Pins mit dem Master
> verbunden, das eigentliche LogicLevel des Papilio Duo ist aber 3,3V. Die
> 5V Toleranz wird über einen limitierenden Vorwiderstand sichergestellt.

Deine Arbeitsweise ist schon irgendwie verwirrend.

Du redest von 5V-Tolleranz, wobei dann doch wieder beides 3,3 V ist.

Ich habe geraten dir für beide Richtungen anzuschauen welche 
Spannungslevel die Ausgänge und Eingänge haben. Dann schaust du dir den 
Master an aber den Slave wieder nicht!?!

Wenn du mit unterschiedlichen Spannungen fährst musst du sicherstellen, 
dass am Empfänger eine ausreichend hohe Spannung anliegt, damit high 
erkannt werden kann. Hast du das nun endlich mal geprüft??

Nochmal: Welche VCC nutzen die Teilnehmer? Undzwar nicht nur einer 
sondern alle.

Autor: DerEchteBenedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Robert S. schrieb:
> Wenn der Master (grüne Platine, stm32f429 discovery?) mit 3V3 arbeitet
> und die Slaves (rote Platinen, Papilio Duo) mit 3V3, wo kommen dann die
>>4V her?

Hab ich mich auch gefragt und folgendes gemessen:
STM32F4 an USB : VOH = 2,91V
STM32F4 an 5V Labornetzteil: VOH = 2,92V

Papilio DUO an USB: VOH = 3,5V
Papilio DUO an 5V Labornetzteil : VOH = 3,5V

STM32F4 an Papilio DUO beide an Labornetzteil: VOH = 3V
STM32F4 TX an Papilio DUO nur STM32 angeschlossen, GND aber verbunden: 
VOH = 2V

Ich konnte in keinem Fall die 4V reproduzieren..

Autor: Msd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
DerEchteBenedikt schrieb:
> Papilio DUO an USB: VOH = 3,5V
> Papilio DUO an 5V Labornetzteil : VOH = 3,5V

DerEchteBenedikt schrieb:
> STM32F4 TX an Papilio DUO nur STM32 angeschlossen, GND aber verbunden:
> VOH = 2V

Aber das alles lässt dich nicht wundern?

Du musst dir schonmal den Schaltplan anschauen um zu verstehen wo solch 
kruden Spannungen herkommen.

2 V sehen so aus wie 3,3V-Clamping-Voltage. Hast du TX an ein nicht 
versorgtes Board angelegt?

Autor: DerEchteBenedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Msd schrieb:
> Ich habe geraten dir für beide Richtungen anzuschauen welche
> Spannungslevel die Ausgänge und Eingänge haben. Dann schaust du dir den
> Master an aber den Slave wieder nicht!?!
>

Für den Papilio DUO gibt es kein wirkliches Datenblatt, auf ihm ist der 
Spartan 6 FPGA, welcher eine "Multi-voltage, multi-standard SelectIO" 
hat. Zwischen 1.2V bis 3.3V sind hier LogicLevel. Ich habe den FPGA 
selber, aber nicht programmiert, da ich nur die Datenübertragung sicher 
stellen soll und nur mit dem auf dem FPGA implementierten Softcore 
arbeite.

> Wenn du mit unterschiedlichen Spannungen fährst musst du sicherstellen,
> dass am Empfänger eine ausreichend hohe Spannung anliegt, damit high
> erkannt werden kann. Hast du das nun endlich mal geprüft??

Wie soll ich das Überprüfen? Ich hatte an sowas gedacht :  (if(pin == 
High){tu was messbares})

> Nochmal: Welche VCC nutzen die Teilnehmer? Undzwar nicht nur einer
> sondern alle.

Alle Teilnehmer werden mit 5V versorgt.

Autor: DerEchteBenedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Msd schrieb:
> Aber das alles lässt dich nicht wundern?

Natürlich wundert mich das, aber kann leider keine Schlüsse daraus 
ziehen.

> Du musst dir schonmal den Schaltplan anschauen um zu verstehen wo solch
> kruden Spannungen herkommen.
>
> 2 V sehen so aus wie 3,3V-Clamping-Voltage. Hast du TX an ein nicht
> versorgtes Board angelegt?

Ich dachte erst, dass die 4V von der Clamping Diode kommen würden, 
deswegen habe ich auch getestet wie es ausschaut, wenn ich den TX and 
ein versorgtes und an ein nicht versorgtes Board anlege. GND war aber 
jeweils verbunden.

Autor: Msd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
DerEchteBenedikt schrieb:
> Wie soll ich das Überprüfen? Ich hatte an sowas gedacht :  (if(pin ==
> High){tu was messbares})

Mit dem verdammten Datenblatt des Controllers den du da verwendest.

Ich selber habe noch nie Arduino, Papillodingsbums genutzt, die 
Vorgehensweise ist aber immer die selbe wenn man zwei Interfaces mit 
einander verbindet. Man überprüft ob die IO-Level zusammen passen.

Und nein das macht man nicht in Software, sondern in dem man das 
Datenblatt und den Schaltplan ließt oder andere Quellen hat die einem 
bestätigen, dass man diese beiden Boards mit einander verbinden kann.

DerEchteBenedikt schrieb:
> Für den Papilio DUO gibt es kein wirkliches Datenblatt, auf ihm ist der
> Spartan 6 FPGA, welcher eine "Multi-voltage, multi-standard SelectIO"
> hat. Zwischen 1.2V bis 3.3V sind hier LogicLevel.

Es geht doch nicht um das Datenblatt des blöden Boards, sondern der 
relevanten Elektronik!

DerEchteBenedikt schrieb:
> Alle Teilnehmer werden mit 5V versorgt.

Ok. Tut mir leid, aber du hast nichts von dem verstanden was wir hier 
geschrieben haben.

Es geht hier im die IO-Spannung des Treibers im Controller. Also den 
Spannungspegel der Signale und nicht irgendeiner blöden 
Versorgungsspannung des Gesamtboards.

Hast du schonmal mit Elektronik zu tun gehabt? Du kommst eher aus der 
Software-Ecke oder? Am besten du gehst mit der Problematik mal zu einem 
Kollegen, der dir die Problematik erklärt.

Versteh mich nicht falsch. Ich behaupte nicht, dass die IO-Spannungen 
falsch sind oder nicht zusammen passen. Aber das zu überprüfen sehe ich 
als grundlegende Aufgabe. Solange das nicht erfolgt ist, suchst du im 
Nebel.

Autor: Msd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
DerEchteBenedikt schrieb:
> TX and
> ein versorgtes und an ein nicht versorgtes Board anlege

Wenn du TX an ein nicht versorgtes Board legts, ballerst du die 
Clamping-Dioden auf Dauer kaputt. Schlauer bist du dann auch nicht.

Autor: DerEchteBenedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Msd schrieb:
> Es geht doch nicht um das Datenblatt des blöden Boards, sondern der
> relevanten Elektronik!

Aber die relevante Elektronik ist doch der Spartan 6 FPGA? Er  muss doch 
die Daten verarbeiten können?

Autor: Msd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
DerEchteBenedikt schrieb:
> Aber die relevante Elektronik ist doch der Spartan 6 FPGA? Er  muss doch
> die Daten verarbeiten können?

Richtig. Also Datenblatt des Spartan 6 FPGA nutzen.

Autor: Msd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hatte dir ja eine Quick-and-Dirty-Methode beschrieben damit du nicht 
irgendwelche Datenblätter wälzen muss. Die hast du aber auch nur zur 
Hälfte durchgezogen und dann irgendwas anderes gemacht.

Autor: DerEchteBenedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Msd schrieb:
> Ich hatte dir ja eine Quick-and-Dirty-Methode beschrieben damit du nicht
> irgendwelche Datenblätter wälzen muss. Die hast du aber auch nur zur
> Hälfte durchgezogen und dann irgendwas anderes gemacht

DerEchteBenedikt schrieb:
> STM32F4 an USB : VOH = 2,91V
> STM32F4 an 5V Labornetzteil: VOH = 2,92V
>
> Papilio DUO an USB: VOH = 3,5V
> Papilio DUO an 5V Labornetzteil : VOH = 3,5V

Hier habe ich jeweils über den TX Daten rausgesendet.

Autor: DerEchteBenedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und im Datenblatt des Spartan 6 steht:
Msd schrieb:
>> Spartan 6 FPGA, welcher eine "Multi-voltage, multi-standard SelectIO"
>> hat. Zwischen 1.2V bis 3.3V sind hier LogicLevel.

Autor: Msd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
DerEchteBenedikt schrieb:
> Und im Datenblatt des Spartan 6 steht:
> Msd schrieb:
>>> Spartan 6 FPGA, welcher eine "Multi-voltage, multi-standard SelectIO"
>>> hat. Zwischen 1.2V bis 3.3V sind hier LogicLevel.

Ja. Mach mal.

Autor: DerEchteBenedikt (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe jetzt mit dem Logic Analyzer mal die Pegel mitgemessen.
Wenn ich den TX vom STM beobachte merke ich keine signfikate Änderung 
der Pegel, egal ob das Papilio angeschlossen ist, oder auch nicht.
Mache ich das selbe aber mit dem Papilio, sinkt der Pegel (trotz 
gemeinsamer Masse) wenn der STM angeschlossen ist auf 0,1V High und 0V 
low..woran liegt das?

Autor: DerEchteBenedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zusatz: Ich habe beides sowohl an USB als auch an einer externen 
Spannungsquelle probiert, das Ergebnis bleibt das gleiche. Genauso zu 
beiden Massen hin.

Das selber erstellte Shield hat auch nichts geholfen..

Autor: Msd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
1. Wieso sehen die Signale nun völlig anders aus als in den ersten 
Bildern? Dies sind doch völlig rundgeschliffen und erreichen nicht 
einmal 3,3 V. Hängt da etwa so eine riesen Kapazität dran? Allein durch 
den Fädelaufbau ist das nicht zu erklären, bei den zeitlichen 
Dimensionen. Was wurde also geändert?

2. Statt ins Datenblatt zu gucken und/oder die IO-Spannungsebene am 
Controller zu messen, um festzustellen warum du 3,0 statt 3,3 V hast, 
wirst du lieber mit dem Marketing-Geblubber aus dem Datenblatt umher: 
"Multi-voltage, multi-standard SelectIO" >>> hat. Zwischen 1.2V bis 3.3V 
sind hier LogicLevel"

Das ist doch eine völlig schwachsinnige Aussage. Wem soll die helfen? 
Schau verdammt nochmal in die Specs und nicht auf Seite Eins. Kann 1,2 
bis 3,3V. Na toll und welche IO-Spannung wird nun verwendet?

Autor: Msd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
DerEchteBenedikt schrieb:
> Das selber erstellte Shield hat auch nichts geholfen..

Das ist auch bei weitem nicht dein Problem.

Autor: Msd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
DerEchteBenedikt schrieb:
> wenn der STM angeschlossen ist auf 0,1V High und 0V
> low..woran liegt das

Ist auf dem STM das Signal als Output low konfiguriert? Ist das STM 
ausgeschaltet?

Autor: DerEchteBenedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Msd schrieb:
> 1. Wieso sehen die Signale nun völlig anders aus als in den ersten
> Bildern? Dies sind doch völlig rundgeschliffen und erreichen nicht
> einmal 3,3 V. Hängt da etwa so eine riesen Kapazität dran? Allein durch
> den Fädelaufbau ist das nicht zu erklären, bei den zeitlichen
> Dimensionen. Was wurde also geändert?

Ich habe rein gar nichts am Aufbau geändert, nur im Programm den TX des 
Papilio Boards programmiert und an den RX des STMs geschlossen. Deswegen 
würde ich das auf den Logic Analyzer zurück schließen.

Msd schrieb:
> 2. Statt ins Datenblatt zu gucken und/oder die IO-Spannungsebene am
> Controller zu messen, um festzustellen warum du 3,0 statt 3,3 V hast,
> wirst du lieber mit dem Marketing-Geblubber aus dem Datenblatt umher:
> "Multi-voltage, multi-standard SelectIO" >>> hat. Zwischen 1.2V bis 3.3V
> sind hier LogicLevel"

Das steht nicht auf Seite 1. Ich hab die Boards nicht konfiguriert..und 
weiß auch nicht wie, da ich nur die auf Arduino basierte Oberfläche 
verwenden soll/kann. Setze ich aber anstatt dem STM32 ein Papilio Board 
ein taucht dieselbe Problemtik auf.

Msd schrieb:
> Ist auf dem STM das Signal als Output low konfiguriert? Ist das STM
> ausgeschaltet?
Der STm ist angeschaltet und das Signal auf den definierten RX-PIN 
gelegt.

Autor: Witt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
DerEchteBenedikt schrieb:
> Msd schrieb:
>> 2. Statt ins Datenblatt zu gucken und/oder die IO-Spannungsebene am
>> Controller zu messen, um festzustellen warum du 3,0 statt 3,3 V hast,
>> wirst du lieber mit dem Marketing-Geblubber aus dem Datenblatt umher:
>> "Multi-voltage, multi-standard SelectIO" >>> hat. Zwischen 1.2V bis 3.3V
>> sind hier LogicLevel"
>
> Das steht nicht auf Seite 1. Ich hab die Boards nicht konfiguriert..und
> weiß auch nicht wie, da ich nur die auf Arduino basierte Oberfläche
> verwenden soll/kann. Setze ich aber anstatt dem STM32 ein Papilio Board
> ein taucht dieselbe Problematik auf.

Ich habe auch nicht gesagt, dass etwas konfiguriert werden soll! 
Herausbekommen, welche IO-Spannung das Pin verwendet! Mit Datenblatt und 
Schaltplan. Noch einmal gehe ich da nicht drauf ein.


DerEchteBenedikt schrieb:
> Der STm ist angeschaltet und das Signal auf den definierten RX-PIN
> gelegt.

Ok du verwendest das richtige Pin, aber ist das Pin auch als RX 
konfiguriert? Meistens bieten Controller die Möglichkeit verschiedene 
Funktionen auf ein Pin zu legen.

Autor: Irgendwer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
DerEchteBenedikt schrieb:
> Der STM ist angeschaltet und das Signal auf den definierten RX-PIN
> gelegt

In deinem Bild weiter oben ist der STM aber Tx?
Beitrag "Re: EMV von Datenleitungen?"

Signal an Rx gelegt hört sich irgendwie komisch an. Rx wäre ein Eingang 
und somit Hochohmig.


Kann es sein das du irgendwo noch eine Problem mit der Definition von Rx 
und Tx und deren Überkreuzung hast so das du eventuell zwei Tx-Ausgänge 
gegeneinander arbeiten lässt?
Das würde auch erklären warum das Low des einen das Hi des anderen in 
den Keller zieht.

Autor: Noch mal von Vorne (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
1) Wurden Softwareprobleme komplett ausgeschlossen?
2) Hat sich das jemand mit Ahnung von Elektrik und HW das vor Ort mal 
angeschaut?

Autor: Lothar M. (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zur Erinnerung: nur 1 Name pro Thread!
Siehe die Nutzungsbedingungen

Autor: Msd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noch mal von Vorne schrieb:
> 1) Wurden Softwareprobleme komplett ausgeschlossen?
> 2) Hat sich das jemand mit Ahnung von Elektrik und HW das vor Ort mal
> angeschaut?

Wurde ja nun schon mehrmals gefragt. So richtig wirkt das hier aber 
nicht.

Autor: GEKU (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Felix F. schrieb:
> Für mich sieht es nach einem Fehler im Hardware Aufbau aus oder deine
> Software kann keine 3 USARTs gleichzeitig verarbeiten, aber EMV ist es
> garantiert nicht!
>
> mfg

Werden in der Software die Fehlerflags, wie z.B. Rahmenfehler, 
ausgewertet?

Ich für die Tests nur einen UART gleichzeitig senden lassen. Tritt dann 
der Datenverlust immer noch auf. Werden auf den beiden anderen "stillen 
Stecken" Geisterzeichen oder UART Interrupts empfangen. Geisterzeichen 
entstehen,  wenn Störungen Startbis vortäuschen.

Autor: GEKU (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noch mal von Vorne schrieb:
> 1) Wurden Softwareprobleme komplett ausgeschlossen?

Wenn Zeichen verloren gehen, dann liegt es  meisten an der UART 
Software.

Ich hoffen der Empfang ist Interrupt gesteuert und nicht gepollt.

Ich würde über zwei Schnittstellen  das System stressen und die dritte 
Schnittstelle genau beobachten, ob z.B Empfangsinterrupts verloren 
gehen.

Autor: Msd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
GEKU schrieb:
> Wenn Zeichen verloren gehen, dann liegt es  meisten an der UART
> Software.
>
> Ich hoffen der Empfang ist Interrupt gesteuert und nicht gepollt.
>
> Ich würde über zwei Schnittstellen  das System stressen und die dritte
> Schnittstelle genau beobachten, ob z.B Empfangsinterrupts verloren
> gehen

Der Junge hat hier ganz andere Probleme, als Software. Ist ja an den 
Bildern zu erkennen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.