PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Erster UART Atmega 644P



shedepe
22.06.2009, 17:00
Hey
ich versuche nun schon seit einigen Tagen den ersten UART eines Atmega 644P zum laufen zu bekommen. Allerdings empfange ich am PC keinerlei Zeichen.

unsigned int BAUD=9600;



void USART_Transmit( unsigned char data )
{
while ( !( UCSR0A & (1<<UDRE0)) )
;
UDR0 = data;
}

int main()
{

UBRR0 = (F_CPU / (BAUD * 16L) - 1);

UCSR0B |= (1<<TXEN0);
UCSR0C |= (1<<USBS0) | (3<<UCSZ00);


while(1)
{

USART_Transmit('h');
_delay_ms(300);
}


Hatt jemand eine idee was an dem Code falsch sein könnte ?

Hubert.G
22.06.2009, 19:21
Die Hardwareverbindung sicher OK, mit einem Loop getestet. Interner Oszillator oder Quarz.

shedepe
22.06.2009, 21:18
was meinst du mit einem Loop getestet??...hab die verbindung aufjedenfall mehrmals überprüft. Hab nen externen 20MHZ Quarz

Hubert.G
23.06.2009, 10:49
Wenn du einen DIL hast geht der Loop-Test sehr einfach. µC heraus nehmen, eine Drahtbrücke zwischen RX und TX stecken.
Am PC Zeichen senden, diese müssen als Echo zurück kommen. Dann ist sichergestellt das die Hardware OK ist.
Der Quarz ist in den Fuses auch eingestellt?

shedepe
23.06.2009, 15:01
Also so wie es aussieht scheint der MAX232N kein Signal durchzugeben
Werd ihn gleich mal austauschen
Nun stellt sich mir aber noch die Frage wie schnell so ein MAX232N zu schrotten ist??

shedepe
24.06.2009, 11:21
irgendwie scheint der MAX232N nicht zu funktionieren, dabei habe ich ihn genauso angeschlossen wie hier beschrieben http://www.rn-wissen.de/index.php/Bild:Avrtutorial_grundschaltung_max232.gif

Brauche ich eventuell andere Kondensatoren ?

Hubert.G
24.06.2009, 11:53
Andere Kondensatoren brauchst du nicht, die passen schon.
Du hast hoffentlich nicht vergessen auf Pin 15, 16 die Stromversorgung anzuschließen.
RX und TX richtig drauf?

shedepe
24.06.2009, 13:04
Ok das wars..hab den VCC und den GND vergessen anzuschließen


Vielen Dank für deine Hilfe