mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AT90USB162 nur 4800 baud


Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo uC-Gemeinde,

ich habe hier einen AT90USB162 auf einem Olimex Board, mit dem ich Text 
über die serielle Schnittstelle ausgeben möchte. Das funktioniert auch 
bereits, aber leider nur mit maximal 4800 baud.

Das normale Beschreiben von UBRR1H/UBRR1L mit PreScaler funktioniert bei 
mir auch nicht:

#define F_CPU 8000000UL
#define USART_BAUDRATE 9600UL
#define UBRR_VAL ((F_CPU/(USART_BAUDRATE*16))-1)

und später:
UCSR1B = (1 << TXEN1) | (1 << RXEN1) | (1<<RXCIE1);
UCSR1C = (1<<USBS1) | (1<<UCSZ10) | (1<<UCSZ11);

UBRR1H = UBRR_VAL >> 8;
UBRR1L = UBRR_VAL & 0xFF;

Erst wenn ich den Wert zusätzlich nochmal durch vier teile, komme ich 
auf 4800 baud, obwohl ich ja eigentlich 9600 baud anvisiert hatte. Ich 
habe also einen Faktor 8 Differenz zwischen Datenblatt und 
Konfiguration. Auch wenn ich die Werte in den Registern von Hand setze, 
ich komme auf maximal 4800 baud. zum Kompilieren benutze ich das AVR 
Studio und zum Beschreiben Flip. Irgendwelche Ideen?

Vielen Dank,
Frank

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Frank schrieb:
> Ich habe also einen Faktor 8 Differenz zwischen Datenblatt und
> Konfiguration.
Welchen Quarz und wie sind die Fusebits eingestellt, oder anders gefragt 
mit welchem Takt läuft denn den µC?

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Peter,

großes Dankeschön für den Wink in die richtige Richtung:

  CKDIV8 war gesetzt.

Wer macht denn sowas? :-)

Musste erst mal wieder meinen mySmartUSB light ausgraben, denn mit Flip 
konnte ich aus dem AVR Studio nicht verbinden. Also immer im Anschluß an 
das Kompilieren von Hand geflasht. Zwar findet Flip mein Olimex Board 
jetzt erstmal nicht, aber das kann warten...

Nochmal Danke,
Frank

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>  CKDIV8 war gesetzt.

>Wer macht denn sowas? :-)

Der Hersteller. Steht so auch im Datenblatt!

Autor: Tio (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey Frank,

sag mal, wie hast Du das USART überhaupt in Gang bekommen?? Bei mir sind 
die Pins "tot". Hast Du evtl. Pull-Downs oder sowas dran? Also, mit 
folgendem Code initialisiere ich:
void USART1_Init( unsigned int baudrate )
{
  UBRR1H = (unsigned char) (baudrate>>8);                  
  UBRR1L = (unsigned char) baudrate;
  
  UCSR1B = ( ( 1 << RXEN1 ) | ( 1 << TXEN1 ) ); 
  
  //UCSR1C = ((1<<UCSZ11)|(1<<UCSZ10));       // 8 bit, 1 stop bit
}

Damit schicke ich was raus:
void USART1_Transmit( unsigned char data )
{
  while ( !(UCSR1A & (1<<UDRE1)) )
    ;                       
  UDR1 = data;               
}


Also, ganz nach Datenblatt. Vor der Initialisierung resette ich den 
Watchdog und schalte ihn aus, habe irgendwo gelesen, dass er sonst das 
USART stört. Gebe mittlerweile der Init den Wert 207 mit (für 1,2k 
baud). Aber ich kriege absolut nichts raus. Das kann doch nicht so 
schwer sein!?!?

Danke!
Tio

Autor: Tio (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh, äh, natürlich habe ich die eine Zeile NICHT ausgelabelt, als ich 
compiliert habe.... ;)

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.