bin mit meinem stm32f103c8 inzwischen relativ weit gekommen. Elm chans fat läuft. Ziel soll - u.a. - ein komfortabler MP3+Radio-Player sein. Jetzt stellt sich die Frage nach dem Speichermedium - sd-Karte oder usb-Stick. USB-Stick wäre besser, weil er eben universal an jedem PC beschrieben und gelesen werden kann. Geht mit sd zwar im Prinzip auch, meine Leseadapter fallen aber immer nach kurzem Gebrauch aus. Also lieber USB. Elm Chan ist für sd Standard, der relativ sicher funktioniert. Gibt es vergleichbares für den Anschluss von USB-Sticks an arms? Kann jemand eine brauchbare Bibliothek für die MP3-Dateiverwaltung empfehlen, die einfach implementiert werden kann?
Da der Controller keinen USB-Host-Controller enthält, kannst Du keinen USB-Stick oder andere USB-Geräte daran betrieben.
danke für die schnelle Antwort. Hat er den wirklich nicht? STM32F102/103 Cortex - M3 1x USB 2.0 FS device controller
STM32F102/103 Cortex - M3 1x USB 2.0 FS device controller Steht dort device oder host?
Dr. Sommer schrieb: > Steht dort.. Dir ist klar, daß hier jemand was zum Zusammenklicken sucht, gelle? W.S.
W.S. schrieb: > Dir ist klar, daß hier jemand was zum Zusammenklicken sucht, gelle? Klar, aber ein USB-Host zum Zusammenklicken existiert wohl kaum für einen Controller, der keine USB-Host-Hardware hat. Der OP könnte auch z.B. auf einen STM32F4 umsteigen welcher einen USB-Host hat. Oder z.B. das STM32F7 Discovery verwenden, welches sowohl einen SD-Slot (mit SD bus => schnell), einen USB-OTG (also auch Host-fähigen) USB-Anschluss, und ein großes Display hat. Ist aber ggf. etwas unhandlich als MP3-Player.
Dr. Sommer schrieb: > Der OP könnte auch z.B. ... Klar, er könnte auch was Anderes machen. Ich sehe hier immer wieder Leute jammernd aufschlagen, die sich große Projekte vorgenommen haben, ohne auch nur im Geringsten die Basics zu verstehen. Wenn man denen dann sagt, sie mögen sich doch bittesehr erstmal einarbeiten, z.B. durch Lesen und Verstehen, dann wird man böse angegiftet. Gilt übrigens auch für dich. Ich hatte damals versucht, aus nem Ramschteil ein billiges und benutzbares Evalboard zu machen, das sogar noch ne nette Peripherie hat. Entsinnst du dich an deine 'Beiträge' dazu? Ja? Nun, seitdem hat ST die Szene erfolgreich mit Boards zugeschüttet und man sollte meinen daß dies zu mehr Können unter den Leuten geführt hätte, aber die Jammerbeiträge hier sind geblieben. Und jetzt sucht jemand an seinem Dreirad nen USB-Host, ohne zu wissen, daß es sowas überhaupt gibt. Klasse! Ich kann mich noch an einen Cheffe-Spruch erinnern, den ich zu Windows98-Zeiten mir anhören mußte: "Was kann denn an diesem USB so schwer sein? Sind doch nur zwei Leitungen!" Genau! W.S.
Was solls, http://www.ebay.de/itm/272501793801 soeben gekauft - damit müsste es dann gehen. Der unterschied Host/Device scheint nicht ganz einfach zu sein. Trotzdem die Frage, was kann man mit dem USB-Device-Controller des f103c8 denn dann anfangen? W.S. schrieb: > Dir ist klar, daß hier jemand was zum Zusammenklicken sucht, gelle? Ingenieurstätigkeit ist im Prinzip Arbeitsvermeidung. Ich klicke zusammen, wenn mir das Ergebnis ausreichend erscheint. Ich programmiere selber, wenn das schneller geht oder wenn ich gewünschte Ergebnisse sonst nicht erreichen kann. Zumindest bei einer Fat-library ist die Lebenszeit zu kurz um die selber zu schreiben.
grundschüler schrieb: > Trotzdem die Frage, was kann man mit dem USB-Device-Controller des > f103c8 denn dann anfangen? Ein USB-Device (Gerät) bauen, das an einen USB-Host (z.B. Deinem PC) angeschlossen werden kann.
grundschüler schrieb: > Elm Chan ist für sd Standard, der relativ sicher funktioniert. Gibt es > vergleichbares für den Anschluss von USB-Sticks an arms? Nein, da es auf den jeweiligen USB Host angepasst sein müsste. Und USBSticks >32 GB haben kein FAT32, was den Anschluss an einen µC behindert. NTFS will man nich auf einem µC implementieren. SD Karten sind um Größenordnungen einfacher zu bedienen...
W.S. schrieb: > Wenn man denen dann sagt, sie mögen sich doch bittesehr erstmal > einarbeiten, z.B. durch Lesen und Verstehen, dann wird man böse > angegiftet. Wer hat dich böse angegiftet? W.S. schrieb: > Ich sehe hier immer wieder Leute jammernd aufschlagen, die sich große > Projekte vorgenommen haben, ohne auch nur im Geringsten die Basics zu > verstehen. Ja schön. Behalte deine üblichen Anfeindungen deswegen doch einfach für dich. W.S. schrieb: > Gilt übrigens auch für dich. Vielleicht hast du ja den Sinn eines Forums nicht verstanden. W.S. schrieb: > Entsinnst du dich an deine 'Beiträge' > dazu? Klar, nur du hast ja anscheinend nix draus gelernt... W.S. schrieb: > aber die Jammerbeiträge hier sind geblieben. Niemand hat hier gejammert. Nur du fängst direkt wieder mit Stänkern an. grundschüler schrieb: > Der unterschied Host/Device scheint nicht ganz einfach zu sein. Trotzdem > die Frage, was kann man mit dem USB-Device-Controller des f103c8 denn > dann anfangen? Deine eigenen USB-Geräte bauen, also z.B. dass der STM32F103 selbst als USB-Stick oder -Maus oder -Tastatur usw. erkannt wird. grundschüler schrieb: > Zumindest bei einer Fat-library ist die Lebenszeit zu kurz um die selber > zu schreiben. Och, ist eigentlich ganz interessant.
Es ist natürlich unverschämt solche Fragen zu stellen, den Unterschied zwischen USB Host und Device bekommt man doch schon in die Wiege gelegt! Und wie man das nackig in Assembler programmiert nachdem man das Datenblatt überflogen hat noch dazu.
Es geht mir im Prinzip um so eine Art USB-Stick-Wechsler. Das ganze funktioniert derzeit ganz gut mit Einzel-Mp3-Modulen. Was fehlt ist eine komfortable Dateiverwaltung sowie die Anzeige von MP3-Informationen. Der Zugriff auf die Module wird nicht möglich sein. Gibt es evtl. fertige Module, die den Zugriff auf USB-Sticks ermöglichen? Ich verwende nur 8GB-Sticks weil ich bei größeren viele Ausfälle hatte. Was noch möglich wäre, statt USB-Sticks gleich eine Festplatte zu nehmen. Da wäre dann wohl ein M3/M4 eher ungeeignet?
Jim M. schrieb: > Und USBSticks >32 GB haben kein FAT32, was den Anschluss an einen µC > behindert. Das sieht, wenn man es pedantisch sieht, bei SD-Karten exakt genauso aus. Bei SD-Karten (genauer: SDXC-Karten) ist in der Spezifikation das Dateisystem exFAT vorgeschrieben, bei USB-Sticks hingegen hindert einen nur das windows-eigene Formatierungsprogramm, mehr als 32 GB mit FAT32 zu nutzen. Da gibt es keine Spezifikation, die irgendetwas anderes vorschreibt. Sofern man sie mit einem anderen Programm (oder unter einem anderen Betriebssystem) formatiert, können USB-Sticks oder auch USB-Festplatten noch jenseits der 2-TB-Größe mit FAT32 verwendet werden.
suche bei ebay nach arduino hilft weiter: http://www.ebay.de/itm/ADK-USB-HUB-USB-Host-Shield-for-Arduino-UNO-MEGA-2560-Support-Google-Android-/172377833566?hash=item282285005e:g:jq8AAOSwmLlYBF8M Es gibt also host-module, die per AVR/ARM angesprochen werden können. Fehlt nur noch die passende software.
U.B. hat auf seiner Seite so ein MP3 Projekt: http://mikrocontroller.bplaced.net/wordpress/?page_id=2272 Das setzt allerdings wie schon vorher geschrieben einen µC mit Host Controller voraus, hier wird ein STM32F4 Disco Board benutzt.
Johannes S. schrieb: > U.B. hat auf seiner Seite so ein MP3 Projekt: > Die MP3 Files müssen alle in einem Ordner auf dem USB-Stick gespeichert sein. Mir gehts um Komfort. Bei fat-sd ist die Auswahl verschiedener Dateiverzeichnisse relativ problemlos möglich. Das müsste bei usb-sticks auch gehen. https://www.circuitsathome.com/mcu/mass-storage-support-for-usb-host-library-2-0-released/ könnte passen. das arduino-shield basiert auf einem MAX3421E.
Sieht interessant aus, aber so nennt man glaube ich auch Frauen die nicht so hübsch sind... Also für Komfort würde ich mir die nächsthöhere Liga mit Cortex-A und sowas wie NanoPi ansehen. Aber wenn du deinen F103 weiterverwenden willst müsste das mit dem MAX gehen.
grundschüler schrieb: > Wenns dafür Software gäbe, wäre der ideal. dafür gibt es Linux Images und z.B. mplayer. 'Schwierig' ist es vielleicht nur wenn es mplayer nicht für diese Plattform fertig kompiliert gibt, ansonsten ist das eine Sache von wenigen Minuten. Jedenfalls nach meinen Erfahrungen mit einem RaspberryPi.
hier mal der Teil zur Auswahl des Directorys mit der Bitte um - wohlmeinende - Anregungen.
Hallo, ich habe diesen thread mal wieder aufgemacht, weil er dem am nächsten kommt, was ich suche... Für einen Kunden soll in ein bestehendes System (STM32F4xx auf FreeRTOS Basis) an das USB OTG Interface ein USB stick (ausschliesslich) angeschlossen werden. Ich habe mal mit den Cube libaries experimentiert. Es sieht so aus, als ob die unter dem typischen ST Beispielcode Problem leiden (also nur ganz genau das Minimum implementieren, mit dem das Beispiel läuft, von Randbedingungen oder Dauerstabilitätstest brauchen wir da gar nicht erst anfangen zu reden). Hat Jemand 1. Hand (positive oder negative) Erfahrungen mit Anderen Libraries oder Middlewaresuiten - ausdrücklich und gerne auch kommerzielle Produkte? Ggf. wende ich mich auch gerne per PM an Leute, die das nicht öffentlich diskutieren möchten. Schönen Dank!
Uwe B. hat erfolgreich Libraries für STM32F4 erstellt, die funktionieren: http://mikrocontroller.bplaced.net/wordpress/?page_id=6
Matthias S. schrieb: > Uwe B. hat erfolgreich Libraries für STM32F4 erstellt, die > funktionieren: > http://mikrocontroller.bplaced.net/wordpress/?page_id=6 Schönen Dank für den Tipp. Ich habe es mir mal angesehen. Allerdings ist der Code ein Super Beispiel dafür, warum man in Anwendungen, die wirklich ins Feld gehen sollen, besser auf professionell entwickelte Produkte zurückgreifen sollte... Nach dem Zusammenstellen der Codebasis und Erstellen und Downloaden eines lauffähigen Images (ging sogar relativ flott, und Probleme dabei sind nicht dem Uwe anzulasten!) passierte... nichts. Kein IRQ, keine Zustandsänderung... die Anwendung läuft zwar (also kein Fault, Breakpoint o.ä.), aber es passiert halt absolut nichts. Gut, so ist das Leben, und es ist ja unser Job, mit so etwas fertig zu werden. Also Breakpoint auf UB_USB_MSC_HOST_Init(), Durchsteppen... und schon da ist ein Riesenproblem. Es gibt keinerlei Fehlerbehandlung; die Init Funktion ruft nacheinander die relevanten Modulinitialisierungen auf... aber es wird kein einziger Test gemacht. Selbst bei Funktionen, die formal einen Statusreturn zurückgeben (das aber meistens noch nicht mal tun, also es wird ein lokale Variable auf ok gesetzt, nicht mehr angerührt und einfach so wieder zurückgegeben) wird dieser nicht abgeprüft. Weder beim Durchsteppen noch (schlimmer) später im Feld gibt es also irgendeine Chance, Fehler herauszufinden, zu melden oder zu recovern, geschweige denn einen Hinweis darauf zu finden, wo es klemmt. Kardinalfehler! Aber gut, wie gesagt, es ist nett vom Uwe, seinen Code zur Verfügung zu stellen, und von Nichts darf man auch Nichts erwarten. Wir evaluieren z.Zt. kommerzielle Produkte, da darf man auch Fragen stellen und kompetente Antworten erwarten und entlohnt wenigstens geleistete Arbeit. Hat vielleicht sonst Jemand Erfahrungen mit (wie gesagt gerne auch kommerziellen) Alternativen? Danke schön!
Adapter schrieb: > und schon da ist ein Riesenproblem. Die Programm-Module von Uwe können sehr hilfreich bei der Entwicklung eigener Software sein, denn sie weisen einem den richtigen Weg, wie man eine bestimmte Aufgabenstellung lösen könnte. Auch ich habe von Uwes bereitgestellten Sources viel lernen können. Ich sehe Uwes Software aber nicht als "ready-to-use". Er selbst schreibt auch irgendwo auf seiner Seite, dass man den Optimizer ausschalten müsse, sonst könnten einige seiner Programm-Module nicht richtig funktionieren. Damit schiebt er bestimmte Probleme mit der Software auf einen augenscheinlich defekten gcc-Optimizer. Das ist aber nicht richtig, denn in Wirklichkeit ist die Software einfach nur lax programmiert. Es hapert nicht nur an einer fehlenden Fehlerbehandlung, die Du angesprochen hast. Uwe vergisst auch oft, Variablen als volatile zu definieren, wenn sie in ISRs benutzt werden. Dann ist es kein Wunder, dass mit eingeschaltetem Optimizer das Programm nicht mehr funktioniert. Als ich ihn mal darauf angesprochen habe, dass hier und dort das Wörtchen volatile fehlen würde, kam die Antwort: "Mag sein" (oder so ähnlich). Meiner Erinnerung nach hat er den von mir angesprochenen Bug im Programm auch nicht danach gefixt, denn: es läuft ja! Uwe scheint nicht sehr daran interessiert zu sein, möglichst fehlerfreie Software bereitzustellen, sondern eher Software, die (mit viel Glück) gerade so läuft. Dass es viel sinnvoller ist, den Optimizer immer einzuschalten, um eigene Fehler im Programm zu finden, scheint er nicht zu verstehen. Mein Fazit: Man kann sich gern die Methoden zur Aufgabenlösung abschauen, dafür ist seine Programmbibliothek sehr wertvoll und dafür bin ich Uwe auch dankbar. Aber ich würde keine einzige Zeile von ihm einfach übernehmen. Hier ist selbermachen angesagt. > Hat vielleicht sonst Jemand Erfahrungen mit (wie gesagt gerne > auch kommerziellen) Alternativen? Ich weiß nicht, was Du überhaupt willst. Software-Module zusammenkopieren, ohne sie verstehen zu wollen oder doch eigene Software zu entwickeln? Wenn letzteres, würde ich da an Eurer Stelle auch alles von A-Z allein entwickeln. Nichts ist frustrierender, als sich mit einem Bug in einer Fremdsoftware herumschlagen zu müssen.
Frank M. schrieb: > Adapter schrieb: >> und schon da ist ein Riesenproblem. > > >> Hat vielleicht sonst Jemand Erfahrungen mit (wie gesagt gerne >> auch kommerziellen) Alternativen? > > Ich weiß nicht, was Du überhaupt willst. Software-Module > zusammenkopieren, ohne sie verstehen zu wollen oder doch eigene Software > zu entwickeln? Wenn letzteres, würde ich da an Eurer Stelle auch alles > von A-Z allein entwickeln. Nichts ist frustrierender, als sich mit einem > Bug in einer Fremdsoftware herumschlagen zu müssen. ...tja, die Frage kannst Du Dir vermutlich selber beantworten: Der KUNDE will etwas funktionierendes, und zwar möglichst schnell und möglichst kostengünstig*. Er braucht dazu eine Gesamtlösung, d.h. sowohl die zugrunde liegende Kommunikationsinfrastruktur als auch die Anwendungssoftware oben drüber. Die zweitere MUSS logischerweise anwendungsspezifisch entwickelt werden; das Erstere muss "nur irgendwie tun," ich könnte also selber die Ärmel aufkrempeln oder auf einer beliebigen Skala von 1-x die Anpassungsarbeit zwischen mir und dem Supplier teilen. ICH als der Umsetzende bin da logischerweise etwas in der Zwickmühle; als in der Technik (auch low level) bewanderter Entwickler will auf der einen Seite möglichst viel darüber verstehen und damit möglichst guten Gewissens zu meiner Lösung stehen können, kann aber auf der Anderen Seite eine Von Null Entwicklung auch nicht rechtfertigen (weil dann noch die Kinderkrankheiten raus müssen, gerade bei USB jedes Device etwas Anders reagiert etc pp). In sofern halte ich die Lösung, die "untere Schicht" von Jemand einzukaufen, der da bereits Erfahrung hat, für den besten Weg. Ich rechne dabei einen gewissen Grad von Eigenarbeit ein - das ist mir auch wichtig und macht Spass, den unterliegenden Protokollstack besser zu durchschauen. Ich mache die Entwicklung von Kommunikationssystemen jetzt schon sehr sehr lange und habe praktisch jede Kombination schon durchgemacht, z.B. TCP/IP stacks selber adaptiert und debuggt, Middleware von Drittherstellern durch die Kinderkrankheiten durchgetract und mitdebuggt oder versucht, ein PD File System zum Laufen zu kriegen. Die Zeiten, wo man jedes einzelne Byte seiner Firmware selber kennt, sind aber leider vorbei. Bei manchen Komponenten muss man sich halt darauf verlassen können, dass sie es tun (ist in Embedded noch nicht so wie bei Android, wo man praktisch nur noch gegen black boxen schafft). Spätestens beim Thema Sicherheit ist z.B. bei Netzwerkstacks die Grenze dessen, was in Eigenarbeit sinnvoll machbar ist, schnell erreicht. Davon abgesehen bricht der Markt für Firmen ständig und brutal weg, die versuchen, mit Spezialwissen im Middlewarebereich Geld zu machen. Ich finde das nicht gut und denke, dass es im Interesse von stabilen und guten Gesamtsystemen und -architekturen sein sollte, Firmen in Lohn und Brot zu halten, die die Falltüren und Stolpersteine schon kennen und umgehen können, in die ich sonst bei einer Eigenentwicklung treten würde. * Bevor hier ideologische Diskussionen losgehen: Ich habe damit kein Problem und versuche diese Anforderung auch so gut wie möglich umzusetzen. Der Kunde ist auch aboslut ok in der Richtung, dass er versteht, dass es P&P eigentlich nicht gibt und ist bereit zu bezahlen, was nötig ist, um ein feldtaugliches System verkaufen zu können. Ist halt ein gegenseitiges Vertrauensverhältnis zwischen uns.
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.