Forum: Mikrocontroller und Digitale Elektronik ATmega8: MISO Pin auf undefiniertem Potential während Reset


von Thomas D. (Gast)


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.

von Thomas O. (Gast)


Lesenswert?

Hallo,

mit einem Multimeter wirste kaum erkennen was da anliegt. Dazu
brauchste ein Oszi dann sieht man die 5V Impulse das Multimeter macht
damit aber einen Durchschnittsspannung.

von Simon Küppers (Gast)


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?

von Thomas D. (Gast)


Angehängte Dateien:

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)

von Simon Küppers (Gast)


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).

von Thomas D. (Gast)


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?

von Simon Küppers (Gast)


Lesenswert?

Ich würde sagen, MISO hat kein definierten Pegel im Reset.
Schickt man jetz die "Ich-möchte-programmier"-Sequenz, dann sollte
MISO einen Pegel haben.

von Thomas D. (Gast)


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

von Thomas D. (Gast)


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!

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.