Forum: Mikrocontroller und Digitale Elektronik AVR UART schneller als 115600


von Tobi A. (Gast)


Lesenswert?

Hi

weiss jemand ob es möglich ist den UART beim AVR schneller als 115600 
baud laufen zu lassen?

Falls ja - kennt wer ein PC terminal programm was damit klarkommt?

Ich hab nen FDTI-chip dranhängen also die PC seite sollte das Tempo 
mitmachen.

Irgendwer irgendwelche Ideen?

Tobi

von Stefan B. (stefan) Benutzerseite


Lesenswert?

> weiss jemand ob es möglich ist den UART beim AVR schneller als 115600
> baud laufen zu lassen?

Kann man. Laut Handbuch vom Atmega32 z.B. bis 1M. Sinn macht es erst, 
wenn der AVR mit einem entsprechend hohen Takt (>= 16 MHz) betrieben 
wird.

von D. W. (dave) Benutzerseite


Lesenswert?

Habe letztens die Kombination Mega32 und FT232R bei internem Oszillator 
auf 8MHz mit 1MBaud laufen lassen. Dazu natürlich das 2X Bit aktivieren.
Wenn man den internen Oszillator nimmt, natürlich nicht vergessen das 
Kalibrierungsregister zu schreiben.

von Spess53 (Gast)


Lesenswert?

Hi

Lt. Datenblatt (z.B. ATMega48) können AVRs bei 20MHz bis zu 2,5Mbps.

MfG Spess

von Wolfram Q. (quehl)


Lesenswert?

im PC geht das mit der seriellen Schnittstelle nicht. Auch mit dem Timer 
wird das schwierig werden. Ist aber vielleicht mal einen Versuch wert. 
Über die parallele Schnittstelle würde dann die Ausgabe gehen. Wenn der 
Timer zu langsam ist, könnte man das ganze in Software probieren, dann 
geht die Zeit über die CPU Laufzeit. Das dürfte nicht einfach zu 
programmieren sein, halte es aber nicht für ausgeschlossen, wenn da 
nicht gerade andere Programme wie Windows aktiv sind.
Im Augenblick habe ich dazu keine Zeit, das zu programmieren. Kannst es 
vielleicht selber mal versuchen.

mfg

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

FTDI-Treiber und FTDI-Chip FT232R erlauben 1MBaud Datentransferrate im 
seriellen Modus. Im Bitbang Modus ist es sogar noch ein wenig mehr. Ein 
moderner Computer ist in der Lage, über seine USB2 Schnittstelle die 
Daten auch ohne Handshaking schnell genug abzuholen. Als Programm kommt 
HTerm in Frage. Siehe PC-Software-Forum.

von Hans J. (hjm)


Lesenswert?

@Wolfram

> im PC geht das mit der seriellen Schnittstelle nicht.

Dies stimmt so nicht. Die moderen PC's (seit ca. 5 Jahren), nutzen alle 
programmierbare UART's. Diese lassen sich nahezu auf jede Baudrate 
einstellen. Intern verwenden diese einen Takt von ca. 9,216MHz.

Das Problem ist nur, das das genutzte PC-Programm dies unterstützen muß, 
zur Not selbst eines schreiben.

Ich habe einen selbst geprogten PROFIBUS-Simulator, der mit 500kBaud mit 
dem PC kommuniziert.


Grüße
Hans-Josef

von Bernd T. (bastelmensch)


Lesenswert?

Travel Rec. wrote:
> FTDI-Treiber und FTDI-Chip FT232R erlauben 1MBaud Datentransferrate im
> seriellen Modus. Im Bitbang Modus ist es sogar noch ein wenig mehr. Ein
> moderner Computer ist in der Lage, über seine USB2 Schnittstelle die
> Daten auch ohne Handshaking schnell genug abzuholen. Als Programm kommt
> HTerm in Frage. Siehe PC-Software-Forum.

Ich verwende genau diese Kombination. Funktioniert bei mir bestens.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Bei mir auch ;-)

von Wolfram Q. (quehl)


Lesenswert?

@Travel Rec und Bernd T.

In Hterm kann ich keine Baudrate von 1 Mbaud finden. Das geht bei mir 
nur bis 260000, wenn ich mal die fehlende 0 als Schreibfehler betrachte. 
Außerdem funktioniert das nur unter Windows. Ist also nur eingeschränkt 
nutzbar.

@Hans Joseph

ich würde das dann selber schreiben. Hast Du da Informationen, welche 
Daten ich in welche Register schreiben muß? Ich programmiere in 
Assembler und verwende auch BIOS und DOS Funktionen. Aber auch 
Direktzugriff.

mfg

von Falk B. (falk)


Lesenswert?

@ David W. (dave)

>Habe letztens die Kombination Mega32 und FT232R bei internem Oszillator
>auf 8MHz mit 1MBaud laufen lassen.

Ahhhh, schon wieder so Einer!!!

>Kalibrierungsregister zu schreiben.

Das rettet deinen Arsch nicht.

AVR-Tutorial: UART

MFG
Falk

von crazy horse (Gast)


Lesenswert?

lass es, dass ist nicht ausrottbar. Und vor allem die immensen Kosten 
eines passenden Quarzes/Resonators....

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

>In Hterm kann ich keine Baudrate von 1 Mbaud finden. Das geht bei mir
>nur bis 260000...

Man kann alles Mögliche an Baudraten manuell eingeben bzw. in eine Datei 
hterm.cfg schreiben. Wenn der angeschlossene COM (oder virtuelle COM) 
diese dann unterstützt, wird auch erfolgreich verbunden.

von Tobi A. (Gast)


Lesenswert?

Hi

also wenn ich da richtig sehe muss ich meinem AVR ein quarz goennen und 
dann die teillerrregister vernuenftig setzen.

Da es mir ja quasi egal ist WIE schnell es ist (hauptsache schneller) 
kann ich ja die PC seite nach meinem belieben anpassen. Sprich wenn es 
ein krummer wert im AVR wird wirds halt auch einer am PC.

Weiss wer ob Python so was unterstuetzt?

Tobi

von Tobi A. (Gast)


Lesenswert?

So

also der FDTi ist nun auf 1 Mbaud gepimpt allerdings hab ich noch das 
problem das Python das nicht unterstuetzt. Weder USPP noch Pyserial 
kommen damit klar.
Hat jemand Vorschlage?

Tobi

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Ääääh HTerm?! Nur nochmal zur Sicherheit.

von Simon K. (simon) Benutzerseite


Lesenswert?

Tobi A. wrote:
> Da es mir ja quasi egal ist WIE schnell es ist (hauptsache schneller)
> kann ich ja die PC seite nach meinem belieben anpassen. Sprich wenn es
> ein krummer wert im AVR wird wirds halt auch einer am PC.

Nein, das geht so nicht. Du kannst nicht jede x-beliebige Baudrate am PC 
einstellen. (Auch wenn die Applikation das erlaubt).

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

>Nein, das geht so nicht. Du kannst nicht jede x-beliebige Baudrate am PC
>einstellen. (Auch wenn die Applikation das erlaubt).

Kann man so nicht sagen, da der FTDI-Treiber sehr flexibel ist. Er paßt 
die Baudrate, die eingegeben wurde, der nächstverfügbaren realen 
Baudrate an, die über viele recht feine Teilerstufen einstellbar ist. 
Siehe FTDI Dokumentation.

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.