Forum: Mikrocontroller und Digitale Elektronik USB-Connect-Probleme mit ICD2-Clone unter Linux


von Peter (Gast)


Lesenswert?

Hallo,

nachdem ich den ICD2-Clone mit der Platine von Andreas Bufler ( 
Beitrag "PIC ICD 2 selbstgebaut" ) erfolgreich aufgebaut habe 
(auf diesem Wege nochmals vielen Dank!), stehe ich nun vor einigen 
kleinen Problemen:

- Unter Windows XP mit einer aktuellen MPLAB-Version und !USB 1! laufen 
alle Selbsttests erfolgreich durch, Programmierung hat ebenfalls 
funktioniert

- Unter Linux 2.6 (openSuse 10.3) auf einem älteren Thinkpad mit 
ebenfalls USB 1 wird der Clone sauber erkannt und ich kann mit Piklab 
alle Selbsttests erfolgreich durchführen. Leider momentan nur als root, 
da beim Connect wohl ein "USB-Reset" durchgeführt wird, und ich noch 
nicht herausgefunden habe, wie ein normaler Benutzer das tun darf

- Ebenfalls unter Linux 2.6 (openSuse 10.3) auf meinem Desktop-PC mit 
!USB2.0! gehen die Probleme los. Schließe ich den ICD über das 
USB-Frontpanel an, so wird gar nichts erkannt, sondern im Systemlog 
erscheint sporadisch die eine Meldung "Bad Cable - Disabling Port".
Schließe ich den ICD über eine (sicher besser geschirmte) 
Mainboard-USB-Buchse bzw. eine extra eingebaute PCI-USB-Karte an, so 
beginnt der folgende Prozess:
1
...
2
usb 4-1: new full speed USB device using uhci_hcd and address 9
3
usb 4-1: new full speed USB device using uhci_hcd and address 12
4
usb 4-1: new device found, idVendor=04d8, idProduct=8001
5
usb 4-1: new device strings: Mfr=0, Product=0, SerialNumber=0
6
usb 4-1: configuration #1 chosen from 1 choice
7
usb 4-1: USB disconnect, address 12
8
usb 4-1: new full speed USB device using uhci_hcd and address 13
9
usb 4-1: device descriptor read/64, error -71
10
usb 4-1: new device found, idVendor=04d8, idProduct=8001
11
usb 4-1: new device strings: Mfr=0, Product=0, SerialNumber=0
12
usb 4-1: configuration #1 chosen from 1 choice
13
usb 4-1: USB disconnect, address 13
14
usb 4-1: new full speed USB device using uhci_hcd and address 14
15
usb 4-1: new device found, idVendor=04d8, idProduct=8001
16
usb 4-1: new device strings: Mfr=0, Product=0, SerialNumber=0
17
usb 4-1: configuration #1 chosen from 1 choice
18
usb 4-1: USB disconnect, address 14
19
...

Manchmal erkennt er das ICD nach vielen solcher Meldungen zwar noch, 
jedoch beginnt beim durch den Connect ausgelösten "USB-Reset" das 
gleiche Spiel von vorne, so dass Piklab das Gerät nicht mehr findet.
Auch wenn ich den USB2-Treiber deaktiviere, ändert sich hier nichts.

Zusammenfassung: Der ICD funktioniert an einer USB1-Schnittstelle sowohl 
mit Linux als auch Windows. An einer USB2.0-Schnittstelle wird die 
USB-Konfiguration nur selten erkannt, auch bei deaktiviertem 
USB2-Treiber.

Meine Fragen also:
- Bei keinen anderen USB-Geräten ist mir bisher so etwas aufgefallen. 
Mehrere Kabel habe ich schon getestet. Ist hier möglicherweise irgendwo 
ein Fehler im physikalischen USB-Aufbau? Meines Wissens nach ist eine 
USB2-Schnittstelle unabhängig vom Treiber elektrisch etwas anders 
aufgebaut. Fällt hier jemandem ein Zusammenhang auf?

- Trotz einwandfreier Funktion unter USB1 hat bei mir noch nie die als 
"USB" gekennzeichnete LED aufgeleuchtet. Wann sollte diese denn genau 
leuchten? Habe allerdings auch gelesen, dass die LED es in einer 
früheren Firmware an einem anderen Pin hing, vielleicht liegt es auch da 
dran.

- Wozu dient eigentlich der Jumper "Debug/Programm / Programm"? Hat 
dieser etwas mit der Anmeldung in der IDE zu tun, oder dient er 
lediglich dazu die ISP-Leitungen beim Debuggen anders zu treiben?

Leider etwas lang geworden, ich bitte um Verständnis. Wenn jemand etwas 
zu den Fragen beitragen könnte, würde ich mich freuen. Und wenn noch 
etwas unklar ist, bitte nachfragen.

Peter

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.