UART FT232R Problem am PC!

Gast #3310336
Hallo Forum,

ich versuche gerade Daten von meinem Nios über Uart zum PC zu senden.

Die Daten auf dem Uart scheinen zu stimmen. Wenn ich mit nem LA 
draufschau passt es. Und wenn ich mit einem Buspirate und Teraterm den 
Uart Monitor dort anschmeiße sehe ich auch meine Daten.

Wenn ich nun aber versuche über so ein China FT232R Breakout Board die 
Daten zu empfangen seh ich nichts.

Vielleicht mach ich auch etwas falsch.

Ich starte Teraterm und connecte mich mit dem Com Port den mein Breakout 
Board erstellt hat.

Mit den entsprechenden Einstellungen.COM6 9600 8 none 1 none.

Und dann passiert nichts mehr. Es wird nichts angezeigt. Einfach nur der 
Cursor.

Wenn ich es mit Matlab Versuche passiert auch nichts.

Was mache ich denn falsch?
Muss ich noch irgendwas eingeben?


Achja senden tu ich so:
1
void ANT_SEND(float Height_UNN,float Temperature)
2
{
3
  unsigned char i;
4
  unsigned char  txBuffer[32];
5
  unsigned char  txBufferSize=0;
6
  unsigned char BUFFER[32]={0};
7

8
sprintf(BUFFER,"%.1f%.1f",Temperature,Height_UNN);
9
txBufferSize  = strlen(BUFFER)+0;  // message plus sync, size and checksum
10
//txBuffer[0]  = 0xa4;  // sync byte
11
//txBuffer[1]  = (unsigned char) strlen(BUFFER) - 1;  // message size - command size (1)
12
//txBuffer[2] = 0x4e;
13
for(i=0; i<strlen(BUFFER); i++)
14
    txBuffer[0+i] = BUFFER[i];
15

16
// calculate the checksum
17
//for(i=0; i<txBufferSize - 1; ++i)
18
//txBuffer[txBufferSize - 1] = txBuffer[txBufferSize - 1] ^ txBuffer[i];
19

20

21

22
uart = fopen("/dev/UART", "r+");
23
  if(uart)
24
  {
25
    for(i = 0 ; i < txBufferSize ; i++)
26
         {
27
        putc(txBuffer[i],uart);
28
         }
29
    }
30
  fclose(uart);
31
}

Bzw. hat jemand mal einen Matlab Code der mir einfach nur den UART 
einließt?
So nun angemeldet.

TX und RX über kreuz an die entsprechenden GPIO Pins des DE2 und GND an 
GND.

Die Uart wird ohne CTS/RTS betrieben.

Die RX Led der Breakoutboards leuchtet immer ganz wenig und immer wenn 
was gesendet wird vom DE2 (alle 5s einmal den Buffer) blinkt diese 
einmal Hell auf. Scheint somit bis dahin zu funktionieren.
Hier noch ein Bild vom BusPirate in TeraTerm.

Passt soweit. Zuerst die Temperatur mit 1er Nachkommastelle und dann die 
Höhe über NN mit 1er Nachkommastelle. Und dann kommt nach 5s direkt 
dasselbe nomma mit neuen Werten.
Angehängte Dateien:
Ja mit dem BusPirate geht es ja.

Aber mit dem FT232 Breakoutboard wird nichts angezeigt.

Muss ich da noch irgendwas machen damit ich die Daten sehen kann?
Oder wie gibt denn so ein FTDI die Daten aus?


Bzw. funktioniert der BusPirate wie ein LA und decodiert die Daten noch 
zusätzlich??


Irgendwie raffe ich es nicht. Ich dachte wenn die Daten so am Bus 
auszulesen sind müsste mir das Breakout Board einfach die Daten so in 
TeraTerm auswerfen.



Ahhh hab den Unterschied gefunden:

Live UART monitor

UART>(2)<<<macro 2, UART monitor
Raw UART input. Space to exit.
UART>

The UART monitor macro (2) shows a live display of UART input as raw 
byte values without any type of formatting. Press any key to exit the 
live monitor. This mode works best with a terminal that can display raw 
byte values in a variety of formats.

This macro is like the transparent UART macro (1) but without 
transmission abilities, and it can be exited with a key press. It’s 
useful for monitoring high-speed UART input that causes buffer overrun 
errors in other modes.


Damit geht es. Wenn es ein normaler UART->USB ist (auch mit dem 
BusPirate möglich) geht es nicht.
Was muss ich ändern? Stimmt etwas bei meinen Daten nicht die gesendet 
werden? Bzw. wie diese gesendet werden?



Mein Breakout Board hat leider nur CTS herausgeführt. Aber wenn ich 
Empfangen will mit Flow Control brauche ich ja RTS.. Ich hab so das 
Gefühl das ist eigentlich nur zum Senden an einen Arduino gedacht nicht 
zum Empfangen...
Hier die Einstellungen des FTDI.

Beide sind auf 3.3V eingestellt. Beim FTDI sind folgende Pins verfügbar: 
GND CTS VCC TX RX DTR


Was ich ncoh komisch finde, dass sobald ich den FTDI angeschlossen habe 
die RX Led dauerhaft schwach leuchtet.
Angehängte Dateien:
Persönliche Seite
Die Handshakeleitungen sind uninteressant, solange Du im 
Terminalprogramm das Hardwarehandshake deaktivierst. Nur GND, TX und RX 
müssen verbunden werden.

TX und RX musst Du gegebenenfalls vertauschen.


Bei Screenshots ist es übrigens sinnvoll, nur die Dinge von Relevanz zu 
kopieren. Mit gedrückter Alt-Taste landet nur das gerade aktive Fenster 
in der Zwischenablage.
Hm, kann mir hier keiner helfen? Hat keiner eine Idee?

Ein Buffer overflow am FT232R kann es nicht sein. Laut Datenblatt hat 
der einen Reciver Buffer von irgendwas 2XX Byte...

Könnte mir höchstens vorstellen, dass es zu schnell hintereinander 
gesendet wird. Wobei der Chip ja viel höhere Baud Raten mitmacht.

Also wo liegt mein Fehler?

Oder ist der Chip kaputt?

Wobei ja den BusPirate als direkte Bridge auch nicht funktioniert.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.