Forum: Mikrocontroller und Digitale Elektronik Datenübertragungsprobleme


von P. F. (pfuhsy)


Angehängte Dateien:

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)


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)


Lesenswert?

Welcher Quarz ist auf der Platine verbaut?
Wie sieht das Programm aus?

von Martin V. (oldmax)


Angehängte Dateien:

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)


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 (kosmos)


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)


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?

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.