www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik USB-Kommunikation hinkt


Autor: Rolf Wettstein (humpe)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Gemeinde!

Ich hab da ein kleines Problem mit meinem USB-Seriell-Wandler. Ich 
verwende einen FT232BM für meine uC-Kommunikation. Leider bringe ich die 
Kommunikation nicht hin und hab leider keinen KO um die Signale zu 
messen. Ich hab die Schaltung zwei mal Fräsen lassen und beide bestückt. 
Habe auf beiden Prints die gleichen Phänomene.
So wie's scheint stimmt der Takt nicht ganz, denn ein zwei Bytes von 100 
kommen richtig an, aber naja, eigentlich erwarte ich 0.0% Fehler.
Ich habs mit Frequenzen zwischen 2400-38400 versucht, überall das selbe. 
Auch die Einstellungen im uC hab ich ein dutzend mal überprüft.

Die Spannungen die ich messen konnte habe ich überprüft, das sollte 
alles korrekt sein.

Nun hab ich mal gedacht vielleicht fällt jemandem von euch gleich etwas 
auf, was an der schaltung probleme machen könnte!

Gruss
Humpe

Autor: blubb (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das bild bitte in einer passenderen qualität
so sieht man nix ...

dann :

wenn man davon ausgeht das der FTDI geht ..
wo sind die sourcen von der UART des µC ?

und baudraten versuchen ist nicht
lege dir eine baudrate fest und nutze diese
alles andere  geht eh schief

es sei denn man baut eine autobaudfunktion mit ein ..

Autor: blubb (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
dann noch

µC ... baudratenquarz ?
oder wie sind die fuses gesetzt ??

mehr infos !!!!

Autor: Rolf Wettstein (humpe)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da hst du wohl recht, geht besser mit zwei bilder.
Dazu ist zu sagen, hab dne 8Mhz-Quarz des uC durch einen 14.7456Mhz 
Quarz ersetzt. Gespiesen ist die Schaltung mit 3.3V
Die Clock Fuses hab ich leider nicht im Kopf und kann den uC im Moment 
nicht anhängen. Was würdest du denn mit dieser Konfiguration empfehlen`?
BAUD-Settings: U2x=0, UBRR=23. Also eigentlich möchte ich 38400baud, 
aber hab halt andere ausprobiert um den Fehler auszuschliessen!

Hier noch der Code der Initialisierung:
void USART_Init(void) {

// Sets Baudrate
  UBRR0H=0;
  UBRR0L=(unsigned long)F_CPU/((unsigned long)BAUD<<4)-1;
 
 
  UCSR0B |= (1<<RXEN) | (1<<TXEN) | (1<<RXCIE);              //Transmit- u Receive-Enable und Receive-Interrupt-Enable setzen

  UCSR0C |= (1<<UCSZ0) | (1<<UCSZ1);               //8-Bit Telegramm


// use USART for printf function
  stdout = &mystdout;

  }

(--> UBRR wird richtig gesetzt, habs auch mal direkt reingeschrieben)

Hier noch der Code der Empfangsroutine:
/*****************************************************************************/
/*                                                                           */
/* Routine um ein Byte von der UART-Schnittstelle zu empfangen               */
/* WER / 03.02.10                                                            */
/*                                                                           */
/*****************************************************************************/

unsigned char UART_Receive(void) {
unsigned char i=0, data=0x00;
  while(((UCSR0A & (1<<RXC))==0) && (i<100)){  //Warten bis Daten empfangen (40ms Timeout)
    _delay_us(400);              //400us warten
    i++;                  //Zählvariable i inkrementieren
  }
  data = UDR0;                //Byte von Datenregister einlesen
  checksum += data;              //Daten zur Checksumme addieren
  return data;                //Daten übergeben
}

Gruss

Autor: Frank K. (fchk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dass die FTDI-Bausteine einen SECHS MHz Quarz brauchen, weißt Du? Wenn 
ich das richtig entziffere, hast Du da 8 MHz eingebaut. Dann ist das 
kein Wunder, dass die Baudraten nicht stimmen.

fchk

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die korrekte Funktion des FT232 kannst Du überprüfen, indem Du den 
Controller weglässt und die RX- und TX-Leitungen des FT232 miteinander 
verbindest. Schließt Du den Aufbau an einen PC an und verwendest ein 
Terminalprogramm, solltest Du abgesendete Daten als Echo sehen können.

Wenn das sichergestellt ist, kannst Du Dich mit Deinem µC beschäftigen, 
vorher ist das nicht sinnvoll.

Autor: Rolf Wettstein (humpe)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier noch die Bilder!

Huch, das ist auch ein Fehler im Schema, dort hab ich einen 6Mhz 
verbaut! Sorry für die Fehler!

Gruss

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.