Forum: Mikrocontroller und Digitale Elektronik USBprog4: Diverse Probleme und Fragen


von Gelöscht (kami89)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

Ich habe mir einen USBprog4 gekauft und versuche gerade diesen in 
Betrieb zu nehmen. Folgende Komponenten werden eingesetzt:
- Linux Mint 17 x64
- OpenOCD 0.7.0 (aus den Mint Repos)
- USBprog4
- STM32F103

Nach über 7 Stunden Frust musste ich leider feststellen, dass es an 
allen Ecken und Kanten klemmt. Vor allem der USBprog Programmer will 
einfach nicht so wie ich mir das vorstelle:

1)
Der im USBprog eingebaute CP2102 funktioniert absolut überhaupt nicht, 
der syslog bringt nur alle paar Sekunden die Meldung
1
kernel: [ 8819.819660] hub 2-1:1.0: connect-debounce failed, port 6 disabled
 Aber lassen wir das mal, brauche im Moment nur den JTAG Debugger...

2)
Wenn ich den DIP-Switch für den Pegelwandler auf 3,3V stelle, macht der 
USBprog keinen Wank mehr. Das USB Device meldet sich beim PC ab ("USB 
disconnect" im syslog). Erneutes Einstecken bringt nichts, kein Eintrag 
im syslog, auch "lsusb" zeigt das Gerät nicht an. Steht der DIP-Switch 
auf 5V, funktioniert die USB Kommunikation einwandfrei. Ist mein USBprog 
defekt oder übersehe ich was? Den Lötjumper für die Versorgung der 
Zielschaltung habe ich testweise mal gebrückt, macht aber auch keinen 
Unterschied.

3)
Ich verwende folgenden Befehl um mit dem STM32 zu verbinden:
1
openocd -f interface/usbprog.cfg -f target/stm32f1x.cfg
 Wenn ich dabei mit dem Oszilloskop die Signale an den JTAG Pins 
anschaue, sehe ich dass sich auf TCK und TMS "was tut", die anderen 
Signale machen keinen Wank. Ich kenne mich mit JTAG noch nicht wirklich 
aus, aber müsste SRST nicht auch auf Low wechseln damit überhaupt eine 
Kommunikation stattfinden kann?

Übrigens, als Firmware habe ich sowohl die "originale, alte, langsame" 
(openocd.bin), wie auch die "neuere, schnelle" (usbprog-jtag-0.1.bin) 
Version ausprobiert. Irgendwie erscheint mir das ganze Projekt 
allerdings etwas ausgestorben, das letzte Update für die Firmware ist 
von April 2010 und der automatische Download aus dem USBProg-GUI heraus 
funktioniert auch nicht (error 404).

Meine konkreten Fragen wären:
- Was mache ich falsch dass der USBprog mit 3,3V nicht funktioniert? 
Oder ist er defekt?
- Warum bewegt sich SRST nicht bei einem Verbindungsaufbau?
- Welche Firmware soll ich verwenden, und funktioniert die mit OpenOCD 
0.7.0? Die Geschwindigkeit ist mir vorerst mal egal...

Vielen Dank und Grüsse
Urban

von Jim M. (turboj)


Lesenswert?

> Der im USBprog eingebaute CP2102 funktioniert absolut überhaupt nicht,
> der syslog bringt nur alle paar Sekunden die Meldung
> kernel: [ 8819.819660] hub 2-1:1.0: connect-debounce failed, port 6
> disabled

Klingt nach schlecht verlötet oder schlimmerem. Auch die anderen 
Probleme riechen nach Hardware.

Urban B. schrieb:
> müsste SRST nicht auch auf Low wechseln damit überhaupt eine
> Kommunikation stattfinden kann?

Nein. Das ist JTAG und nicht Atmel ISP. Bei Cortex M kann man das im 
laufenden Betrieb benutzen.

Urban B. schrieb:
> - OpenOCD 0.7.0 (aus den Mint Repos)
> - USBprog4
> - STM32F103

IMO eine schlechte Kombination, von den USBProgs liesst man hier öfter 
Problemberichte. Ein FT2232 basierter Adapter wäre die bessere 
Alternative - außerdem ein Update auf die OpenOCD 0.8.0 Version.

Einen STM32 würde ich nicht an 5 Volt JTAG hängen, das könnte zuviel 
sein. Man möchte für diese µCs einen vom Target versorgten Pegelwandler 
haben, der auch bis 2.0 Volt noch tut. Das bietet der USBProg offenbar 
nicht.

von Gelöscht (kami89)


Lesenswert?

Jim Meba schrieb:
> Klingt nach schlecht verlötet oder schlimmerem. Auch die anderen
> Probleme riechen nach Hardware.

Das wäre aber doch sehr merkwürdig...Der USBprog ist nagelneu und ich 
musste nur die Stiftleisten einlöten, der Rest wurde maschinell verlötet 
nehme ich an.

Jim Meba schrieb:
> Nein. Das ist JTAG und nicht Atmel ISP. Bei Cortex M kann man das im
> laufenden Betrieb benutzen.

Das heisst man muss den Reset gar nicht verbinden? Nur GND, TCK, TMS, 
TDI und TDO?

Jim Meba schrieb:
> IMO eine schlechte Kombination, von den USBProgs liesst man hier öfter
> Problemberichte. Ein FT2232 basierter Adapter wäre die bessere
> Alternative - außerdem ein Update auf die OpenOCD 0.8.0 Version.

OK ich werden dann mal versuchen OpenOCD 0.8.0 zu kompillieren, mal 
schauen was das bringt.

Jim Meba schrieb:
> Einen STM32 würde ich nicht an 5 Volt JTAG hängen, das könnte zuviel
> sein. Man möchte für diese µCs einen vom Target versorgten Pegelwandler
> haben, der auch bis 2.0 Volt noch tut. Das bietet der USBProg offenbar
> nicht.

Ja das gefällt mir eben auch nicht so. Bis auf den Reset sollen aber 
laut Datenblatt alle JTAG Pins 5V-Tolerant zu sein, weshalb ich meine 
Versuche nun halt mit 5V durchgeführt habe (Zielschaltung hat 3,3V).

Übrigens weiss ich leider auch nicht ob meine Zielschaltung in Ordnung 
ist, diese habe ich selbst entworfen. Um fehlerhafte Lötstellen mehr 
oder weniger ausschliessen zu können, habe ich extra noch eine zweite 
Platine gelötet. Aber auch diese will nicht mit OpenOCD kommunizieren...

Ich könnte vielleicht höchstens mal versuchen ein STM32F1 Discovery mit 
USBprog zu verbinden, ich weiss allerdings nicht ob dann nicht der 
On-Board Debugger die Kommunikation stört...

von Gelöscht (kami89)


Lesenswert?

Naja einen Fehler hab ich schonmal gefunden: Nach einem Tausch von TDI 
und TDO kommuniziert OpenOCD 0.8.0 nun mit meinem STM32. Das ist soweit 
schonmal sehr gut.

Doch interessanterweise funktioniert die Verbindung nur bei jedem 
zweiten Mal. Gebe ich den oben genannten OpenOCD Befehl in der Konsole 
ein, sehe ich auf dem Oszilloskop nur eine ganz kurze Sequenz auf den 
JTAG Signalen und der Verbindungsaufbau scheitert. Gebe ich den exakt 
gleichen Befehl nochmal ein, ist die Sequenz auf dem Oszilloskop 
wesentlich länger und OpenOCD kann (nach einigen Warnungen und Errors) 
erfolgreich verbinden.

Allerdings funktioniert das alles nach wie vor nur in der 5V Einstellung 
und nur mit der alten, langsamen Firmware. Unter Windows 7 musste ich 
nach über einer Stunde die Installation des Treibers erfolglos aufgeben. 
Und die JTAG Pinbelegungen sind auch eine Katastrophe, wenn ich das 
richtig sehe funktioniert die 20-polige Stiftleiste weder mit der alten, 
noch mit der neuen Firmware?! Das kanns doch nicht sein...

Dieser USBprog macht mich irgendwie so gar nicht glücklich. Ich frage 
mich ob ich wohl besser gleich einen anderen Programmer kaufen soll, 
z.B. ARM-USB-TINY-H (taugt der was?).

mfg

von Jim M. (turboj)


Lesenswert?

> Unter Windows 7 musste ich
> nach über einer Stunde die Installation des Treibers erfolglos aufgeben.

Einfach Zadig (http://zadig.akeo.ie/) herunterladen und damit einen 
Treiber installieren. Man kann zwischen WinuSB, LibUSB-win32 und LibusbK 
entscheiden, es müsste mit der default WinUSB Einstellung tun IIRC.

von Gelöscht (kami89)


Lesenswert?

Jim Meba schrieb:
>> Unter Windows 7 musste ich
>> nach über einer Stunde die Installation des Treibers erfolglos aufgeben.
>
> Einfach Zadig (http://zadig.akeo.ie/) herunterladen und damit einen
> Treiber installieren. Man kann zwischen WinuSB, LibUSB-win32 und LibusbK
> entscheiden, es müsste mit der default WinUSB Einstellung tun IIRC.

Habe ich versucht, bei der Installation des Treibers kam aber immer eine 
Fehlermeldung "Installation fehlgeschlagen" oder so ähnlich. Irgendwann 
habe ich es dann aufgegeben, ob das Ding mit Windows läuft ist mir 
schlussendlich auch egal weil ich nur mit Linux arbeite. Da es aber 
unter Linux nicht wollte, versuchte ich es mal mit Windows...

Insgesamt lässt aber auch die Dokumentation von USBprog zu wünschen 
übrig, was mich eben auch ein bisschen sauer macht. z.B. dass Zadig 
benötigt wird ist in der offiziellen Doku anscheinend nirgends erwähnt. 
Die Pinbelegungen muss man sich mühsam zusammenkratzen, wobei sogar 
Widersprüche auftauchen (irgendwo steht die beiden OpenOCD Firmwares 
haben die selbe Pinbelegung, woanders steht dass diese unterschiedlich 
sei).

Ich habe jetzt schon zwei Tage mit dem Ding gekämpft und es funktioniert 
immernoch nicht zufriedenstellend, so langsam sind meine Nerven wirklich 
am Ende. Ich glaube ich kaufe mir ein STM32F4 Discovery und nutze den 
darauf enthaltenen ST-Link v2 (naja, vorausgesetzt dieser funktioniert 
besser als USBprog...)

von Gelöscht (kami89)


Lesenswert?

So, das Problem ist gelöst (bzw. umgangen). Habe ein STM32F4 Discovery 
gekauft und dessen ST-Link v2 über SWD mit meiner Platine verbunden. 
Kann nun problemlos mit OpenOCD 0.7.0 aus den Mint Repos flashen und 
debuggen.

Schade, hätte gerne das USBprog Projekt unterstützt...

Vielen Dank übrigens noch für deine Hilfe, Jim Meba.

mfg

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.