www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik USB Enumeration schlägt fehl bei STM32F103


Autor: Christoph Budelmann (Firma: Budelmann Elektronik GmbH) (christophbudelmann) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich versuche gerade die STM32-USB-Firmware-Bibliothek auf einem 
Olimex-Board (P103) zum Laufen zu bringen, doch die Enumeration schlägt 
fehl. Ich arbeite mit Codesourcery Lite und habe ein Beispiel-Projekt 
von Martin Thomas auf die neueste Standard-Firmware-Bibliothek 
angepasst. Aus dieser Bibliothek bekomme ich auch alle Beispiele 
problemlos zum Laufen. Die USB-Bibliothek wird richtig kompiliert und 
läuft ohne Fehlermeldungen durch, aber nach dem Flashen und Anstecken 
des USB-Kabels meldet Windows nur ein unbekanntes Gerät.

Die USB-Bibliothek selber habe ich (fast) nicht verändert, ich habe nur 
den Pin für die Aktivierung des 1K5-Pull-Ups an D+ entsprechend geändert 
für das Olimex-Board. Der Rest sollte unabhängig von der Hardware bzw. 
identisch mit den anderen Entwicklungsboards sein (z.B. 8MHz Quarz), für 
die die Beispiele eigentlich geschrieben worden sind.

Im Anhang findet sich der komplette Trace nach Einstecken des USB-Kabels 
des Olimex-Boards. Das Board reagiert scheinbar überhaupt nicht. 
Dementsprechend sind die Vendor und Product ID danach auch 0 und es 
können keine Treiber geladen werden.

Das Problem klingt genau nachdem, was bereits im Forum von STM 
durchgekaut wurde:

http://www.stm32circle.com/forum/viewtopic.php?id=239

Einige andere scheinen ebenfalls noch diese Probleme zu haben, nur 
nirgendwo findet man eine Antwort.

Vielleicht weiß ja hier noch jemand Rat, ich danke schonmal für jede 
konstruktive Antwort.

Autor: Christoph Budelmann (Firma: Budelmann Elektronik GmbH) (christophbudelmann) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Im ersten Posting habe ich den falschen Screenshot erwischt, das war der 
Trace des Hubs. Im angehängten richtigen Screenshot sieht man, dass 
wirklich nur immer 0x0000 vom STM32F103 zurückkommen. Da das Programm 
läuft, kann eigentlich wirklich nur die Interrupt-Routine nicht 
aufgerufen werden...

Autor: Ralf Handrich (Firma: rahand.eu) (ralfh)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau erst mal mit einer LED, ob es wirklich der Interrupt (welcher 
überhaupt?) ist.

Autor: Christoph Budelmann (Firma: Budelmann Elektronik GmbH) (christophbudelmann) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ralf H. schrieb:
> Schau erst mal mit einer LED, ob es wirklich der Interrupt (welcher
> überhaupt?) ist.

Der USB-Low-Priority-Interrupt. Das mit der LED hatte ich mangels JTAG 
genauso getestet, um festzustellen, ob der Interrupt aufgerufen wird. 
Dies war aber nicht der Fall.

Inzwischen habe ich aber den Fehler, ich hatte den falschen 
Start-Up-Code. Das Beispiel von Martin Thomas benutzt die Version 1 der 
Bibliothek, ich habe aber die aktuelle dritte Version eingebunden und 
übersehen, dass sich der Start-Up-Code verändert hat.

Jetzt funktioniert alles.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.