Forum: Mikrocontroller und Digitale Elektronik FT232R höchstes Bit gesetzt.


von Gustl B. (-gb-)


Lesenswert?

Hallo, ich habe ein seltsames Problem.

Also ich habe hier einen FT232R, der bekommt vom PC Daten und gibt die 
über den UART aus. Ein FPGA empfängt die dann und gibt die unter anderem 
auf LEDs aus, also das empfangene Byte.
Jetzt übergebe ich dem FT232R vom PC einmal das Byte mit einem 
Terminalprogramm (Realterm) und einmal mit einem selbst in C 
geschriebenen Programm. Dort verwende ich das D2XX von FTDI.

Es ist nun so, schalte ich das Board ein so leuchtet keine LED, das soll 
ja auch so sein.
Jetzt schicke ich vom PC aus mit meinem C programm ein beliebiges Byte. 
Und dann ist das höchstwertige Bit gesetzt und bleibt auch gesetzt egal 
welche weiteren Bytes ich schicke.
Wenn ich aber mit dem Terminalprogramm ein Byte übertrage wird es 
korrekt auf den LEDs angezeigt.
Aber:
Wenn ich zuerst mit dem C Programm ein Byte geschickt habe und dann das 
höchstwertige Bit gesetzt ist und ich dann mit dem Terminalprogramm ein 
Byte < 128 schicke, ist das höchstwertige Bit korrekterweise nichtmehr 
gesetzt. Übertrage ich danach wieder beliebige Bytes mit meinem C 
Programm werden diese immer korrekt angezeigt.

Mir sieht das wie irgendeine seltsame Startbedingung aus die sich aber 
auflöst sobald ich mit dem Terminalprogramm ein Byte (ein beliebiges) 
sende. Wenn ich gleich nach dem Einschalten ein Byte mit dem 
Terminalprogramm sende tritt das Problem erst gar nicht auf.

Unterschiedliche Baudraten habe ich schon getestet ...

Code vom C Programm:
1
unsigned char TX[1]={0x00};
2
.
3
.
4
.
5
TX[0]=(char)bytewert;
6
ftStatus = FT_Open(DevNumber, &FT232R_ftHandle);
7
ftStatus = FT_SetBaudRate(FT232R_ftHandle, 9600);
8
ftStatus = FT_Write(FT232R_ftHandle, TX, 1, &BytesWritten);

Edit:
Verdammt, wie es aussieht hab ich es gefunden:
1
ftStatus = FT_SetDataCharacteristics(FT232R_ftHandle, FT_BITS_8, FT_STOP_BITS_1, FT_PARITY_NONE);
hab ich eingefügt und jetzt geht es. Dachte das wäre der Default ... 
hoffentlich war das wirklich die Lösung.

: Bearbeitet durch User
von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Zu der D2XX LIb gibts von FTDI doch nen froßes pdf wo die FUnktionen mit 
Beispielen erklärt werden.
Da steht glaube auch imemr eine minimalconfig drinne.

Nur um zu guken ob vllt nicht doch noch eine Codezeile fehlt.

von Gustl B. (-gb-)


Lesenswert?

Hallo,
danke, ja das PDF kenne ich schon, habe mir aber bislang immer nur die 
Funktionen rausgenommen von denen ich dachte, dass ich sie bräuchte :-D

Und im Minimalbeispiel dort zum FT_Write, also der Datenausgabe über den 
UART kommt ein FT_SetDataCharacteristics nicht vor ...

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.