Hallo,
Ich muss gleich sagen ich durchsuche zwar seit Stunden das Forum und das
Netz finde aber nicht Ganz was ich suche bzw. da ich mich in dem Bereich
nicht wirklich auskenne lese ich vielleicht auch einfach nur drüber.
Also ich möchte im Prinzip einen USB-Stick bauen. Ich möchte das Gerät
an den PC anschließen und dann als ganz normalen Stick verwenden können.
Wenn das Gerät jedoch nicht an den PC angeschlossen ist, schreibt der
µController Messdaten in den Speicher.
Was ich bis jetzt herausgefunden habe ist, das ich so etwas wie den
vinculum als host controler brauche. Dann brauche ich natürlich auch
einen Flashspeicher denke ich?
Könnte mir irgend jemand vielleicht ein paar Denkanstöße in die richtige
Richtung geben, welche Bauteile ich eventuell brauchen werde etc? Ich
bräuchte nur mal grob unter was ich die Ganzen Teile finden könnte,
Schaltplan etc. ist dann eh kein Problem mehr.
lg Martin
Nein, Du brauchst keinen Host-Controller, wenn du dein USB-Gerät an
einen ebensolchen anschliessen willst. Einen Host brauchst du nur, wenn
du aktiv Sticks beschreiben oder Drucker ansteuern willst. Du brauchst
nur einen USB-Slave. Solche Controller gibt es viele. Ich persönlich
kenne PICs oder auch Silabs-Controller (z.B. C8051F320). Auch von
Freescale, Atmel, Cypress und anderen gibt es Controller mit eingebautem
USB-Interface.
Hostfähige Controller sind seltener. Der Vinculum ist einer aber z.B.
auch von Cyan Technology gibt es recht leistungsfähige Exemplare.
Gruss
rayelec
Wenn du es kompliziert willst, brauchst du einen Host USB Stack.
Sonst, nimm eine (micro)SD Speicherkarte (1Gb kostet <2€), einen low
cost (micro)SD (2-3 Euro) Reader für den PC und den microcontroller,
welcher
zusätzlich noch mittels eines Pins die (5V des) USB-Steckers überwacht.
Den Mikrocontroller verbindest du mit dem Card-Reader mittels Lötung,
und so weiß der Mikrocontroller, ob ein USB angeschlossen ist, und kann
den SD steuern. Ev. noch einen Override beim USB-ID, um ev
SD-Transaktionen zu beenden, bevor ein Anmelden an den USB-Bus gestattet
wird.
> Was ich bis jetzt herausgefunden habe ist, das ich so etwas wie den> vinculum als host controler brauche.
Nein, den brauchst Du nur dann, wenn Du einen USB-Stick ansteuern
möchtest.
Dein Projekt aber ist lösbar bzw. bereits gelöst worden. Du schließt
Flash-Speicher (der Einfachheit halber in Form einer SD-Karte) an einen
µC mit USB-Device-Interface an und implementierst auf diesem ein "USB
Mass Storage Device". So etwas ist als Beispielcode für verschiedene µCs
mit USB-Device-Interface wie beispielsweise den kleinen Atmel-ARMen
verfügbar.
Dazu kommt noch die Ansteuerung des Flash-Speichers, wenn kein USB-Host
verbunden ist. Dazu solltest Du Dir eine der ebenfalls verfügbaren
FAT-Implementierungen ansehen, damit ist der Dateisystemzugriff (Lesen &
Schreiben von Dateien) abzuhandeln.
Naja, und dann kommt noch Deine eigentliche Anwendung dazu, das Erfassen
Deiner Messdaten und deren Speicherung in einer Datei.
Mit einem Controller wie --beispielsweise-- dem AT91S7SAM256 sollte das
zu erledigen sein.
Anstelle der SD-Karte kannst Du natürlich auch beliebigen anderen
Flash-Speicher verwenden, allerdings bieten SD-Karten mehrere Vorteile:
Ihre Ansteuerung ist bekannt und oft implementiert, zu Testzwecken
kannst Du eine SD-Karte auch mal eben so mit einem PC auslesen und sie
sind obendrein leicht zu bekommen und äußerst günstig.
Hallo,
Danke erstmal für die Antworten, haben mich schonmal in die richtige
Richtung geschubst. Nunja von der SD/MMC muss ich mich etwas
distanzieren, da ich nicht den nötigen Platz auf der Platine für diese
habe. MicroSD würde zwar gehen finde ich aber etwas "dirty" lieber wäre
mir irgendein Speicherbaustein der direkt auf der Platine verlötet ist,
hätte jemand ein Teil im Kopf?
Mit MMC und µC habe ich ja schonmal gearbeitet, nur der Zugriff vom PC
auf den Speicher war mir nicht ganz klar.
lg Martin
Kenne zwar bausteine im so8 Format, bis 64Mbyte, aber ich wüsste nicht,
wo die in kleinstmenge herbekommen. Da ist dir mit einer (u)SD Karte
besser geholfen. Weiters, die Lösung welche ich beschrieben hatte gibt
dir einen schnellen Datentransfer. Wenn du das mit AVR machst, und
16Mbyte daten übertragen musst, dauert das halt lange.
Mfg
Chris
Muss nicht unbedingt in Kleinmengen zu bekommen sein, wenn das was taugt
werden sowieso größere Mengen gebraucht.
Wie gesagt ich kann das Ding nicht Serienreife erreichen lassen mit
einer MicroSD drauf. Gut, muss sagen hab da noch nicht die große
Erfahrung ist halt ein Gefühl.
Maximale Datenmenge die ich max. Übertragen möchte wird sicher nicht
mehr als jemals 500kb betragen und das ist schon großzügig Bemessen.
lg Martin
> Wie gesagt ich kann das Ding nicht Serienreife erreichen lassen> mit einer MicroSD drauf.
Warum? Wenn die in einem anständigen Sockel steckt, dann spricht nichts
dagegen. Vergleichbare Flash-Bausteine im TSOP-Gehäuse nehmen auf der
Platine i.d.R. mehr Platz weg.
Naja passt, vielen dank für die Hilfestellung!
Werde mir das Ganze jetzt mal mit der µSD anschauen. Jetzt such ich
sowieso erstmal den richtigen µC.
lg Martin
Wir bauen sowas auch in unsere Messgeräte. Und war mit einem Cypress
AT2LP (68300C) und einem Hyperstone CF-Controller sowie einem 1GB großen
Samsung NAND Flash. Wechselseitiger Zugriff vom DSP und PC möglich.
> Wäre es einfacher gleich einen Controller mit USB-Funktion zu schnappen> oder den "Umweg" über http://www.ftdichip.com/Products/FT232R.htm?
Der Umweg verbaut Dir den Weg ein "Mass Storage Device" zu
implementieren, das bedeutet, daß Du am PC Dein Gerät nur noch mit einer
dafür geschriebenen Software auslesen könntest und keinen Zugriff mehr
auf die im Flash gespeicherten Dateien hättest.
Das aber scheint mir nicht Dein Wunsch zu sein:
Ich möchte das Gerät an den PC anschließen und dann
als ganz normalen Stick verwenden können.
> Dämliche Frage aber könnte ich so etwas auch benutzen?>> http://www.ineltek.com/de/products/AT_AT45.php
Ja, wenn Dir die Kapazität von maximal 64 MBit (also 8 MByte) ausreicht.
Alles klar, das ist wirklich nicht das Ziel.
Nur habe ich mich in den letzten Tagen so viel gelesen das ich manche
Informationen vertausche.
Somit werde ich mich um einen Controller mit diesen Funktionen
umschauen.
Dann habe ich hier folgendes gefunden uALFAT, damit ich das verstehe
dieser Chip regelt mir nur die Zugriffe (übernimmt fat sachen etc.) auf
die microSD o.ä.. Verbaut mir dann nicht die Zugriffe vom PC auf das
Speichermedium oder doch?
lg Martin
Also, für Max 500kbyte, benutze einen 4Mbit SPI Speicher von Atemel,
gibt es auch als 8Mbit, alles so8. Sonst, größere Datenmengen,
Windbond, z.B. 16Mbyte Spi S25FL128P, bekommst du von in kleineren
mengen
von Arrow, 8 contacts WSON Package, also noch kleiner, und eine
isrealianische Firma packt die als MCP in ein dip/so8 package, um
dann mehr Speicher zu haben, pinkompatibel mit den Atmel parts.
USB-HID kostet dich 1000$, wenn du einen Block beantragst, sehr viel
weniger wenn du nur ein paar ID´s kaufst. Wenn du ein Quarz einsparen
willst, also Platz und Bauteilkosten, sind Cypress, Silabs, ... erste
Addressen (bei geringeren Stückzahlen, nicht bei Großen). Sonst,
Microchip, Atmel, ... . Microchip ist wegen Strohmsparfunktionen nicht
schlecht. Achso, wenn du das USB-Logo aufbringen willst, dann kostet es
mehr, und Kontroller wie Microchip fallen weg, weil nicht 100%
USB-Konform
gegenüber den Spezifikationen.
Mfg
Chris