Forum: Mikrocontroller und Digitale Elektronik ATMega328P nicht mehr programmierbar


von Timo (atlas_timo)



Lesenswert?

Hey,
kurz vorab: Ich bin relativ neu in der AVR Welt.

Das Problem ist, dass ich in ProgISP bei den Fuse Einstellungen des 
ATMega328P(U) CKDIV8 auf 1 gesetzt habe, in der Hoffnung, dass der 
Mikrocontroller dann eine 8MHz Frequenz hat. Danach habe ich den 
Controller mit einem USBasp Programmierer programmiert. Jetzt ist das 
Problem, dass ich den Controller nicht mehr programmieren kann. Es kommt 
immer der Fehler "Chip Enable program error". Nach etwas Googeln habe 
ich folgendes probiert (CKDIV8 habe ich in ProgISP wieder auf 0 
gesetzt):

- Den Jumper JP3 auf dem USBasp Programmierer überbrücken
- Reset für 10 Sekunden auf 0 setzen
- In ProgISP den Programming-Slider von High auf Low und alles 
dazwischen
  gesetzt
- Alle Verbindungen vom Programmierer geprüft und versucht, einen 
anderen
  Mikrocontroller zu programmieren, was problemlos funktioniert hat
- Einen Digitalen Pin von einem Arduino Nano an XTAL1 verbunden (und GND 
vom
  Arduino an GND vom ATMega). Der Arduino steuert normalerweise einen 
PWM
  Lüfter mit einem 20MHz PWM Signal über Pin D9. Den habe ich kurz dafür
  zweckentfremdet.

Hat jemand eine Idee, wie ich das ganze mit CKDIV8 = 1 zum laufen 
bringen kann bzw. notfalls CKDIV8 wieder auf 0 setzen kann?
Grüße,
Timo

von S. L. (sldt)


Angehängte Dateien:

Lesenswert?

Vorab: direkt helfen kann ich leider nicht - aber einige Anmerkungen:

> Mikrocontroller dann eine 8MHz Frequenz hat
Das lässt sich auch zu Programmbeginn einstellen, siehe Anhang.

> Arduino ... mit einem 20MHz PWM Signal
Stimmt das?

Diese Seite kennen Sie?:
http://stefanfrings.de/avr_verfused/index.html

von Wolfgang S. (wolfgang_s278)


Lesenswert?

Fusebits vom anderen Atmega mal lesen und rausschreiben.

: Bearbeitet durch User
von Jan S. (Firma: Eigenbau) (vox_equus)


Lesenswert?

Timo schrieb:
> Hey,
> kurz vorab: Ich bin relativ neu in der AVR Welt.
>
Ja, das ist eines der fusebits die man besser nicht verändert, weil man 
den Atmega dann nur noch mit einem HV-Programmer wieder hinkriegt.
Gruss Jan

von Wulf D. (holler)


Lesenswert?

Jan S. schrieb:
> Ja, das ist eines der fusebits die man besser nicht verändert, weil man
> den Atmega dann nur noch mit einem HV-Programmer wieder hinkriegt.

Das ist so allgemein nicht richtig, CKDIV8 ist harmlos.
Nehme an, da wurden noch andere Fusebits verändert, deshalb ist der 
Hinweis von Wolfgang sinnvoll.

von Timo (atlas_timo)


Lesenswert?

Ok. Ich habe die Fusebits vom "funktionierenden" Atmega mal ausgelesen:
LowValue: 62
HighValue: D9
ExtValue: FF

Die Fusebits vom "defekten" Atmega lassen sich über ISP nicht auslesen.

Ich habe heute noch ein Video auf Youtube gefunden. Der hat einen 
HV-Programmierer mal kurz mit einem Breadboard und ein paar anderen 
Komponenten zusammengebastelt. Da kann er scheinbar die Fusebits per 
Hand setzen. Ich würde das ganze morgen mal ausprobieren und mich 
melden. Mit seiner Methode kann ich wohl auch die Fusebits auslesen und 
über ein paar LEDs anzeigen lassen. Dann poste ich auch, was die Werte 
da waren.

von Frank O. (frank_o)


Lesenswert?

Timo schrieb:
> Der hat einen
> HV-Programmierer mal kurz mit einem Breadboard und ein paar anderen
> Komponenten zusammengebastelt.

Das ist auch kein Problem. Beim ATTiny10 habe ich das regelmäßig 
gemacht.
Die Programmiere ich immer nur auf 12V.
Du solltest aber das Microchip Studio nehmen. Der gesamten anderen 
Software traue ich nicht. Um ein Programm drauf zu brennen, kein 
Problem, aber bei den Fuse-Bits kann das schon mal in die Hose gehen.

von Timo (atlas_timo)


Lesenswert?

Oh, habe vergessen den Link zum Video zu posten:
https://www.youtube.com/watch?v=JrFvedAIhkg&t=199s

Der typ benutzt da gar keine Software sondern setzt die Bits per Hand 
und macht das gleiche dann später automatisiert mit einem anderen 
Microcontroller.

von Frank O. (frank_o)


Lesenswert?

Zumindest beim Tiny10 habe ich die 12V dauerhaft drauf. Nix mit 
Transistor.
Habe das zwar schon lange nicht mehr gemacht, aber auf der Platine ist 
nur ein Schalter, von 12V auf 5V. Den brauchst du aber nicht.
Klar, im Atmel Studio (heute Microchip) setzt du die von Hand. Und wenn 
du mehrere hast, auch noch als DIL, dann ist das kein Ding.
Guck mal, wenn du DIL nimmst, ob du noch einen AVR Dragon günstig 
bekommst.
Da kannst du dann eine Zif-Sockel drauf bauen und hast gleich einen 
fertigen Programmer für HV.

von Peter D. (peda)


Lesenswert?

Es kann sein, daß die Programmiersignale zu schlecht sind oder das Kabel 
zu lang, so daß bei höherem CPU-Takt Störungen eingefangen werden.
Man kann aber den Prescaler auch erst zur Laufzeit umstellen.

von S. L. (sldt)


Lesenswert?

S. L. schrieb:
>> Arduino ... mit einem 20MHz PWM Signal
> Stimmt das?

Die Frage war ernst gemeint, atlas_timo - 20 MHz würde einen Takt von 40 
MHz voraussetzen, und dann wäre es noch kein PWM-Signal. Also welcher 
Hilfstakt wird tatsächlich auf den ATmega328P gegeben?

von S. L. (sldt)


Lesenswert?

Frank O. schrieb:
> Das ist auch kein Problem. Beim ATTiny10 habe ich das regelmäßig
> gemacht.

Ohne fertiges Board mit Sockeln ist HV-Parallel-Programming mit 16 
Leitungen weit weniger lustig.

von Frank O. (frank_o)


Lesenswert?

S. L. schrieb:
> Ohne fertiges Board mit Sockeln ist HV-Parallel-Programming mit 16
> Leitungen weit weniger lustig.

So viele Anschlüsse hat der Attiny10 gar nicht.
Ich habe mir ein Board mit Ziff-Sockel gebaut. Die programmiere ich, 
bevor ich die in eine Schaltung löte.

von S. L. (sldt)


Lesenswert?

> So viele Anschlüsse hat der Attiny10 gar nicht.

Schon klar - aber Timos ATmega328P.

von Frank O. (frank_o)


Lesenswert?

Deshalb schrieb ich auch, dass er mal schauen soll, ob er noch günstig 
einen AVR-Dragon bekommt.

von S. L. (sldt)


Lesenswert?

Einen neuen ATmega328P nehmen und in Zukunft die 8 MHz zur Laufzeit 
einzustellen ist vielleicht günstiger.

von Frank O. (frank_o)


Angehängte Dateien:

Lesenswert?

Die AVR können HV-Programmieung und der MiniPro sowieso. Der kann fast 
alles programmieren, was Beine hat.

von Georg M. (g_m)


Lesenswert?

Timo schrieb:
> Ich bin relativ neu in der AVR Welt.

Aber die Software ist von 2009.
Auch der Mikrocontroller ist "NRND".


"Neque mittunt vinum novum in utres veteres"
(Matthæus 9:17)

von Εrnst B. (ernst)


Lesenswert?

Timo schrieb:
> - Den Jumper JP3 auf dem USBasp Programmierer überbrücken

Es hängt von der Firmware-Version vom USBasp ab, ob das hilft.
Neuere Versionen können die gewünschte SCK-Speed von der PC-Software 
(avrdude -B ...) übermittelt kriegen, damit wird der "Slow SCK"-Jumper 
wirkungslos.

von Frank O. (frank_o)


Angehängte Dateien:

Lesenswert?

Frank O. schrieb:
> MiniPro

Ich habe gerade den MiniPro auf meinem neuen Rechner installiert.
Heute gibt es wohl eine neue Version davon.
http://autoelectric.cn

Das Teil ist so cool. Die Geschwindigkeit war so irre hoch, dass ich 
früher nur damit programmiert hatte.
Auch die Software ist ganz fein.
Kann auch Eproms programmieren.
Muss man haben.
Der neuste Programmer ist der XGercu56T, da wissen die Chinesen auch 
mittlerweile, dass wir den geil finden. EUR 363,55

Mal eben einen ATmega328P eingelesen (leer).

: Bearbeitet durch User
von Jan S. (Firma: Eigenbau) (vox_equus)


Lesenswert?


von Timo (atlas_timo)


Lesenswert?

S. L. schrieb:
> Die Frage war ernst gemeint, atlas_timo - 20 MHz würde einen Takt von 40
> MHz voraussetzen, und dann wäre es noch kein PWM-Signal. Also welcher
> Hilfstakt wird tatsächlich auf den ATmega328P gegeben?

Stimmt du hast recht. Sind nämlich 20kHz. Mein fehler.

Jan S. schrieb:
> https://www.instructables.com/HV-Rescue-Simple/
Frank O. schrieb:
> Deshalb schrieb ich auch, dass er mal schauen soll, ob er noch günstig
> einen AVR-Dragon bekommt.

Das schau ich mir auch gerne an. Das Video was ich gepostet habe hat 
natürlich den Vorteil, dass ich viel dabei lernen kann. Deswegen teste 
ich das später erstmal damit und greife zukünftig auf "Fertiglösungen" 
zurück oder bastle mir selbst einen HV-Fuse-Resetter/HV-Programmer.

Vielen Dank euch allen schon mal für eure Hilfe. Ich melde mich, nachdem 
ich es versucht habe.

von Monk (roehrmond)


Lesenswert?

Timo schrieb:
> Der Arduino steuert normalerweise einen PWM
> Lüfter mit einem 20MHz PWM Signal über Pin D9

Sicher nicht. Wohl eher 20 kHz oder weniger.

Dann muss der ISP Takt langsamer als 5 kHz sein. Kann das dein 
Programmieradapter?

: Bearbeitet durch User
von S. L. (sldt)


Lesenswert?

> ... dass ich viel dabei lernen kann ...
Nur zu.
  Ich habe auch einmal einen AVR8 der älteren Generation seriell 
programmiert, nur mit zwei Tastern, Widerstand und Kondensator (und ganz 
ohne 'Video'*). Ob Ihre Frustrationsschwelle aber die nötige Höhe hat 
...? Bei mir war's knapp.

PS:
*: Ich meine, das Datenblatt reicht ja vollkommen.
  (wenn man etwas lernen will)

: Bearbeitet durch User
von Harald K. (kirnbichler)


Lesenswert?

Frank O. schrieb:
> Ich habe gerade den MiniPro auf meinem neuen Rechner installiert.
> Heute gibt es wohl eine neue Version davon.
> http://autoelectric.cn

Hoppla - seit wann lässt denn die Forensoftware Links auf diese TLD zu? 
Das ist neu.

von Timo (atlas_timo)


Lesenswert?

Alsooo, Mit dem kurz zusammengebastelten HV-Programmierer per Hand hat 
das ganz gut funktioniert. Konnte die Fusebits so neu programmieren.

S. L. schrieb:
> *: Ich meine, das Datenblatt reicht ja vollkommen.
>   (wenn man etwas lernen will)

Ja du hast recht. Ich habe auch versucht das Datenblatt so viel wie 
möglich zu nutzen. Vor allem das Auslesen der Fusbits geht beim 
ATMega328p anders als im Video. Ich habe bis jetzt prinzipiell nur sehr 
wenig mit Datenblättern zu tun gehabt und dann auch immer nur das 
nötigste. Ich finde in Kombination mit dem Video hat es mir auch sehr 
geholfen, das Datenblatt besser zu verstehen und zu nutzen. Wie gesagt. 
Bin recht frisch in dem Thema und hab auch nur die Grundlagen von 
Elektrotechnik drauf. Der Rest kommt jetzt nach und nach.

Vielen Dank euch allen für eure Beiträge zu dem Thema. Bei mir läuft 
wieder alles und jetzt kann es mit dem eigentlichen Projekt weitergehen 
^^.

von S. L. (sldt)


Lesenswert?

Respekt, und flott ging's auch - dann also willkommen und auf gute 
Zusammenarbeit.

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.