Forum: Mikrocontroller und Digitale Elektronik ATmega128A und ATMEL STUDIO


von Gerhard H. (oderlachs)


Lesenswert?

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

von Peter II (Gast)


Lesenswert?

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?

von Oliver S. (oliverso)


Lesenswert?

http://www.atmel.com/webdoc/atmelstudio/supported.devices.AVR.Mega.html

Irgend etwas verstehst du da ganz falsch...

Oliver

von tom (Gast)


Lesenswert?

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 ...

von Gerhard H. (gerhard_h)


Lesenswert?

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
von Bastian W. (jackfrost)


Angehängte Dateien:

Lesenswert?

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

von Oliver S. (oliverso)


Lesenswert?

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
von Cyblord -. (cyblord)


Lesenswert?

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.

von Gerhard H. (gerhard_h)


Lesenswert?

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
Noch kein Account? Hier anmelden.