Forum: Mikrocontroller und Digitale Elektronik Atmega16 USB2.0TORS232


von Leandro L. (tetef)


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

von Matze (Gast)


Lesenswert?

Steht im Datenblatt.
http://www.atmel.com/dyn/resources/prod_documents/doc2466.pdf
Was du suchst steht auf Seite 169.

von Denny W. (dennyweinberg) Flattr this


Lesenswert?

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

von Leandro L. (tetef)


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);
}

von AVRuser (Gast)


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 ...

von Leandro L. (tetef)


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

von Andy H. (vinculum) Benutzerseite


Lesenswert?

PCs können keine 921kBd

von Rufus Τ. F. (rufus) Benutzerseite


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.

von Leandro L. (tetef)


Lesenswert?

Hi Rufus,

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

von Leandro L. (tetef)


Lesenswert?

sorry 460800.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.