www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atmega16 USB2.0TORS232


Autor: Leandro Leandro (tetef)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich arbeite momentan mit einem Atmega16 (14.7456MHz). Ich benutze auch 
ein USB2.0TORS232 um die Daten zu uebertrage. Ich habe meine Baudrate 
auf 921600 eingestellt, mein Hyperterminal auf 921600 und unter Device 
Manager habe ich auch mein COMPORT auf 921600. leider kann ich kein 
Daten uerbertragen. Es passiert nix. Wenn ich die Baudrate auf 115200 
umstelle, dann funktioniert.


Hat jemand eine Idee. Ich habe oefter gehoert, es soll locker funken.

Danke

Autor: Matze (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Steht im Datenblatt.
http://www.atmel.com/dyn/resources/prod_documents/...
Was du suchst steht auf Seite 169.

Autor: Denny Weinberg (dennyweinberg) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich empfehle eine Baudrate von 230400.
Die funktioniert bei mir mit gleichem Quarz einwandfrei!

Autor: Leandro Leandro (tetef)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi  danke,

laut DB (S 170) heisst das, mit einer Frequenz von 14.7456MHz u. einer 
BR von 921.6K muss funktionieren, aber warum bekomme ich keine Daten?

So sieht meine init aus:
#define F_CPU 14745600UL
#define UART_UBRR_CALC(BAUD_,FREQ_) ((FREQ_)/((BAUD_)*16UL)-1)
#define UART_BAUD_RATE     230400UL
.
.
.
void uart_init(uint8_t tx, uint8_t rx)
{
    uint16_t baudrate;
    baudrate = UART_BAUD_RATE/2;
    UBRRH    = (uint8_t) (UART_UBRR_CALC(baudrate,F_CPU)>>8);
    UBRRL    = (uint8_t) UART_UBRR_CALC(baudrate,F_CPU);
    UCSRA |= (1<<U2X);
    //UCSRB |= (1<<RXCIE);

    UCSRC = (1 << URSEL) | (1 << UCSZ1) | (1 << UCSZ0);
    if(tx) UCSRB |= (1<<TXEN);
    if(rx) UCSRB |= (1<<RXEN);
}

Autor: AVRuser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

> laut DB (S 170) heisst das, mit einer Frequenz von 14.7456MHz u. einer BR
> von 921.6K muss funktionieren, aber warum bekomme ich keine Daten?

Ist ja schön, wenn der Controller das kann; aber du solltest dir mal die 
Datenblätter der RS232-Treiber ansehen, die können diese Speed meist 
nicht ...

Autor: Leandro Leandro (tetef)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi denny,
Denny Weinberg schrieb:
> Ich empfehle eine Baudrate von 230400.
> Die funktioniert bei mir mit gleichem Quarz einwandfrei!


Kannst Du mir Deine uart init posten?

danke

Autor: Andy H. (vinculum) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PCs können keine 921kBd

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

Bewertung
0 lesenswert
nicht lesenswert
Doch, können sie, solange nicht die Onboard-Schnittstellen verwendet 
werden. Die können maximal 115200, aber die werden hier ja nicht genutzt 
- hier ist stattdessen eine USB-RS232-Bridge im Einsatz.

Autor: Leandro Leandro (tetef)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Rufus,

kannst Du mir bitte sagen, wie soll ich mein UART einstellen. Ich kann 
jetzt bis 430600. Aber beim 921600 geht nicht.

Autor: Leandro Leandro (tetef)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sorry 460800.

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.