Forum: Mikrocontroller und Digitale Elektronik Usbasp funktioniert nicht richtig.


von Felix K. (listerstorm)


Lesenswert?

Hallo liebe Mikrocontroller-Gemeinde,

ich habe ein Probelm und hoffe das mir jemand helfen kann. Nach 
stundenlangen Inet durchforsten brauche ich einfach hilfe von ein paar 
Profis. Also ich habe den Usbasp von fischl.de gebaut. Allerdings wird 
dieser von Windows XP nicht erkannt. Es kommt nur die Nachricht von 
einem Unbekannten USB Gerät. Windows die Treiber von fischl.de rein 
zudrücken funktioniert auch nicht. Windows sagt das die datei keine 
Infos zu dem Gerät besitzt. Ich möchte dazu sagen ich habe bereits alle 
Lötstellen überprüft und einige dennoch nach gelötet. Alle teile sind 
korrekt ausgewählt und verbaut worden. Beim anschliessen vom Usbasp an 
USB leuchtet sofort die rote Led. Ich habe per Serial Programmer den 
Atmega8 mit der neusten Firmware von fischl.de problemlos beschrieben 
und die Fuses wie es in der Anleitung steht geändert (HFUSE=0xc9 
LFUSE=0xef).

Also was mir aufgefallen ist wenn ich die Fuses auf HFUSE=0xc9 
LFUSE=0xef umgestellt habe gibt der Atmega8 beim auslesen nur noch 
schrott von sich bzw. die hälfte stimmt nicht mehr vom Inhalt. 
Beschreiben funktioniert dann auch nicht mehr richtig. Er wird zwar 
beschrieben aber beim überprüfen der Daten kommt ein Fehler weil sie 
nicht identisch sind. Stelle ich die Fuses aber wieder auf Default kann 
ich den Atmega8 ohne Probleme beschreiben und auch auslesen und die 
Daten stimmen mit der Firmware überein ohne Probleme. Ich würde ja sagen 
falsche Fuses aber da bin ich mir ganz sicher das die stimmen. Meine 
Idee wäre nun das ich einen defekten 12mhz Crystal erwischt habe oder 
so.

Hat jemand eine Idee? Würde mich sehr über Hilfe freuen und bedanke mich 
schonmal bei Allen die versuchen mir zu helfen.

MfG Felix

von Klis Tier (Gast)


Lesenswert?

Wie hast du Slow CLK gejumpert?
Funktioniert er an einem anderen Rechner auch so/nicht?
Mach doch mal ein Bild von der Unter- und  Oberseite.

von Felix K. (listerstorm)


Lesenswert?

Mal so mal so gejumpert in beiden Fällen das selbe Ergebnis. An meinem 
Netbook das selbe wie am Desktop Rechner.
Bilder versuche ich heute Abend nach zu reichen.

von Felix K. (listerstorm)


Angehängte Dateien:

Lesenswert?

Ok hier sind die Fotos inkl. Eagleboard. Ich hoffe man kann alles 
erkennen. Ja ich weiss ich bin kein begnadeter Löter aber es 
funktioniert. Eine blöde Sache hab ich übrigens gerade selber gefunden, 
der 100nF ist zwar logisch verkabelt aber die Position ist totaler 
unsinn da bringter nicht so viel. Schade das Eagle einen dadrauf nicht 
aufmerksam macht. Naja wie auch immer den Löte ich gleich direkt mal 
direkt in die nähe der Pins vom Atmega8. Man peinlich sowas.

Leider kann ich den Quarz nicht wechseln habe keinen 12mhz Quarz mehr 
und das große C hat auch keine mehr auf Lager bei mir. Wie gesagt mit 
internem Takt läuft er super (also der Avr nicht der Usbasp) und bei 
externem Quarz stimmt nur noch ein kleiner teil der Daten die 
geschrieben oder gelesen werden.

von Felix K. (listerstorm)


Lesenswert?

Hmmmm ja ich helf mir hier mal selber. Nachdem ich meinen 
Flüchtigkeitsfehler korregiert habe und den 100nF Kondensator wo anders 
hin gesetzt habe und den Quarz etwas tiefer versenkt habe und fast flach 
auf der Platine aufliegt, funktiert das mist Ding. Naja ok nur kurz. Es 
kam sofort der Usbasp wurde erkannt, wollte ich die Firmware nochmal 
sauber drauf machen und die Fuses.

Ja beim auslesen und des beschreiben brauchte ich einige Versuche. War 
irgendwie komisch und hab mir mal die Unterseite angeguckt, dort war 
etwas ja wie soll ich das beschreiben? Eine Art Krümmel aus Lötzinn 
(wohl von der Entlötpumpe). Den ich mal einfach mal weggepustet habe. 
Scheint wohl wo anders wieder gelandet zu sein und nen kurzen verursacht 
zu haben, weil danach war der Atmega platt. Nochmal alles sauber 
gepustet kam mir noch son Krümmel von irgendwo unter. Jetzt hoffe ich 
nur es war der Krümmel und nicht irgendwas anderes. Weil dann einfach 
neuen Atmega rein und fertig.

von Felix K. (listerstorm)


Angehängte Dateien:

Lesenswert?

Oh damit keiner den Plan oben als Hilfe benutzt stelle ich nochmal das 
Board ein so wie ich es jetzt habe. Mit dem Board hat es zumindest kurz 
funktioniert.

PS: Ich hätte das gern in meinen Beitrag oben noch eingefügt, aber man 
kann hier nur max. 15 min. nach abschicken des Beitrags noch Änderungen 
vornehmen.

von Mike J. (emjey)


Lesenswert?

Nur so als Info:

Ich nutze
 - einen 1Mega Ohm Widerstand von GND nach D+
 - einen 1K Widerstand von  +3.3V nach D-
(bzw. von +5V nach D- einen 1.5k Widerstand)


Mit 2.2k von +5V nach D- funktioniert es bei meinem PC und Laptop nicht.

von Felix K. (listerstorm)


Lesenswert?

Danke für die Antwort. Ich hab aus lauter verzweiflung mal den 
Widerstand auf 1,5K getauscht hat nichts gebracht. Dafür ist der nächste 
Atmega drauf gegangen beim fuse einstellen. Und nein mit externem Takt 
widerbeleben hat ihn nicht gerettet. Ich bin nun echt angepisst und hab 
langsam die Schnauze voll. Ich hatte schon ganz andere Schaltungen, da 
ist hier die nen Witz gegen aber sie will einfach nicht.

von Mike J. (emjey)


Lesenswert?

Felix K. schrieb:
> Ich hab aus lauter verzweiflung mal den
> Widerstand auf 1,5K getauscht hat nichts gebracht. Dafür ist der nächste
> Atmega drauf gegangen beim fuse einstellen.
Ist eigentlich unmöglich.
Du kannst dabei eigentlich nur die Reset-Pin-Fuse (RSTDISBL) gesetzt 
haben.


> Und nein mit externem Takt
> widerbeleben hat ihn nicht gerettet. Ich bin nun echt angepisst und hab
> langsam die Schnauze voll.

Du verlegst Drähte auf der Platine ... (eigentlich richtig)

Die Verbindung zu den USB-Pins ist aber recht lang und somit 
störanfällig.
Lege D+ und D- mal direkt (kürzeste Weg von der Schirmung) mit Kabeln zu 
den 68 Ohm Widerständen auch möglichst nahe an den Pins liegen. Am 
besten nur maximal 2cm.


Ich habe hier zwei Parallelport-Programmer (STK-200), ein USBisp und 
vier USBasp.

Den USBisp nutze ich aber nicht mehr da ich meine WinXP Platte nur noch 
anstöpsle wenn ich spiele oder TV schauen möchte.

Die USBasp laufen unter Ubuntu und WinXP ohne Probleme, macht richtig 
spaß.
Da das so wenige Teile sind mach ich so ein Ding mal so nebenbei ... 
deshalb habe ich auch schon 4 davon.

Vorgehensweise:
 1. alle Teile auflöten
 2. Parallelprogrammer anstöpseln
 3. Fuses für 12MHz setzen (mit AVR8_burn_o_Mat oder PonyProg)
    (hfuse = 0xC9  ,  lfuse = 0x9F)
    und Firmware aufspielen.

Nutzung des USBasp und 1MHz Target:
 1. Target-Board mit USBasp verbinden
 2. USBasp auf slow stellen (Jumper)
 3. USB Kabel in den USBasp Programmer stecken
 4. In Eclipse (Projekteigenschaften -> AVR -> Target Hardware) 
überprüfen ob das Targetboard erkannt wird (Load from MCU)
 5. Programm auf Target-Board scheiben

Ich habe ein USBasp mit Z-Dioden und drei mit 3.3V Spannungsregler (also 
ohne Z-Dioden), läuft alles sehr gut auch mit dem Laptop.


Was auch noch ganz hilfreich ist:
 - Du solltest auf deiner Platine (dort wo die Bestückungsseite ist) mit 
einem schwarzen Stift die Drähte die du unten verlegt hast aufmalen, 
dann ist es nicht so schwierig deine Platine zu kontrollieren um zu 
sehen ob D+ und D- richtig verlegt worden sind.

von Felix K. (listerstorm)


Lesenswert?

Hallo Mike,

erstmal vielen dank für deine Hilfe.

Das mit den Reset-Pin-Fuse (RSTDISBL) kann schon sein, weil sobald ich 
die Fuses geändert habe (genauso wie in der Anleitung) spinnt der Atmega 
schon. Beim auslesen der Fuses kam alles mögliche raus. Das Selbe mit 
den Daten auf dem Controller. Er schmeisst einfach alles durcheinander 
sobald er auf externen Quarz eingestellt ist. Ich brauch auch immer 20 
Versuche bis er die Fuses wieder auf default stellt. Ab da läuft alles 
normal. Ich könnte mir also vorstellen das er statt den fuses die ich 
ihm sage einfach RSTDISBL oder sonst was versteht und setzt.

Daher auch kein Wunder das der Controller und Windows sich nicht 
verstehen, wenn der Controller nur Schrott von sich gibt.

Die Sache ist die, warum gibt er nur noch Schrott von sich wenn er auf 
externen Quarz läuft? Der Quarz selber ist einwandfrei, den hab ich mit 
einem Attiny2313 ohne Probleme laufen lassen. Wenn das eines meiner RC 
Modelle wäre würde ich sagen irgendwas stört den Empfang. Als Laie würd 
ich ja mal drauf tippen das zwischen XTAL1 und XTAL2 zu GND irgendwas 
nicht stimmt. Da sind aber nur der Quarz und die zwei 22pF Keramik 
Kondensatoren. Die habe ich übrigens auch schon gegen 2 Brandneue 
getauscht.

Daher sollte ich erstmal keinen weiteren Atmega8 einsetzen. Aber danke 
für den Tip mit dem Reset-Pin-Fuse, weil das würde erklären warum ich 
nicht mehr ran komme. Auch gut zu wissen das man das wieder hinbekommen 
kann. Ok es bringt mir nichts da ich keinen HV Programmer habe, noch 
eine Parrallel-Schnittstelle.

Der Tipp mit dem schwarzen Stift ist echt gut. Ich komm mir nur blöd vor 
warum ich nicht selber auf sowas gekommen bin. Ach egal nun weiss ich es 
ja hehe :)

von Laser Phew Phew (Gast)


Lesenswert?

Es könnte an anderen Pegeln der neuen ATMega Serien liegen.

Siehe:

Beitrag "usbasp mit neuem atmega8 nicht mehr lauffähig"

von Mike J. (emjey)


Lesenswert?

Laser Phew Phew schrieb:
> Es könnte an anderen Pegeln der neuen ATMega Serien liegen.

Nein.

Der Low-Pegel liegt bei 0.0 bis 0.9V, aber das ist okay.

Vielleicht probierst du es mit einer Spannung von 3.3V und lässt die 
Z-Dioden weg, die sind manch mal für Fehler verantwortlich.

Ein kleiner Trick: Wenn V-USB nicht direkt an der USB Schnittstelle vom 
PC  funktioniert dann stöpsle einen USB-Hub (billiger/alter USB 1.1 oder 
2.0 Hub) dazwischen und es gibt dann normalerweise keine Probleme mehr 
mit irgendwelchen Southbridges.
Du schützt deinen PC dann auch vor Bastelfehler.

von Felix K. (listerstorm)


Lesenswert?

Ich komm ja nicht mal dazu den Usbasp zu testen da er ja schon vorher 
spinnt. Jedenfalls sobald ich ihn auf externen Quarz umstelle. Müsste 
der Fehler dann nicht eher irgendwo in der Ecke liegen?

von Mike J. (emjey)


Lesenswert?

Geh mal zu http://avr8-burn-o-mat.aaabbb.de/
da gibt es auch einen online Programm mit dem du deine Fuse einstellen 
kannst.

Mit welchem Programm / Programmer beschreibst du den USBasp?

von Felix K. (listerstorm)


Lesenswert?

Im Moment mit einem Serial Programmer und Pony Prog. Nicht grad das 
beste aber funktioniert seid einiger Zeit ohne Probleme. Ich wollte aber 
gern mal einen USB Programmer. Mit dem Serial Programmer kann ich alles 
probolemlos machen bis jetzt. Egal ob fuses oder sonst was. Die Fuses 
und die Hardware müssten Problemlos funktionieren, immerhin ist der 
USBasp von fischl.de ziech 1000 mal erfolgreich gebaut worden. Daher 
muss es eigentlich bei meiner Hardware liegen aber ich ahbe alle 
Lötstellen kontrolliert und nachgelötet. Das einzigste was ich am 
original Design verändert habe waren die Vorwiderstände für die Leds 
weil ich andere verwende. Zudem natürlich auf Lochraster angepasst.

von Rudolf (Gast)


Lesenswert?

Felix K. schrieb:
> Leider kann ich den Quarz nicht wechseln habe keinen 12mhz Quarz mehr
> und das große C hat auch keine mehr auf Lager bei mir.
Ein 12MHz Quarz ist zwingend notwendig, um das timing bei USB 
einzuhalten. Solange du keinen solchen hast, ist jeder Versuch zwecklos.

von Mike J. (emjey)


Lesenswert?

Schau mal ob dein 12MHz Quarz überhaupt schwingt.

Wenn du die Spannung zwischen GND und einem XTal-Pin misst sind das dann 
in etwa 5V/2 = 2.5V (ich messe bei mir 2.34V)

Du kannst auch eine Platine von Chritian Ulrich bekommen:
http://www.ullihome.de/wiki/USBAVRLab/ullihome#USB_AVR-Lab

Frag ihn mal per Mail ob er dir eine zuschickt, die ist ultimativ klein 
und auch günstig. (2-3 Euro)

Bild:
http://shop.ullihome.de/shop/showdetail?Id=1039_3.0

Dein Quarz wird schon nicht defekt sein, aber ich habe hier immer ein 
paar Standardbauteile (Widerstände, Transistoren, Kondensatoren ... )

von Felix K. (listerstorm)


Lesenswert?

Der Quarz geht. Wie ich oben schrieb konnte ich ihn in der Zwischenzeit 
testen. Ich bin mitlerweile Pleite und kurz vor einem 
Nervenzusammenbruch. Was ich bräuchte wäre die Plantine vom fischl 
Usbasp. Die von Chritian Ulrich ist mit SMD das übersteigt meine 
Fähigkeiten.

Dennoch danke für den Tipp. Ich bin pleite, genervt und lasse es sein. 
Ich kann keinen Fehler finden. Die Lötstellen sind alle ok, mit internen 
Takt arbeitet der Atmega8 problemlos auf der Platine, alle Widerstäne 
sind korrekt (nachgemessen), der Quarz funktioniert, alles richtig 
gepolt eingelötet und so weiter. Das einzigste was ich nicht überprüfen 
kann sind die 2 Zenerdioden und die Kondensatoren. Die Kondensatoren am 
Quarz hab ich sogar gegen neue getauscht.

Naja ich hab die Schnauze voll und arbeite weiter wie in der Steinzeit 
mit meinem Serial Programmer. Falls Jemand dennoch eine Idee hat wie ich 
für max. 1,50 Euro den bestehenden Usbasp zum laufenbringen kann ist 
herzlich eingeladen mir seine Idee zusagen.

Ansonsten bedanke ich mich bei allen die versucht haben mir zu helfen.

MfG Lister

von Mike J. (emjey)


Lesenswert?

Hast du das mal mit dem 3.3V Festspannungsregler probiert?

Billige Variante:
Du nimmst einen BC547C und einen Poti (10k bis 100k).

BC547C:
 - Kollektor an 5V
 - Emitter an 3.3V Ausgang
 - Basis an die Mittelanzapfung des Potis/Trimmers
 - (optional) zwischen Basis und GND einen kleinen Kondensator

Trimmer/Poti:
 - einen äußeren Pin an +5V und den anderen an GND

Du kannst auch Kupferlackdraht oder dünne Kabel (ich habe noch 40 Polige 
IDE Festplattenkabel) nehmen um die Verbindung zu erstellen.


Erst auf 3.3V einstellen, dann die Z-Dioden weglassen, die Widerstände 
kannst du da lassen.

Du kannst auch noch mal die Widerstände (68 Ohm) in der Schaltung 
nachmessen.

Du kannst auch noch die schwarzen Striche auf die Platine zeichnen, das 
geht auch mit Bleistift.

von Felix K. (listerstorm)


Lesenswert?

Ich hab einen Lm317 als einstellbare Spannungsquelle, aber ich hab jetzt 
mal eine dumme Frage. Wenn ich jetzt mal rein technisch alles vom Board 
entfernen würde bis auf die Stromleitungen sowie die 
Programmierleitungen (miso, mosi ect.) und den Quarz sammt 
Kondensatoren, dann wäre das doch eigentlich eine minimal Schaltung für 
einen AVR oder? Dann sollte sich doch der Avr ohne Probleme mit dem 
Quarz Programmieren lassen bzw. mit dem Quarz laufen oder?

Mit den 3,3 Volt habe ich es nicht versucht und habe nun auch keinen 
Atmega mehr zum testen.

*Nachtrag:
Mir ist gerade aufgefallen das meine Zenerdiode, in der nähe des Quarzes 
die, evtl. zu nah dran sitzt und sowieso eher nach an den UBS Ausgang 
gehört?

von Mike J. (emjey)


Lesenswert?

Richte dich da nach:
http://www.workinprogress.ca/wp-content/uploads/vusb_schematic.jpg

Vielleicht wäre ein fliegender Aufbau für dich besser, also alle 
Bauteile passend auf eine Platine legen, GND der Bauelemente die GND 
haben mit der Platine verbinden und alles andere als 
Freiluftverdrahtung.

Hast du mal einen Oszillator an XTal_1 gehängt?

von Felix K. (listerstorm)


Lesenswert?

Ja das mit dem fliegendem Aufbau wäre ne Idee wenn meine Steckplatine 
größer wäre. Ja ich habe an XTal_1 einen 1Mhz Oszillator gehängt, aber 
leider nichts gebracht.

von Felix K. (listerstorm)


Lesenswert?

Erstmal möchte ich mich bei Allen bedanken die versucht haben mir zu 
helfen.

Das Problem ist gelöst. Und wie? Ich hab einfach einen anderen 
Programmer genommen. Was etwas kurios ist. Mein aller erster 
Serialbrenner hat bis jetzt immer alles einwandfrei gebrannt und auch 
die Fuses zufriedenstellend eingestellt. Nur bei dieser Schaltung des 
Usbasp wohl nicht ganz so einwandfrei. Mit einem etwas aufwendigerem 
Serialprogrammer (den mir Jemand geschenkt hat, vielen vielen Dank an 
der Stelle nochmal) habe ich das Selbe wie vorher schon 100.000 mal mit 
meinem alten Serial gemacht. Das Programm drauf und Fuses gesetzt und 
TADA es funktioniert. Ich muss sagen mir ist es echt egal warum es mit 
einem anderen Programmer ohne Probleme geht und mit dem anderen nicht. 
Ich hab nun einen super Serial Programmer und meinen Usbasp, von daher 
bin ich nun zufrieden :)

MfG Lister

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.