Hi,
nachdem ich schon einige Zeit fehlerfrei mit meinem Aufbau gearbeitet
hatte, trat folgendes Problem beim Brennen des Mega32 mit AvrProg beim
Verify des Programms auf: "Address: 0x0000, Expected: 0xc012, Received:
0xffff".
Lesen geht zwar noch, aber da die scheinbar ausgelesene hex nur aus F's
besteht, sowie auch bei "advanced" bei AvrProg die mc Signatur ist nur
"FF..." bin ich nicht sicher, ob dort wirklich der mc ausgelsen wird.
Chip erase bringt auch keine Veränderung.
Ich hab das programmier-Dongle (AVR910) mit einem anderen mc auf einem
stckboard getestet, Ok. Bei dem Problemboard handelt es sich leider um
einen SMD Aufbau, sodass ich nur den Quarz ausgetauscht hab, ohne
Erfolg. Ich hab alle Verbindungen gecheckt, und find auch keinen Fehler.
Was könnte die Ursache des Fehlers sein, MC defekt? Aber bevor ich den
austausche, was ziemlich arbeit ist, ohne das Board zu beschädingen,
außerdem hab ich im Moment kein Ersatz da :-P möcht ich gern wissen was
passiert sein könnte.
Ich hab zum Zeitpunkt des Fehlers grad mehrmals ein Programm aufgespielt
wo ich große Arrays in den Progmem speichern wollte. Aber das kann ja
nicht die Ursache sein?! außerdem hat das prog den SPI benutzt, kann man
sich dadurch irgendwie den mc abschießen? Oder passiert das einfach mal
plötzlich?
Tipps für Fehlerquellen?
Sonst bleibt mir nichts anderes übrig als den mc zu tauschen und zu
hoffen, dass es dann funzt.
Grüße
Ohne Schaltplan kann man nicht viel dazu sagen aber es ist nicht sehr
wahrscheinlich, dass der Controller defekt ist, ich tippe auch auf
fehlerhafte Fuses. Laeuft denn das aufgespiele Programm noch? Schwingt
der Quarz denn? Wenn nicht gib dem Controller halt mal einen Takt per
Funktionsgenerator. Eventuell passt auch die SPI-Frequenz nicht (zu
hoch) falls der Controller von Quarz auf internen Oszillator umgefust
wurde.
Wie schon gesagt, ich hab nen anderen Quarz ausprobiert, ohne Erfolg.
Das aufgespielte Programm läuft nicht mehr.
DAs mit den Fuses kann stimmen, SPI ist zB nicht mehr enabled. Aber ich
frag mich in wie weit ich AvrProg "trauen" kann, da auch die Device
signature nicht erkannt wird (hab mal die fehlermeldungen angehängt).
Und wenn das so wäre, hätte ich dann noch eine Möglichkeit den Chip
wieder zu reaktivieren?
achso, ich hab zwar schon ein bisschen gesucht, aber nix dazu gefunden.
Wie kann ich eigentlich bei AvrProg im AvrStudio die SPI-Frequenz
umstellen, bzw erstmal herausfinden wie sie ist. wenn auf internen
oscillator umgestellt wurde, dann müsste das beim Mega32 wenigstens 1MHz
sein.
Thnx, Christian
Hast dir das Tutorial durchgelesen? Offensichtlich NICHT...
Wenn der Oszillator nicht schwingt, kannst du alle angezeigten Parameter
vergessen. Ist also nicht gesagt, dass SPI disabled ist.
Ich will dich nich missverstehen, aber wenn du den externen oszi bzw
quarz meinst, dann hab ich ja schon geschrieben, dass ich den schon
einmal ausgetauscht hab, und das ergebnis das gleiche war. damit sollte
diese fehlerquelle ausgeschlossen sein. oder wie?
wenn du den internen meinst, und beim proggen irgendwie darauf
umgestellt wurde dann kann ich daran ja auch nix ändern, sprich mc hin.
oder seh ich das zu einfach...
Wenn du es geschafft hast, die Fuses auf "externen Oszillator"
einzustellen, kannst du beliebig viele Quarze dranhängen, es bringt
nichts. Umgekehrt stehen die Chancen besser, d.h. auch bei Einstellung
"Quarz" kommt man mit dem Oszillator weiter.
Der Fall ist recht beliebt, da ein schneller Quarz meist mit 1111
betrieben wird, ein externe Oszillator aber mit 0000, und die inverse
Logik der Fuses schon manche irritiert hat.
Christian wrote:
> Wie schon gesagt, ich hab nen anderen Quarz ausprobiert, ohne Erfolg.> Das aufgespielte Programm läuft nicht mehr.
Das war nicht die Frage. Die Frage war: Schwingt er oder nicht?
Moegliche Antworten sind: Ja, er schwingt oder Nein, er schwingt
nicht.
Falls ersteres der Fall ist, liegt wahrscheinlich ein
Verbindungsproblem/Verdrahtungsproblem vor. Falls nicht, wird es wohl an
inkorrekten Fuses liegen, in diesem Fall SPI-Frequenz pruefen und
eventuell eine andere externe Taktquelle bemuehen (das STK500 z.B.
bietet diese Moeglichkeit direkt, ansonsten Oszillatorschaltung oder
Funktionsgenerator benutzen).
Michael
Problem gelöst. und für diejenigen mit dem gleichen ploblem, die diesen
thread suchen, dann auch eine gute empfehlung:
http://www.klaus-leidinger.de/mp/Mikrocontroller/meinetools.html#Preserver
Der mc war durch irgendeinen Fehler auf ext oscillator gestellt, und da
ich noch einen hatte konnte ich das mit dem oben genannten Tool einfach
wieder richten.
Danke für die Tipps.
@ Bensch:
Das stand natürlich alles so schon im Tutorial.
achso, irgendjemand sollte diesen Satz von der ersten seite des
tutorials löschen:
"Falls ihr irgendwelche Fragen habt, stellt diese bitte im Forum!"