.. ich verzweifle langsam, aber kriegs bisher leider nicht hin .. 2-Weg
UART .. bis zu 256000 baud ..
Hohe Baudraten hat der T..el erfunden - aber man kann sie in Griff kriegen. Theoretisch sieht das bei ATMEL-8Bittern und Deinen 256 kBd so aus:
Code:
UBRR- Aus UBRR Ziel- Fehler
Vorgabe errechnete Baudrate
bei 20 MHz Baudraten
5 208333,33 256000 -18,62%
4 250000,00 256000 -2,34%
3 312500,00 256000 22,07%
2 416666,67 256000 62,76%
Macht im Prinzip nix, WENN beide Controller den gleichen Takt fahren. Klar - dann haben die ja auch denselben Fehler - oder, andersrum - gleiches UBRR gewährleistet bei gleichem Quarztakt (Controllertakt!) die problemlose Verständigung. Einschränkung (bei mir z.B.) sind natürlich mehrere unterschiedlich bzw. zufällig getaktete Interrupts.
Praktisch fahre ich bis UBRR = 1, das entspricht 625 kBd. Wie geschrieben - trotz etlicher Interrupts und deren ISR. Allerdings habe ich beiderseits stets einen Eingangs- und einen Ausgangspuffer, meist 64 oder 128 Byte, der FIFO organisiert ist. Diese Puffer können bis 255 groß werden. Die eigentliche Kommunikation läuft also "nebenher", im HIntergrund, ab.
Fazit: hohe Taktraten bei AVRmega-8Bitter gehen gut und problemlos, ich habe kein CRC oä, bis UBRR = 1.
Zum Arduino (seiner IDE) kann ich aber nix schreiben, damit arbeite ich nicht.
Lesezeichen