PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : UART Problem mit dem ATMEGA324A



Dave77
03.01.2013, 18:08
Ich habe ein Problem mit der Seriellen Verbindung mit meinem PC. Ich verwende einen FTDI-Chip den FT232RL der mit HTERM über USB verbunden ist. Ich versuche mit dem Amega324a ein 'A' zu senden. Jedoch epfängt HTERM nichts.
Kann mir jemand Helfen?
Vielen Dank im Voraus.

Hier ist mein Programm:

#include <avr/io.h>

#define F_CPU 12000000 //Takt
#define BAUD 19200 //Baudrate Setzen
#define UBRR_Value 77 //Baudratenregister setzen

unsigned char data1 = 'A';

/*-----------UART-INIT-----------*/

void USART_Init(unsigned int ubrr)
{
UBRR0H= (unsigned char) (ubrr >> 8);
UBRR0L = (unsigned char) ubrr;
UCSR0C |= (3<<UCSZ00); //8Bit, 1stop bit
UCSR0B |= (1<<TXEN0)|(1<<RXEN0); //Enable RXD und TXD
}

int main(void)
{
USART_Init(UBRR_Value); //Init UART

while(1)
{
/* Wait for empty transmit buffer */
while ( !( UCSR0A & (1<<UDRE0)) );
/* Put data into buffer, sends the data */
UDR0 = data1;
}
}

Hubert.G
03.01.2013, 21:04
Wenn du die DIL-Version des µC hast, nimm ihm aus dem Sockel, schließe RX und TX kurz, sende mit Hterm und du solltest das Zeichen als Echo zurückbekommen.
UBRR 77 kommt mir sehr hoch vor, dazu müsstest du im ACSRnA-Register das Bit U2Xn setzen.

alfonsmoeller
04.01.2013, 08:09
Hallo Dave77,
nimm 38 als Teilungsfaktor, entspricht dann 19200 Baud.
12000000/(16*19200)-1 = 38
m.f.G. Alfons

sternst
04.01.2013, 12:22
Ihr verschwendet eure Zeit. Das ist ein Cross-Post, und laut seiner Aussage im anderen Forum (avrfreaks.net) ist das Problem längst gelöst. Er hat es wohl nicht für nötig gehalten, das auch hier kund zu tun.