ATmega8: MISO Pin auf undefiniertem Potential während Reset

Gast #208679
Lesenswert?

Ich schaffs einfach nicht, meinen ATmega8 zu programmieren. Hab jetzt
gemerkt, dass alle Pins während dem Reset auf undefiniertem Potential
liegen. Bei den normalen Port-Pins ist wohl laut Datenblatt auch
normal, aber der MISO müsste doch theoretisch Daten zurücksenden,
oder?!? Zumindest hab ich das aus dem Datenblatt so interpretiert. Der
ISP-Adapter (Eigenbau) meldet dadurch städig eine 1 zurück, sobald man
ein Multimeter dranhebt eine 0. Kann es sein, dass ich dadurch, dass
ich einmal einen Oszillator dran hatte wärend der interne Taktgeber
aktiviert war, den Controller geschrottet habe?

Gruß
Thomas D.
Gast #208681
Lesenswert?

>>Kann es sein, dass ich dadurch, dass
ich einmal einen Oszillator dran hatte wärend der interne Taktgeber
aktiviert war, den Controller geschrottet habe?

Neee das nich.

Aber hast du die Clock fuses richtig gestellt? Was sagt der Programmer?
Gast #208682
Lesenswert?

@Thomas O.:
Die undefinierte Situation tritt auch schon auf, wenn ich nur den Reset
einschalte (0V). Wollte damit auch nur sagen, dass das Multimeter den
Rückgabewert beeinflusst.

@Simon:
Das ist das Problem, ich kann das Teil nicht pogrammieren, auch keine
Fuse Bits setzen. Der Controller reagiert da nicht darauf. Kann auch
keine der bekannten SOftwares einsetzen, da der Adapter ein Eigenbau
ist (siehe Anhang). Die verwendete Software ist eine Eigenentwicklung,
die wir bisher erfolgreich bei 8051 angewandt haben und nun für den
ATmega8 angepasst wurde. Allerdings liegt das Problem wahrscheinlich
woanders, denn beim ProgrammEnable-Senden sollte der MISO ja eigentlich
den Wert zurücksenden, aber es kommt 255 255 255 255 (mit Multimeter
dran: 0 0 0 0)
Angehängte Dateien:
Gast #208683
Lesenswert?

Hast du beachtet dass der MAX232 invertiert?
Reset muss während des Programmierens auf LOW sein, richtig?

Teste zuerst mal einen "Loopback-Test" am MAX232 aus, damit du dir
sicher sein kannst, dass soweit alles funktioniert.

Ansonsten probiere mal einen Takt an den AVR anzulegen oder einen
anderen (AVR-Mega!) zu benutzen, dessen Fuses noch im
Auslieferungszustand sind (Interner Takt).
Gast #208684
Lesenswert?

Der Reset ist auf LOW, dazu ist der Jumper da (für den 8051 ird er
umgesteckt).
Der Loopback-Test funktioniert auch. Habe es auch schon mit einem
4MHz-Oszillator probiert, und auch mit einem anden ATmega8: Bei beiden
tritt extakt das gleiche Phänomen auf.
Der MISO müsste im Reset einen definierten Wert haben, richtig so oder
bin ich da auch schon auf der falschen Fährte?
Gast #208686
Lesenswert?

Habe ich dann folgenden Abschnitt aus dem Datenblatt falsch verstanden:
"The Serial Programming instructions will not work if the
communication is out of synchronization. When in sync. the second byte
(0x53), will echo back when issuing the third byte of the Programming
Enable instruction. Whether the echo is correct or not, all four bytes
of the instruction must be transmitted. If the 0x53 did not echo back,
give RESET a positive pulse and issue a new Programming Enable
command."

Heißt das nicht, dass (x x 83 x) zurückkommen sollte?
Das passiert leider nicht
Gast #208687
Lesenswert?

Aha, es waren Kontaktprobleme. Habe die gesamte Schaltung ein paar
Reihen weiter aufgebaut (aufm Steckbrett) und jetzt kommt die 83
zurück.
Leider funtioniert das daraufgespielte Programm trotzdem noch nicht. Da
muss ich jetzt mal weiterprobieren.

Danke an Euch!

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