ATmega88PV trotz Fuses für externen Quarz programmieren?

Ich habe hier einen ATmega88PV-10PU, den ich mit externem Quarz und Resetbaustein betreiben will. Nach Brennen der Fuse für externen Quarz läuft der auch mit diesem Quarz, lässt sich aber nicht mehr programmieren. So wie ich das verstanden habe (finde die Stelle nur gerade nicht) muss man nach dem Umschalten auf externen Quarz zum Programmmieren einen Takt zur Verfügung stellen und zu diesem Zweck habe ich einen 1MHz-Oszillator (als "IC" im DIP-Metallgehäuse) an den XTAL1-Eingang angeschlossen. Trotzdem lässt sich der ATmega nicht löschen, bei einem "ungefusten" klappt das dagegen einwandfrei.

Was mache ich da wohl falsch? Ich erwartete, dass das mit dem Oszillator klappt und weiß gerade nicht so recht, warum das nicht geht.

Noch ein paar Details:

Zum Programmieren verwende ich einen STK500-kompatiblen USB-ISP-Programmierer und den AVRDude.

Für das Löschen nehme ich den Befehl:

avrdude -p m88 -i 10 -c stk500v2 -P /dev/ttyACM0 -e -u -F

und die Fuses wurden mit

avrdude -c stk500v2 -P /dev/ttyACM0 -p m88 -U lfuse:w:0x6F:m -U hfuse:w:0xDF:m -F

gesetzt.

Reply to
Edzard Egberts
Loading thread data ...

Am 18.12.2012 13:30, schrieb Edzard Egberts:

Zu hohe Datenrate beim Programmieren? Die maximal erlaubte hängt vom Takt und dem evtl eingeschaltete Vorteiler ab.

Gruß Dieter

Reply to
Dieter Wiedmann

Dieter Wiedmann schrieb:

Der Delay wird mit dem Parameter -i übergeben und ich habe den jetzt verzehnfacht (beim Chip-Erase-Befehl):

-bash-4.1# avrdude -p m88 -i 100 -c stk500v2 -P /dev/ttyACM0 -e -u -F

avrdude: stk500v2_command(): command failed avrdude: stk500_2_ReceiveMessage(): timeout avrdude: stk500v2_program_enable(): bad STK600 connection status: Unknown (0x64) avrdude: initialization failed, rc=-1 avrdude: AVR device initialized and ready to accept instructions avrdude: Device signature = 0x000000 avrdude: Yikes! Invalid device signature. avrdude: Expected signature for ATMEGA88 is 1E 93 0A

Der interne Takt liegt AFAIK irgendwo bei 3MHz, Takt auf 1 MHz und verzehnfachung des Delay müssten es dann eigentlich tun. Gegenprobe mit dem einem ungefusten hat direkt wieder funktioniert.

Reply to
Edzard Egberts

Ich glaube beim stk500v2 wird -i ignoriert und -B ist das was du suchst. Probier mal -B20 oder -B40.

Viele Grüße, Johannes

--
>> Wo hattest Du das Beben nochmal GENAU vorhergesagt? 
> Zumindest nicht öffentlich! 
Ah, der neueste und bis heute genialste Streich unsere großen 
Kosmologen: Die Geheim-Vorhersage. 
 - Karl Kaos über Rüdiger Thomas in dsa
Reply to
Johannes Bauer

[snip]

Kann sein, dass das beim Atmega88 anders ist, aber bei den ATmegas, die ich kenne ist "externer Quarz" und "externer Oszillator" nicht das gleiche. Externe Clock in die als Oszillator konfigurierten Eingaenge, ist nicht notwendigerweise eine Taktgenerierung.

Gruss Klaus

Reply to
Klaus Bahner

Johannes Bauer schrieb:

Danke, das war es - mit -B20 ging Löschen und Beschreiben sofort!

Ich hätte aber Stein und Bein geschworen, dass der i-Parameter beim Schreiben mal notwendig und hilfreich war. Mein ISP-Stecker funktioniert jetzt auch und insgesamt bin ich gerade recht zufrieden. :o)

Reply to
Edzard Egberts

Das sind zwar verschiedene Fuse-Settings, aber gehen sollte das trotzdem. Der Inverter im Analogbetrieb zwischen den XTAL-Pins ist bei Verwendung eines externen Oszillators dann lediglich ein nicht notwendiger, aber auch nicht schädlicher Verstärker.

Allerdings wäre ein Quarz oder Resonator einfacher gewesen. Ich habe dafür extra eine DIP28 Fassung zusammen mit 8MHz Resonator und ISP-Stecker auf einem Stück Lochraster. Kann man sicher auch als Zwischenstecker bauen.

XL

Reply to
Axel Schwenke

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.