FTDI Basic Breakboard + PIC18F452

Ich mache ein Projekt mit einem PIC18F452 und muss USART verwenden. Daher habe ich ein FTDI Basic Breakout Board (von Sparkfun) gekauft, um das Debuggen zu erleichtern. Das Board ist die 5V-Version.

Ich habe FT232R bereits mit einer Loopback-Schaltung und Putty (unter Windows) getestet und es funktioniert gut. Ich habe PIC auch mit einer Loopback-Schaltung getestet und es funktioniert auch gut. Ich kann jedoch FT232R nicht dazu bringen, mit PIC zu arbeiten. Im Mikrocontroller habe ich USART mit 9600 kBaud, 8 Bit, keine Parität (wie PC-Seite), RX mit Interrupt konfiguriert. Ich sende nur Daten vom PC zum PIC. Wenn PIC etwas empfängt, druckt es auf LCD. Das Problem ist, dass PIC nichts empfängt. Also nahm ich eine Oszilloskopsonde und die Ergebnisse sind diese:

Geben Sie hier die Bildbeschreibung ein

Das Signal berührt nicht den GND! Deshalb erkennt PIC keine Daten, die am RX-Pin ankommen, richtig?

Wenn ich jedoch den FT232-TX-Pin vom PIC-RX-Pin trenne, erhalte ich:

Geben Sie hier die Bildbeschreibung ein

Ich habe beide GND (ft232 und PIC) verbunden.

Irgendwelche Vorschläge, wie man das löst?

Danke!

Antworten (3)

Haben Sie den Ausgangstreiber auf dem PIC UART RX-Pin aktiviert? Wenn es einen hohen Pegel austreibt, geht die Spannung auf 5 V, wenn der FTDI hoch fährt, und etwas in der Mitte aufgrund von Konflikten, wenn der FTDI niedrig fährt.

(Dies kann ein dummer Vorschlag sein, je nachdem, wie die PIC-UART-Konfiguration funktioniert. In diesem Fall tut es mir leid.)

Überprüfen Sie das Datenblatt noch einmal, aber meistens, wenn Sie den UART eines PIC aktivieren, wird RX automatisch als Eingang und TX als Ausgang konfiguriert, unabhängig von TRIS-Bits

Das passiert oft, wenn Sie zwei Sender miteinander verbinden.

Wenn Sie also zurückschleifen, ist es kein großes Problem, zu wissen, welcher der TX und welcher der RX ist. Entweder der FT232 oder das Bild versuchen, hilfreich zu sein, und wenn das Gerät TX verwendet, bedeutet dies, dass die anderen Geräte TX verwenden. Dies ist einer der vielen Gründe, warum Namenskonventionen Krieg verursachen.

Versuchen Sie, die TX- und RX-Leitung zu tauschen, und prüfen Sie, ob die Leitung beginnt, der erwarteten Spannung zu folgen. Wenn alles andere funktioniert, handelt es sich um ein Hardwareproblem, und dies würde dazu führen, dass die Leitung nicht auf 0 V geht und kein Signal zwischen den Chips übertragen wird.

Eine Möglichkeit, die ich normalerweise teste, besteht darin, das Terminal Ihrer Wahl zu starten, TX und RX schweben zu lassen, beide zu erfassen und einfach eine Taste gedrückt zu halten. Unabhängig davon, welche Leitung umschaltet, sendet der PC die Daten aus.
@ajs410, ja, ich habe nur darauf hingewiesen, dass die abgeschlossenen Tests diesen Fehler nicht erkannt hätten.

Während dies nicht direkt auf Ihr Problem mit Spannungen zutrifft, besteht ein häufiges Problem, wenn keine Daten in den UART eines PIC gelangen, darin, dass Sie daran denken müssen, das OERR-Bit zu löschen. Wenn es jemals gesetzt wird, ignoriert der PIC alle weiteren eingehenden Daten, bis OERR gelöscht ist.