Forum: Mikrocontroller und Digitale Elektronik USART Communikation mit 1% tolleranz


von Der G. (jonnyk)


Lesenswert?

Hallo alle zussammen.

Habe da mal eine frage weiss nicht ob sich jemand damit schon auskennt.
Ich habe 2 MC der eine arbeitet mit einem Takt von 14745600 Hz.(Quarz 
für RS232 übertragung).
Der andere mit 8 MHz. ein sehr unstabiler quarz.
Deswgen habe ich jetzt ein Problem. Wenn ich versuche die beiden zur 
communication zu bringen verstehen sie sich nur bei einer Baud rate von 
4600 wenn ich mehr mache geht nichts mehr.

Kann ich es irgend wie ausrechnen oder einstellen das die beiden sich 
verstehen? oder ist es ausgeschlossen?

Quarz beim 8MHz MC austauschen geht nicht. Es sind über 500 geräte 
gebaut worden und sind beim Kunden im einsatz.
Es ist vom bau jahr "1800 vor Christus.":-)
deswegen ausgeschlossen dass ich irgend was an dem MC machen kann. Aber 
ich kann alle Vorschlege ausprobieren die den 14 MHz MC betreffen.


Bedanke mich im vorraus.

PS: der eine MC ist ein Mega256 der andere (vom bj 1800 )ist ein 
Mitsubishi 50740 -10

von Andreas K. (a-k)


Lesenswert?

Wie man einen Quarz so instabil kriegt, dass eine präzise UART am 
anderen Ende ausser Tritt kommt ist mir jetzt nicht klar. Ausser 
natürlich wenn der Quarz nicht bloss in der Frequenz sondern im ganzen 
Schwingverhalten instabil ist. Dann aber hast du m.E. keinerlei Chance, 
denn dabei kann alles rauskommen.

Eine Abweichung von 1% ist üblicherweise noch kein Problem.

von Εrnst B. (ernst)


Lesenswert?

Wenn du die "uralt-Schaltung" irgendwie dazu bringen kannst, länger am 
Stück Daten zu senden könntest du versuchen die Baudrate "auszumessen" 
(z.B. RX-Pin mit ICP-Pin verbinden, etc) und dann versuchen über 
Anpassung von UBRR die Baudrate zu erraten...

Oder du lässt den Hardware-UART am Mega ganz weg und machst nen 
Software-Uart... den könnt man vermutlich zu mehr Toleranz bewegen.

von Paul Baumann (Gast)


Angehängte Dateien:

Lesenswert?

Hier habe ich ein kleines Programm angehangen, was ich gerne benutze, um
festzustellen, ob der Fehler klein genug bleibt.

MfG Paul

von Der G. (jonnyk)


Lesenswert?

Danke Für die tollen antworten werde mal Das mit der Software uart 
testen ist mir gar nicht in den sinn gekommen.

Und danke fürs tolle programm da braucht man ja gar nichts mehr rechnen 
und weiss trotzdem die reele baudrate...

Danke

von Klaus F. (kfalser)


Lesenswert?

Könnte sein, dass die Vorteiler Register falsch gesetzt werden?
Ein beliebter Fehler ist z.B. diese um eins zu groß oder zu klein zu 
setzen.

Vielleicht kannst Du mit einem Oszi beide Sender übereinanderlegen, dann 
siehst Du ob es wirklich solche Bitbreiten Unterschiede gibt.

von Der G. (jonnyk)


Lesenswert?

Ja ich bin mir sicher dass es Bitbreiten unterschiede gibt.
Der Alte MC hat eine total kommische baudrate wie z.b. 33333. ich muss 
jetzt gucken vieleicht kriege ich es auch noch hin.

werde mich dann melden.

Danke noch mal

von 6632 (Gast)


Lesenswert?

Solange man nicht mit einem PC arbeitet ist noch nichts verloren. Dann 
muss man sich nicht unbedingt an die standard Baudraten halten, sondern 
kann auch 12345 Baud machen, sofern die Teiler auf beiden Seiten diesen 
Wert hinreichend genau hinbekommen. Ich kann mir nicht vorstellen dass 
der 8MHz Quarz nichts ist. Ein Quarz is immer sehr viel stabiler als 
alles andere zusammen.

von Paul Baumann (Gast)


Lesenswert?

Laß Dich nicht kleinkriegen, Großer! ;-))

MfG Paul

von Andreas B. (Gast)


Lesenswert?

Warum lässt Du den anderen Proc nicht mit 8 oder 16Mhz statt mit 14,7Mhz 
laufen. Sinn der ganzen Geschichte ist doch, dass die Kommunikation 
zwischen den beiden Procs synchron läuft.
Dann sind es halt 8820 Baud statt 9600 bei gleichem Teiler.

Gruss
Andy

von Falk B. (falk)


Lesenswert?

@ Andreas B. (Gast)

>Warum lässt Du den anderen Proc nicht mit 8 oder 16Mhz statt mit 14,7Mhz
>laufen. Sinn der ganzen Geschichte ist doch, dass die Kommunikation

Das ist doch schon ein Baudratenquarz. Der kann so ziemlich alle 
Standardbaudraten mit minimalem Fehler erzeugen. Und 8 MHz können auch 
viele Baudraten mit geringem Fehler erzeugen.

MFG
Falk

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.