Forum: Mikrocontroller und Digitale Elektronik AVR ATMEGA High Voltage Programmer Fuses wieder freischalten


von MOBA 2. (Gast)


Lesenswert?

Ich habe mich ausgesperrt bei einem ATMEGA8. Ich habe dort weil ich es 
brauche den Reset deaktiviert, der Bootloader hat bis jetzt 
funktioniert, aber scheint einen Bug zu haben, beim letzten Update ging 
nichts mehr. Jetzt ist er weder via Uart ansprechbar noch per ISP.

Da es SMD ist, und die Elektronik eingebaut, wäre ein High-Voltage 
Programmer gut, wie funktioniert das, welchen (günstigen) kann ich dafür 
verwenden, nach Möglichkeit per USB. Ich habe 2x die Diamex All Avr, die 
können 12V aber nur bei TPI, warum auch immer.

Weiß jmd. wie ich das lösen könnte ohne alles auslöten/ausbauen zu 
müssen?

von Mikrocon T. (-42-)


Lesenswert?

Marius D. schrieb:
> Da es SMD ist, und die Elektronik eingebaut, wäre ein High-Voltage
> Programmer gut,

Vermutlich nicht, denn die Elektronik wird HV stören. HV ist kein ISP.

> wie funktioniert das,

Das steht haarklein im Datenblatt, hat sogar ein eigenes Kapitel.

MfG

von HildeK (Gast)


Lesenswert?

Mikrocon T. schrieb:
> Marius D. schrieb:
>> Da es SMD ist, und die Elektronik eingebaut, wäre ein High-Voltage
>> Programmer gut,
>
> Vermutlich nicht, denn die Elektronik wird HV stören. HV ist kein ISP.

Nach meinem Verständnis muss man nur den Reset-Pin von der Schaltung 
trennen (ist ev. sogar überflüssig, wenn er die RC-Standardbeschaltung 
hat) und natürlich irgendwelche Ausgänge der Schaltung, die auf die 
anderen Programmierpins gehen und vom Programmer bedient werden sollen.
Die Schaltung muss aber mit 5V versorgbar sein.

von Fred R. (fredylich)


Lesenswert?

Hallo Marius,

war Dir wohl bewusst, Reset deaktivieren kein flashen mehr möglich(Rest 
kann nicht mehr auf 0 gezogen werden).
Die Fuse mit HW wieder zurück setzen ist immer eine Gradwanderung.
Ich konnte es schon mehrmals in dem ich an XTAL1 einen externen Takt
ca. 100 Hz 10 Minuten lang angelegt habe (Rechteck H = Vcc).
Keine Garantie.

Mit freundlichen Grüßen

: Bearbeitet durch User
von c-hater (Gast)


Lesenswert?

Marius D. schrieb:

> Weiß jmd. wie ich das lösen könnte ohne alles auslöten/ausbauen zu
> müssen?

Ganz einfach: man lötet nur den ATMega aus, einen frischen wieder ein 
und programmiert den neu. Das dürfte unter Kosten- und Aufwandsaspekten 
die mit Abstand günstigste Lösung sein. Ganz sicher jedenfalls, wenn man 
noch keinen HV-Programmer besitzt.

Im Übrigen solltest du vor allem überlegen, wie du überhaupt in diese 
Situation kommen konntest und dafür sorgen, dass das nicht wieder 
passiert. Dazu sind folgende Maßnahmen sinnvoll:

-BOD aktivieren und BOD-Treshold auf einen sinnvollen Wert konfigurieren
-Bootloaderbereich mit den Lockbits gegen Überschreiben sichern 
(natürlich erst, nachdem der Bootloader erfolgreich programmiert wurde).

von MOBA 2. (Gast)


Lesenswert?

c-hater schrieb:
> Marius D. schrieb:
>
>> Weiß jmd. wie ich das lösen könnte ohne alles auslöten/ausbauen zu
>> müssen?
>
> Ganz einfach: man lötet nur den ATMega aus, einen frischen wieder ein
> und programmiert den neu. Das dürfte unter Kosten- und Aufwandsaspekten
> die mit Abstand günstigste Lösung sein. Ganz sicher jedenfalls, wenn man
> noch keinen HV-Programmer besitzt.
>
> Im Übrigen solltest du vor allem überlegen, wie du überhaupt in diese
> Situation kommen konntest und dafür sorgen, dass das nicht wieder
> passiert. Dazu sind folgende Maßnahmen sinnvoll:
>
> -BOD aktivieren und BOD-Treshold auf einen sinnvollen Wert konfigurieren
> -Bootloaderbereich mit den Lockbits gegen Überschreiben sichern
> (natürlich erst, nachdem der Bootloader erfolgreich programmiert wurde).

Zu den Lockbits habe ich eine Frage, denn da war ich mir unsicher.
Wenn ich den Bootloader und FW drauf habe, kann ich dann komplett alles 
bei den Lockbits sperren? Funktioniert denn dann das flashen durch den 
Bootloader noch oder ist das dann auch geperrt?

von MOBA 2. (Gast)


Lesenswert?

Fred R. schrieb:
> Hallo Marius,
>
> war Dir wohl bewusst, Reset deaktivieren kein flashen mehr möglich(Rest
> kann nicht mehr auf 0 gezogen werden).
> Die Fuse mit HW wieder zurück setzen ist immer eine Gradwanderung.
> Ich konnte es schon mehrmals in dem ich an XTAL1 einen externen Takt
> ca. 100 Hz 10 Minuten lang angelegt habe (Rechteck H = Vcc).
> Keine Garantie.
>
> Mit freundlichen Grüßen

Interessant, verstehe aber nicht wie das funktionieren kann...

von MOBA 2. (Gast)


Lesenswert?

Kennt denn keiner einen HV-Prgrammer per USB der "billig" ist?

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Marius D. schrieb:
> Interessant, verstehe aber nicht wie das funktionieren kann...

 Das interessiert mich auch sehr...

 uC zählt die Impulse, nach 60000 hat er genug davon und da der
 klügere immer nachgibt, setzt der AVR die Fuse zurück ?

 Bei 65535 ist Überlauf, da wird die Fuse zurückgesetzt ?

 Nach 10min dauerndem Stress lockert sich die Fuse ?

 Oder wie ?

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Marius D. schrieb:
> Kennt denn keiner einen HV-Prgrammer per USB der "billig" ist?

 Die freundlichen Chinesen haben mehrere, hier ist einer:
 http://www.aliexpress.com/item/Free-shipping-AVR-high-pressure-high-pressure-programmer-serial-USB-to-serial-port-ISP-STK500-four/32538694772.html

 Programmiert alles ausser Tiny4, Tiny5, Tiny9, Tiny10 (TPI).

von MOBA 2. (Gast)


Lesenswert?

Marc V. schrieb:
> Marius D. schrieb:
>> Kennt denn keiner einen HV-Prgrammer per USB der "billig" ist?
>
>  Die freundlichen Chinesen haben mehrere, hier ist einer:
> 
http://www.aliexpress.com/item/Free-shipping-AVR-high-pressure-high-pressure-programmer-serial-USB-to-serial-port-ISP-STK500-four/32538694772.html
>
>  Programmiert alles ausser Tiny4, Tiny5, Tiny9, Tiny10 (TPI).

Okay danke erstmal. Der kann auch sicher HV? Dann würde ich den doch 
direkt nehmen!

Bei HV ist korrekt, dass man dann auch einfach das ISP nutzt, und Reset 
bekommt 12V der Rest ist wie bei normalem ISP (vll. nur anderes 
Protokoll?)

von holger (Gast)


Lesenswert?

>Bei HV ist korrekt, dass man dann auch einfach das ISP nutzt, und Reset
>bekommt 12V der Rest ist wie bei normalem ISP (vll. nur anderes
>Protokoll?)

Nein, das läuft ganz anders. Du musst ca. 17 Leitungen bedienen.

von MOBA 2. (Gast)


Lesenswert?

holger schrieb:
>>Bei HV ist korrekt, dass man dann auch einfach das ISP nutzt, und Reset
>>bekommt 12V der Rest ist wie bei normalem ISP (vll. nur anderes
>>Protokoll?)
>
> Nein, das läuft ganz anders. Du musst ca. 17 Leitungen bedienen.

Okay dann ist das raus, ist viel zu viel, dann kann ich wirklich den µC 
auslöten, habe ich auch schon gemacht.

Kann mir jmd. das mit den Fuse-Bits (Lockbits) erklären?
Wenn ich die alle mit Read und Write disable, kann der bootloader dann 
trztd noch den flash programmieren oder betrifft das nur das isp 
schreiben/lesen?
Oder wäre dann nur ein Bootloader (BOD0 BOD1) read/write verify disable 
angebracht?

von Fred R. (fredylich)


Lesenswert?

Marc V. schrieb:
> Das interessiert mich auch sehr...
>
>  uC zählt die Impulse, nach 60000 hat er genug davon und da der
>  klügere immer nachgibt, setzt der AVR die Fuse zurück ?
>
>  Bei 65535 ist Überlauf, da wird die Fuse zurückgesetzt ?
>
>  Nach 10min dauerndem Stress lockert sich die Fuse ?
>
>  Oder wie ?

Hallo Marc Vesely,

Ich bitte um Entschuldigung, dass ich diese Variante nicht erklären 
kann. War vor langer Zeit ein Tipp von Mark(Bascom- Entwickler)hat halt 
funktioniert. Leider habe ich nicht mehr die umfangreiche 
Taktbeschreibung wie sich intern die Register mit „untertakten“ 
verhalten.
Also meinen Tipp in die Tonne schmeißen.
Danke.

Mit freundlichen Grüßen

von Paul B. (paul_baumann)


Lesenswert?

Hier ist ein Link zum sog. Fusebit Doktor:
http://mdiy.pl/atmega-fusebit-doctor-hvpp/?lang=en

Ich habe diese Schaltung schon vor Jahren nachgebaut, weil ich damals 
eine ganze Menge "neuer" Atmega8 gekauft hatte, die aber gar nicht so 
neu waren und daraufhin nicht per ISP ansprechbar.



MfG Paul

von Peter D. (peda)


Lesenswert?

Wenn Du knapp an IOs bist, nimm den ATmega328PB, der hat 4 IOs mehr.

: Bearbeitet durch User
von Dussel (Gast)


Lesenswert?

Marius D. schrieb:
> Kann mir jmd. das mit den Fuse-Bits (Lockbits) erklären?
> Wenn ich die alle mit Read und Write disable, kann der bootloader dann
> trztd noch den flash programmieren oder betrifft das nur das isp
> schreiben/lesen?
> Oder wäre dann nur ein Bootloader (BOD0 BOD1) read/write verify disable
> angebracht?
Das steht unter 24. Memory Programming, 24.1 Program And Data Memory 
Lock Bits.
Wenn ich das beim Überfliegen richtig verstanden habe, gibt es beides. 
Mit LB[2:1] kannst du den Zugriff von außen einstellen, mit BLB[2:0] den 
Zugriff 'von innen' auf den Programmbereich und mit BLB[12:11] den 
Zugriff von innen auf den Bootloaderbereich.

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.