Forum: Mikrocontroller und Digitale Elektronik uart problem


von Vlad T. (vlad_tepesch)


Angehängte Dateien:

Lesenswert?

Hi
Ich hab ein Problem mit den uarts, was ich nicht loakisieren kann.
Vielleicht kann mir von euch jemand einen Tip geben.

Folgendes:
Ich habe nen Usb-Uart-Adapter mit einem Mega8 (nach)gebaut (siehe 
Anhang)
empfangen funktioniert auf jeden Fall, das kommt alles an (mit GPS-Maus 
getestet).
Senden scheint auch zu funktionieren.
wenn ich rx und tx verbinde, bekomm ich alles genau so zurück, wie ichs 
verschicke.
(wennn ich ne LED dranhänge und auf 110baud stelle und per hyperterminal 
was eingebe, dann flackert die auch)


Auf der anderen Seite habe ich einen Mega8 mit Display und UART.
Auch hier funktioniert das Empfangen scheinbar (mit GPS-Maus getestet).

wenn ich die beiden Geräte allerdings verbinde, dann klappt nicht.
Aufm PC empfange ich zwar von meinem Mega etwas, aber wenn ich etwas 
sende, kommt das nicht an.

Ich hab jetzt alle verbindungen / initialisireungen mehrmals gecheckt 
und bin langsam ratlos.

Beide schaltungen laufen mit 12 Mhz und vergleichbaren Spannungen (ca 
3.2V)
Die Highpegel sollten von beiden also erkannt werden.
Massen sind natürlich verbunden.

Hat jemand ne Idee?
MfG,
Vlad

von holger (Gast)


Lesenswert?

>Ich hab ein Problem mit den uarts, was ich nicht loakisieren kann.

Was erwartest du von so einer proprietären
Software USB Lösung? USB Seriell Wandler sind ja
auch so unglaublich teuer daß sich ein Selbstbau lohnt.

von Vlad T. (vlad_tepesch)


Lesenswert?

also, an der usb-implementierung liegt es nicht, die ist recht 
verbreitet und funktioniert auch bei mir in anderen geräten gut.

Hier ist die Projektseite von dem Adapter:
http://www.recursion.jp/avrcdc/

von Niels K. (niels-k)


Lesenswert?

@ holger: Gibt es hier eigentlich nur noch Antworten solcher Art? Die 
Frage ist doch gar nicht so aus der Welt.

Wenn ich das richig gelesen habe, dann liegt das Problem beim direkten 
Verbinden der UPs. Allerdings funktioniert die Übertragung von PC auf UP 
fehlerfrei, sonst würde ja nichts am Zielsystem ankommen.

Vermutlich liegt beim Atmega8-Converter ein Timingproblem vor, was das 
Senden an den Empfänger (hier auch Atmega8) betrifft. Mit dem Oszi 
aufzeichnen und Bitabstände überprüfen. Das ist der schnellste Weg ein 
solches Problem zu erkennen.

von Vlad T. (vlad_tepesch)


Lesenswert?

Niels Keller schrieb:
> Wenn ich das richig gelesen habe, dann liegt das Problem beim direkten
> Verbinden der UPs.

Ich fass es noch mal zusammen

    USB       UART
PC  <->  CDC  <->  Target
              <- geht
               -> geht nicht

    USB       UART
PC  <->  CDC  -+
               |  geht (tx und rx Kurzgeschlossen)
             <-+


    USB      UART
PC  <->  CDC  -> LED geht

PC  <->  CDC  <->  GPS-Mouse
              <- geht
               -> kann ich nicht überprüfen

Target <->  GPS-Mouse
              <- geht
               -> kann ich nicht überprüfen


> Allerdings funktioniert die Übertragung von PC auf UP
> fehlerfrei, sonst würde ja nichts am Zielsystem ankommen.
zumindest vom PC aus kommt da nix an (sihe oben)

> Vermutlich liegt beim Atmega8-Converter ein Timingproblem vor, was das
> Senden an den Empfänger (hier auch Atmega8) betrifft.
Aber warum funktioniert dann der umgedrehte weg?

> Mit dem Oszi
> aufzeichnen und Bitabstände überprüfen. Das ist der schnellste Weg ein
> solches Problem zu erkennen.

Hab leider kein Oszi :-(

Edit:
Die Probleme sollten dann ja aber mit verringerten Übertragunsgraten 
abnehmen, oder?
Auch ist es komisch, dass gar nix ankommt. Bei Timing-Problemen mit der 
Uart, bekommt man doch sonst üblicherweise irgendwelchen Müll

von Niels K. (niels-k)


Lesenswert?

Aha. Das ist natürlich dann etwas anders. Interessant, dass er seinen 
eigenen "Mist" versteht. Wie wäre, wenn die GPS Maus mit SIRF DEMO 
umgeschrieben werden soll - dann könnte man die Kommunikation in beide 
Richtungen mit einem anderen Gerät überpfrüfen?

> Hab leider kein Oszi :-(
Aber du hast einen Atmega - also bau Dir eins... Ist für die Bitraten 
hier (110 bps) völlig ausreichend. Einfach ADC Werte ab einem bestimmten 
Ereignis im SRAM speichern und nach einiger Zeit über den UART ausgeben 
(ich vermute, dass Du noch einen richtigen Wandler hast ;-))

von Niels K. (niels-k)


Lesenswert?

> Die Probleme sollten dann ja aber mit verringerten Übertragunsgraten
abnehmen, oder?

Nicht bei einem systematischen Fehler.

von holger (Gast)


Lesenswert?

>Interessant, dass er seinen
>eigenen "Mist" versteht.

Wieso interessant? Beim senden und empfangen
wird derselbe Takt verwendet. Da ist es ziemlich
egal wie groß der Baudratenfehler ist. Das Problem
kommt dann wenn man ein echtes Gegenstück (PC) benutzen
möchte.

von Vlad T. (vlad_tepesch)


Lesenswert?

Niels Keller schrieb:
> Wie wäre, wenn die GPS Maus mit SIRF DEMO
> umgeschrieben werden soll - dann könnte man die Kommunikation in beide
> Richtungen mit einem anderen Gerät überpfrüfen?

Versteh nicht was du meinst.
Habm ich mit GPS-Empfängern noch nicht im Detail auseinander gesetzt.

Ich wollt erst mal die Kommunikation und das SD-Logging aufbauen.

>
>> Hab leider kein Oszi :-(
> Aber du hast einen Atmega - also bau Dir eins... Ist für die Bitraten
> hier (110 bps) völlig ausreichend. Einfach ADC Werte ab einem bestimmten
> Ereignis im SRAM speichern und nach einiger Zeit über den UART ausgeben

> (ich vermute, dass Du noch einen richtigen Wandler hast ;-))
Nö.
Ich würds auf SD Karte schreiben.
Is aber trotzdem recht aufwendig mal eben nen Oszi zu bauen und zu 
programmieren. Steht allerdings auch noch auf meiner ToDo Liste.
Wobei ich da eher an eine Soundkartenanwendung gedacht habe.

für sowas sollte aber ein simpler Logikanalyzer reichen, dass sollte ein 
wenig einfacher sein.

von Vlad T. (vlad_tepesch)


Lesenswert?

holger schrieb:
>>Interessant, dass er seinen
>>eigenen "Mist" versteht.
>
> Wieso interessant? Beim senden und empfangen
> wird derselbe Takt verwendet.
Jep, das zeigt nur, dass der Port und die Daten, die rausgehen in 
ordnung sind.
> Da ist es ziemlich
> egal wie groß der Baudratenfehler ist. Das Problem
> kommt dann wenn man ein echtes Gegenstück (PC) benutzen
> möchte.

zumindest beim Eingang funktioniert es ja mit einem echten Gegenstück 
(der GPS-Maus)

>> Die Probleme sollten dann ja aber mit
>>verringerten Übertragunsgraten abnehmen, oder?
>Nicht bei einem systematischen Fehler.

naja, wenn die Signale aber wegen vermindeter Frequenz breiter werden, 
sollten müssten sich leichte Abweichungen im Timing, ja nicht auswirken.

Außerdem müsste ja wenigstens schrott auf der Gegenseite ankommen, oder?

von Niels K. (niels-k)


Lesenswert?

Vlad Tepesch schrieb:
> Wobei ich da eher an eine Soundkartenanwendung gedacht habe.

Das ist doch schon ein guter Anfang. Nimm das Signal mit dem 
Windows-Audiorekorder auf und überprüfe es anhand der Hüllkurve und der 
Zeit.

Nebenbei kaufst Du Dir in der Bucht einen alten Laptop mit serieller 
Schnittstelle...

von Vlad T. (vlad_tepesch)


Lesenswert?

>Das ist doch schon ein guter Anfang. Nimm das Signal mit dem
>Windows-Audiorekorder auf und überprüfe es anhand der Hüllkurve und der
>Zeit.

Das ist mir zu aufwendig für die nächste Zeit.
Ich muss erst noch rausfinden, was ich dem Eingang anvertrauen kann (5V 
sind mit sicherheit zu viel, 3.3 wahrscheinlich auch) und unter welchen 
Beduingungen das überhaupt funktioniert.

>Nebenbei kaufst Du Dir in der Bucht einen alten Laptop mit serieller
>Schnittstelle...
Da hätt ich sogar noch einen, aber da bleibt das Problem mit den Pegeln 
und dass es sich nicht lohnt extra deswegen ne bestellung loszutreten.
Außerdem hat der ein haufen Macken, aber ich werds mit dem mal 
Probieren.

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.