Forum: Mikrocontroller und Digitale Elektronik UART "sniffen"


von Peter (Gast)


Lesenswert?

Hallo,

Bei einem Aufbau mit µC der über UART daten mit einem Gerät austauscht 
(hauptsächlich in eine Richtung, also als Transmitter) würde ich gerne 
die gesendeten Daten "sniffen".

Ich habe hier noch ein FTDI Basic board von Sparkfun. Ist es legitim, 
den "parallel" zum empfangenden Gerät anzulöten - also lediglich 
Rx,Tx,GND, um dann über einen virtuellen com port die daten am pc 
auszulesen - vorausgesetzt ich sende vom pc aus nichts (und störe damit 
die Schnittstelle nicht)?

Grüße
Peter

von Konrad (Gast)


Lesenswert?

Lass doch die TX-Leitung, die vom PC kommt, einfach unverbunden. Dann 
brauchst Du Dir keine Sorgen ueber das Senden zu machen.

von Peter (Gast)


Lesenswert?

Ja stimmt, das dachte ich mir auch grad.
Müsste also gehen!?

von Little B. (lil-b)


Lesenswert?

Wenn du Rx UND Tx des Mikrocontroller sniffen möchtest, brauchst du 
entsprechend zwei FTDIs.

(eleganter wäre es aber mit einem Logic Analizer)

von eddf (Gast)


Lesenswert?

Guck dir mal docklight an, viel besser als ein LA.....

von Peter (Gast)


Lesenswert?

danke für den tip, ist geladen!

von Peter (Gast)


Lesenswert?

und MÄP es geht eben doch nicht.
ausprobiert, läuft nicht, DANN erst nachgeschaut auf welchem pegel die 
lines sind - und die sind eben standardmäßig auf high, d.h. der ftdi 
zieht die tx line hoch.

von Idk (Gast)


Lesenswert?

Du sollst die TX-Line garnicht mit deinem Kram verbinden....

von uwe (Gast)


Lesenswert?

Du kannst mit einem TX nichts sniffen, sollte doch wohl klar sein, damit 
kann man nur senden. Um beide Leitungen zu sniffen braucht man 2 
Empfänger also RX Leitungen.

von Tcf K. (tcfkao)


Lesenswert?

Nur RXD und GND anschließen, dann sollte das gehen.

von Peter (Gast)


Lesenswert?

ja ist schon klar, ich habe die TX line des µC gemeint. die war mit RX 
des FTDIs verbunden natürlich...

von Karl H. (kbuchegg)


Lesenswert?

Peter schrieb:
> und MÄP es geht eben doch nicht.
> ausprobiert, läuft nicht, DANN erst nachgeschaut auf welchem pegel die
> lines sind - und die sind eben standardmäßig auf high, d.h. der ftdi
> zieht die tx line hoch.

Na ja.
Du musst natürlich schon aufpassen, ob sich der µC mit dem Gerät über 
eine echte RS232 mit +-12V Pegeln unterhält, oder ob das eine sog. 
TTL-RS232 ist, die mit 0 und 5V Pegeln arbeitet (und das auch noch 
invertiert).

von Peter (Gast)


Lesenswert?

Karl H. schrieb:
> Du musst natürlich schon aufpassen, ob sich der µC mit dem Gerät über
> eine echte RS232 mit +-12V Pegeln unterhält, oder ob das eine sog.
> TTL-RS232 ist, die mit 0 und 5V Pegeln arbeitet (und das auch noch
> invertiert).

habe ich. letzteres ist der Fall - mit 0-3V.

von Karl H. (kbuchegg)


Lesenswert?

Peter schrieb:
> Karl H. schrieb:
>> Du musst natürlich schon aufpassen, ob sich der µC mit dem Gerät über
>> eine echte RS232 mit +-12V Pegeln unterhält, oder ob das eine sog.
>> TTL-RS232 ist, die mit 0 und 5V Pegeln arbeitet (und das auch noch
>> invertiert).
>
> habe ich. letzteres ist der Fall - mit 0-3V.

Das könnte schon mal ein Grund sein. Bin jetzt aber zu faul um 
nachzusehen, ob 3V dem FTDI schon reichen um als High zu gelten.

von Peter (Gast)


Lesenswert?

Also doch das müsste es eigentlich schon, ich habe den ftdi nämlich 
vorher an der selben stelle anstelle des gerätes am µC gehabt - und das 
lief!

Die TX Line des µC ist (ohne paralleles FTDI Modul, d.h. direkt am 
Gerät) - wenn nichts gesendet wird - auf GND niveau.
Die RX Line des FTDI moduls auf 3.3V...

von Le X. (lex_91)


Lesenswert?

uwe schrieb:
> Um beide Leitungen zu sniffen braucht man 2
> Empfänger also RX Leitungen.

Naja du kannst beide TXe über Dioden verbinden, dann reicht dir am 
Sniffer ein RX.
Hab ich mal gemacht, ging ganz gut.

Natürlich kann die Sniffer-Software den Sender der Daten nicht 
identifizieren.
Bei einem Frage - Antwort - Protokoll (bei mir der Fall) ist das aber 
eher weniger problematisch.
Beide Geräte dürfen nur nicht gleichzeitig senden.

von nicht"Gast" (Gast)


Lesenswert?

Hallo,

du kannst auch Tx und Rx mit jeweils einer Schottky Diode auf den Rx 
deines FTDI schalten. Dann kannst du beide Richtungen sehen. Allerdings 
lässt sich dann nicht auseinander halten, was wovon gesendet wurde.

von Peter (Gast)


Lesenswert?

Danke für die Tips, ich brauche aber eigentlich nur TX!
Die Schottky Idee merke ich mir trotzdem.

Eine Korrektur: Ich habe mich vermessen, falsche referenz (autsch): Die 
TX Line des µC liegt auf 3,0V.
Die RX des FTDI auf 3.3V.

Wenn ich das zusammenstecke, wird mein µC doch zur stromsenke...?

von Karl H. (kbuchegg)


Lesenswert?

Peter schrieb:

> Die TX Line des µC ist (ohne paralleles FTDI Modul, d.h. direkt am
> Gerät) - wenn nichts gesendet wird - auf GND niveau.
> Die RX Line des FTDI moduls auf 3.3V...

Die Rx Line des FTDI Moduls ist dahingehend uninteressant.
Denn da handelt es sich um einen Eingang. Wenn FTDI entschieden hat, 
dass sie da einen Pullup verbauen wollen, der bei offenem Eingang die 
Leitung auf High zieht, dann haben sie das so entschieden. Das können 
sie machen, solange der Pullup nicht zu klein ist.
Auf die Art kann man zb erkennen, ob eine Leitung 'gebrochen' ist. Wenn 
du mit dem Voltmeter am Rx misst und dort die Dauer-3.3V siehst, dann 
weisst du, dass der Eingang offen sein muss. Denn wenn jemand an dieser 
Leitung angeschlossen wäre, dann würdest du dort 0V messen können. 
Naheliegende Folgerung: kalte Lötstelle oder Kabelbruch oder die 
Gegenstelle ist gar nicht eingeschaltet oder ....

von Won K. (Firma: Outside the Asylum) (the_sane)


Lesenswert?

nicht"Gast" schrieb:
> Allerdings lässt sich dann nicht auseinander halten ...

Wenn dann beide gleichzeitig senden, läßt sich garnichts mehr 
auseinanderhalten.
Das sollte man nur machen, wenn man genau weis daß es eine 
Halbduplexverbindung ist.

von Karl H. (kbuchegg)


Lesenswert?

Karl H. schrieb:
> Peter schrieb:
>
>> Die TX Line des µC ist (ohne paralleles FTDI Modul, d.h. direkt am
>> Gerät) - wenn nichts gesendet wird - auf GND niveau.
>> Die RX Line des FTDI moduls auf 3.3V...
>
> Die Rx Line des FTDI Moduls ist dahingehend uninteressant.
> Denn da handelt es sich um einen Eingang. Wenn FTDI entschieden hat,
> dass sie da einen Pullup verbauen wollen, der bei offenem Eingang die
> Leitung auf High zieht, dann haben sie das so entschieden. Das können
> sie machen, solange der Pullup nicht zu klein ist.
> Auf die Art kann man zb erkennen, ob eine Leitung 'gebrochen' ist. Wenn
> du mit dem Voltmeter am Rx misst und dort die Dauer-3.3V siehst, dann
> weisst du, dass der Eingang offen sein muss. Denn wenn jemand an dieser
> Leitung angeschlossen wäre, dann würdest du dort 0V messen können.
> Naheliegende Folgerung: kalte Lötstelle oder Kabelbruch oder die
> Gegenstelle ist gar nicht eingeschaltet oder ....

Was natürlich ach sein könnte:

Das auf deinem Modul die Stifte für Rx und Tx falsch rum bezeichnet 
sind. Manche Hersteller machen das in vorauseilendem Mitdenken, weil sie 
davon ausgehen, dass Benutzer nicht kapiert haben, dass beim Telefon 
immer eine Kreizverbindung von Mikrofon (Sender, Tx) mit dem 
Lautsprecher (Empfänger, Rx) hergestellt werden muss. In Zeiten, in 
denen Benutzer mit dem Einstecken eines Normsteckers in eine Normdose 
überfordert sind, gibt es auch solche Ideen, die den Benutzer vom 
Mitdenken befreien sollen.

von Statler (Gast)


Lesenswert?

Sofern es sich um einen Virtual-COM auf einem PC handelt, kannst Du Dir 
damit den Hardwareaufwand sparen:
http://www.serial-port-monitor.com/

Es gibt auch die USB-Variante, die habe ich aber noch nie getestet:
http://freeusbanalyzer.com/

von Peter (Gast)


Lesenswert?

Danke für die Hinweise, es funktioniert jetzt - das Problem war 
(lediglich) die falsche (nicht gemeinsame) referenz, gegen die ich auch 
gemessen hatte.

Wieder viel gelernt! :)

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.