Forum: Mikrocontroller und Digitale Elektronik Atmega8 USB-Bootloader - Fehler beim Anfordern einer Gerätebeschreibung


von Alex C. (comgange)


Angehängte Dateien:

Lesenswert?

Ich versuche im Moment den VUSB-Bootloader auf einen Atmega8 zu ziehen.
Dazu habe ich folgende Schaltung aufgebaut:
http://www.fischl.de/avrusbboot/
wobei an D+ und D- noch zusätzliche Zener-Dioden mit 3,6V hängen.
Dann habe ich die neuste Version hier heruntergeladen und bin der 
Anleitung gefolgt:
https://www.obdev.at/products/vusb/bootloadhid.html

Das kompilieren und Flashen hat Problemlos funktioniert und der Quarz 
arbeitet auch richtig. (getestet mit einer blinkenden LED)

Das problem ist, dass Windows folgenden Fehler meldet, nachdem das 
USB-Kabel eingesteckt wird: Fehlercode 43 - Fehler beim Anfordern einer 
Gerätebeschreibung. Dabei wird dann angezeigt: VID:0x0000 und PID:0x0002

Nach einem Blick auf die Übertragung mit dem Oszilloskop (Anhang), kann 
man eine Aufladekurve bei der D- Leitung erkennen. Dieser Fehler sorgt 
wohl dafür, dass der Mikrocontroller nicht vernünftig antworten kann. 
Allerdings weiß ich nicht, wo dieser Fehler her kommt. Da müssten ja 
prinzipiell Host und Controller gegeneinander arbeiten.

Ich habe die Schaltung einige male komplett überprüft und es ist alles 
Richtig angeschlossen. Die Bootloader-condition scheint auch zu 
funktionieren, da der Mikrocontroller ansonsten gar nicht versucht zu 
antworten. (Trotzdem Fehler 43) Außerdem habe ich es an mehreren PC's 
ausprobiert, wobei das Oszi-Bild mit dem Laptop entstanden ist.

Ich hoffe ihr könnt mir weiter helfen.

P.S.: Die oberen beiden Grafen sind direkt am µ-Controller (D- ist rot) 
und die unteren sind an den USB-Leitungen.

Gruß Alex

von Stefan F. (Gast)


Lesenswert?

Welche Farbe stellt welches Signal dar?
Zeige deinen Schaltplan und zeichne dort die Messpunkte ein.

> Ich hoffe ihr könnt mir weiter helfen.

Ja schon, aber wie soll das ohne Schaltplan gehen?

> Ich habe die Schaltung einige male komplett überprüft und es ist
> alles Richtig angeschlossen.

Dann müsste sie ja funktionieren. Löse dich von ungesicherten 
Vermutungen, die verhindern nur, dass die die Fehlerursache erkennst!

von Alex C. (comgange)


Angehängte Dateien:

Lesenswert?

Ich hatte ja den Link zur Schaltung gepostet.
Naja, ich hab Sie mal aufgezeichnet (nicht schön).

Die Farben der Messungen stehen an den Verbindungen.

von Alex C. (comgange)


Lesenswert?

Achso, PD3 mit Masse verbunden ist die Bootloader-condition

von Jim M. (turboj)


Lesenswert?

Fuses richtig gesetzt? Clockdiv8 würde das Timing versauen.
Edit: Oszi-Bild sagt: Clock stimmt.

Da fehlen noch die 100nF Abblock-Kondensatoren. Die könnten die Funktion 
deutlich verbessern.

Alex C. schrieb:
> Dabei wird dann angezeigt: VID:0x0000 und PID:0x0002

Ich sehe grade: rot ist nicht korrekt verbunden oder der Pin am µC 
kaputt. Man sieht nur den 1k5 Widerstand wenn das Signal auf High gehen 
soll, daduch ist die Rise-Time viel zu hoch.

Interessanterweise schtimmen die Pegel wenn Rot auf 0V gehen soll, das 
würde für einen defekten Transistor im µC sprechen. Hast Du noch einen 
Atmega8 zum Testen irgendwo rumfliegen?

: Bearbeitet durch User
von Alex C. (comgange)


Lesenswert?

Ich hab noch einen Atmega8A, mit dem ich das ausprobieren kann.

von Alex C. (comgange)


Lesenswert?

Tatsächlich funktioniert es mit dem Atmega8a, dann ist wohl wirklich der 
Pin kaputt, damit hätte ich nicht gerechnet, weil der komplett neu war.

Vielen Dank für die hilfe.

Gruß Alex

von Stefan F. (Gast)


Lesenswert?

Rüste trotzdem die beiden Abblock-Kondensatoren nach, sonst lautet dein 
nächster Beitrag bald "AVR spinnt sporadisch".

von Alex C. (comgange)


Lesenswert?

ok, mach ich :D

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.