Sehr geringe Baudrate ein Problem für Windows?

OP #5146091
Lesenswert?
• ▲
▼
Guten Tag,

ich versuche gerade mit einer sehr geringen Baudrate (~38) Daten von 
einem µC zum PC zu übertragen, da der Controller selber kein UART 
unterstützt, hab ich versucht, das in Assembler nachzubauen. Mit Logic 
messe ich eine Bitdauer von ca. 26ms, der Async Serial Analyzer erkennt 
die übertragene Zahl 11 bei einer Baudrate von 38, von daher ging ich 
davon aus, das Windows das auch so erkennen würde, allerdings zeigt mir 
RealTerm und mein C#-Program entweder 0 oder 240 an? Kann Windows 
mit so geringen Baudraten nicht umgehen?
Angehängte Dateien:
Moderator #5146116
Lesenswert?
• ▲
▼
Welchen UART nutzt du auf dem PC? Evtl. kann  der die 38bit/s schon rein
hardwaremäßig nicht. Der klassische Mainboard-UART sollte diese Bitrate
zwar hinbekommen, da ist dann nur die Frage, ob sie auch vom Treiber
unterstützt wird. Ein USB-Serial-Converter mit dem FT232R bspw. geht nur
bis 183bit/s hinunter, da hilft dann auch der beste Treiber nichts.
Persönliche Seite #5146305
Lesenswert?
• ▲
▼
A. K. schrieb:
> Fernschreiber mit 5-Bit Codierung hatten oft 50 und 75.

Die Standard-UART im PC, 8250 bzw. 16550, verwendet im 
Baudratengenerator einen Takt mit 1.8432 MHz, der durch einen Prescaler 
von 16 und dann durch das Baudratenteilerregister weiter heruntergeteilt 
wird.

Dadurch ergibt sich die bekannte Maximalbaudrate von 115200 Baud, und 
jede andere durch ganzzahlige Teilung aus diesem Wert ableitbare 
Baudrate.

Für 50 Baud beträgt der Baudratenteiler 2304, für 75 Baud 1536. Auch 
niedrigere Baudraten sind möglich.


Da aber die Hardwarearchitektur der üblichen USB-UART-Bridges eine 
komplett andere Baudratenerzeugung vorsieht, muss man sich an das 
Datenblatt der verwendeten USB-UART-Bridge halten, sofern es denn eines 
gibt. Von den CHS-Uarts habe ich bislang nur vage aus dem chinesischen 
übersetzte Beschreibungen, aber keine ernstgemeinten Datenblätter 
gesehen.
Moderator #5146510
Lesenswert?
• ▲
▼
S. R. schrieb:
> Ich staune. DOS hat mir damals nichts langsamer als 110 Baud angeboten,

DOS hat fast überhaupt nichts angeboten, was eine sinnvolle Nutzung der
seriellen Schnittstellen erlaubt hätte (vermutlich wollte Microsoft, wie
so oft, die User nicht unnötig verwirren :)). Deswegen hat praktisch
jedes Programm, das seriell kommunizierte, direkt auf die UART-Hardware
zugegriffen, was letztendlich auch nicht viel schwieriger war, als die
komischen DOS-Software-Interrupts zu verwenden.
#5146521
Lesenswert?
• ▲
▼
Max M. schrieb:
> ich versuche gerade mit einer sehr geringen Baudrate (~38) Daten von
> einem µC zum PC zu übertragen, da der Controller selber kein UART
> unterstützt, hab ich versucht, das in Assembler nachzubauen.

Warum so extrem langsam?
Bei meinen I2C-Sniffer auf dem ATtiny85 erreiche ich problemlos mit der 
SW-UART 460800 Baud (Assembler) bzw. 115200 Baud (C).

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.