USB-ISP hängt

OP #229791
Lesenswert?

Hallo!

Ich habe den USB ISP von www.matwei.de nachgebaut und auch den schon
den Bootloader und die Software draufgespielt. Funktioniert soweit auch
ganz gut, aber...
Ich kann damit in der Regel genau einmal eine Schaltung programmieren,
das geht ohne Probleme. Sobal ich jedoch nochmal einen AVR
programmieren will, geht nichts mehr. Entweder avrdude sagt
Protokollfehler oder "not in sync". Hin und wieder leuchtet auch die
rote LED am ISP. Manchmal hilfts, einfach alle Kabel auszustecken (USB
und das zu Schaltung), aber meistens muss ich den PC neu starten und
kann dann wieder genau einmal programmieren. Hat irgendwer ne Idee, an
was das liegen könnte? Ach ja der Mega8 auf dem ISP müsste OK sein, hab
das Testprogramm von der Homepage laufen lassen, da hat sich an allen
Pins was getan.

mfg
#229792
Lesenswert?

Hallo,
hatte ähnliche Startschwierigkeiten mit dem USBisp - inzwischen läuft
es aber super gut.
Kann es sein, dass Du die Firmware app_v2.hex aufgespielt hast?
Es gibt zwei Firmwareversionen in der *.zip-Datei. Die Version 2
(app_v2.hex) benutzt das neue Protokoll STK500v2 und läuft daher nur
mit dem neusten AVRStudio4. Ältere Avrdude-Versionen funktionieren hier
auch nicht. Avrdude-5.0-BETA, welches STK500v2 schon kann, scheint
ebenfalls noch nicht richtig mit dieser Firmware zu laufen - Matthias
Weißer wird vermutlich demnächst eine neue Firmware veröffentlichen.
Mit der Version 1 (app.hex) sollte es mit älteren AVRStudio- und
AVRdude-Versionen funktionieren.
Beim ersten Einschalten wird bei entsprechender Schalterstellung (beide
Dip-Schalter aus) der Bootloader gestartet, welcher immer mit dem alten
STK500-Protokoll läuft -> deshalb funktioniert es wahrscheinlich bei
Dir direkt nach dem Einschalten.
Persönliche Seite #229793
Lesenswert?

Hi

stümmt. AVRDude 5.0 verwendet einen Befehl (SPI_MULTI) beim STK500v2
Protokoll den ich noch nicht implementiert hatte. Ich schieb heute oder
morgen noch eine neue ZIP-Datei auf meine HP.

@Michael
Warum du immer wieder ab- und wieder anstecken mußt ist mir etwas
unklar. Welche Software (PC als auch USBisp) verwendest du? Wie wird
der USBisp mit Spanung versorgt? Welche Lötbrücken sind geschlossen?

Matthias
OP #229794
Lesenswert?

Hallo!

Spannungsversorgung hab ich beides ausprobiert, d.h. über USB und über
die Zielschaltung (hab einfach die VCC Leitung am 10pol stecker nicht
verbunden, oder mus ich da noch was andres machen?). Als Software
verwende ich auch die app.hex, weil ich nicht Version 5 von avrdude
habe. Software habe ich nur avrdude ausprobiert.

Ich habe vorhin nochmal probiert, eine neue Software aufzuspielen. Den
Bootloader hab ich nochmal draufbekommen (PonyProg), abermittlerweile
lädt er nicht mal mehr die Software auf den ISP. Der AVR ist aber in
Ordnung, zumindest laut deinem Testprogramm. Kann es sein dass der FTDI
Chip ne Macke hat?

Was mich noch interessieren würde: Kann ich mit den beiden Dipschaltern
was anders machen, außer Bootloader/Programm wechseln?? Weil das hätte
man ja auch mit einem machen können..

mfg
OP #229796
Lesenswert?

Kleiner Nachtrag:
Habs grad nochmal probiert. Bootloader scheint zu laufen, also beide
Leds leuchten. Sobald ich eine neue Software aufspielen möchte, sagt
avrdude "not in sync: resp 0xFF" und die Leds gehen (meistens) beide
aus. Glaub echt dass der FTDI Chip ne Macke hat. Bin vorhin mit der
Masse vom Oszi auf VCC gekommen, und da das Oszi und der PC geerdet
sind müsste das nen Kurzschluss gegeben haben, oder täscuh ich mich?
Der USB port geht aber noch.

mfg
OP #229798
Lesenswert?

Also habs nochmal getestet. Er sagt grundsätzlich beim aufspielen einer
Software über den Bootloader "Protokoll Error". Ab und zu scheint
sich auch der USB Treiber aufzuhängen, so dass ich jetzt mal davon
ausgeh dass der FTDI Chip kaputt is. Muss mir jetzt mal nen neuen
besorgen und versuchs dann nochmal.

mfg
#229799
Lesenswert?

Wofür ist eigentlich die Beschaltung beim ADC6 ?
Im Programm wird ja gar nichts mit dem ADC gemacht außer der
Initialisierung.
Außerdem: Kennt jemand Windows ISP Programme ( ohne cygwin Installation
etc. ) die das STK500 Protokoll beherrschen ?

Grüße
Persönliche Seite #229801
Lesenswert?

Hi

AVRStudio spricht z.B. das STK500 Protokoll. Es gibt auch ein
Kommandozeilenwerkzeug von Atmel das eben dieses Protokoll spricht.

Die Beschaltung am ADC war mal dazu gedacht die Betriebsspannung des
USBisp (bzw. des Mega8) an den PC zu melden. Das STK500 Protokoll hat
sowas vorgesehen. In der Software hab ich das aber bis jetzt nie
realisiert.

Matthias
Persönliche Seite #229804
Lesenswert?

Hi

na dann hast du jetzt ein Problem :-(
Da TXE ein Ausgang des FTDI ist treibt der natürlich den Pin. Du
könntest jetzt folgendes versuchen:

1MHz Quarz besorgen
Quarz an Pin7 und 8 des Mega8 fummeln
jeweils 22p an die Pins (Pin7 evtl. etwas weniger)
SJ2 öffnen
100Ohm von USB_VCC auf Masse
USBisp über isp Anschluß versorgen
Programmierversuch starten

Alternativ:
Pin14 des FTDI vorsichtig! anheben und dann den Quarz beschalten.

Matthias
Gast #229805
Lesenswert?

bin grad am PDA über GPRS, daher kein login.
Ich werd wohl das anheben probieren.
Ich fahr morgen zum Pollin und hol so ein Quarzsortiment.
Und laut Atmel datasheet braucht man in der config keine Kondis...
#229807
Lesenswert?

Kann man da nicht irgendwie anders nen Takt drauf geben? Ich hätt nur 4
MHz Oszilatoren und 10-14MHz Quarze da...
Muss ja bloß solange laufen dass ich die fuses umproggen kann, Programm
ist ja eh noch keines drin.
Ich möcht den Mega8 ungern gegen einen neuen ersetzen :(
#229810
Lesenswert?

Hallo Matthias,

was macht das -u in deinem Befehl zum Programmieren der Fuses ?
> avrdude -p m8 -P xxx -c yyy -u -U lfuse:w:0xE4:m
> avrdude -p m8 -P xxx -c yyy -u -U hfuse:w:0xDA:m

Ich habe beide Kommandos ausgeführt aber ohne -u.
Jetzt funktioniert leider nichts mehr.

Grüße,
Patrick
Persönliche Seite #229811
Lesenswert?

Hi

das -u schaltet den Safemode von avrdude aus. Ist dieser aktiviert
ließt avrdude nach eintreten in den Programming mode die Fusebits und
schreibt sie direkt vor dem verlassen wieder so rein wie er sie
ausgelesen hat. Damit versucht man zu verhindern das ein gekiptes Bit
keine Katastrophe auslösen kann.

Warum jetzt allerdings nichts mehr geht kann ich mir auch nicht
erklären.

Matthias
#229814
Lesenswert?

C:\Programme\avrdude\bin>avrdude -p m8 -c stk200

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100%
0.00s

avrdude: Device signature = 0x000102
avrdude: current erase-rewrite cycle count is -50462977 (if being
tracked)

avrdude done.  Thank you.

Das erhalte ich zurück.
yaap und ponyprog das device nicht mehr finden.

Was hat man da noch für Möglichkeiten?

Grüße,
Patrick
#229815
Lesenswert?

Nachtrag:
Wenn ich versuche die Fuses nochmal zu schreiben kommt folgender Fehler
( ich hab jetzt mal die WinAVR Version genommen):



C:\WinAVR\bin>avrdude -p m8 -P lpt1 -c stk200 -u -U lfuse:w:0xE4:m

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100%
0.00s

avrdude: Device signature = 0x000102
avrdude: current erase-rewrite cycle count is -50462977 (if being
tracked)
avrdude: reading input file "0xE4"
avrdude: writing lfuse (1 bytes):

Writing |                                                    | 0% 0.00s
***faile
d;
Writing | ################################################## | 100%
0.09s

avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xE4:
avrdude: load data lfuse data from input file 0xE4:
avrdude: input file 0xE4 contains 1 bytes
avrdude: reading on-chip lfuse data:

Reading | ################################################## | 100%
0.00s

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
         0xe4 != 0x00
avrdude: verification error; content mismatch

avrdude done.  Thank you.

Grüße,
Patrick
Persönliche Seite #229816
Lesenswert?

Hi

sieht so aus als ob du dir den Reset wegdefiniert hast. Da hilft wohl
nur noch ein HV-Programmer (so du einen hast) oder aber der Austausche
des Mega8. Ich schreib übers Wochenend eine Notiz zur USBisp-Doku
welche Version von AVRdude zum programmieren der Fusebits zu bevorzugen
ist. Wobei ich mir nicht vorstellen kann das das Problem durch 4.3.0
verursacht wurde.

Matthias
#229817
Lesenswert?

Hallo Matthias,

ich mir nämlich auch nicht.
Wenn ich jetzt einen neuen ATMega8 auflöte würde ich das ganze mal
gerne mit YAAP testen.
So wie ich gelesen hab änderst du folgende Sachen:

CKSEL2 auf 1 unprogrammed
CKSEL0 auf 0 programmed

Außerdem:
BOOTSZ0 auf 1 unprogrammed
BOOTRST auf 0 programmed

Richtig ?

Grüße,
Patrick
Gast #229821
Lesenswert?

Dieser USB ISP Adapter sieht eigentlich recht gut aus. Auf der Website
habe ich jedoch kein Platinenlayout gefunden. Bin ich nur zu blöd zum
suchen oder muss man die Platine irgendwo fertig kaufen?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren