Forum: Mikrocontroller und Digitale Elektronik USBasp laeuft nicht richtig


von Florian S. (rambo)


Lesenswert?

Hallo,

ich habe den USBasp von Fischl nachgebaut und geflash. Nach dem 
Anschluss an den USB Port kommt nur:

Unter Linux:
usb-uhci.c: interrupt, status 2, frame# 1872
usb.c: USB device not accepting new address=19 (error=-110)
hub.c: USB new device connect on bus1/1, assigned device number 20
usb.c: USB device not accepting new address=20 (error=-110)

Unter Mac (ueber ein Hub):
USBF:   13306.190       [0x2c47a00] The IOUSBFamily is having trouble 
enumerating a USB device that has been plugged in.  It will keep 
retrying.  (Port 3 of hub @ location: 0x1b100000)
USBF:   13317. 37       [0x2c47a00] The IOUSBFamily was not able to 
enumerate a device.

Windows: keine Reaktion

Hat jemand das Problem schonmal gehabt? Oder gibt es ne Moeglichkeit 
direkt die USB Kommunikation anzuzeigen?

Danke fuer Tips!

Flo

NACHTRAG:
Ausgabe von lsusb:
# lsusb
Bus 001 Device 001: ID 0000:0000

von Christian U. (Gast)


Lesenswert?

Fuses richtig gesetzt ?
USB Schaltungsteil richtig aufgebaut ?

von Florian S. (rambo)


Lesenswert?

fuses ausgelesen: ok.
USB Schaltungsteil: sind ja nur 2 Kabel und 2 Widerstaende, also auch 
ok..

Hat jemand Ahnung, wie sich Linux beim Anschliessen verhaelt? D.h. ist 
bei den obigen Fehlermeldungen ueberhaupt davon auszugehen, dass da 
irgendwas passiert ist, oder kann es sein, dass die Fehlermeldung auch 
kommen wuerde, wenn ich nur 2 Widerstaende an die Datenleitungen klemmen 
wuerde?

von Christian U. (z0m3ie)


Lesenswert?

Diese Meldung rührt wahrscheinlich wirklich von dem Widerstand von D 
nach Ub her.
Wenn dein Controller läuft und die Fuses richtig gesetzt sind und in 
deiner USB Beschaltung alles richtig ist wie du sagst, müsste es 
funktionieren.
Du hast WIRKLICH nen 12 Mhz Quarz dran und dein Controller läuft auch 
definitiv nicht mit dem internen RC-Oszillator ?

von Εrnst B. (ernst)


Lesenswert?

Florian Sc wrote:

> Hat jemand Ahnung, wie sich Linux beim Anschliessen verhaelt? D.h. ist
> bei den obigen Fehlermeldungen ueberhaupt davon auszugehen, dass da
> irgendwas passiert ist, oder kann es sein, dass die Fehlermeldung auch
> kommen wuerde, wenn ich nur 2 Widerstaende an die Datenleitungen klemmen
> wuerde?

Linux (Wie jeder andere USB-Stack wohl auch) Erkennt an dem 1.5kOhm 
Pullup widerstand, dass ein neues Device am Bus ist.
Wählt dann eine Device Nummer, in deinem Fall 20, 21, ... und versucht 
dem Device diese Adresse mitzuteilen. Das schlägt bei dir fehl.

Entweder stimmen Fuses/Takt/Firmware nicht, oder dein Hub hat Probleme 
mit den 5V Pegeln, die der USBasp auf den D+/D- Leitungen verwendet.
Mal mit nem anderen HUB ausprobieren, oder zwei 3V6 Z-Dioden von D+ und 
D- nach Masse einlöten.

/Ernst

von Εrnst B. (ernst)


Lesenswert?

Ach ja, Linux-Meldungen bei mir beim USBAsp an/abstöpseln:

Am Hub:
1
usb 2-3.3: new low speed USB device using ehci_hcd and address 51
2
usb 2-3.3: configuration #1 chosen from 1 choice
3
usb 2-3.3: USB disconnect, address 51

Direkt:
1
usb 1-5: new low speed USB device using ohci_hcd and address 16
2
usb 1-5: configuration #1 chosen from 1 choice
3
usb 1-5: USB disconnect, address 16

lsusb:
1
lsusb -v -d 16c0:
2
3
Bus 001 Device 017: ID 16c0:05dc
4
Device Descriptor:
5
  bLength                18
6
  bDescriptorType         1
7
  bcdUSB               1.01
8
  bDeviceClass          255 Vendor Specific Class
9
  bDeviceSubClass         0
10
  bDeviceProtocol         0
11
  bMaxPacketSize0         8
12
  idVendor           0x16c0
13
  idProduct          0x05dc
14
  bcdDevice            1.01
15
  iManufacturer           1 www.fischl.de
16
  iProduct                2 USBasp
17
  iSerial                 0
18
  bNumConfigurations      1
19
  Configuration Descriptor:
20
    bLength                 9
21
    bDescriptorType         2
22
    wTotalLength           18
23
    bNumInterfaces          1
24
    bConfigurationValue     1
25
    iConfiguration          0
26
    bmAttributes         0x80
27
    MaxPower               50mA
28
    Interface Descriptor:
29
      bLength                 9
30
      bDescriptorType         4
31
      bInterfaceNumber        0
32
      bAlternateSetting       0
33
      bNumEndpoints           0
34
      bInterfaceClass         0 (Defined at Interface level)
35
      bInterfaceSubClass      0
36
      bInterfaceProtocol      0
37
      iInterface              0

/Ernst

von Christian U. (z0m3ie)


Lesenswert?

In der USBasp Schaltung sind doch standardmäßig die Z-Dioden drin.

von Florian S. (rambo)


Lesenswert?

Danke fuer die Tips.

Fuse: 100% korrekt.. hab sie ausgelesen

Takt: hab es mit nem LED blinken getestet sicherheitshalber.. :) kommt 
das richtige raus..

Firmware: einfach die mitgelieferte .hex hochgelasen, also auch korrekt.


ABER: ich hab das hier gebaut:
http://svn.berlios.de/viewcvs/hw-projects/trunk/projects/avr-programmer/eagle/

Dort sind keine Dioden drin.. Da ich mich mit Dioden nicht wirklich 
auskenne nun die Frage, ob ich einfach 1N4001 Dioden nehmen kann?

Conrad und Reichelt finden beim Suchbegriff 3V6 nix (oder 600 
Ergebnisse).

Thx.

von Sven B. (mainframeosx)


Lesenswert?

Habe das Teil auch nachgebaut, und es läuft unter MacOS X ohne Probleme. 
Hast du auch die LibUSB Compiliert und Installiert? Die Z-Dioden habe 
ich bei mir nicht drinnen!

von Florian S. (rambo)


Lesenswert?

libusb ist da.. wie gesagt: das Problem ist, dass es nicht antwortet.. 
Ich habe nochmal alles durchgemessen: An den richtigen Pins am 
Controller kommen auch Signale vom USBkabel an..  Kann es u.U. daran 
liegen, dass ich 47Ohm statt 68Ohm verwendet habe? Kann ich mir 
eigendlich nicht vorstellen..

Einzige moeglichkeit ist noch, dass ich tatsaechlich die Dioden 
brauche.. aber anscheidend geht es ja angeblich auch ohne...

Falls noch jemand ne Idee hat, her damit..

von Εrnst B. (ernst)


Lesenswert?

Florian Sc wrote:

> Einzige moeglichkeit ist noch, dass ich tatsaechlich die Dioden
> brauche.. aber anscheidend geht es ja angeblich auch ohne...

Die brauchts nur an manchen USB-Ports (Sony Vaio Notebooks sollen z.B. 
solche haben) Und von HUBs hab ich noch garnicht gehört, dass die da 
probleme machen.

1N400x gehen nicht als dioden, das müssen schon Zehner-Dioden sein. Bei 
Reichelt z.B. "ZF 3.6"

Als Alternative könnten natürlich 6 Normale dioden in Reihe gehen.. 
(6*0.6V) Die aber dann natürlich andersherum gepolt als die Z-Dioden.

/Ernst

von Florian S. (rambo)


Lesenswert?

Hab die Schaltung jetzt komplett neu auf dem Steckbrett aufgebaut und 
der selbe Fehler tritt auf..  :(

Aenderungen am Original (meiner Meinung unwichtig):
- statt 68Ohm 47Ohm verwendet
- statt 4,7microFarad 10microFarad + 0,1 microFarad an der 
Stromversorgung
- ISP weg gelassen (Controller auf DevBoard beschrieben)

Controller beschrieben mit Uisp. Ausgabe der Fusebits beim lesen:
# uisp -dlpt=0x378 -dprog=dapa  -v=0 -dpart=atmega8 --rd_fuses

Fuse Low Byte      = 0xef
Fuse High Byte     = 0xc9
Fuse Extended Byte = 0xff
Calibration Byte   = 0xb0  --  Read Only
Lock Bits          = 0xff
    BLB12 -> 1
    BLB11 -> 1
    BLB02 -> 1
    BLB01 -> 1
      LB2 -> 1
      LB1 -> 1


Irgendwelche Vorschlaege?

von Florian S. (rambo)


Lesenswert?

Neuer Status: mit einem mal geht die Version auf dem Steckbrett.. 
jedenfalls wird USBasp im Systemprofiler unter Mac bei den USB Geraeten 
angezeigt.. Ich habe nix geaendert...

Wenn ich was raus krieg sag ich bescheid..

von Christian U. (z0m3ie)


Lesenswert?

Die Z-Dioden sind wichtig !Mein ISP (Der USB Part ist baugleich mit dem 
USBasp) läuft an ca 50% der Rechner nicht wenn keine Z-Dioden drin sind. 
Die Hostcontroller reagiern da recht empfindlich...

von Dominik M. (dominik2000)


Lesenswert?

Hallo, erstmal,

Hab auch ein Problem mit dem USBASP von www.fischl.de Ich habe den 
Programmierer aufgebaut laut dem holländischen Link, alles kein Problem, 
Platine ätzen lassen. Vom Aufbau her hats keine Probleme gegeben.

Dann Anschluss an USB rote LED leuchtet, Windows erkennt das Gerät nur 
als "unbekanntes Gerät" -> Internetrecherche bei google Zenerdioden 
fehlen. Nächsten Tag hab ich die Z-Dioden besorgt eingebaut -> Rote LED 
leuchtet immer noch, aber das Gerät wird schonmal als USBASP erkannt von 
Windows.

Ich kann mit AVRDude nicht auf den Programmer zugreifen.

In der EIngabeaufforderung:
found 7 busses
no USBASP device detected

Ich glaube ja, dass die grüne LED leuchten sollte, wenn wirklich alles 
funktioniert. Die Fusebits sind meiner Meinung nach alle richtig 
gesetzt. Das Problem ist ich kann sie nicht mit Ponyprog o.ä. proggen, 
weil ich eine Parallelportkarte habe Ponyprog die Adresse meines LPT 
Anschlusses nicht kennt (BC00). Ich kann nur mit BASCOM proggen und da 
weiß ich nicht genau wie die Fuses heißen. Ich hab aber den Hex Code der 
Fuses überprüft und die sind, glaube ich, richtig.

Was kann dort noch falsch sein?

mfg Dominik

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.