Forum: Mikrocontroller und Digitale Elektronik USB an PIC18 mit FT232


von ElSchlicko (Gast)


Lesenswert?

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

von Michael (Gast)


Lesenswert?

Ö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.

von Stephan (Gast)


Lesenswert?

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.

von ElSchlicko (Gast)


Lesenswert?

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');
:

von Phantomix X. (phantomix)


Lesenswert?

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.

von ElSchlicko (Gast)


Lesenswert?

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

von ElSchlicko (Gast)


Lesenswert?

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?!

von Master S. (snowman)


Lesenswert?

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
Noch kein Account? Hier anmelden.