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!?
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
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
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
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..
@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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.