AVRDude und avrispmkII Probleme

Hallo Gruppe,

ich habe hier ein System mit AVR (ATmega88P), extern geclockt mit 16MHz. Zwei Programmer habe ich von Olimex, einen AVR-ISP500-Tiny und einen AVR-ISP-MK2 (der ist neu, deswegen weiß ich nicht, ob er richtig funktioniert).

Mit dem AVR-ISP500-Tiny kann ich das System wunderbar auf schnellster Geschwindigkeit programmieren:

joequad joe [~/tmp/avrdude]: avrdude -p m88p -c stk500v2 -P /dev/ttyACM0 -B 1 > avrdude: stk500v2_set_sck_period(): p = 1.0 us too small, using 1.1 us > > avrdude: AVR device initialized and ready to accept instructions > > Reading | ################################################## | 100% 0.01s > > avrdude: Device signature = 0x1e930f > > avrdude: safemode: Fuses OK > > avrdude done. Thank you.

Der ISP-MK2 macht allerdings Probleme. Es sieht aus, als ob er fürs Target zu schnell ist und Bits verliert:

joequad joe [~/tmp/avrdude]: avrdude -p m88p -c avrispmkII -P usb > > avrdude: AVR device initialized and ready to accept instructions > > Reading | ################################################## | 100% 0.00s > > avrdude: Device signature = 0x1e3d02 > avrdude: Expected signature for ATMEGA88P is 1E 93 0F > Double check chip, or use -F to override this check. > > avrdude done. Thank you. > > joequad joe [~/tmp/avrdude]: avrdude -p m88p -c avrispmkII -P usb > > avrdude: AVR device initialized and ready to accept instructions > > Reading | ################################################## | 100% 0.00s > > avrdude: Device signature = 0x000102 > avrdude: Expected signature for ATMEGA88P is 1E 93 0F > Double check chip, or use -F to override this check. > > avrdude done. Thank you.

Die Signatur, die zurückkommt, varriert hier immer ein wenig.

Wenn ich aber versuche, den mkII zu zähmen und den Bitclock herunterdrehen will, passiert folgendes:

joequad joe [~/tmp/avrdude]: avrdude -p m88p -c avrispmkII -P usb -B20 > > avrdude: stk500v2_command(): command failed > avrdude: stk500v2_program_enable(): bad AVRISPmkII connection status: Unknown

status 0x00

avrdude: initialization failed, rc=-1 > Double check connections and try again, or use -F to override > this check. > > > avrdude done. Thank you.

Danach reagiert der mkII überhaupt nicht mehr (nur noch mit obigem Output) und ich muss ihn vom USB ab- und wieder anstecken.

Kennt das Problem jemand und weiß Hilfe? Als ich ihn bekommen habe, musste ich da eine Firmware draufflashen (es gibt wohl eine AVRDude und eine AVR-Studio Variante), habe natürlich die AVRDude Variante genommen, wie in der Anleitung beschrieben.

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
Loading thread data ...

status 0x00

Eine mögliche Erklärung:

Ein Signal (nämlich MISO) ist unterbrochen (z.B. durch kalte Lötstelle) und das Signal wird nur noch kapazitiv eingekoppelt. Bei höherer Bitrate klappt das besser, weil die Wahrscheinlichkeit höher ist, daß zum Sample-Zeitpunkt trotz der Signaldifferenzierung noch der richtige Pegel gelesen wird.

Ein Hinweis auf die Richtigkeit der Vermutung wäre die Analyse der variierenden Antworten auf das ID-Kommando im Vergleich mit der bekannten richtigen Antwort. Wenn die Analyse ergibt, daß die Bitfehler bevorzugt nach längeren Bitfolgen mit gleichem Pegel auftreten, dann ist das zumindest ein deutliches Indiz für die Richtigkeit der Vermutung.

Reply to
Heiko Nocon

Ich hatte das schon wenn die Versorgungsspannung der SPI signale nicht mit der Versorgungsspannung des AVR übereinstimmte.

--
MFG Gernot
Reply to
Gernot Fink

Hmm, das müsste dann aber innerhalb des Programmers ein Problem sein -- das Kabel habe ich getauscht und mit dem anderen Programmer geht's ja einwandfrei. Öffnen kann ich den nicht (void warranty), möglicherweise muss der zurück, wenn da wirklich eine kalte Lötstelle innerhalb der Programmers ist.

Das erklärt aber immernoch nicht, dass der Programmer überhaupt nicht mehr reagiert, nachdem man ihm einmal das "-B" Kommando übergeben hat. Wenn ich avrdude mit "-v" aufrufe, sehe ich, dass die Periodenlänge vom "-B" Kommando zwar übernommen wurde, aber egal was ich da einstelle (Default sind 8us) kommt hinterher immer nur dieser "Unknown status

0x00" zurück. Ich hatte das eher so gedeuted, dass die Kommunikation mit dem Programmer selbst schief geht, nicht mit dem Target.

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

Hmmm, das ist ein guter Tipp... wenn ich avrdude mit "-v" aufrufe, erhalte ich:

[...] Programmer Type : STK500V2 Description : Atmel AVR ISP mkII Programmer Model: AVRISP mkII Hardware Version: 0 Firmware Version Master : 1.17 Vtarget : 3.3 V

Die Target Voltage ist aber 5V! Kann ich das irgendwie per Software konfigurieren? Die Jumper, über die man die Target-Versorgung einstellen kann stehen auf 5V/off (Schaltung wird extern versorgt).

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

Da kann auch sein, daß die Hardware das nicht messen kann und immer 3.3V zurückliefert, weil das Protokoll "unbekannt" nicht vorsieht. Mess' aber zumindest mal nach, ob Deine 5V auch wirklich sauber am ISP-Stecker anliegen!

Andere Idee: zu niedrige Pullup/Pulldown-Widerstände an den ISP-Signalen, oder zu hohe kapazitive Last? Dann hängt das Verhalten auch stark von Adapter und Geschwindigkeit ab.

cu Michael

Reply to
Michael Schwingen

Ich glaub es nicht, tatsächlich. Hab mich am Oszi wundoszillografiert, aber die Vcc an Pin 2 vom ICSP habe ich nicht geprüft. Stellt sich heraus, dass der Hersteller von dem Board das einfach weggelassen hat (ist nur 2 Layer und weder oben noch unten geht ein Trace zu Pin 2, der hängt nur in der Luft). Bei dem anderen Programmer ist das nicht aufgefallen, weil der immer mit 5V reinbrät. Der mkII kann aber ja 3.3V und 5V und scheint das also davon abhängig zu machen, was für eine Versorgung er sieht.

Nach dem Einfügen einer kleinen Brücke geht der Programmer jetzt auch wie eine Eins. Super :-)

Vielen Dank und gute Nacht, 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

"Johannes Bauer" schrieb im Newsbeitrag news:kkn3kf$e1i$ snipped-for-privacy@news.albasani.net...

Hi, siehstemal, hättste wie onsHolger brav auf dem 400seitigen Layout und der

1200seitigen Betriebsanleitung bestanden (der mit Rollen drunter), wär das nicht passiert.
--
 mfg, 
gUnther
Reply to
gUnther nanonüm

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.