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