Hallo, ich bin fast am verzweifeln.
ich versuche eine kommunikation aufzubauen mit dem ftdi.
mein uC soll Daten zum PC senden. Am Besten sagt der mikrocontroller am
anfang wieviele Byte, sodass der PC etwas Ahnung hat.
Momentan versuche ich erstmal einzelne Byte zu verschicken.
AVR Code:
1
while(1){
2
uart_putc(0xFF);//255
3
uart_putc(0xEE);//238
4
uart_putc(0xAB);//171
5
uart_putc(99);//anzahl pakete
6
for(i=0;i<99;i++){
7
uart_putc(i);
8
9
}
10
}
auf PC seite geh ich nach der D2xx programmers guide vor.
Das Problem ist: wenn ich AVR und PC Seite mit 57600 Baud konfiguriere
klappt das noch. Der AVR macht keine Delays und Codeoptimierung ist auf
0.
wenn ich auf 115200 Baud erhoehe dann verlier ich ne Menge pakete.
Hat jemand n Beispiel wie man mit D2XX wirklich schnell daten
transferieren kann? wenn ich auf 57600 beschraenkt bin, kann ichs grad
vergessen. und den ftdi hab ich extra wegen der schneller uebertragung
geholt.
danke fuer die hilfe
Pak
oder einfach mal ganz anders:
wie kann man mit dem FTDI 232R daten schnell vom uC zum PC uebertragen?
eine recht grosse menge in kuerzester zeit...
ich such einfach nur ein gescheites codebeispiel und nicht den muell der
FTDI Seite.
hmmm keine ahnung. Ich nutz die UART Library vom Peter Fleury !???!
dort drin setz ich die baudrate auf den gewuenschten wert. ich benutze
einen externen 16 mhz takt.
aber spaeter wollte ich auf einen Atmega644 mit 20mhz umsteigen.
kannst du etwas code bereitstellen? ich dreh hier noch am rad mit der
miesen dokumentation
Tip: Baudratenquarz
Bei Taktraten immer dran denken, dass die Bitraten auch sauber erzeugt
werden können. So sind 18,432 MHz für hohe Bitraten geeignet, 16 MHz
oder 20 MHz jedoch nicht.
ok,
wie siehts mit der Konfiguration der FTDI Kommunikation aus?
ich kann Latency, Baudrate, FlowControl, TimeOuts, Datacharacteristics
usw setzen...
ist da etwas spezielles empfehlenswert?
Ok die initialisieung war schon recht aehnlich.
ich hatte die Timeouts auf 100,100
Die flow control auf "none"
LATENCYTIMER hab ich auf 50!! ????
FT_SetDataCharacteristics war gleich.
mit 57600 baud ist das ergebnis ok. !!!
wenn ich die baudrate erhoehe (115200), geht wieder mal alles schief.
im moment benutze ich:
ist das ok? wenn ich die bytes nicht einzeln empfange hatte ich das
problem dass sich die pakete untereinander verschieben. Beim
mikrocontroller sende ich z.b. A,B,C die ganze zeit.
empfange dann aber B,C,A. somit konnte ich das nicht mehr zuordnen. also
bin ich auf einzelne pakete zurueck gegangen.
> wenn ich die baudrate erhoehe, geht wieder mal alles schief.
Schon mal versucht, 16000000 durch 115200*16 zu teilen? Was kommt dabei
raus? Bei 57600 ist die Abweichung noch erträglich, bei 115200 nicht
mehr.
Andreas Kaiser wrote:
> 230Kbps mit Mega168 und FT232R ist überhaupt kein Problem. Vorausgesetzt> die Bitrate passt. Woher kriegt der AVR denn den Bitratentakt?
aber wie erreichst du dann diese Baudrate?
mit 18,432 MHz Quarz und FT_BAUD_230400 ???????
ok jetzt hab ich einfach mal
baudrate auf 250000 eingestellt. denn das passt ja vom teiler her. und
sihe da ich bekomm ne uebertragung wie mit 56700. nur schneller denk ich
(aber ich kann noch nicht messen)!!
Äh, mal ne Frage: Wenn du sowieso über den D2XX Treiber gehst, wieso
willst du dann noch mit den krummen Baudraten rummachen? Also bei meinem
232RL gehen 500KBit mit 16MHz Takt ohne Probleme. Man könnte auch 1MBit
oder 250KBit oder 125KBit mit "geraden" Quarzen fahren.