Forum: Compiler & IDEs AVR Studio HEX wird nicht ausgeführt


von Kai S. (Gast)


Lesenswert?

Hallo,

ich habe momentan ein Problem und vielleicht kennt einer von euch so 
etwas schon und kann mir sagen, wo es klemmt, aber von Anfang an. Ich 
habe ein neues Board mit Atmega8 uC entworfen und aufgebaut. Der erste 
Funktionstest entsprach den Erwartungen, also habe ich mich an das 
Schreiben des Quelltextes gemacht. Das ganze wurde anstandslos 
kompiliert und auch das flashen klappte auf anhieb. Dann die 
Ernüchterung, dass Programm tat nichts. Nun gut das übliche gemacht und 
die Hardware geprüft. Quarz schwingt, Spannungen liegen an, Reset ist 
stabil, soweit alles gut. Dann zur Fehlersuche in der Software. Erstmal 
alles überflüssige auskommentier, kompiliert, geflasht und wieder nix. 
Das ganze habe ich solange wiederholt, bis ich nur noch ein paar Port 
Pins zum testen gesetzt habe, aber auch dort verweigerte der Atmega 
seinen Dienst. Dann habe ich aus lauter Frust mal eine alte HEX Datei 
eines anderen Projektes mit Atmega8 geflasht und siehe da, dass Teil 
macht was es der Software entsprechend soll. I2C Kommunikation, PWM 
Ausgabe, Port Pins setzen. Also scheint es kein Hardware Problem zu 
sein. Dann habe ich mal das einfachste Programm geschrieben, was mir 
eingefallen ist (Das erste Programm aus dem GCC Tutorial von hier, Port 
Pins setzten) und ihr könnt es euch denken. Wieder gab der Atmega kein 
Lebenszeichen von sich. Zusammenfassend kann ich also festhalten.

Hardware OK. Quarz, Reset, Spannungen alles im Soll.
Software kompiliert ohne Fehler durch und lässt sich fehlerfrei 
simulieren.
Alte HEX Dateien funktionieren.

Es scheint also so, als würde AVR Studio mist bauen, wenn ich neue 
Dateien kompiliere. Was ein Punkt sein könnte, AVR Studio unterstützt 
natürlich nicht mehr die älteren Atmega8 Typen (Warum auch? Benutzt ja 
keiner mehr und Restbestände kauft doch eh niemand). Ich habe das 
Projekt jetzt also als Atmega8HVA angelegt und beim Flashen nutzt ich 
den Atmega88 als Grundlage, da auf keinen der AVR Studio bekannten Chips 
die Signatur meines 8ers passt. Also hat einer von euch schonmal so ein 
Problem gehabt und vielleicht eine Lösung für mich?

Gruß Kai

von Robert N. (metrux)


Lesenswert?

> Hardware OK. Quarz, Reset, Spannungen alles im Soll.
> Software kompiliert ohne Fehler durch und lässt sich fehlerfrei
> simulieren.
> Alte HEX Dateien funktionieren.
>
> Es scheint also so, als würde AVR Studio mist bauen, wenn ich neue
> Dateien kompiliere. Was ein Punkt sein könnte, AVR Studio unterstützt
> natürlich nicht mehr die älteren Atmega8 Typen (Warum auch? Benutzt ja
> keiner mehr und Restbestände kauft doch eh niemand).
Konnte man bei mir gestern noch auswählen.
Wo denn genau? Im Projekt wizzard, configuration options, im ISP-Dialog?
> Ich habe das
> Projekt jetzt also als Atmega8HVA angelegt und beim Flashen nutzt ich
> den Atmega88 als Grundlage,
Atmega8HVA != Atmega8 != Atmega88!
> da auf keinen der AVR Studio bekannten Chips
> die Signatur meines 8ers passt.
Möglicherweise wird die Signatur falsch gelesen. Welche Signatur 
bekommst du denn wenn du sie liest? Ist es immer die Selbe?
Ist deine ISP-Frequenz unter 1/4 der Taktfrequenz des atmega8?
Bist du dir sicher, dass der atmega8 mit externer/interner- Taktquelle 
arbeitet?

Gruß

Robert

von Kai S. (Gast)


Lesenswert?

Hallo Robert,

ich bin mit der 4.17er Version vom AVR Studio unterwegs. Wenn ich ein 
neues Projekt anlege und im Wizzard dann den Ice MK2 oder den Simulator 
auswähle, so gibt es bei mir keinen normalen Atmega8 mehr. Halt entweder 
den HVA oder einen U2. Das selbe im Dialogfenster des ICE MK2 
Programmers. Keiner der dort aufgeführten Atmegas hat die passende 
Signatur. Das ist aber ansich nichts neues. Atmel ändert die Signaturen 
gerne mal. Der 88er passt aber von den Fuses her dazu. Habe auf die Art 
und Weise schon etliche Boards programmiert. Die ganaue Signatur kann 
ich morgen mal auslesen. Da ich mit einem 16MHz Quarz arbeite und alte 
HEX Datien zum laufen kriege, bin ich mir absolut sicher, dass der 
Atmega auf dem externen Quarz läuft und die ISP Frequenz stimmt.

Gruß Kai

von Robert N. (metrux)


Lesenswert?

Der JTAGICE mkII ist ein JTAG-Debugger, der atmega8 hat aber keine 
Debugfuktionalitäten. Deshalb unterstützt der JTAGICE mkII den atmega8 
nicht. Im normalen Simulator (nicht Simulator 2) kann ich einen atmega8 
auswählen.

Du musst allerdings in den "configuration options" oder im makefile 
trotzdem atmega8 angeben, damit der Compiler weiß für welchen Chip er 
die Port- und Register- Adressen er nutzen soll.
Möglicherweise, kannst du trotzdem den JTAGICE mkII überlisten und ihn 
dazu bringen dir einen atmega8 als atmega88 zu flashen, das habe ich 
jedoch noch nicht probiert.

Gruß

Robert

von Kai S. (Gast)


Lesenswert?

Ok,

versuche ich morgen mal, aber das aktuelle Projekt ist für den Simulator 
eingerichtet, ich gucke dann nochmal genau nach, welche uC unterstützt 
werden.

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.