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
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.
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.
Hier habe ich ein kleines Programm angehangen, was ich gerne benutze, um festzustellen, ob der Fehler klein genug bleibt. MfG Paul
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
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.
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
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.
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
@ 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.