Wisst ihr wo es anleitungen zum verwenden des chips gibt? Was sind die default werte wenn man kein EEPROM benutzt (bezgl. Baud-rate, stop bits und die anderen infos die windows haben will)? Ich hab mir das datasheet mal angeschaut aber ich finde das ein wenig dünn und verwirrend. Danke, Marius
Ich hab gerade gesehen das das wohl von meiner programmierung abhängt... ok. Also was ich mich wirklich frage ist ob die Beschaltung von der AVR USB entwicklungsplatine wirklich reicht (da ist nur RXD und TXD mit meinen ATmega16 verbunden, und natürlich GND) Kann mir mal jemand ein paar anfängertips geben? :) Ich hab versucht das, was vom chip kommt, zu lesen aber da kommt nur müll bei raus (irgendwelche zeichen, keine richtigen strings). Ich hab einfach das UART ASM beispiel vom AVR-Tutorial auf den ATmega geschrieben. Btw ich hab kein EEPROM dran, ich hoffe mal das das kein Problem ist.
oh man... wie peinlich!! :) Ich habe vergessen die Taktfrequenz aus den sample von 4mhz auf 10mhz um zu stellen doh Jetzt geht es ohne probleme. Sorry und danke an alle die noch geholfen hätten ;)
Der FT232 ignoriert die Angaben zu Baudrate keineswegs, das macht nur der parallele FT245. Die Baudrate muss daher korrekt eingestellt werden, da sonst in der Tat Müll 'rauskommt. Er funktioniert auch ohne EEPROM. Zur Verbindung mit einem AVR sind keine Pegelwandler oder gar Inverter erforderlich; einfach nur die Sendedatenleitung mit der Empfangsdatenleitung verbinden und umgekehrt. Ein einfacher Test wäre der "Kurzschlusstest": RxD und TxD des FT232 werden miteinander verbunden. Werden mit einem Terminalprogramm (hier tut's auch Hyperterminal) mit abgeschaltetem Hardwarehandshake (!) Zeichen auf der Schnittstelle ausgegeben, müssen diese prompt als Echo wieder empfangen werden, und zwar unabhängig von der eingestellten Baudrate.
hehe, danke für die info. Also wie gesagt läuft es mitlerweile einigermaßen aber nur bis 38400 Baud. Geht das nicht irgendwie schneller? Was ich momentan mache ist: Das Beispiel aus dem tutorial mit 10 mhz anstatt 4 mhz und 57600 baud. Dann hab ich mir bei FTDIchip.com ein VB beispiel runter geladen mit dem ich den chip erkenne, die Baud rate auf 57600 setze und immer fleißig auslese (256 bytes). Wo kann da das problem liegen und was bekommt der FT232 maximal hin? Würde mir handshaking weiter helfen (bzgl. Übertragungsgeschwindigkeit)? Mfg und nochmal Danke! Marius
Der FT232 ist vermutlich nicht das Problem, sondern die von Deinem AVR verwendete Baudratenerzeugung. Die maximal erzielbare Baudrate des FT232 liegt sehr deutlich jenseits von 38400 Baud (und steht im Datenblatt); dank des recht großen Empfangsfifos ist auch ein Datenverlust (der ja durch Verzicht auf das Hardwarehandshake möglich ist) eher auszuschließen. Wie beispielsweise erzeugst Du aus 10 MHz Takt die 57600 Baud? Was für einen Teilerwert verwendest Du da und was ist die resultierende tatsächliche Baudrate?
ich habe total keine ahnung, das hier ist mein source code: .include "m16def.inc" .def temp = r16 .equ CLOCK = 10000000 .equ BAUD = 300 .equ UBRRVAL = CLOCK/(BAUD*16)-1 ; Stackpointer initialisieren ldi temp, LOW(RAMEND) out SPL, temp ldi temp, HIGH(RAMEND) out SPH, temp ; Baudrate einstellen ldi temp, LOW(UBRRVAL) out UBRRL, temp ldi temp, HIGH(UBRRVAL) out UBRRH, temp ; Frame-Format: 8 Bit ldi temp, (1<<URSEL)|(3<<UCSZ0) out UCSRC, temp sbi UCSRB,TXEN ; TX aktivieren loop: ldi temp, 'l' rcall serout ; Unterprogramm aufrufen ldi temp, 'u' rcall serout ; Unterprogramm aufrufen ldi temp, 'p' rcall serout ; ... ldi temp, 'i' rcall serout ldi temp, 'n' rcall serout rjmp loop serout: sbis UCSRA,UDRE ; Warten bis UDR für das nächste ; Byte bereit ist rjmp serout out UDR, temp ret ; zurück zum Hauptprogramm Also ist eine Baudrate von 57600 mit 10mhz nicht möglich oder wie? :(
.equ BAUD = 57600 ...sollte da eigentlich stehen... man die sonne tut mir nicht gut :P
Ich tippe mal, dass die Baudrate leicht nebendran liegt. Der Assembler führt nur Integer Arithmetik aus und berechnet aus ".equ UBRRVAL = CLOCK/(BAUD*16)-1" an Stelle von 9,85 nur 9. Damit bekommt man 62500 Baud. Für hohe Baudraten bietet sich eine Frequenz von 11,0592MHz an, da sich dann ganzzahlige Teilerfaktoren ergeben. Dieter
Sonne um 22:13? Auch schön. Ja, auf genau dieses Problem der abweichenden Baudrate wollte ich hinaus. Irgendwo in diesem Forum geistert auch eine Excel-Tabelle zur Baudratenberechnung herum ...
Danke dds5! Das war's! Ich glaube es zwar selber noch nicht so ganz aber ich hab die Übertragung jetzt auf 312500 baud hoch gezogen (UBRRVAL = 1). Kann das wirklich sein? Also es scheint auf jeden fall zu funktionieren aber irgendwie hab ich zweifel das der wirklich mit der geschwindigkeit arbeitet (kann ich, da ich ein VB programm benutze natürlich nicht so richtig einschätzen). Echt super, danke danke! :)
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.