Hallo,
ich habe mir das USB AVR Lab nachgebaut:
http://www.ullihome.de/wiki/USBAVRLab/index
Leider funktioniert der Progger als AVRISPmkII vom AVR Studio V4.19 aus
nicht richtig (unter WinXP SP3):
1. Problem: mitten beim Programmieren hängt sich der Progger plötzlich
auf, die LEDs Blau und Rot flackern ganz schnell abwechselnd, AVR Studio
schmeißt Fehlermeldung aus, Progger muss "resetet" werden
2. Problem: Im Gerätemanager sind zu dem Progger unter "Jungo" zwei
Geräte aufgeführt:
a)AVRISP mkII
b)WinDriver
Nach einiger Zeit ist plötzlich der Progger aus dem AVR Studio
verschwunden/nicht mehr aufrufbar, parallel dazu ist Gerät a)AVRISP mkII
aus dem Gerätemanager verschwunden.
Die Probleme treten auch auf, wenn man mit einer sehr geringen
Geschwindigkeit programmiert, z.B 1MHz oder langsamer.
Das Target läuft übrigens auf 16MHz.
Habe jetzt schon ziemlich viel zum Thema gegoogelt, leider ohne direkte
Erfolge.
Am ehesten käme vielleicht folgendes in Betracht, Zitat:
"Das AVR Studio reagiert komisch, nach einem Update
(AVRISPmkII,JTAGICEmkII,STK500v2)
Das kann an der Treiberinstallation der Treiber aus dem AVR Studio
liegen
*löschen Sie mit dem kostenlosen Tool USBDeview.exe alle AVR
Einträge
*Suchen Sie in der Registry nach Jungo und AVRISP, und löschen Sie
den Schlüssen
*starten Sie das System neu, nach einer erneuten Installation des
Treiber sollte alles sauber laufen"
von
http://www.ullihome.de/wiki/USBAVRLab/FAQ
Bevor ich jetzt irgendwas mache, um das Problem zu lösen, frage ich
lieber noch mal hier nach, ob jemand eine konkrete Idee hat.
Viele Grüße,
Daniel
Dan1el schrieb:> "Das AVR Studio reagiert komisch, nach einem Update> (AVRISPmkII,JTAGICEmkII,STK500v2)..."
Ach so, habe übrigens kein Update vorgenommen, dachte aber, wegen der
relativ neuen AVR Studio Version 4.19 könnte dort das Update schon
serienmäßig integriert sein!?!
Hubert G. schrieb:> Ich verwende ihn als STK500v2, da funktioniert er bestens.
Ich versuche grade, den Progger als STK500v2 "umzumodeln". Die neue
Firmware ist schon aufgespielt. Leider möchte XP jetzt einen Treiber
(für den virtuellen COM-Port, wie ich das verstehe), siehe:
http://www.ullihome.de/wiki/USBAVRLab/Firmwares/SK500v2
unter
"Installation
Nachdem der Programmer angesteckt wurde, fragt Windows nach einem
Treiber. Diesen bringt es selbst mit, allerdings muss mittgeteilt
werden, welcher Treiber zu diesem Gerät gehört. Das macht man mit einer
INF Datei, die hier heruntergeladen werden kann."
Wenn ich auf hier klicke, lande ich hier:
http://www.ullihome.de/wiki/USBAVRLab/download
und finde dort keinen COM-Port-Treiber...
Dan1el schrieb:> Nachdem der Programmer angesteckt wurde, fragt Windows nach einem> Treiber. Diesen bringt es selbst mit, allerdings muss mittgeteilt> werden, welcher Treiber zu diesem Gerät gehört. Das macht man mit einer> INF Datei, die hier heruntergeladen werden kann."
Ach so, im pdf stehts, man soll wie üblich den ordner "drivers" wählen
und dann den ordner "raw".
Hab den com-Treiber jetzt installiert.
So, fertig installiert, STK500 läuft ganz gut, nur oft kommt nach dem
Programmübertragen "Program" und anschließendem "Verify" die
Fehlermeldung
>FLASH byte address 0x0000 is 0x00 (should be 0x0C).. FAILED!
Kann man da was machen?
Habe schon den zu beschreibenden Controller getauscht. Auch die
Programmiergeschwindigkeit runtergeschraubt.
Wenn beim ersten Durchlaf von "Verify" ok kommt, kann beim zweiten
durchaus wieder obige Fehlermeldung auftreten, obwohl am
Programm(speicher) nichts geändert wurde...
Dazu kann ich nichts sagen, ich bekomme praktisch keine, nicht
nachvollziehbare, Fehlermeldungen.
Es könnte ein Spannungsproblem sein. Ich habe die Z-Dioden in den
USB-Datenleitungen weggelassen. Anstelle der 3,9V Z-Diode bei Supply,
habe ich eine mit 4,1V genommen. Die Versorgungsspannung wird dann auf
3,3V geregelt.
Dan1el schrieb:> FLASH byte address 0x0000 is 0x00 (should be 0x0C).. FAILED!
Kenne ich.
Kommt dann, wenn ich mit dem AVRISPMK II auf die per Fuse deaktivierte
SPI-Schnittstelle zugreifen will (passiert mir manchmal, wenn ich vorher
noch den Dragon über JTAG dranhatte). Also wohl definitiv ein Fehler auf
dem SPI-Anschluss.
Danke für die Antworten!
Hubert G. schrieb:> Es könnte ein Spannungsproblem sein. Ich habe die Z-Dioden in den> USB-Datenleitungen weggelassen.
Die sind bei mir auf 3V9 erhöht. Werde sie mal probeweise rausnehmen.
Christian U. schrieb:> Das hört sich alles sehr danach an als ob du da kalte Lötstellen oder> auf einem Wackligen Steckboard gebaut hast.
Über halbkalte Lötstellen hatte ich auch schon nachgedacht, allerdings
keine entdeckt. Ist alles sauber auf einer Platine aufgebaut. Auch keine
Flussmittelreste o.ä. zwischen den Leiterbahnen. Allerdings ist der
Sockel vom M8 ein Billigsockel, die haben manchmal Kontaktprobleme beim
Löten (hatte leider keinen anderen passenden zur Hand).
Sebastian Möller schrieb:> versuche bitte mal mit avrstudio5 zu flashen.
Ist das zu empfehlen? Mein Bastelrechner ist ein älterer
1GHz-PIII-Rechner mit XP, habe mal irgendwo gelesen, dass das AVR Studio
5 tierisch Resourcen frißt. Bekommt man es denn im Zweifelsfall wieder
sauber deinstalliert?
Martin N. schrieb:> Dan1el schrieb:>> FLASH byte address 0x0000 is 0x00 (should be 0x0C).. FAILED!>> Kenne ich.> Kommt dann, wenn ich mit dem AVRISPMK II auf die per Fuse deaktivierte> SPI-Schnittstelle zugreifen will
Du meinst, beim Target per Fuse SPI aktivieren? Hab ich beim M328 noch
nie bewusst wahrgenommen, muss ich mal ins Datenblatt gucken...
Ich meinte, dass Du evtl. ein Kontaktproblem haben könntest. Dass Du
also hin und wieder die SPI-Verbindung durch eine schlechte Leitung
verlierst.
Und bitte nichts an dem Fusebit verstellen! Das passt so, wenn er sich
schon ansprechen lässt! Kontrolliere nochmal ganz genau deine
Verbindungen auf dem Board.
Simon K. schrieb:> Wenn ab und zu mal ein Verify Fehler kommt, dann einfach den SPI Takt> mal runterstellen.
Hab ich schon gemacht, ändert nichts am Problem
Die Supply-Geschichte um den Transistor habe ich übrigens weggelassen,
da meine Targets alle mit 5V laufen und extern versorgt werden.
Und die Leitung USIG1 habe ich auch freigelassen.
emsen schrieb:> Ich meinte, dass Du evtl. ein Kontaktproblem haben könntest. Dass Du> also hin und wieder die SPI-Verbindung durch eine schlechte Leitung> verlierst.
Werde ich morgen noch mal in Ruhe schauen.
So, habe jetzt jede einzelne Leiterbahn unter definiertem Strom
ausgemessen, Kontaktprobleme dürften mit an Sicherheit grenzender
Wahrscheinlichkeit ausgeschlossen werden können.
Mal was ganz anderes, der verwendete Rechner hat, glaube ich, USB 1.1.
Kann das die Probleme verursachen?
Und kann man über die Systemsteuerung von Windows herausfinden, welche
USB-Version der Rechner hat?
An der USB-Verbindung sollte es nicht liegen, dann würde die Software
den progger mit entsprechenden Fehlermeldungen ablehnen.
Da ein Fehler beim Lesen gemeldet wird, ist der Programmablauf schon
über den Verbindungsaufbau PC-Progger hinaus.
Eine erste Kontrolle der ISP- Verbindung besteht im Lesen des
Kontrollertyps über die Signatur - sie stellt einen der einfachsten
Vorgänge dar.
Studio5 ist viel zu neu, da holt man sich damit nur zusätzliche
Komplikationen herein. Bleib beim Studio4, erst wenns dort geht, sollte
man auf Studio5 gehen.
Danke für die Antwort!
Hier übrigens noch der Schaltplan.
Als Software wie gesagt USB AVR Lab, am liebsten als AVRISPmkII
(www.ullihome.de).
Was mich ein wenig irritiert, ist, dass die Spannungsdetektion über PC2
(=ADC1) nicht richtig funktioniert.
Ich habe deshalb eine Dauerverbindung von diesem Port über 10k zu Vcc
(+5V) hergestellt und den R gegen Masse ganz weggelassen.
Wenn ich den Spannungsteiler wie im Schaltplan gezeigt aufbaue, leuchtet
die eine LED nicht auf und AVR-Studio meckert eine zu niedrige
Versorgungsspannung an.
Aber ob das mit den Programmier- und Verifyabstürzen zusammenhängt???
OK so langsam wirds klar.
USB benötigt auf den Datenleitungen 3,6V !!!!!
Wenn du mein Supply weglässt und keine Z-Dioden in die Datenleitungen
hängst zeigt dein Hostcontroller dir nen Vogel.
Z-Dioden in den Datenleitungen verschleifen das Signal schön, so das
Hubs oft nicht mehr damit klarkommen. Ergo einfach nach Schaltung baun
oder sich mit der Materie auseinandersetzen. Das betrifft übrigends die
meissten Probleme bei Selbstbauten, zu denen ich dann Support leisten
darf. Nochmal die Bitte an alle, die meinen es besser zu wissen aber
sich mit USb nicht auskennen: Baut einfach nach meiner Schaltung, ich
denke mir schon was dabei. Und die Spannungsverorgung ist nicht nur fürs
Target sondern hauptsächlich für den Programmer.
Christian U. schrieb:> Und die Spannungsverorgung ist nicht nur fürs> Target sondern hauptsächlich für den Programmer.
Man kann bestimmt auch drei Si-Dioden (DUS) in Flussrichtung gepolt
vorschalten, die verbraten ebenfalls um die 2V. Den Elko würd ich dann
aber in jedem Fall hinter die Dioden klemmen.
>Nochmal die Bitte an alle, die meinen es besser zu wissen aber>sich mit USb nicht auskennen: Baut einfach nach meiner Schaltung, ich>denke mir schon was dabei.
Oh, da hat aber jemand ein großes Ego.
@Themenstarter
In Anbetracht der oben genannten Probleme und der Tatsache, dass der
original Atmel ISPMK-II 39,-EUR kostet, wieder einmal ein perfektes
Beispiel, dass sich ein Selbstbau nicht lohnt!
Schönen Abend
Hans_Dampf schrieb:>> In Anbetracht der oben genannten Probleme und der Tatsache, dass der> original Atmel ISPMK-II 39,-EUR kostet, wieder einmal ein perfektes> Beispiel, dass sich ein Selbstbau nicht lohnt!>> Schönen Abend
Wenn man aber berechnet das mir mein Nachbau etwa €5.- gekostet hat,
dann lohnt sich Selbstbau schon. Die eigenen Ideen sollte man vielleicht
weg lassen.
Auch einen schönen Abend.
Hans_Dampf schrieb:> In Anbetracht der oben genannten Probleme und der Tatsache, dass der> original Atmel ISPMK-II 39,-EUR kostet, wieder einmal ein perfektes> Beispiel, dass sich ein Selbstbau nicht lohnt!
Man lernt aber nix dazu, wenn man ein Fertigteil kauft!
Hans_Dampf schrieb:>>Nochmal die Bitte an alle, die meinen es besser zu wissen aber>>sich mit USb nicht auskennen: Baut einfach nach meiner Schaltung, ich>>denke mir schon was dabei.>> Oh, da hat aber jemand ein großes Ego.
Ich finde Christians Einwand an dieser Stelle schon legitim! Seine
Aussage hat wahrscheinlich weniger mit Ego als mit Genervtsein zu tun.
Was ich noch nicht ganz verstehe, soll das Target mit der selben (oder
gleichen) Spannung wie der M8 auf dem Programmieradapter betrieben
werden oder sind 5V bei "normalen" AVR-Targets sinnvoller?
Immerhin können viele AVRs ihre Maximalgeschwindigkeit nur bei 5V
erreichen und die Programmiergeschwindigkeit soll ja < 1/4 der
Betriebsfrequenz vom Target sein.
Will man mit 4MHz proggen, muss das Target ja wenigstens auf 20MHz
laufen...
@Dan1el:
bei dem übersichtlicheren Schaltplan sind beide Z-Dioden an die gleiche
USB-Leitung (D-) angeschlossen.
Habe das USB-Lab auch nach dem Progger_USB.PNG Schaltplan aufgebaut.
Es läuft im Prinzip, aber nur mit der niedrigsten ISP-Frequenz.
Wenn ich versuche, diese hoch zu drehen, treten Fehler auf.
Zurücklesen des Flash geht scheinbar auch nicht richtig.
AR schrieb:> bei dem übersichtlicheren Schaltplan sind beide Z-Dioden an die gleiche> USB-Leitung (D-) angeschlossen.
Danke für den Hinweis, war mir gar nicht aufgefallen!
AR schrieb:> Habe das USB-Lab auch nach dem Progger_USB.PNG Schaltplan aufgebaut.> Es läuft im Prinzip, aber nur mit der niedrigsten ISP-Frequenz.> Wenn ich versuche, diese hoch zu drehen, treten Fehler auf.> Zurücklesen des Flash geht scheinbar auch nicht richtig.
Auf welcher Geschwindigkeit läuft dein Target?
Welche Fehler treten auf, was zeigen die Dioden dabei an?
Läuft dein Progger mit 5V?
Kann es sein, dass hier ein "Pegelproblem" vorliegt?
Der Programmieradapter soll wegen dem USB-Port-Pegel mit ca. 3V
betrieben werden, das Target benötigt aber für höhere Taktraten 5V
(-Pegel)!?!!
Von da her ist diese Idee mit dem Leistungstreiber vermutlich recht
sinnvoll:
Beitrag "USBASP vs USB-Doper, warum Leistungsgatter"
Christian U. schrieb:> Die Datenspannung für USB sollte schon halbwegs stabil sein, das mit den> Dioden dürfte funktionieren aber ob sicher ist auch wieder sone sache.
Eigentlich könnte man auch einen LM317 und zwei Widerstände nehmen...
Hubert G. schrieb:> Sicherer wäre wohl ein 3,3V LowDrop Regler.
Kann man sowas auf älteren Mainboards (z.B. PentiumIII-MB) finden und
wenn ja, wie sieht so ein Teil erwartungsgemäß aus?
> Kann es sein, dass hier u.U. ein "Pegelproblem" vorliegt:>> Der Programmieradapter soll wegen dem USB-Port-Pegel mit ca. 3V> betrieben werden, das Target benötigt aber für höhere Taktraten 5V
Konkret: Der Progger läuft jetzt mit 3,3V recht gut.
Wenn ich aber mein Board mit M328, 20MHz Taktrate und 5V
Betriebsspannung dranhänge, gibts Probleme (Progger-Abstürze),
vermutlich, weil die Pegel nicht stimmen. Kann das sein?
So Regler gibt es wohl in fast allen Gehäuseformen, ob auch auf einem
Mainboard kann ich nicht sagen.
Solange der Progger mit 3,3V läuft sollte es auch mit einem Target mit
5V keine Probleme geben.
Hubert G. schrieb:> Unter Electrical Characteristics.> In meinem Mega8 Datenblatt auf Seite 268
Danke! (Bei mir ab Seite 237)
Die Programmierleitungen am M8 (Progger) liegen auf PB2 bis PB5.
Wenn der Progger auf 3,3V läuft und das Target auf 5V, bekommt das
Target als HI-Pegel min. ca. 2,4V vom Progger. Es benötigt min. 0,6 Vcc,
also 1,98V. Dazwischen liegen recht niederohmige Widerstände, dürfte
also ok sein.
Im Gegenzug bekommt der Progger vom Target über MISO als HI-Pegel min.
4,2V.
Maximal soll der Progger als HI-Signal aber nur Vcc + 0,5V bekommen,
also 3,8V. Dazwischen ein R von ca. 50 bis 100 Ohm (je nach
Schaltplan)...
ob das gut ist??? Der Progger bekommt ja ein HI-Signal, dass seine
Maximum Ratings um mindestens (!) 0,4V übersteigt!
Wenn man die Arbeitszeit rechnet, die der Nachbau nun an Zeit für die
Fehlersuche verschlungen hat, ist das ein sehr teurer Nachbau geworden.
Dafür hätte man sich einen AVR ISP mkII und ein AVR Dragon leisten
können.
Mir ist das immer noch unbegreiflich, warum immer alles aus der Bucht
und Geiz ist Geil sein muss.
Die 40€ für den Programmer haben sich bei mir schon bezahlt gemacht. Ich
konnte die Zeit nutzen zum lernen und probieren, ohne mich mit
irgendeinem Nachbau auseinander setzen zu müssen.
Stimme zu, man kann dadurch auch was lernen. Aber das kann man doch
immer noch, wenn man erstmal die ersten Gehversuche hinter sich hat.
Aber man weiß, das man immer noch ein Programmer besitzt, der
funktioniert.
Trotzdem noch viel erfolg mit dem Teil. Und hoffentlich bald auch freude
beim Programmieren damit.
MFG
Stephan
@Stephan
Ich möchte austüfteln, warum der Progger nicht 100% läuft.
(habe noch einen anderen AVR-Programmierer, darum geht es nicht)
Mittlerweile läuft der AVRISPmkII-Klon recht sauber mit 1MHz
Programmiertakt. Abstürze kommen aber trotzdem noch vor.
Ausserdem müsster er ja eigentlich auch bei 4MHz stabil laufen können,
wenn das Target auf 20MHz getaktet ist. Hier stürzt er aber in über der
Hälfte der Fälle gnadenlos ab.
Habe leider kein DSO, sonst würde ich mir mal die Flanken anschauen...
Dan1el schrieb:> @Stephan>> Ich möchte austüfteln, warum der Progger nicht 100% läuft.> (habe noch einen anderen AVR-Programmierer, darum geht es nicht)>> Mittlerweile läuft der AVRISPmkII-Klon recht sauber mit 1MHz> Programmiertakt. Abstürze kommen aber trotzdem noch vor.>> Ausserdem müsster er ja eigentlich auch bei 4MHz stabil laufen können,> wenn das Target auf 20MHz getaktet ist. Hier stürzt er aber in über der> Hälfte der Fälle gnadenlos ab.>>> Habe leider kein DSO, sonst würde ich mir mal die Flanken anschauen...
Okay, rein zum lernziel, will ich irgendwann auch mal einen Programmer
nachbauen. Aber wie schon gesagt, da dass Original nicht sehr teuer ist,
macht es kaum sinn, wenn man sich als alleiniges Gerät einen Nachbau
macht um ein paar Euro zu sparen.
MFG
Stephan
Die Transistor Z-Dioden Schaltung ist als Stromversorgung ausreichend
stabil. LM317 oder 3V3 regler kann man natürlich nehmen ich hab aber
versucht verhältnismässig günstig zu bleiben. Und bis auf die
Temperaturunstabilität hat die Schaltung keine Nachteile. Und -20 oder
+40° hat man selten auf dem Schreibtisch.
Christian U. schrieb:> Die Transistor Z-Dioden Schaltung ist als Stromversorgung ausreichend> stabil. LM317 oder 3V3 regler kann man natürlich nehmen ich hab aber> versucht verhältnismässig günstig zu bleiben. Und bis auf die> Temperaturunstabilität hat die Schaltung keine Nachteile. Und -20 oder> +40° hat man selten auf dem Schreibtisch.
Finde ich im Prinzip auch eine gute Idee mit Zenerdiode und Transistor.
Habe nur leider absolut keine passende Zenerdiode und müsste etliche
1N4148 in Reihe schalten mit dem Problem, dass ich entweder 3V oder 3,6V
erhalte je nach Anzahl (Steckbretttestung). Bei LM317 ist man wegen dem
Poti "spannungsflexibel"
:O)
Christian U. schrieb:> Besser ist ja nie ein Problem. Also einfach den Spannungsteiler mit 3V> Output einstelln und gut is :)
der LM317 hat eine Referenzspannung von 1,25V zwischen "Out" und "Adj".
Der Spannungsteiler muss also, nach Masse gemessen, 2,05V haben. Damit
kommt man dann auf 3,3. Der 317er braucht eine Mindestlast.
Eine Spannungsumschaltung 5/3.3 braucht man nicht, sofern man die
Datenleitungen, die zum Mega8 des Programmers gehen, mit einem
entsprechenden Widerstand versieht. Dann wird über die Schutzdioden des
Mega alles, was zuviel ist, in die 3.3V abgeleitet.
Als Spannungsregler nehm ich mir hier den "LP2951xx-3.3x". Der macht
präzise 3.3V ohne externes Widerstandsgefummel und man hat einen
Power-Good-Ausgang, den man mit ~Reset des Mega verbinden kann(Muss man
aber die SO8 oder PDIP8 Gehäuse nehmen).
mfg mf