Forum: Mikrocontroller und Digitale Elektronik Datenübertragungsprobleme


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.
von P. F. (pfuhsy)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich habe die angehangene Schaltung und hab noch ein Probleme damit.
Erstmal zum Aufbau:

Ich hab die linke Platine die über ein Netzteil mit 12V und der darauf 
gelötete µC über ein Festspannungsregler mit 5V versorgt wird. Btw, ich 
benötige für weitere Komponenten auf der Platine 12V weswegen ich nicht 
direkt mit 5V versorge. Die rechte Platine ist ein Einplatinencomputer 
der über ein 2tes Netzteil mit 5V versorgt wird. Der Gnd der beiden 
Netzteil ist miteinander verbunden. Jetzt sollen die beiden über USB 
miteinander kommunizieren. Dafür ist ein CP2102 auf der linken Platine 
verbaut, der mit UART des µC verbunden ist. Die 5V von CP2102 sind auf 
der Platine nicht angeschlossen und der Gnd ist mit den Gnd der Platine 
verbunden. Die andere Seite wird mit den Einplatinencomputer über USB 
verbunden, daher kommt auch die Versorgung des CP2102. Soweit zum 
Aufbau.

Nun schickt die linke Platine zyklisch (alle 5s) eine Statusmeldung die 
ungefähr so aussieht "0000000000050401". In den meisten Fällen klappt 
das auch, doch manchmal kommt etwas Quaderwelsch an ungefähr so 
"^D}0000000000050401", was die Auswertung im Einplatinencomputer etwas 
durcheinander bringt.

Ich bin mir zu 99,9% sicher, dass das ein reiner Übertragungsfehler sein 
muss. Ich hab an beiden Enden der USB-Leitung ein Ferttitkern montiert 
und die Übertragungsgeschwindigkeit von 9600 auf 2400 reduziert, was 
leider nichts daran ändern. Wenn ich das richtig deute wären die 
Ferritkerne auch eher dafür da ausgesendete Störungen zu minimieren und 
nicht gegen etwas was sich die Schaltung von aussen "einfängen" könnte. 
Naja hab ich trotzdem mal probiert. Ich hatte vor ein paar Monaten eine 
ähnliche Schaltung mit dem Unterschied, das der CP2102 nicht auf der 
Platinen gelötet, sondern frei in der Luft gehangen hat. Doch die 
Verschaltung war sonst identisch, aber bei der Übertragung gab es keine 
Fehler.

Hat jemand eine Idee was ich noch machen könnte um das zu verbessern ?

Gruss

von P. F. (pfuhsy)


Bewertung
0 lesenswert
nicht lesenswert
Hab ich vergessen zu Zeichen. Die Platine und der Einplatinencomputer 
sind natürlich jeweils noch mit den GND des Netzteils verbunden.

von Peter Z. (hangloose)


Bewertung
0 lesenswert
nicht lesenswert
Welcher Quarz ist auf der Platine verbaut?
Wie sieht das Programm aus?

von Martin V. (oldmax)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi
Ich tippe mal auf die Verbindung mit GND. Versorge beide Platinen ma nur 
mit ihrer eigenen Spannungsversorgung und überlasse die GND-Verbindung 
der USB-Leitung. So wie ich es in der Skizze angedeutet habe.
Gruß oldmax

von P. F. (pfuhsy)


Bewertung
0 lesenswert
nicht lesenswert
Hab ich ebenfalls probiert, keine Verbesserung.
Ich hatte mir jetzt USB-Kabel gekauft, dessen Schirm deutlich 
niederohniger ist als der vorherige. Also ca. 1 Ohm in Vergleich zu 9 
Ohm. Es ist zwar etwas besser, Fehler gibt es trotzdem noch.

von Thomas O. (kosmos)


Bewertung
0 lesenswert
nicht lesenswert
du solltest asynchron übertragen dann läuft die Abtastung nicht davon 
wenn die Taktrate nicht 100% stimmt

oder z.B. durch verschiedenen Puls/Pausenzeiten 0 und 1 zu 
unterscheiden.

https://cdn.instructables.com/FC2/9JFE/JC0UEG6A/FC29JFEJC0UEG6A.LARGE.jpg?auto=webp&frame=1&crop=3:2&width=600&fit=bounds

von Wolfgang (Gast)


Bewertung
0 lesenswert
nicht lesenswert
P. F. schrieb:
> Ich bin mir zu 99,9% sicher, dass das ein reiner Übertragungsfehler sein
> muss. Ich hab an beiden Enden der USB-Leitung ein Ferttitkern montiert
> und die Übertragungsgeschwindigkeit von 9600 auf 2400 reduziert, was
> leider nichts daran ändern.

Was soll die Übertragungsgeschwindigkeit auf der seriellen Schnittstelle 
mit der USB-Übertragung zu tun haben?
Kein Wunder, dass das nichts ändert.

Prüfe erstmal, ob die zusätzlichen Zeichen ("^D}") auch schon aus der 
seriellen Schnittstelle des ATmega8 raus kommen oder erst bei der 
USB-Umsetzung entstehen (direkte Verbindung vom ATmega8.TX zum 
Rock64.RX).
Wie genau stimmen deine Taktfrequenzen für µC und USB-Seriell-Wandler?

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]
  • [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.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

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