mikrocontroller.net

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


Autor: Gustl B. (-gb-)
Datum:

Bewertung
0 lesenswert
nicht 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:
unsigned char TX[1]={0x00};
.
.
.
TX[0]=(char)bytewert;
ftStatus = FT_Open(DevNumber, &FT232R_ftHandle);
ftStatus = FT_SetBaudRate(FT232R_ftHandle, 9600);
ftStatus = FT_Write(FT232R_ftHandle, TX, 1, &BytesWritten);

Edit:
Verdammt, wie es aussieht hab ich es gefunden:
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
Autor: Mw E. (Firma: fritzler-avr.de) (fritzler)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Gustl B. (-gb-)
Datum:

Bewertung
0 lesenswert
nicht 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 ...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.