Forum: Mikrocontroller und Digitale Elektronik UART maximale Telegrammlänge


von Lorenz (Gast)


Lesenswert?

Hallo Forum,

ich arbeite momentan mit einem ATmega16 und erarbeite mir gerade die 
UART Schnittstelle.

Kann ich Telegramme empfangen, die länger sind als 255 Zeichen?
Bzw. kann ich ein Chararray anlegen, was größer ist als 255?

Wie groß ist der UDR Puffer, in welchem die Zeichen bis zur Abarbeitung 
zwischen gespeichert werden?

Grüße
von Hmm.. (Gast)


Lesenswert?

Lorenz schrieb:
> Hallo Forum,
Hallo Lorenz

> ich arbeite momentan mit einem ATmega16 und erarbeite mir gerade die
> UART Schnittstelle.
Der UART ist ein ganzer Abschnitt im Datenblatt des Atmega16 gewidmet. 
Hast du dir das schonmal angeschaut?

> Kann ich Telegramme empfangen, die länger sind als 255 Zeichen?
Aber natürlich.

> Bzw. kann ich ein Chararray anlegen, was größer ist als 255?
Kommt darauf an, wie viel RAM du noch frei hast, falls du beabsichtigst 
die Daten dort abzulegen, z.B. weil die Telegramme live zusammen gesetzt 
werden.
Alternativ kann man die Daten auch im Flash ablegen, dann sind sie aber 
zur Laufzeit nicht mehr schreibbar.

> Wie groß ist der UDR Puffer, in welchem die Zeichen bis zur Abarbeitung
> zwischen gespeichert werden?
Steht im Datenblatt. Ich würde die wirklich raten, dich mit den paar 
Seiten zur UART mal zu beschäftigen. Wenn du dann etwas nicht verstehst 
bzw. findest kannst du immer noch Fragen.

> Grüße
Viel Erfolg! :)
von Uwe (Gast)


Lesenswert?

> Kann ich Telegramme empfangen, die länger sind als 255 Zeichen
Klar warum nicht ? Wo siehst du das Problem ?

> Wie groß ist der UDR Puffer
• A second Buffer Register has been added. The two Buffer Registers 
operate as a circular
FIFO buffer. Therefore the UDR must only be read once for each incoming 
data! More
important is the fact that the Error Flags (FE and DOR) and the 9th data 
bit (RXB8) are
buffered with the data in the receive buffer. Therefore the status bits 
must always be read
before the UDR Register is read. Otherwise the error status will be lost 
since the buffer state
is lost.
• The receiver Shift Register can now act as a third buffer level. This 
is done by allowing the
received data to remain in the serial Shift Register (see Figure 69) if 
the Buffer Registers are
full, until a new start bit is detected. The USART is therefore more 
resistant to Data OverRun
(DOR) error conditions.
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.