Wenn ich das richtig sehe dann müsste man doch das HVPP auch per Hand machen können. (Atmega 168 ab Seite 275) Die ganzen Zeitangaben sind Minimum und wenn ich halt ne Minute brauche um ein byte zuschreiben sollte es doch dem Atmega nicht stören. Also würde ich einfach - Reset=0 - XTAL1 6 mal 1-0 - Pegel,XA1,XA0,BS1 = 0 - Reset= 12V - XA1=1 XA0=0 BS1=0 - Daten= 0100 0000 - XTAL1= kurz 1 - Data= neue Fuses (nigirt) - WR= kurz 0 - Warten bis RDY=1 (und dann noch die anderen Fuses) Ist soweit richtig oder mach ich hierbei wieder einen gravierenden Fehler?
Wenn du es mit Tastern machen willst wird dir das Prellen deinen Plan durchkreuzen. Müsstest dann an jeden Taster eine monostabile Kippstufe dranhängen. Es dürfte aber vermutlich einfacher sein, einen HV-Programmer nachzubauen.
ich dachte da eher an ein Kabel das ich an GND oder Vcc stecke http://i187.photobucket.com/albums/x5/lomy_photo/HPIM2146.jpg
Irgendwie trollig... :-o Ein Draht, den du irgendwo reinsteckst prellt garantiert noch mehr als irgendein Taster.
hmmmmm die idee ist im ansatz gar nicht mal schlecht. allerdings würd ich das mit einem µC realisieren, der die entsprechenden daten anlegt und den takt erzeugt. und danach könnt ihr mir alle eure zerfusedten AVRs zu weihnachten schenken! ;)
Dann verstehen wir uns falsch... Die Datenleitung werden werden sich nach kurzer zeit sich ja einpegeln und das XTAL1 und WR werden mit Pulup /Puldown wiederständen gehalten. Außerdem müsste ein Impuls doch eh nur den gesteckten Befehl ausführen.
für die daten mag das gehen, aber was denkst du was passiert wenn dein taktsignal prellt? ein pullup/pulldown schützt nicht vor kontaktprellen.
> für die daten mag das gehen, aber was denkst du was passiert wenn dein > taktsignal prellt? ein pullup/pulldown schützt nicht vor kontaktprellen. Schon klar. Aber nur das Taktsignal reagiert empfindlicgh auf Prellen. Das ist also die einzige Leitung bei der er mit einem Monoflop/Flipflop einen prellfreien Puls erzeugen muß. Dann funktioniert das. Randy
@Ben: Aber eine entsprechende Beschaltung schützt vor prellen. Vielleicht kann man was einfaches basteln. @Ralf: Deine Idee hatte ich auch schonmal. Ich hab mir aber ein HV-Programmer gebastelt und die Idee nicht weiter verfolgt. (war auch nur just4fun) Ich hab aber mal mit dem Vellmann K8055 versucht einen AVR zu programmieren. Hab das Projekt aber nicht weiter verfolgt, da ich keine Lust mehr hatte. Ich konnte die ID lesen, in den Programmiermodus wechseln und das Flash auslesen. Nur das schreiben hatte irgendwelche Probleme gemacht. Gruß, SIGINT
VCC | -------+-[ ]-+---(XTAL1) | | | GND--[ ]-+ = | GND müsste aber doch helfen und der Pulldown verhindert das im freien ein Impuls kommt.
> müsste aber doch helfen
Hast du im Datenblatt mal nach dem Kapitel "External Clock Drive
Waveforms".
1 | tCLCH Rise Time max. 0.5 μs |
2 | tCHCL Fall Time max. 0.5 μs |
Schaffst du die? Und richtig spannend wirds dann ein paar Zeilen drunter:
1 | ΔtCLCL Change in period from one clock cycle to the next max 2 % |
Da solltest du aber einen Sekundenzeiger an der Uhr haben :-o
also bei mir steht nur tXHXL (Von Lo>Hi bit Hi>Lo) muss min 150ns sein. ein Maximalwert steht bei hier nicht. Da XTAL1 hier auch nicht als clock sonder nur zum bestätigen des asynchronen Signals genommen wird ist die regle hier wohl nicht zutreffend. (Figure 125,126,127 Tabel 129)
müßte man halt schauen ob sich das ding im fast-statischen betrieb an einer unregelmäßigen clock verschluckt. die rise/fall times sollten aber schon stimmen.
bei figure 123 ist XTAL1 auch lange aus. all zu groß sollte der C natürlich auch nicht sein. ein probelm das ich auch sehe ist das wenn ich ne weile nix mache ob er dann die Einstellungen (adresse...) vergisst.
wie ich schon sagte, ich würde es mit einem µC machen. da es ja eine feste sequenz ist wirds auch von der programmierung her einfach.
Klaus schrieb: > Wenn ich mal fragen darf, was soll der Schwachsinn überhaupt? Nein darfst du nicht. Ben _ schrieb: > wie ich schon sagte, ich würde es mit einem µC machen. da es ja eine > feste sequenz ist wirds auch von der programmierung her einfach. wenn ich ein hätte würde ich es ja machen. Ich versuch es einfach mal und schau dann was schief gegangen ist :-)
nur noch eine frage: PC[1:0]:PB[5:0] heist das PB0=Bit0...Bit5, PC0=Bit6...Bit7
>> Wenn ich mal fragen darf, was soll der Schwachsinn überhaupt? > Nein darfst du nicht. hihi... treffer, versenkt! :) wenn du keinen µC hast wo willst du dann fuses reinschreiben? du wirst doch an einen µC drankommen wo du praktischerweise einen vollständigen 8bit port hast... attiny2313, atmega8, at90s2313...
ich hab schon einen der aber leider nicht mehr ansprechbar ist. Ich kann mir schon einen besorgen aber heute ist der nicht mehr da und morgen muss ich das Projekt schon vorgestellt werden und ich hätte es lieber vorher nochmal ausprobiert. Ich glaub ich muss einfach auf meine Programmierkünste vertrauen und hoffen das es morgen noch schnell zu Debuggen geht :-)
fürs nächste mal... immer mehr als einen µC parat haben wenn was zeitkritisch ist! ;) die fuses hat man schneller mal zerballert als man denkt. aber mal eine andere frage. weiß du was du an den fuses verstellt hast? wenns nur die für den takt ist gibts vielleicht noch eine rettung ohne größeren aufwand (externen takt einspeisen).
ich hab nur DIV8 weg gemacht aber irgendwas muss beim aufspielen falsch gegangen sein.
> wenn ich ein hätte würde ich es ja machen.
Nimm einen PC mit Parallelport und zapple da an den Pins rum ;-)
wie wird das denn überhaupt getaktet? mit dem internen RC oszillator oder einem externen quarz? falls quarz, hast du ein oszilloskop? damit könntest du messen ob dieser schwingt.
Lothar Miller schrieb: >> wenn ich ein hätte würde ich es ja machen. > Nimm einen PC mit Parallelport und zapple da an den Pins rum ;-) ich brauch aber 16 i/o's und nicht nur 8 Eigentlich sollte das Ding jetzt mit dem interne 8MHz LC Kreis schwingen aber es geht nichts mehr. Sonst hat es ja auch immer geklappt aber beim schreiben muss was falsch gegangen sein. mit einem externen Takt hab ich es auch schon versucht hat aber auch nicht geholfen. muss wohl hoffen das es morgen mit einem neuen klappt.
Hallo zusammen, ich kann sagen, daß es machbar ist den AVR von Hand zu programmieren. Ich hab einen AVR nur mit Tastern, Widerständen und Elkos in den Programmiermodus versetzt und die Signatur ausgelesen. Die Widerstände und Elkos sind nur zum entprellen der Taster. Anbei noch zwei Videos. http://www.youtube.com/watch?v=JoLddJtfZTA http://www.youtube.com/watch?v=LixFkVP8NDo Gruß, SIGINT
Und wenn die Versuche zu frustrierend werden, macht man halt den ganzen AVR zur "Fuse": http://www.youtube.com/watch?v=EHOxc-FvaUs&NR=1 SCNR ;-) Andreas
Cool, sogar den Flash kann man von Hand programmieren :-) Als abolute Notlösung im Feld, ohne PC und Programmer, ist das bestimmt interesannt - Oder für SM-Liebhaber ;) Bei Gelegenheit versuch ich mal ein kleines Blink-Programm in den AVR zu hacken. Gruß, SIGINT
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.