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