Forum: PC-Programmierung FTDI über createfile mit 1mbit zum AVR?


von Philipp C. (ba4_philipp)


Lesenswert?

Hallo,

warscheinlich eine blöde Frage, aber ich suche für mein CAN Interface 
eine Möglichkeit schneller mit dem AVR zu kommunizieren als 115k2. Ich 
habe nun gelesen, dass mit diesen FTDI ICs über USB bis zu 1MBit/s 
möglich ist.
Meine Frage ist nun ob ich dann einfach im AVR auf 1MBit stellen kann 
und wie gewohnt in C unter Windows die Schnittstelle per createfile 
öffnen kann und als Baudrate 1000000 Baud angeben kann? Oder ist es über 
die normale Windows API nicht möglich mehr als 115k2 auszuwählen?

Vielen Dank
Gruß Philipp

von Simon K. (simon) Benutzerseite


Lesenswert?

Ich würde mal behaupten das geht, da sämtliche Terminalprogramme meinen 
Noname-USB-RS232 Wandler mit biszu 1MBit unterstützen.

von Christian R. (supachris)


Lesenswert?

Ja das klappt, man übergibt der DCB dann einfach seine gewünschte 
Baudrate. 921.600Baud ist z.B. kein Problem.

von Rolf Magnus (Gast)


Lesenswert?

> Meine Frage ist nun ob ich dann einfach im AVR auf 1MBit stellen kann

Wenn dein AVR dann noch genug Zeit hat, seine Aufgabe zu erledigen.

von Philipp C. (ba4_philipp)


Lesenswert?

Rolf Magnus wrote:
>> Meine Frage ist nun ob ich dann einfach im AVR auf 1MBit stellen kann
>
> Wenn dein AVR dann noch genug Zeit hat, seine Aufgabe zu erledigen.

Hmm, bei 10MHz hätte er noch rund 108 Takte zwischen 2 Bytes. Das ja 
echt nicht viel. Er macht aber im Prinzip eh nix weiter als das 
Übertragen vom CAN auf die serielle und der CAN läuft nur mit 125kbit/s. 
Es muss ja auch nicht gleich 1Mbit sein. Nur mehr als 2x die 125kbit/s 
(für ne ASCII Übertragung).

Vielen Dank
Gruß Philipp

von Christian R. (supachris)


Lesenswert?

Auf jeden Fall Hardware-Handshake benutzen. Dann gehts eben erst weiter, 
wenn der ATMega die Daten verarbeitet hat.

von Arc N. (arc)


Lesenswert?

Funktioniert relativ problemlos (Abweichung der Baudraten FTDI <-> AVR 
beachten)
Wenn man keinen Zugriff auf die PC-Applikation hat, kann man dem Treiber 
zur Not sagen, dass er z.B. wenn die Applikation 115200 Baud haben will, 
trotzdem mit z.B. 500000 Baud übertragen soll.
http://www.ftdichip.com/Documents/AppNotes/AN232B-05_BaudRates.pdf

von Philipp C. (ba4_philipp)


Lesenswert?

Mir geht es nur darum nix zu verlieren, wenn auf dem CAN mal richtig was 
los ist und ich zum PC nur mit ca. 60kbit/s senden kann. Zur Zeit sende 
ich binär um möglichst die 115k2 voll auszuschöpfen, ich würde mich aber 
gerne an dieses Lawicel Protokoll halten und in ASCII senden.

von Arc N. (arc)


Lesenswert?

Philipp Co wrote:
> Mir geht es nur darum nix zu verlieren, wenn auf dem CAN mal richtig was
> los ist und ich zum PC nur mit ca. 60kbit/s senden kann. Zur Zeit sende
> ich binär um möglichst die 115k2 voll auszuschöpfen, ich würde mich aber
> gerne an dieses Lawicel Protokoll halten und in ASCII senden.

Die FTDI-Bauteile unterstützen bis zu 3 MBit/s (wenn's der AVR schafft).
Oder man nimmt, wenn es von der Hardware möglich ist, den FT245R und 
schaufelt so bis zu 600-700 oder mehr kByte/s zum PC/AVR.

Add: Bei 10 MHz kann der AVR entweder 625000 Bit/s oder 1250000 Bit/s.
Der FTDI kennt als Teiler für die Baudrate:
n + 0, 0.125, 0.25, 0.375, 0.5, 0.625, 0.75, 0.875.
D.h. der Fehler bei den Baudraten liegt bei ca. 1%.

Optimaler wäre, wenn der AVR mit 8/16 MHz läuft oder eben ein FT245R.

von Philipp C. (ba4_philipp)


Lesenswert?

500kBaud sind mehr als ausreichend. Es geht nur um meinen CAN Bus hier 
und um nix universelles. Mehr als 125kbit/s muss ich nicht zum PC 
bekommen (bissel mehr als 250kbit/s reichen also selbst wenn man es als 
ASCII Hes String übertgrägt)

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.