Hallo,
ich komme irgendwie mit dem FT232RL nicht zurecht. Ich habe eine kleine
Schaltung mit der ich Funksteckdosen schalten möchte entworfen. Dazu
sende ich an die Schaltung ASCII Befehle mit Putty an den VCP. Senden
scheint auch immer zu funktionieren, sogar das Flashen über einen
Bootloader funktioniert ohne Probleme. Mit dem Empfangen vom µC habe ich
aber Probleme. Es kommt hier teilweise nur optischer Matsch im Terminal
an. Manchmal geht es manchmal nicht. Die ersten Buchstaben stimmen meißt
noch, aber dann folgt nur wirres Zeug. Ich habe schon den Gehäuseschirm
der USB Buchse mit GND verbunden (am Endgerät) wie hier im Forum
vorgeschlagen wurde (Mein Hub macht das nicht ...) Jedoch war das auch
nur kurz vom Erfolg gekrönt. Normalerweise wird ein Schirm auch nur
einseitig aufgelegt, aber mein Hub scheint das nicht zu machen (Ich habs
mal durchgemessen) Ab und an habe ich auch Probleme das Windows das
Gerät an einigen Ports nicht erkennt aber das würde ich jetzt erstmal
auf ein schlechtes Kabel schieben, obwohl ich das nicht glaube.
Kann mir hier noch jemand ein Tip geben? Ich habe Schaltplan und Board
angehangen. Der µC läuft mit 8 MHz und 9600 Baud und ich habe es so
gemacht wie im GCC Tut beschrieben, also:
1 | #ifndef F_CPU
|
2 | #define F_CPU 8000000UL // Oszillator-Frequenz in Hz
|
3 | #endif
|
4 | #define BAUD 9600UL // Baudrate
|
5 |
|
6 | // Berechnungen für UART
|
7 | #define UBRR_VAL ((F_CPU+BAUD*8)/(BAUD*16)-1) // clever runden
|
8 | #define BAUD_REAL (F_CPU/(16*(UBRR_VAL+1))) // Reale Baudrate
|
9 | #define BAUD_ERROR ((BAUD_REAL*1000)/BAUD) // Fehler in Promille, 1000 = kein Fehler.
|
10 |
|
11 | #if ((BAUD_ERROR<990) || (BAUD_ERROR>1010))
|
12 | #error Systematischer Fehler der Baudrate grösser 1% und damit zu hoch!
|
13 | #endif
|
14 |
|
15 | // Initialisierung der UART
|
16 | void uart_init(void)
|
17 | {
|
18 | UCSRB |= (1<<RXEN)|(1<<TXEN)|(1<<RXCIE); // UART RX, TX und RX Interrupt einschalten
|
19 | UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0); // Asynchron 8N1
|
20 | UBRRH = UBRR_VAL >> 8; // Baudrate
|
21 | UBRRL = UBRR_VAL & 0xFF; // Baudrate
|
22 | }
|
Das sollte doch so passen oder? Wenn ich wenigstens wüsste ob das an der
Baudrate liegt oder an irgend welchen EMV Probleme des FT controllers.