mikrocontroller kaputt

Gast #2035745
Lesenswert?

Hallo,

Peter Dannegger schrieb:
> Mal raten:
>
>
>
> Ist es ein AVR, dann könnten die Fuses verstellt sein.
>
> Das passiert aber eigentlich nur mit alten LPT- oder COM-Programmern
>
> ohne eigenen Controller.
>

Da mir das auch schon mit 2 Mega8 passiert ist,
würde mich brennend interessieren, wie das funktioniert,
dass diese Billigst-"Programmer" die Fuses unbeabsichtigt ändern.

Gruss und Danke,

D.
#2035762
Lesenswert?

Hallo,

würde mich auch brennend interessieren.
Ich habe von 2000 - 2008 NUR mit Ponyprog und STK200 Dongle 
programmiert, erst unter W98, dann unter W2000 und es hat sich NIE eine 
Fuse verstellt, wenn ich das nicht wollte.

Anwärter für mich sind:
- zu lange Kabel speziell zwischen Parallelport und ISP-Dongle.
- passive Adapter nur mit Widerständen.
- Software, die ungefragt auf den Parallelprot zugreifen kann

Letzteres so ab ca. 2008 nach irgendwelchen Windows-Updates so 
geschehen, allerdings wurde dann auch das Dongle oder der AVR nicht mehr 
zuverlässig und IMMER erkannt.
War letztlich der Grund, weshalb da jetzt ein Dragon oder ein STK500 
werkelt.

Gruß aus Berlin
Michael
Gast #2035773
Lesenswert?

Hallo

Michael U. schrieb:
> Anwärter für mich sind:
>
> - zu lange Kabel speziell zwischen Parallelport und ISP-Dongle.
>
> - passive Adapter nur mit Widerständen.
>
> - Software, die ungefragt auf den Parallelprot zugreifen kann

klar, das sind alles Gründe, warum am uC nicht die gewünschte Bitfolge 
ankommt.

Aber eine Verstellen der Fuses per zufälligem Bit-Fehler?

Das kommt mir so vor wie die Affenhorde mit Schreibmaschinen,
die zufällig Goethes "Faust" tippt.

Gruss,

D.
#2035774
Lesenswert?

Defusor schrieb:
> Da mir das auch schon mit 2 Mega8 passiert ist,
> würde mich brennend interessieren, wie das funktioniert,
> dass diese Billigst-"Programmer" die Fuses unbeabsichtigt ändern.

COM und LPT sind nicht echtzeitfähig, sie werden über Treiber gepuffert.
Man kann zwar zu bestimmten Zeiten Daten in den Puffer reinschreiben, 
sie werden aber zu anderer Zeit wirklich auf dem Port gesendet, ganz je 
nach Interruptlast der CPU.

Aus:
- setze Pin
- warte 1ms
- lösche Pin
- warte 1ms
- setze Pin
kann werden:
- setze Pin
- warte 2ms (weil höher priorisierter 2ms Interrupt)
- lösche Pin
- setze Pin

Man kann also keine bestimmten Zeiten garantieren.
Und wenn das SPI-Timing nicht stimmt, kann der AVR verrückte Dinge 
machen.

Deshalb haben gute Programmer einen eigenen Controller. Dieser liest nur 
die Daten ein und macht dann das Timing komplett selber.


Peter
Gast #2035784
Lesenswert?

Hallo Peter,

habe mir das SPI-Protokoll bislang noch nie genau angesehen.

Ist es eventuell dann so, dass der "Befehl" zum ändern einer Fuse
einem anderen im Protoll häufig vorkommenden "Befehl" ähnelt,
sich eventuell nur in einem Bit unterscheidet?

Dann würde mein obiges Argument mit den Affen und den Schreibmachinen
deutlich entschärft.

Danke für die erste Info und Gruss,

D.

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