Atmega644 AVR-Studio -> ADC-Free Running Mode simulieren

#793439
Lesenswert?

Hallo

Wollte nur mal eine kleine Anekdote zum besten geben. Hat mich einen 
geschlagenen Nachmittag gekostet, das herauszufinden.

Und zwar habe eine Initialisierung für einen ATmega644 geschrieben, die 
mir den AD-Wandler im Free-Running mode einstellt. Mehr nicht. Das 
wollte ich testen, mit AVR-Studio.

Hex kompiliert und reingeladen - es funktionierte nicht. Das ADSC-Bit 
war zwar nach dem Init gesetzt, und die erste Wandlung wurde 
durchgeführt. Allerdings wurde es nach dem Interrupt nicht wieder 
neugesetzt (wie es im Free-Running mode sein sollte). Also suchte ich 
stundenlang an der Initialisierung herum, bis ich auf die Idee kam, das 
ganze trotz nciht laufender Simulation mal zu flashen - siehe da, es 
Funktionierte.

Weis jemand von den Profis, warum das so passierte? Gibt es noch mehr 
Ecken, die nicht/schlecht simuliert werden?

Hier noch (für die die es interessiert) die genutzte Initialisierung.
 DDRA  &= ~0xff;
 ADMUX = ( 0 << REFS1) | ( 0 << REFS0 );
 ADCSRA = ( 1 << ADEN ) | ( 1 << ADSC ) | ( 1 << ADATE ) | ( 1 << ADPS2 
) | ( 1 << ADPS1 ) | ( 1 << ADPS0 ) | ( 1 << ADIE );
 ADCSRB = ( 0 << ADTS2 ) | ( 0 << ADTS1 ) | ( 0 << ADTS0 );
Mit besten Grüßen
Martin Zenzes
#794044
Lesenswert?

Hallo

Hm, in der Hilfe-Datei steht zwar tasächlich was davon, das der 
AD-Wandler zum Teil nicht funktionert. Aber nicht explizit, was genau 
kaputt ist. Naja. Was will man erwarten. Vieles andere funktioniert!

Hab dann noch was gesucht (hätt ich mal vorher tun sollen) und den 
Beitrag "ADC AVR 8535" hier gefunden. Scheint also 
wirklich so wie vermutet zu sein.

Gibt es denn noch andere Hardware-Simulatoren für freiere 
Betriebsysteme? Welche nutzt du? Welches ist zu empehlen? Jedesmal ne VM 
hochzufahren, nur um AVRstudio zu starten ist wirklich etwas mühsam...
Moderator Persönliche Seite #794047
Lesenswert?

Martin Zenzes wrote:

> Gibt es denn noch andere Hardware-Simulatoren für freiere
> Betriebsysteme?

Es gibt simulavr und simulavrxx.  Zumindest simulavr ist gerade im
Bereich der Peripherie-Simulation völlig unterbelichtet, simulavrxx
soll da zwar besser sein, aber scheitert irgendwie an der
Infrastruktur.  Man muss sich da schon ziemlich tief reinknien, bevor
man es 1.) überhaupt erstmal gebaut bekommt und 2.) dann auch
benutzen kann.

Da man aber die Umgebung des Controllers sowieso nur mittelmäßig
bis gar nicht simulieren kann, benutze ich Simulationen höchstens
mal für paar algorithmische Tests, ansonsten Emulation via JTAG oder
debugWire für die Praxis.
#806594
Lesenswert?

Martin Zenzes wrote:
> Hm. Schade!
> Dann werd ich mich mal so weiterbehelfen.
> Aber auf jedenfall Danke für die schnellen Antworten!

Hallo, kann das Phänomen bestätigen.
Bin an der gleichen Stelle mit einem ATMega168 in der Simulation 
aufgelaufen.
Mein Ausweg:
Habe auf den AVR Simulator V2 (Preview) umgestellt.
Der hat das Problem nicht.

Bin Durch Euren Beitrag drauf gekommen.

Danke
Martin

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren