ATmega128A und ATMEL STUDIO

OP #4480050
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
Gast #4480054
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?
Gast #4480087
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 ...
#4480565
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"
#4480603
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
#4480609
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.
#4480634
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.