Forum: Mikrocontroller und Digitale Elektronik USB-ISP hängt


von Michael W. (miwitt001)


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

von A. D. (ad1)


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.

von Μαtthias W. (matthias) Benutzerseite


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

von Michael W. (miwitt001)


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

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

Ist SJ2 geschlossen? Wenn die offen ist mußt du von beiden Seiten (USB
und Zielschaltung) versorgen. Das Ganze ist für 3,3V Systeme gedacht.

Zum Thema DIP-Schalter:
Schonmal einen 1 poligen eben solchen gesehen? Ich nicht. Und wenn man
zwei hat hat man immer noch etwas Spielraum für Inovationen :-)

Matthias

von Michael W. (miwitt001)


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

von Michael W. (miwitt001)


Lesenswert?

upssss...
SJ2 ist natürlich nicht geschlossen. Drum geht jetzt auch gar nix mehr,
hab bei meinem letzten Test keine externe Spannung angelegt..
Werd dann morgen nochmal ausfürlich testen und die Ergebnisse hier
wieder reinschreiben.

mfg

von Michael W. (miwitt001)


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

von Ppp M. (sanic)


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

von Ppp M. (sanic)


Lesenswert?

Hoppla,
habe angenommen avrdude gibt´s nicht für Win .... ich wurde aber eines
besseren belehrt.

Die Frage mit dem ADC6 bleibt aber weiterhin offen.

Grüße

von Μαtthias W. (matthias) Benutzerseite


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

von Ppp M. (sanic)


Lesenswert?

Hallo,

danke Matthias.
Dann mach ich mal an den Nachbau :-)

Grüße,
Patrick

von Marco G. (stan)


Lesenswert?

Mist, ich hab mir grad die lfuse auf 0xDA gebrannt :(
wo krieg ich denn jetzt nen 0.4 - 0.9 MHz Quarz her und kann ich den
einfach da anschließen? Irgendwie scheint der TXE des FTDI da mit
dranzuhängen...

von Μαtthias W. (matthias) Benutzerseite


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

von Marco (Gast)


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...

von Marco G. (stan)


Lesenswert?

also niemals "Sortimente" beim Pollin kaufen, da waren nur 30 Stück
14,31... MHz und ein paar 10,... MHz Quarze drin :(
Ob ich mal der Reihe nach alle elektronischen Geräte aufschraube? :>

von Marco G. (stan)


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 :(

von Rick Dangerus (Gast)


Lesenswert?

http://www.klaus-leidinger.de/mp/Mikrocontroller/meinetools.html#Atmel%2090SxxxxRettung

und ein Stück scrollen bis:
Rettung bei versehentlich falsch gebrannten Fuses

Rick

von Marco G. (stan)


Lesenswert?

wie geil, er reagiert wieder!
tausend Dank!!!

Da hätt ich mir 100km zum Pollin und zum zweiten Geschäft sparen können
heute vormittag :/

von Ppp M. (sanic)


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

von Μαtthias W. (matthias) Benutzerseite


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

von Ppp M. (sanic)


Lesenswert?

Hallo,

"dump lfuse" und "dump hfuse" sagt mir, dass beide werte auf 00
stehen.
Außerdem: Gibt´s -u erst in der neuen Beta Version ?
Das avrdude für Windows ( 4.3.0 ) kennt -u nämlich nicht.

Grüße,
Patrick

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

ich verwende avrdude 4.4.0 aus dem aktuellen WINAVR Packet. Aber mit
dem Chip kannst du noch kommunizieren? Signaturlesen klappt noch?

Matthias

von Ppp M. (sanic)


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

von Ppp M. (sanic)


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

von Μαtthias W. (matthias) Benutzerseite


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

von Ppp M. (sanic)


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

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

kann ich jetzt nicht prüfen da ich weder Datenblatt noch Quellcode zur
Hand habe. Werd ich aber heute Abend tun und hier dann reinstellen.
IIRC ist im ZIP auch ein Screenshot von Ponyprog dabei mit den nötigen
Fusebit Einstellungen.

Matthias

von Ppp M. (sanic)


Lesenswert?

Hallo Matthias,

stimmt!
Das werde ich dann mal benutzen , hoffentlich zerschieße ich nicht noch
einen ATMega ;-)

Grüße,
Patrick

von Marco G. (stan)


Lesenswert?

Also bei mir funzt der USBisp ja, aber -u kennt mein AVRdude auch nicht.

Version ist 4.4.0 IMO aus der WinAVR-Bundle...

von Gast (Gast)


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?

von Marco G. (stan)


Lesenswert?

"The CAD data isn’t made public. You can get PCBs from me for a small
amount of money. Just write an email to matthias@matwei.de and include
USBisp into the subject."

Steht doch da :)

von Ppp M. (sanic)


Lesenswert?

Hallo,

der ATMega ließ sich doch noch ansprechen.
Vielleicht hat er das Wochenende gebraucht ? ;)
Ich habe jetzt den bootloader und die app.hex geladen, den Rest teste
ich dann später.

Grüße

von Ppp M. (sanic)


Lesenswert?

Und er läuft!
Super Projekt Matthias!

Grüße,
Patrick

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
Noch kein Account? Hier anmelden.