Forum: Mikrocontroller und Digitale Elektronik STM32F103C8T6


von CS (Gast)


Lesenswert?

Hallo mikrocontroller.net-Gemeinde,

ich bin neu im Bereich STM32-Programmierung und versuche seit Tagen die 
USB Hardware eines STM32F103C8T6 zum Laufen zu bringen.

Hierzu bediente ich mich unter anderem des Compilers mikroC PRO for ARM 
der bereits integrierte Libraries hat. Leider funktioniert die Library 
für USB nicht auf dem STM32F103C8T6 so daß ich wieder am Anfang stehe. 
Hilfe im entsprechenden Forum ist auch nicht zu bekommen!? Mittlerweile 
gibt es einen Leidensgenossen der dieselben Erfahrungen gemacht hat wie 
ich. (Die integrierte Library funktioniert nicht mit dieser MCU nicht)

Sicherlich ist der Einsatz eines FT232RL eine Möglichkeit, es stellt 
sich mir dabei aber die Frage:"Wozu einen solchen Chip einsetzen, wenn 
die MCU eigentlich alles für den Einsatz von USB mitbringt?" Ausserdem 
ist die Kommunikation direkt über USB deutlich schneller als über einen 
FT232RL.

Im INternet habe ich ebenso wenig Informationen zu diesem Problem 
gefunden wie hier im Forum :(

Ich wäre für jeden Tip, Link und über jede sonstige Hilfe sehr dankbar.

Gruß

Christian

P.S.: Die Hardware auf dem diese MCU eingesetzt ist ist ein STM-Board 
einer Hochschule. Die CPU wird extern mit 16MHz getaktet. Die Leitungen 
USB-D_M (PA11), USB-D_P (PA12) sowie USB_VBUS (PA9) sind entsprechend 
mit dem USB-Port des Computers verbunden. Eigentlich sollte der Computer 
(HID-Terminal) irgendetwas zeigen!?

von Dirk B. (garag)


Lesenswert?

Hallo,

ich kenne jetzt nicht mikroC compiler, aber von ST git es doch die USB 
library. Ist es nicht möglich die Lib dort mit einzubinden ?

Alternative wäre sich intensiver mit USB zu beschäftigen und z.B. einen 
HID Treiber für das Board selber zu schreiben. Für den STM32L152 habe 
ich eine eigene Implementierung für ein "Virtual Com Port" geschrieben 
und dabei eine Menge über USB gelernt. Als Entwicklungsumgebung verwende 
ich allerdings Eclipse mit gcc und einen Jlink EDU.

Gruß
Dirk

von Erwin R. (er-tronik)


Lesenswert?

Ein großes Problem dieser ganzen Libraries, die für die verschiedensten 
Microcontroller existieren ist genau das, was Du beschrieben hast. Wenns 
funktioniert ist es Ok, wenn nicht steht man dumm da, weil man einfach 
nicht weiss, was in den Libs alles so passiert. Aus diesem Grund umgehe 
ich weitgehend alle Libraries und schreibe mir die Routinen selber. 
Damit kann ich schnell Änderungen am Code machen kann und die Libraries 
werden den Code nicht unnötig aufblähen.

Einfache USB-Controller sind übrigends die neueren LPC-Cortexe von NXP 
(z.B. LPC1345/46/47, LPC11U23/24). Sie haben USB-Routinen für HID, CDC, 
MSC und DFU im Rom, die einfach aufzurufen sind. Damit gelingen 
USB-Applikationen eigentlich immer und benötigen nur einen sehr geringen 
Programmieraufwand.

Erwin

von Christian S. (christian_s93)


Lesenswert?

Hallo,

besten Dank für die fixen Antworten.

Es ist tatsächlich wie Erwin Reuss geschrieben hat. Wenn die Libraries 
funktionieren ist alles in Ordnung, aber wenn nicht steht man im Wald. 
Leider habe ich noch keine Quelle gefunden, aus der einigermaßen 
verständlich hervor geht wie USB (HID)kommuniziert. Zum anderen bin ich 
ein wenig verwirrt über die entsprechenden Register in der MCU. Einige 
beziehen sich auf USB und ganz viele andere beziehen sich auf USB-OTG!?

Für mein Verständnis ist USB-OTG nicht das selbe wie USB HID!?

Vielleicht kann mir jemand einen brauchbaren Link schicken, an dem ich 
mich ein wenig über die Kommunikation USB-µC einlesen kann!?

Besten Dank im Voraus

Gruß

Christian

von Chose (Gast)


Lesenswert?

USB auf den Controllern ist noch ein Wischi Waschi. Sogar die Controller 
Hersteller packen auf ihre Board USB/Uart Chips, weil ihre Controller 
das einfach nicht zuverlässig können (nur durch Zufall kommt mir vor). 
Dazu kommt das Treiber-Leiden am PC. Ich hab immer wieder was zum Laufen 
bekommen mit USB. Warum weiß ich nicht. Ich hab aber keine Lust, mich in 
den USB Wahnsinn einzulesen. Entweder bauen die Hersteller richtige 
Hardware-Uart bridges so wie ZB FT232 ein oder sie sollen sich 
schleunigst was Gescheites einfallen lassen.(Libs, Hardware ect). NXP 
ist hier sicher schon ein gutes Stück weiter..

von Christian S. (christian_s93)


Lesenswert?

@Chose: Höre ich da heraus, das ich auf Geschwindigkeit verzichten 
sollte obwohl die Hardware es eigentlich leisten können müsste?

Der Geschwindigkeitsverlust von USB zu UART ist ja nicht zu 
vernachlässigen!?

Wie sieht es mit der Bridge von Microchip MCP 2200 aus? Hat da schon 
jemand Erfahrung gesammelt?

Gruß

Christian

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.