mikrocontroller.net

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


Autor: Michael Wittmann (miwitt001)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: A. Dittrich (ad1)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Μαtthias W. (matthias) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Michael Wittmann (miwitt001)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Μαtthias W. (matthias) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Michael Wittmann (miwitt001)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Michael Wittmann (miwitt001)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Michael Wittmann (miwitt001)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ppp Mmm (sanic)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ppp Mmm (sanic)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Μαtthias W. (matthias) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ppp Mmm (sanic)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

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

Grüße,
Patrick

Autor: Marco G. (stan)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Μαtthias W. (matthias) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Marco (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Marco G. (stan)
Datum:

Bewertung
0 lesenswert
nicht 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? :>

Autor: Marco G. (stan)
Datum:

Bewertung
0 lesenswert
nicht 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 :(

Autor: Rick Dangerus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://www.klaus-leidinger.de/mp/Mikrocontroller/m...

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

Rick

Autor: Marco G. (stan)
Datum:

Bewertung
0 lesenswert
nicht 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 :/

Autor: Ppp Mmm (sanic)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Μαtthias W. (matthias) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ppp Mmm (sanic)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Μαtthias W. (matthias) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ppp Mmm (sanic)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ppp Mmm (sanic)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Μαtthias W. (matthias) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ppp Mmm (sanic)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Μαtthias W. (matthias) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ppp Mmm (sanic)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Matthias,

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

Grüße,
Patrick

Autor: Marco G. (stan)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Marco G. (stan)
Datum:

Bewertung
0 lesenswert
nicht 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 :)

Autor: Ppp Mmm (sanic)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ppp Mmm (sanic)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und er läuft!
Super Projekt Matthias!

Grüße,
Patrick

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.