UART maximale Telegrammlänge

Gast #2488614
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
Gast #2488621
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! :)
Gast #2488622
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren