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
Ich würde mal behaupten das geht, da sämtliche Terminalprogramme meinen Noname-USB-RS232 Wandler mit biszu 1MBit unterstützen.
Ja das klappt, man übergibt der DCB dann einfach seine gewünschte Baudrate. 921.600Baud ist z.B. kein Problem.
> 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.
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
Auf jeden Fall Hardware-Handshake benutzen. Dann gehts eben erst weiter, wenn der ATMega die Daten verarbeitet hat.
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
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.