Hallo zusammen. Ich versuch seit ein paar Tagen meine Platine in Betrieb zu nehmen und es funzt einfach nicht. Hatte vor, mit dem UART meines PIC18F4550 über einen FT232BL (FT232RL auch schon versucht) Daten an den PC zu senden und es geht einfach nicht. Register des USART sollten richtig gesetzt sein (mehrfach von verschiedenen Leuten überprüft). Ich bekommen trotzdem in meinen Terminalprogrammen immer nur kryptische Zeichen angezeigt. Bitte um Hilfe, was ich noch alles versuchen kann!!! Bin mit meinem Latein am Ende. mfg ElSchlicko
Öhm...ja...schön...ich hab auch Probleme, kann mir jemand helfen? Was ich damit sagen will: Bitte viel mehr Infos, das bisherige ist viel zu wenig. Schaltpläne, Programme oder zumindest Ausschnitte davon werden unbedingt nötig sein.
Warum willst Du denn Daten über das UART an einen seriell-USB-Chip schicken??? Der 18F4550 hat doch USB 2.0 eingebaut, da brauchst Du den FT232 gar nicht.
FT232 hab ich für dieses Projekt nehmen MÜSSEN (war Teil der Aufgabenstellung). Platine vom FT232 hab ich von Prof bekommen, gehe vom PIC nur mit TX und RX drauf (funktioniert lt seiner Aussage). Andere Schaltpläne sind im Moment nich greifbar. Am PIC hab ich nenn 20MHz Quarz hängen. Programmierung: TRISCbits.TRISC6 = OUTPUT; TRISCbits.TRISC7 = INPUT; OpenUSART( USART_TX_INT_OFF & USART_RX_INT_OFF & USART_ASYNCH_MODE & USART_EIGHT_BIT & USART_CONT_RX & USART_BRGH_LOW, 31); //sollten 9600 Baud sein : : WriteUSART('Z'); :
Die üblichen Verdächtigen: - Baudrate stimmt? "kryptische Zeichen" bekommt man gern, wenn die Baudrate daneben ist Edit: > //sollten 9600 Baud sein Na, ein wenig sicherer solltest du dir schon sein > Am PIC hab ich nenn 20MHz Quarz hängen. Kenn das nur vom AVR: Baudrate nicht genau genug wegen dem Quartz? > gehe vom PIC nur mit TX und RX drauf Und GND hoffe ich - RX und TX "über kreuz" angeschlossen? also der "tx" am FTDI ist ein Ausgang "vom Computer", der "rx" ein Eingang "zum Computer" - Störungen in deiner Schaltung, speziell spikes auf vcc und RX/TX? Ansonsten bietet sich der loopback-Test an: verbinde mal RX und TX vom ftdi (aber nicht mit dem Rest der Schaltung) Dann starte HyperTerminal. Alle Zeichen die du sendest müssen so wieder reinkommen. Wenn du RX und TX wieder auseinander machst, dürfen die Zeichen nicht wieder reinkommen.
lt Datenblatt sind es bei diesen Einstellungen 9600Baud @ Fosc=20MHz Mit dem Quarz das sollte funktionieren, wurde in anderen Projekten auch ohne Probleme verwendet. LoopBack Test hat funktioniert; schickt mir alles gleich retour
Hab da eine Verständnisfrage: Mein FOSC, mit dem ich Laut Datenblatt meine Baudrate berechne, muss schon die Frequenz meines Quarzes sein, oder? (X = ((FOSC/Desired Baud Rate)/64) – 1 und daraus aus errechneter Baudrate Fehler berechnen) Mein Gedankengang sieht so aus: Ich schicke asynchron beliebig die Daten bei der PIC TX Leitung raus und der FT232 schickt selbstständig die Daten rauf. D.h. eigentlich muss ich nur noch die Baudrate am PC einstellen und im Terminalprogramm zeigt er mir mein Zeichen an. Sind meine Gedanken so richtig?!
hast du den PLL für den chip-takt aktiviert? all unsere fragerei könntest du von anfang an beheben, indem du die relevanten teile des sourcecodes veröffentlichst, wie bereits 6 beiträge weiter oben vorgeschlagen aber noch immer nicht gemacht...
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.