PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Keine UART kommunikation mit ATmega128



Kornhaas.net
24.08.2005, 17:51
Hallo

also ich hab da wieder mal ein kleines Problem. Bis jetzt habe ich einen ATmega 16 eingesetzt, ab jetzt verwende ich aber einen ATmega128. Bei diesem will ich nun die UART0 Schnittstelle benutzen. Zum Test habe ich einfach ein kleines Text-file hergenommen und die UART init wie folgt geändert. Nur leider läuft das Programm nicht :-(

Frequenz (intern 8Mhz)
Baud 9200



#include <inttypes.h>
#include <stdio.h>
#include <avr/io.h>


#define USART_BAUD_SELECT 51

char cText[] = "Hello, world !\r\n";

//-----------------------------------------------------
void _writeChar(char c)
{
while (!(UCSR0A & (1<<UDRE0))) {}
UDR0 = c;
}
//-----------------------------------------------------
void _writeString(unsigned char *string)
{
while ( *string)
_writeChar(*string++);
}
//-----------------------------------------------------
int main(void)
{
DDRF=0xff;
PORTF |= (1<<PF1);
PORTF &= ~(1<<PF2);


UCSR0B = (1<<TXEN0);
UCSR0C = (1<<UMSEL0)|(1<<UCSZ01)|(1<<UCSZ00); //Asynchron 8N1
UBRR0L = (unsigned char) USART_BAUD_SELECT;
_writeString(cText);
return 0;
}

PicNick
24.08.2005, 18:23
Fällt mir so nix böses auf. Für deine Oszi einstellungen legst du die Hand ins Feuer ?

Pascal
24.08.2005, 21:29
schau mal nach den Fusebits, beim ATMega128 gibts nämlich einen Mega103-Kompatibilitätsmodus, der standartmäßig aktiviert ist
diesen kannst du über die Fusebits deaktivieren
evtl. funktioniert deswegen die UART0 nicht

Kornhaas.net
24.08.2005, 23:22
Also meine Fusebits sehen wie folgt aus:
Gesetzt sind nur:
JTAG INterface Enabled
Preserve EEPROM memory through the Chip Erase Cycle
Boot Flash section size=4096
Brown-out detection lever at VCC=2.7V
Int. RC Osc. 8Mhz; Start-up time: 6CK + 0ms


Hab auch schon im Makefile nachgeschaut, da ist auch 8 Mhz eingestellt. Und die Verbindungen sind auch auf dem STK 500 gesteckt, sowie der Jumper für XTAL1 gezogen. ALso so gesehen müsste alles passen und es sollte laufen :-k

domibutterfly
29.08.2005, 17:21
Hi habe das gleiche Problem. nur nehme ich einen Atmel Butterfly Board mit dem 169. Allerdings ist es bei mir so, das wenn ich das Kabel zum RS232 dran habe das Board gar nicht erst hochfährt. Auch bei der Standartsoftware die es von Atmel gibt kriege ich zwar im Hyperterminal die Fragezeihen bei Joystickbewegung, nur das Board fährt dann nicht hoch. Fahr ich es hoch ohne und will dann ein Verbindung herstellen will er auch nichts lesen oder schreiben. Habe an der Orginal konfiguration nichts verändert, sondern direkt runtergeladen. hat jemand eine Idee?
liegt es ev. an dem Kabel, ist 1 m lang?