Hallo Zusammen, ich möchte gern eine kleine Schaltung entwerfen, die meinem Multimeter(HMC8012) vorgauckelt ein USB-Stick zu sein, um die zu speichernden Daten nicht zu speichern, sondern zur Weiterverarbeitung an den PC zu senden. Mein Ansatz wäre Folgender: A.) Bspw. AT90USB so zu konfigurieren, dass er sich gegenüber dem Messgerät wie ein USB Stick (FAT32) verhält(Hauptproblem) B.) Die empfangenen Daten(Messwerte) über eine UART->USB Wandler an der PC schicken und dort einlesen(kein Problem). USB low speed mit 1,5 Mbit/s sollten hier komplett ausreichen, insofern das Messgerät die Messwerte kontinuierlich und nicht blockweise schreibt. Ansonsten müsste man das USB Device noch als low speed device erkennbar machen. Warum möchte ich dass? Das Messgerät ist in der Lage bis zu 230 Messungen/Sekunde auf den Stick zu schreiben(CSV-Datei), aber nicht mit dieser Geschwindigkeit die Daten über UBS als VCP/USBTCM oder LAN LXI rauszugeben. Hier erreiche ich max 20 Messwerte/Sekunde. Siehe Beitrag "Virtual Comport mit 250 Hz unter Win7 auslesen" Hat jemand von Euch schonmal soetwas gemacht, oder Erfahrungen mit dem Simulieren eines USB-Sticks? Danke und Gruß
Das STM32F429 Disco Board hat in der mitgelieferten Demo schon USB Massenspeicher Funktion integriert, um z.B. Bildchen oder Musik hochzuladen. Die Software sowit anzupassen, das ein neuer Schreibvorgang die UART anspricht, dürfte im Rahmen des Möglichen sein. Der einzige Haken ist, das du ein USB-Mikro (OTG) Kabel brauchst, bei dem auf der anderen Seite ein normaler USB-A Stecker ist, oder eben das, was am Multimeter dran ist. Solche Kabel sind lustigerweise nicht unbedingt im Computerladen zu erstehen, obwohl sie bei jedem Telefon mittlerweile beiliegen.
Matthias S. schrieb: > Telefon Könnte man das nicht gleich damit erledigen? Also CSV Datei aufm Handy speichern lassen und per dropbox, rsync usw. zum PC schieben. Vermutlich wird das Gerät blockweise schreiben, die Verzögerung fürs syncen wäre dann auch egal.
Hast du mal versucht den Hersteller des Multimeters anzuschreiben was man da machen kann? Das was du vorhast ist schon enormer Aufwand.
Bla schrieb: > Könnte man das nicht gleich damit erledigen? Also CSV Datei aufm Handy > speichern lassen und per dropbox, rsync usw. zum PC schieben. Vermutlich > wird das Gerät blockweise schreiben, die Verzögerung fürs syncen wäre > dann auch egal. Er will sich das live ansehen, das wird so nichts.
Nobody schrieb: > Hast du mal versucht den Hersteller des Multimeters anzuschreiben was > man da machen kann? > Das was du vorhast ist schon enormer Aufwand. Das hat mit dem Hersteller nichts zu tun. Dafür gibt es keine Standardlösung. Das Messgerät ist ein USB-Host, welcher ein USB Massenspeichergerät erwartet. Für den PC gilt dasselbe. Darum fällt eine direkte Verbindung jeglicher Art flach. Es MUSS eine Emulation stattfinden, welche beiden Seiten ein USB-Device vorgaukelt.
Es gab doch mal usb- verbindubgskabel mit elektronik, die auf beiden seiten einen massenspeicher darstellen.
Flip B. schrieb: > Es gab doch mal usb- verbindubgskabel mit elektronik, die auf beiden > seiten einen massenspeicher darstellen. Ich kenne das nur so, dass die Kabel den PC an einem Ende als Massenspeicher für das andere Ende darstellt. Der PC, der Massespeicher spielt braucht aber Treiber dazu. Könnte hier aber auch funktionieren?
Cyblord -. schrieb: > Das hat mit dem Hersteller nichts zu tun. Dafür gibt es keine > Standardlösung. Schwachsinn. Der TO versucht ein Problem des Herstellers zu umgehen statt es an der Wurzel zu fassen. Lesen: Stefan D. schrieb: > nicht mit dieser Geschwindigkeit die Daten > über UBS als VCP/USBTCM oder LAN LXI rauszugeben. Hier erreiche ich max > 20 Messwerte/Sekunde. Hier kann selbstverständlich der Hersteller Auskunft geben. Oder sagt der Hersteller irgendwo dass nur 20 Messungen/s gehen. Kann ich mir kaum vorstellen. Warum sollte am USB Host mehr rauskommen wie am USB Device?
Stefan D. schrieb: > USB low speed mit 1,5 Mbit/s sollten hier komplett ausreichen, insofern > das Messgerät die Messwerte kontinuierlich und nicht blockweise > schreibt. Nur blöd das USB Massenspeicher als Blockgerät mit 512 Byte Blöcken arbeitet. Wenn das Meßgerät nicht völlig hirntot programmiert ist schreibt es jeden Block nur einmal wenn er "voll" ist. Live View wird also eher nix bei den Datenraten eines Multimeters (einige einzelne Werte/sec).
Jim M. schrieb: > Stefan D. schrieb: >> USB low speed mit 1,5 Mbit/s sollten hier komplett ausreichen, insofern >> das Messgerät die Messwerte kontinuierlich und nicht blockweise >> schreibt. > > Nur blöd das USB Massenspeicher als Blockgerät mit 512 Byte Blöcken > arbeitet. Wenn das Meßgerät nicht völlig hirntot programmiert ist > schreibt es jeden Block nur einmal wenn er "voll" ist. > > Live View wird also eher nix bei den Datenraten eines Multimeters > (einige einzelne Werte/sec). Hallo Jim, 512 Byte Blöcke wäre kein Problem: 1 Messwert umfasst 14 Bytes -> bei ca. 230 Messwerten/Sekunde hätte ich 512 Bytes nach ca. 16 ms voll -> alle 16ms 512 Bytes(36 Messwerte) das würde ich schon als Liveview ansehen. Das STM32F429 Disco Board ist bestimmt eine Möglichkeit, allerdings fehlen mir die Kenntnisse ein STM zu programmieren - da ist mir Atmel lieber. Diese USB-Verbindungskabel habe ich auch gesehen - ich glaube aber nicht, dass das seitens Messgerät so einfach akzeptiert wird. Evtl. könnte ich das USB Signal zwischen Messgerät und Stick per µC grabben, den Overhead entfernen und über TTL/USB Wandler an den PC streamen... Wird allerdings aufwendig, wenn mit Datenraten > 1,5 MBit geschrieben wird, dann reichen die 20 MHz der ATMegas nicht mehr aus. Habe gerade überflogen und musste feststellen, dass das grabben mit 20Mhz schon recht sportlich ist... Werde weiter suchen...
:
Bearbeitet durch User
Eine funktionierende Lösung ware USB SD Adapter mit sd-wifi. Karte, am besten die hackbare. Einfach im forum suchen die die heißt.
Pic T. schrieb: > Eine funktionierende Lösung ware USB SD Adapter mit sd-wifi. Karte, am > besten die hackbare. Einfach im forum suchen die die heißt. Das Problem wird hier vermutlich wieder sein, eine Datei auszulesen, die sich im Schreibzugriff befindet. Das gleiche könnte ich ja auch direkt auf dem Gerät machen. Zudem wird die Latenz immer größer, desto größer die Datei wird... Werde ich heute mal austesten ob das prinzipiell klappt.
So, gestern gemessen, das HMC schreibt mit USB low speed auf den Stick, allerdings wird wohl doch mehr Rechenpower zum grabben notwendig sein. Matthias S. schrieb: > Das STM32F429 Disco Board hat in der mitgelieferten Demo schon USB > Massenspeicher Funktion integriert, um z.B. Bildchen oder Musik > hochzuladen. > Die Software sowit anzupassen, das ein neuer Schreibvorgang die UART > anspricht, dürfte im Rahmen des Möglichen sein. > Der einzige Haken ist, das du ein USB-Mikro (OTG) Kabel brauchst, bei > dem auf der anderen Seite ein normaler USB-A Stecker ist, oder eben das, > was am Multimeter dran ist. > Solche Kabel sind lustigerweise nicht unbedingt im Computerladen zu > erstehen, obwohl sie bei jedem Telefon mittlerweile beiliegen. Matthias ich komme auf Deinen Tip zurück und werde mich mal am STM32 Discoboard versuchen - das ich dann kurzfristig die von Dir beschriebene Modifikation hinbekomme glaube ich zwar nicht, aber es ist ein schöner Einstieg in die 32-Bit Arm Welt. :-) Kannst Du mir eine Entwicklungsumgebung für Anfänger empfehlen? Danke und Gruß
Stefan D. schrieb: > Kannst Du mir eine Entwicklungsumgebung für Anfänger empfehlen? Es gibt viele und ich habe nicht alle ausprobiert. Ich benutze zur Zeit ein älteres Coocox (1.7.7), weil wohl das neuere ein paar Problemchen hat. http://www.coocox.org/ Dazu die Erweiterungen von Uwe B., der auch auf dieses ältere Coocox gebaut hat und dafür die Ergänzungen für den F429 gemacht hat. Uwes Seite ist sowieso ein prima Anlaufpunkt für alles rund um die Disco Boards von STM: http://mikrocontroller.bplaced.net/wordpress/ Für dich sicherlich hilfreich die CoIDE Artikel und generell alles um das F429 Discovery. Die eierlegende Wollmilchsau ist eigentlich Eclipse - aber sicherlich nichts für Anfänger. Mich nerven die dauernden Updates und der riesige Unterbau. War mal von IBM und hauptsächlich zur Java Entwicklung gedacht, kann aber so gut wie jede Toolchain als Plugin - wenn man es kapiert. http://www.eclipse.org/ EM:Blocks verspricht, etwas einfacher zu sein, ich hatte damit Probleme: http://www.emblocks.org/web/ Usw.... STM selber bevorzugt die groosen drei: IAR, Keil und Atollic, die aber mittlerweile alle Geld kosten. Im Gegensatz zu Atmel stellt ST selber keine IDE bereit. Der Bildschirm des F429 könnte übrigens ein nettes Feature für dein Projekt sein. Grundsätzlich kiregt man mit dem F429 Discovery ein gutes Board zu gutem Preis. Ich benutze es mittlerweile als kleines Handheld Oszilloskop - mit einer leicht modifizierten Software von Uwe B. :-)
:
Bearbeitet durch User
Stefan D. schrieb: > Das Problem wird hier vermutlich wieder sein, eine Datei auszulesen, die > sich im Schreibzugriff befindet. Das gleiche könnte ich ja auch direkt > auf dem Gerät machen. das ist kein Problem, man "sieht" ja was geschrieben wird. Das Problem ist das nicht nur die Datei sondern auch die FAT aktualisiert wird. Man muss also anhand der Daten oder der Sektoren entscheiden ob es sich um Nutzdaten handelt oder nicht.
Matthias S. schrieb: > das du ein USB-Mikro (OTG) Kabel brauchst, bei > dem auf der anderen Seite ein normaler USB-A Stecker ist Nicht USB-A Stecker, sondern Buchse, wie bei einer Verlängerung.
Vergangener schrieb: > Nicht USB-A Stecker, sondern Buchse, wie bei einer Verlängerung. Eben nicht. Das Messgerät hat eine USB-A Buchse, um da einen Stick anzustecken. Das F429 besitzt eine USB-OTG Buchse. Du brauchst also ein Stecker-Stecker Kabel. Wie gesagt, liegt das bei Telefonen oft mit bei, ist aber gar nicht so einfach im Computerladen zu bekommen. Könnte aber im Telefon-Schrotterladen erhältlich sein. Zum Rechner könnte dann die CDC auf dem F429 nützlich sein. Mini USB auf USB-A.
:
Bearbeitet durch User
Matthias, danke für die Infos! F429er Board ist bestellt, Kabel ist auch vorhanden, dann kanns ja bald weitergehen... :-) Tutorial um eine LED leuchten zu lassen habe ich auch schon gesehen - wie schwer kann der Rest dann schon sein? ;-) Heute dann noch einen Test die Messdaten, die gerade geschrieben werden auszulesen.
:
Bearbeitet durch User
Stefan D. schrieb: > Das STM32F429 Disco Board ist bestimmt eine Möglichkeit, allerdings > fehlen mir die Kenntnisse ein STM zu programmieren - da ist mir Atmel > lieber. Das geht mit einem AT90USBxxx / ATmega*U* natürlich genauso. Es würde es mich wundern, wenn nicht sogar in diesem Konvolut von ASF Beispielcode dafür da wäre (zumindest zugeschnitten auf deren Evalboards). Ich halte den Weg dennoch für fragwürdig. Ein Dateisystem ist kein Datenstrom, und es ist keineswegs sicher, dass der Host auf das Speichermedium tatsächlich 512-Byte-weise schreibt. Je nachdem, wie viel RAM er zum Puffern zur Verfügung hat, kann er auch in beliebig größeren Blöcken schreiben.
Jörg W. schrieb: > Je nachdem, wie > viel RAM er zum Puffern zur Verfügung hat, kann er auch in beliebig > größeren Blöcken schreiben. größer würde ich nicht mal als Problem sehen. Wenn ein Block mehrfach geschrieben wird wo immer ein paar Messwerte hinzukommen ist das schon etwas kompliziertet.
Falls es doch Atmel sein soll gab es da mal das At90usbkey, das wurde schon mit Mass Storage Demo geliefert und die Usb-Avrs laufen mit Lufa problemlos. Muss man noch sehen wie man die Daten die kommen unterscheidet und weitersendet, da das aber Low-Speed sein muss (High oder Full können die kleinen Avrs nicht) dürfte das zu schaffen sein...
Soso schrieb: > da das aber Low-Speed sein muss (High oder Full können die kleinen Avrs > nicht) Na klar machen die full speed. Lediglich die Software-Bitbanger (VUSB) sind low speed only.
Stimmt, Du hat recht, Full Speed können die mit Hardware USB, ist ja auch nur 12 Mhz. Dann ist da bei den 8-bittern aber Schluss...
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.