Forum: Mikrocontroller und Digitale Elektronik µController mit Flashspeicher und USB


von Martin (Gast)


Lesenswert?

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

von Christoph Z. (rayelec)


Lesenswert?

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

von chris (Gast)


Lesenswert?

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.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

> 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.

von Martin (Gast)


Lesenswert?

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

von chris (Gast)


Lesenswert?

wie groß muß der Flash sein ?

von Martin (Gast)


Lesenswert?

Naja ich würd mal sagen minimal 16mb...

lg Martiin

von chris (Gast)


Lesenswert?

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

von Martin (Gast)


Lesenswert?

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

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

> 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.

von Martin (Gast)


Lesenswert?

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

von Christian R. (supachris)


Lesenswert?

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.

von Martin (Gast)


Lesenswert?

Dämliche Frage aber könnte ich so etwas auch benutzen?

http://www.ineltek.com/de/products/AT_AT45.php

lg Martin

von Sergey (Gast)


Lesenswert?

=> PIC18F2550 USB 2.0

Es gibt von Microchip fertige USB-Stacks, Demo-Applikationen und einen 
USB-Bootloader

von Martin (Gast)


Lesenswert?

Mahlzeit,

Wäre es einfacher gleich einen Controller mit USB-Funktion zu schnappen 
oder den "Umweg" über http://www.ftdichip.com/Products/FT232R.htm?

lg Martin

von Arc N. (arc)


Lesenswert?

Martin wrote:
> Dämliche Frage aber könnte ich so etwas auch benutzen?
>
> http://www.ineltek.com/de/products/AT_AT45.php
>
> lg Martin

Das ginge oder
von SST http://www.sst.com/products.xhtml/serial_flash/25/3.0V/
von ST/Numonyx 
http://www.numonyx.com/en-US/MemoryProducts/NORserial/Pages/NORserial.aspx
oder Spansion 
http://www.spansion.com/flash_memory_products/serial_interface.html

> Mahlzeit,

> Wäre es einfacher gleich einen Controller mit USB-Funktion zu schnappen
> oder den "Umweg" über http://www.ftdichip.com/Products/FT232R.htm?

Hängt davon ab wie gut der Hersteller seine Controller unterstützt, 
sprich gibt's einen freien USB-Stack der die gewünschten Funktionen kann 
(u.U. ist dann aber für das Endprodukt eine eigene USB-Vendor-ID nötig).
Bei den FTDIs spart man sich zwar auf Controller-Seite einiges, muss das 
Gerät dann aber mit einer eigenen Software ansprechen.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

> 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.

von Martin (Gast)


Lesenswert?

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

von chris (Gast)


Lesenswert?

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

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.