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