Liebe Gemeinde,
leider habe ich mir einen ATMEGA328P unbrauchbar gemacht.
Ich habe im AVR Studio 4 mit dem AVRISP mkII die Taktfrequenz bei
verschiedenen AMEGAs eingestellt und beim hin und her aus versehen einen
ATMEGA8 eingestellt gehabt, jedoch einen ATMEGA328P programmiert.
Ich habe intern 8Mhz mit den 64ms ausgewählt. Jetzt reagiert er nicht
mehr.
Weder auf Quarze (hab 8Mhz und 12Mhz da) noch einen externen Takt (hab
nen 4,8Mhz Attiny als Taktquelle laufen)
Gibt es da eine Möglichkeit den guten Mega zu retten?
Liebe Grüße
Jens
Normalweise geht das aber über die ISP, wenn man einen Quarz dran
steckt.... passietr mir auch öfter und ich kriege es immer wieder
zurück, außer wenn ich 128khz Mode wähle, weil das mein Usbasp nicht
kann.
Seltsam....
Wenn man schon den falschen Atmega eingestellt hatte hat man vielleicht
auch das falsche Fusebit gesetzt gehabt. Retten kann man so etwas über
einen Programmer, der den HV-Mode kann wie z.B. das STK500.
Für nicht mehr ansprechbare AVRs habe ich mir auf einem PrototypenPCB
ein Rescue Shield zusammengelötet.
http://mightyohm.com/blog/products/hv-rescue-shield-2-x/
Solltest Du nur auf internen Takt geflasht haben, sollte der 328
eigentlich ansprechbar sein, Quarze nutzen da nicht so viel.
Vom ISP Mk2 habe ich keine Ahnung, ich nutze mehrere USBASPs.
Bei internem Schwabbeltakt muss oftmals der "Speed" Jumper gesteckt
werden.
Bei der Angelegenheit:
Kann mir vielleicht jemand mal versuchen 5 Stück Attiny84 zu retten, die
entweder hinüpber sind durch den Usbasp oder nicht mehr ansprechbar? Auf
einmal war Ende während des Programmierens nachdem es zigmal klappte.
Würde Brief mit beiden Portos schicken. Ich habe nicht genug Ahnung von
diesem Avrdude Zirkus unter der Arduino IDE, bei PIC war das alles viel
einfacher mit dem ICD.
Hallo und Danke für die Antworten!
Ich kann ja mal berichten was ich probiert habe:
- Quarze 4 MHz, 8 MHz, 12 MHz, 16 MHz und 20 MHz
- externer Takt von 2,2 MHz, 8 MHz und 10 MHz
- beim ISP die Frequenzen 51,10 Hz, 6,48 kHz, 125 kHz und 500 kHz
Kann denn jemand nachvollziehen was durch den Befehl auf 8 Mhz zu setzen
(siehe Startpost) beim ATMEGA328P gesetzt wurde? (Der ISP Adapter ging
davon aus einen ATMEGA8 vor sich zu haben, beim ATMEGA328p gibt es die 8
MHz ja nicht!)
Danke
Jens
Uwe S. schrieb:> Hallo Christian,>> vielleicht sind neue ATtiny84 A preiswerter ?>> https://guloshop.de/shop/Mikrocontroller/ATtiny84-A::34.html?
XTCsid=t9g0jgdqnu89ga7v08msleav46
Ja... sicher ... aber die kleinen Käferchen können ja nichts dafür.
Ich kann einfach nix wegwerfen, was noch funktioniert. Zu weiches
Herz.
Der Preis ist aber gut, leider zu viel bezahlt in der Bucht.
Jens schrieb:> Kann denn jemand nachvollziehen was durch den Befehl auf 8 Mhz zu setzen> (siehe Startpost) beim ATMEGA328P gesetzt wurde? (Der ISP Adapter ging> davon aus einen ATMEGA8 vor sich zu haben, beim ATMEGA328p gibt es die 8> MHz ja nicht!)
Dir bleibt noch eines: Versuchen die JTAG Schnittstelle zu aktivieren
und dann über einen J-Link das zu flashen.
Guck dir das mal an:
http://www.instructables.com/id/How-to-fix-dead-atmega-and-attiny-avr-chips/?lang=de
Jens schrieb:> Hallo und Danke für die Antworten!>> Ich kann ja mal berichten was ich probiert habe:> - Quarze 4 MHz, 8 MHz, 12 MHz, 16 MHz und 20 MHz> - externer Takt von 2,2 MHz, 8 MHz und 10 MHz> - beim ISP die Frequenzen 51,10 Hz, 6,48 kHz, 125 kHz und 500 kHz>> Kann denn jemand nachvollziehen was durch den Befehl auf 8 Mhz zu setzen> (siehe Startpost) beim ATMEGA328P gesetzt wurde? (Der ISP Adapter ging> davon aus einen ATMEGA8 vor sich zu haben, beim ATMEGA328p gibt es die 8> MHz ja nicht!)>> Danke> Jens
Solange du uns nicht sagst welchen Hexcode du für die Fuses hattest,
wird es schwer was zu sagen. Das gibt nur rätselraten.
Ich rate mal: Atmega8 mit Standard-Fuses und nur den Oszi geändert auf
intern 8 MHz würde ein LowFuse von 0x64 und ein HighFuse von 0xD9
ergeben.
Nimmt man diese Fuses und programmiert damit einen Atmega328p dann, wenn
ich mich nicht vertan hab, ändert sich nur die Taktquelle, der 328p
erwartet dann einen Low Frequency Quarz an XTAL. Du hast aber
geschrieben, dass du schon einen externen Takt angelegt hast, daher gehe
ich davon aus, dass noch was anderes schräg war/ist.
> Du hast aber geschrieben, dass du schon einen externen> Takt angelegt hast
Er hat jedoch nicht geschrieben, wo; in diesem Fall (low frequency
crystal) sollte er auch XTAL2 versuchen.
Danke für die Tips!
Der Online-Fuse-Simulator (vom Burn-o-mat) klappt leider nicht, nur ein
graues Fenster. Auf dem Dienstrechner kann ich leider nichts
installieren.
Die Sache mit dem AVR-doctor ist cool, aber ein eigenes Projekt für
später. Aver vielleicht hab ich alles da ihn zumindest auf dem
Steckbrett aufzubauen :-)
Zu den Einstellungen:
Device: Atmega8
Fuses: Alles auf Ursprungswerten außer der Takt (intern 8Mhz mit den
64ms) und BOOTRST.
Und ja, den externen Takt habe ich sowohl an XTAL1 und XTAL2 sowie beide
gemeinsam angelegt.
Danke
Jens
Hast Du einen Quarzoszillator (den mit 4 Beinchen) im niedrigen
Mhz-Bereich?
Dann die ISP-Frequenz im Atmel Studio auf niedrigste Stufe stellen, so
sollte es klappen. Stromversorgung sollte auch stabil sein.
Also:
high fuse auf D8 sowie
low fuse auf E4 gesetzt.
Ersteres ist uninteressant, Letzteres heißt, wie Michael Köhler bereits
schrieb, low frequency crystal. Dann muss der externe Hilfstakt an XTAL2
angeschlossen werden, über einen Schutzwiderstand von z.B. 100 Ohm.
Allerdings akzeptiert dann z.B. mein Exemplar, ATmega328P-PU von 1426,
maximal 300 kHz, was weiter eine ISP-Frequenz von maximal 75 kHz
bedeutet.
Der AVR Doctor ist nicht übel, aber zu aufwändig, Infos findest Du im
Artikelbereich.
Das Arduino-Shield auf Steckbrett ist einfacher.
Im Anhang befinden sich zwei Bildchen, Nr 1. zeigt die Burn-O-Mat
Angaben dazu, Nr. zitiert das Atmel Datenblatt bzw. -buch.
Ich danke euch!
Konnte ihn mit einem externen Takt von 200kHz und einer ISP-Frequenz von
51Hz wieder ansprechen.
Damit wäre dieser Beitrag geschlossen.
Michael K. schrieb:> Wenn man schon den falschen Atmega eingestellt hatte hat man vielleicht> auch das falsche Fusebit gesetzt gehabt. Retten kann man so etwas über> einen Programmer, der den HV-Mode kann wie z.B. das STK500.
Habe meinen Mega328 auch verfust :-(
Jetzt komm ich über ISP6 nicht mehr ran.
Wie im Tutorial beschrieben habe ich einen Q-Oszillator rangehangen.
Allerdings hatte ich nur 20MHz da. Ist das zu schnell? Habe nämlich
immer noch kein Zugriff..
Alternativ habe ich ein STK500 - wie geht denn das mit der Rettung via
HV Prog? Kann ich den Mega328 einfach in den 28pol-Sockel SCKT3500D
stecken und loslegen?
Maik O. schrieb
> Allerdings hatte ich nur 20MHz da. Ist das zu schnell? Habe nämlich> immer noch kein Zugriff..
Das ist deutlich zu schnell. Der Mega328 kann nur bis 16MHz.
Mit der Rettung sollte eigentlich ein 10k Widerstand von XTAL auf Masse
reichen. Hat bei mir zumindestens funktioniert beim letzten verfusen.
Probiers mal.
Frederik H. schrieb:> Maik O. schrieb>>> Allerdings hatte ich nur 20MHz da. Ist das zu schnell? Habe nämlich>> immer noch kein Zugriff..>> Das ist deutlich zu schnell. Der Mega328 kann nur bis 16MHz.>> Mit der Rettung sollte eigentlich ein 10k Widerstand von XTAL auf Masse> reichen. Hat bei mir zumindestens funktioniert beim letzten verfusen.> Probiers mal.
Also im Datasheet steht was von 20Mhz bei entsprechendem Vcc. Aber ich
werd das mit dem Widerstand mal probieren.
Ansonsten klappt es auch mitm STK500:
http://www.atmel.com/webdoc/stk500/stk500.highVoltageProgramming.html
Christian J. schrieb:> Normalweise geht das aber über die ISP, wenn man einen Quarz dran> steckt.... passietr mir auch öfter und ich kriege es immer wieder> zurück, außer wenn ich 128khz Mode wähle, weil das mein Usbasp nicht> kann.>> Seltsam....
Genau das habe ich bei einem Arduino Nano über einen USBasp gemacht. Ich
habe einen LFuse auf 0xC3 gesetzt.
Ich hatte zuerst einen Blink-Sketch darauf geladen. Der läuft mit dem
neuen Fuse wie erwartet viel langsamer.
Nur kann ich jetzt nicht mehr fusen oder sonst was hochladen.
Egal, ob über USB, USBasp oder einem stk500v1