Forum: Mikrocontroller und Digitale Elektronik 0.5Mbaud per UART?


von MB (Gast)


Lesenswert?

Hallo!

Ich wollte mal wissen, ob von euch schon mal jemand nen avr mit einer 
baudrate von 0.5 - 1 Mbaud betrieben hat - laut datenblatt dürfte das ja 
gehen (z.b: atmega325p). Is das schwiereig oder eher einfach zu 
realisieren?

von mr.chip (Gast)


Lesenswert?

Der AVR kanns ab einer gewissen Taktrate problemlos. Du musst nur dafür 
sorgen, dass die Daten fix genug geliefert und auf der Gegenseite 
verarbeitet werden. 1 MBaud sind immerhin 125 kb/s, da bleiben bei 16 
MHz noch 64 Taktzyklen um das nächste Byte zu berechnen / zu 
verarbeiten.

Mit einem PC wirst du aber kaum kommunizieren können, die schaffen 
nämlich seltsamerweise (meist?) maximal 115000 Baud.

von *.* (Gast)


Lesenswert?

Für mehr sind die UARTs im PC nicht ausgelegt. Die RS232-Pegel dürften 
auch Schwierigkeiten bekommen.

Es gibt aber USB/Seriell-Wandler, die mehr können. Der Hersteller vom 
FT232 hat da mal Werbung gemacht.

von Ronny (Gast)


Lesenswert?

Auch etliche der klassischen Bustreiber (MAX232&Co) sind nicht für so 
hohe Baudraten spezifiziert.Allerdings gibt es auch Chips die deutlich 
höhere Baudraten prima mitmachen.

von Dirk H. (arm-dran)


Lesenswert?

Das geht schon,

hatte mal ne Anwendung von nem RS485 Netztwerk und 32 Teilnehmern,
lief mit 921... Baud.
Waren lauter AT90S2313 dran.

Wie oben geschrieben, muß die Verarbeitung dann razi fazi gehen,
also alles aus dem µC rauskitzeln an Leistung.
Der kann dann bloss sonst nocht mehr viel leisten.

RS232 ist hier tot.
bleibt nur RS485,RS422 usw also differenzielle Schnittstellen

Direkte Kommunikation mit dem PC is dan vorbei, wenn du das überhaupt 
willst.

von chrisg (Gast)


Lesenswert?

Ja, vom Atmega32 zu einem XPort habe ich schon mit 921600Bit/s 
kommuniziert (=8*115200). Damit die Framelänge genau stimmt, habe ich 
einen "krummen" Quarz mit 14.7456MHz genommen.

Das UART-Register wird ja wie folgt gesetzt:
UBRR=(SYSCLK / (BAUD_RATE * 16L) - 1);

Bei UBRR=0 ergibt sich gerade die Quarzfrequenz 14745600.

Für 460800 ginge auch noch der Quarz mit 7.3728 MHz.

Zum PC habe ich über einen Seriell->USB-Wandler verbunden, der mehr als 
die üblichen 115200bps unterstützt - auch das hat gut funktioniert.

von MB (Gast)


Lesenswert?

danke für eure tips - ich verwende übrigens einen ft232 rl - laut 
datenblatt is 1Mbaud kein problem. und der mitgelieferte windowstreiber 
dürfte das ja dann wohl auch schaffen oder?
im datenblatt vom Mega325 P gibts ein beispiel:

system takt: 20MHz
baudrate: 0.5MBaud
U2Xn = 1
UBRRn = 4

kann das so funktoinieren?

noch eine frage: ich habe bis jettz nur hyperterminal verwendet - da 
gibts nur 460... und 918... zum auswählen - gibts ein anderes (besseres) 
TerminalProg zum testen?

von Dirk H. (arm-dran)


Lesenswert?

ja, von Eltima

von MB (Gast)


Lesenswert?

danke für den tipp  - gutes programm !

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.