Hallo Freunde ! Ich habe ein Board mit dem Atmega128A gekauft, welches als Steuerzentrale fungieren soll. Nun da ich fast ausschliesslich in C programmiere kam der erste Dämpfer vom ATMEL Studio(4,5,7), der Chip ist nur in ASSR zu programmieren. Habe mich mit den Unterlagen von ATMEL auseinander gesetzt und auch den ATM103 Modus ausprobiert. Normale I/O Programmierung kann ich unter Einstellung von ATMega128 vornehmen, aber I2C, SPI und UART geht überhaupt nicht. Es werden verschiedene Registernamen nicht erkannt, auch die nicht die Orginal in der Beschreibung von ATMel angegeben sind. Ich bin am Verzweifeln , hat da wer einen Tipp für mich ?? Das Board ist von LC-Studio hier ist es etwas beschrieben: https://orxor.wordpress.com/2013/08/08/externer-quarz-fur-atmega128a/ Gruss und Dank Gerhard
Gerhard H. schrieb: > Normale I/O Programmierung kann ich unter Einstellung von ATMega128 > vornehmen, aber I2C, SPI und UART geht überhaupt nicht. Es werden > verschiedene Registernamen nicht erkannt, auch die nicht die Orginal in > der Beschreibung von ATMel angegeben sind. dann zeige mal was du gemacht hast. ATmega128A ist doch ein Standard-Type der einfach zu Programiren ist. > der Chip ist nur in ASSR zu programmieren. was meinst du damit?
http://www.atmel.com/webdoc/atmelstudio/supported.devices.AVR.Mega.html Irgend etwas verstehst du da ganz falsch... Oliver
The ATmega128A is a functionally identical, drop-in replacement for the ATmega128. All devices are subject to the same qualification process and same set of production tests, but as the manufacturing process is not the same some electrical characteristics differ look at AVR525 ...
Hallo und vielen Dank für Eure bisherigen Mühen ! Ja es ist auch ein bischen schwer, das so verständlich für einen Aussendstehenden zu schreiben. Also ich habe dieses Bosrd über eine 10pol. ISP Kabel mit dem STK500 verbunden. und Benutze ARV-Studio zum Code schreiben und kompilieren. Der ATmega128 A steht in der Auswahl beim STK500 nur beim Wizzard zum Erstellen eines neuen Projektes zur Verfügung. Unter Projekteigenschaften kann ich diesen Chip nicht suchen/einstellen, nur den 128..eben ohne "A". Jetzt habe ich eine Prog zur ser. Verbindung per USART geschrieben und da meldet AVR Studio das dieser Chip nur in Assembler zu Programmieren geht. Hier die Fehlermeldung : error: MCU 'atmega128a' supported for assembler only Bei der "usart init"- Routine meckkert der Compiler das er die Register nicht kennt, selbst bei der, die ich der Origin.Atmega128A Beschreibung von Atmel entnommen habe (S.254) Hier der Code: (in FOSC als F_CPU und der main hier etwas geändert) : *********************************************** C Code Example(1) #define F_CPU 8000000UL // Clock Speed #define BAUD 9600 #define MYUBRR F_CPU/16/BAUD-1 void USART_Init( unsigned int ubrr) { /*Set baud rate */ UBRRH = (unsigned char)(ubrr>>8); UBRRL = (unsigned char) ubrr; Enable receiver and transmitter */ UCSRB = (1<<RXEN)|(1<<TXEN); /* Set frame format: 8data, 2stop bit */ UCSRC = (1<<USBS)|(3<<UCSZ0); } int main( void ) { USART_Init(MYUBRR); return 0; } *********************************************** Nun habe ich noch bemerkt das hier auch schon ein Fehler existiert wenn ich den ATMega128A bei der Projekterstellung auswähle: c:/winavr-20100110/lib/gcc/../../avr/include/avr/io.h:404:6: warning: #warning "device type not defined"
:
Bearbeitet durch User
Hi, bei mir ( Atmel Studio 7 ) kann ich den ATMega128A bei den Projekteigenschaften auswählen und auch beim STK500 ist der da. Er ist nur nicht direkt unter dem ATMega128, sondern ein paar Reihen drunter ( siehe Screenshots ). Gruß JackFrost
Gerhard H. schrieb: > c:/winavr-20100110/lib/gcc/../../avr/include/avr/io.h:404:6: warning: > #warning "device type not defined" Das mag sein. WinAVR2010 ist so steinalt, das kennt wohl wirklich den Mega128A noch nicht. Das Problem hat aber mit den Atmel Studios > 4 überhaupt nichts zu tun. Die kommen mit ihren eigenen, neueren Versionen. Wenn diese Fehlermeldung bei einem Studio 5 oder größer auftritt, ist deine Installation kaputt. Oliver
:
Bearbeitet durch User
Oliver S. schrieb: > Gerhard H. schrieb: >> c:/winavr-20100110/lib/gcc/../../avr/include/avr/io.h:404:6: warning: >> #warning "device type not defined" > > Das mag sein. WinAVR2010 ist so steinalt, das kennt wohl wirklich den > Mega128A noch nciht. Das Problem hat aber mit den Atmel Studios > 4 > überhaupt nichts zu tun. > > Oliver Macht aber nichts, die A-Variante ist Drop-In Kompatibel. man kann einfach den 1280 ohne A auswählen und dafür programmieren.
Vielen Dank werde es später nochmals alles nachgehen, habe jetzt nochmals durchgelesen und 2 Registernamen geändert , da muss noch ne 0 oder 1 in den Namen: void USART_Init( unsigned int ubrr) { /*Set baud rate */ UBRR0H = (unsigned char)(ubrr>>8); UBRR0L = (unsigned char)ubrr; //Enable receiver and transmitter */ UCSR0B = (1<<RXEN)|(1<<TXEN); //0 fehlte bei UCSR0B /* Set frame format: 8data, 2stop bit */ UCSR0C = (1<<USBS)|(3<<UCSZ0); //0 fehlte bei UCSR0C } habe aber den ATMega128 gewählt und nicht 128A Melde mich wider bislang herzlichten Dank !!!!!! Gerhard
:
Bearbeitet durch User
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.