Hallo, ich nutze einen Atmega128 (14.7456MHz Quarz) und muss in meinem Programmablauf die Baudrate wechseln. Kann mir jemand sagen, wie lange es dauert, bis der Uart mit der neuen Baudrate wieder verfügbar ist? Sprich: Die Zeit ab Register setzen bis neue Zeichen empfangen werden können. Viele Grüße BD
Per direktes Schreiben auf das Baudrate Register ? Etwa 1 langsames Byte lang ? Miss nach. Dir ist aber klar, dass das auf dem PC nicht so schnell geht .. nur falls das die andere Seite sein sollte.
Auf Seite 222 steht : "• Bit 11:0 – UBRR11:0: USART Baud Rate Register This is a 12-bit register which contains the USART baud rate. The UBRRH contains the four most significant bits, and the UBRRL contains the eight least significant bits of the USART baud rate. Ongoing transmissions by the Transmitter and Receiver will be corrupted if the baud rate is changed. Writing UBRRL will trigger an immediate update of the baud rate prescaler." Das sollte deine Frage doch beantworten.
"Dir ist aber klar, dass das auf dem PC nicht so schnell geht .. nur falls das die andere Seite sein sollte." --> ja, die Gegenstelle ist aber kein PC, sondern ebenfalls ein uC. @The Daz: Leider beantwortet das meine Frage nicht. Dass ich während der Umstellung nichts empfangen kann, ist ja klar. Deshalb war ja meine Frage, wie lange eben diese Umstellung dauert.
Also. Der Teiler wird sofort umgestellt. Vielleicht sind noch ein paar Bits am Rausgeschoben werden. Die werden dann also auf der neuen Baudrate geschoben. Was haelt dich davon ab, das nachzumessen, wenn's so wichtig ist. Einfach einen Pin toggeln vor dem Vorgang, und nochmals wenn's stimmt. Dann mit dem Oszilloskop die Zeit dazwischen messen.
bd schrieb: > @The Daz: Leider beantwortet das meine Frage nicht. Dass ich während der > Umstellung nichts empfangen kann, ist ja klar. Deshalb war ja meine > Frage, wie lange eben diese Umstellung dauert. Die Differenz zwischen Umschalten am "Sender"-µC und "Empfänger"-µC dürfte um Größenordnungen höher sein als die Zeit der Umstellung innerhalb des µC - völlig egal wie diese Umstellung signalisiert wird. Daher ist die Totzeit entsprechend dieser Differenz anzupassen.
ok ich danke Euch. Euren Beiträgen entnehme ich, dass ich davon ausgehen kann, dass, wenn die Register gesetzt sind, der UART auch sofort wieder bereit ist. Ich dachte, dass es evtl. sein könnte, dass man die Register setzt, der UART aber dennoch nicht sofort bereit sei. Vielen Dank nochmal!
Nur mal am Rande gefragt: Welchen Sinn hat das Umschalten der Baudrate bei einer bereits bestehenden Verbindung?
Rufus Τ. F. schrieb: > Nur mal am Rande gefragt: Welchen Sinn hat das Umschalten der Baudrate > bei einer bereits bestehenden Verbindung? Es hat manchmal seinen Sinn. Ich mach das in bestimmten Fällen auch. Bei ganz gewöhnlichen Dingen wie Hintergrundmonitor usw. reichen 9600 völlig aus und das geht auch über große Entfernungen, was bei 56K nicht so zutrifft. Aber: Man muß dazu eben nicht nur die Baudrate bei beiden Seiten umschalten, sondern (wieder mal) beide Seiten miteinander synchronisieren. genau DAS ist extrem wichtig, um Konfusionen zu vermeiden. Wieviel Zeit das eigentliche Umschalten braucht, ist dabei herzlich egal. W.S.
W.S. schrieb: > Es hat manchmal seinen Sinn. Wann? > Ich mach das in bestimmten Fällen auch. > Bei ganz gewöhnlichen Dingen wie Hintergrundmonitor usw. > reichen 9600 völlig aus und das geht auch über große > Entfernungen, was bei 56K nicht so zutrifft. Und die großen Entfernungen ändern sich während einer bestehenden Verbindung? Im laufenden Betrieb? Wie das?
:
Bearbeitet durch User
Rufus Τ. F. schrieb: > Nur mal am Rande gefragt: Welchen Sinn hat das Umschalten der Baudrate > bei einer bereits bestehenden Verbindung? So kann man z.B. den Sync Break für einen LIN-Frame erzeugen. Das sind 12..15 Bitzeiten low (dominant), also mehr als mit 8N1 normal möglich ist. Das klappt sogar am PC mit dem PC16550-UART unter LabView.
W.S. schrieb: > Man muß dazu eben nicht nur die Baudrate bei beiden Seiten umschalten, > sondern (wieder mal) beide Seiten miteinander synchronisieren. Warum soll die Synchronität überhaupt verloren gehen? Der Empfänger sollte nur rechtzeitig Bescheid kriegen, damit er auch umschaltet.
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.