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
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
Fusebits vom anderen Atmega mal lesen und rausschreiben.
:
Bearbeitet durch User
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
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.
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.
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.
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.
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.
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.
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?
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.
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.
> So viele Anschlüsse hat der Attiny10 gar nicht.
Schon klar - aber Timos ATmega328P.
Einen neuen ATmega328P nehmen und in Zukunft die 8 MHz zur Laufzeit einzustellen ist vielleicht günstiger.
Die AVR können HV-Programmieung und der MiniPro sowieso. Der kann fast alles programmieren, was Beine hat.
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)
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.
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
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.
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?
> ... 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
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.
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 ^^.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.