Gast
#1956543
Guten Morgen liebe Gemeinde,
ich bin neu hier im Forum und hoffe mir kann hier geholfen werden.
Ich versuche eine einfache USB Verbindung zwischen PC und
Mikrocontroller herzustellen. Ich verwende dafür ein MEGA128-USB-Board
mit CP2102 Silab USB-USART-Bridge.
Meine Initialisierung:
#define UBRR_VAL ((F_CPU+BAUD*8)/(BAUD*16)-1)
void InitUART1(void)
{
UBRR1H = UBRR_VAL >> 8;
UBRR1L = UBRR_VAL & 0xFF;
// enable receiver and trasmitter
UCSR1B = (1<<RXEN)|(1<<TXEN);
// set frame format: 1stop bit, 8data
UCSR1C = (0<<USBS)|(2<<UCSZ0);
}
Die berechnete Baudrate habe ich über ein Display ausgeben lassen, die
stimmt.
Wenn ich nun ein Zeichen sende empfängt das Terminal am PC leider ein
anderes. Ich sende mit dieser Funktion:
void TestSend(void)
{
while (!(UCSR1A & (1<<UDRE))) // warten bis Senden moeglich
;
UDR1 = 'T';
}
Nun hab ich in dem Forum gelesen, dass beim ATMega128 der ATmega103
Compatibility Mode standardmäßig aktiviert ist.
Ich hab versucht den zu deaktivieren, leider zeigt mir aber AVR Studio
nur die Fuses von einem ATMega32 an.
Vielleicht hat jemand schon meinen Fehler gefunden und kann mir helfen.
Falls ich irgendwelche wichtigen Infos vergessen habe bitte melden
großes Dankeschön schonmal
