Forum: Mikrocontroller und Digitale Elektronik USB Speicher realisierbar?


von Netbandit (Gast)


Lesenswert?

Hallo,

ich habe jetzt Stundenlang im Internet gesucht, doch wie es scheint
wurde soetwas so gut wie noch nie in Angriff genommen.
Ist es überhaupt möglich mit hilfe eines AVR oder PIC einen USB
Speicher zu bauen? Das ganze soll natürlich vom rechner aus wie eine
wechselplatte aussehen. Als Speichermedium hatte ich mir eine
CompactFlash Karte vorgestellt.
Ich bin bei meiner suche über einen Phillips USB Controller gestolpert,
doch dazu habe ich keine Projekte im Netz gefunden.
Kennt jemand eine Seite wo soetwas schon realisiert wurde?

von Steffen (Gast)


Lesenswert?

Google mal nach Mass-Storage-Device. Da solltest Du alle Infos finden.
Mit einem PIC oder AVR ist das möglich aber mittlerweile gibt es recht
günstige integrierte Lösungen für alle möglichen Speichermedien.

Wenn es um den Lerneffekt geht, demnächst gibt es von Microchip 18FXXX
Prozessoren mit integrierter USB 2.0 Brige.

Steffen

von Thorsten (Gast)


Lesenswert?

Hi,

schau dir mal dieses Bauteil an:
http://www.cypress.com/products/datasheet.cfm?partnum=CY7C68300

Ist sehr genial und einfach. Einfach CF dranhängen, etwas Zeugs
drumrum, USB Kabel anschließen, fertig. Schon hast du dein
Wechsellaufwerk. Mein MP3-Player benutzt dieses IC, um die Daten auf
die Platte zu schaufeln.

Thorsten

von Netbandit (Gast)


Lesenswert?

Mensch super Infos... Danke! Ich war heute nach 3 Stunden intensiever
suche soetwas von fertig, daß ich gedacht habe, daß soetwas im
Hobbybereich kaum möglich sei :)
Von den Cypress IC's habe ich glaube schonmal was gehört im
Zusammenhang mit USB... sind die wirklich so einfach zu benutzen?
Na ich werde mir die Seite von denen mal genauer unter die Lupe
nehmen.

Thorsten:
Das geht ja schon in die richtige Richtung :)
Ich wollte mir erstmal ne CF Karte zulegen und dann etwas
rumexperimentieren... und später dann auch einen MP3 Player drum herum
bauen. Da du anscheinend schon ne gute Lösung gefunden hast, hätte ich
mal die Frage, ob wir beide uns vielleicht etwas austauschen können...
Vielleicht hast du ja ne Homepage? Oder ne alte Experimentierschaltung,
welche ich nachbauen könnte um meine Erfahrungen mit diesen Teilen zu
sammeln.

von Thorsten (Gast)


Lesenswert?

> ob wir beide uns vielleicht etwas austauschen können

Gerne. Homepage mit Inhalt habe ich leider keine.

von Florian (Gast)


Lesenswert?

Hallo

@Thorsten

Hast du schon mal was mit dem controller gemacht und muss man den noch
irgendwie programmieren?

@all

Ich hätte auch interesse an einem Austausch!!


Gruss Flo

von Netbandit (Gast)


Lesenswert?

Also der Controller sieht sehr vielversprechend aus. Ich habe mir mal
eine englische Seite angesehen, wo es auch einen Schaltplan dazu gab.
Es Handelt sich hier um einen MP3 Player mit HD und eben diesem USB
Controller.

http://www.frankvh.com/mp3player/schematics.htm

Hier wird ja schon einiges zum Thema Beschaltung offensichtlich.
Soweit ich es verstanden brauch der CY7C68300 nicht programmiert zu
werden. Die kompletten Konfigurationsdaten werden in einem EEPROM
gespeichert. Ohne diesen EEPROm schaltet sich der CY7C68300 in eine Art
Testmodus.
Leider ist mein Engisch nicht so dolle :)

Kann man den bei Reichelt oder so bestellen?
Leider habe ich den CY7C68300 weder bei Conrad noch bei Reichelt
gefunden. Weiß jemand wo es den gibt?

Als nächstes wäre ja dann die Frage nach dem Speichermedium...
Was nimmt man da für Karten? Welche bieten schöne Größen und sind
trotzdem preiswert und vor allem: Welche sind Zukunftstauglich. Derzeit
gibt es ja ein enormes Sortiment an verschiedenen Speicherkarten. Ich
habe bisher noch nicht mit ihnen gearbeitet, daher kenne ich mich da
auf dem Markt weniger aus.
Die bekanntesten sind ja die MC/SD und CF Karten soweit ich das sehe.

von Florian (Gast)


Lesenswert?

Hallo

Könnte man sich mal in nem irc chanel treffen?

Ich möchte als speicher gerne ne 2.5 Zoll hdd verwenden aber cf sollte
auch kein problem sein, da sich diese im true ide mode genau gleich
steuern lassen!

Gruss Flo

von Rufus T. Firefly (Gast)


Lesenswert?

Den CY7C68300 kann man bei Segor kaufen
(http://cgi.segor.de/user-cgi-bin/sidestep2.pl?foto=1&Q=CY7C68300&M=1).

Bei Cypress selbst gibt es recht ausführliche Datenblätter und
Applikationsschriften dazu.

Hier stellt sich allerdings die übliche Frage:
Warum um alles in der Welt so etwas "selber" bauen?

Mit dem Cypress-Controller entfällt ja sogar der Lerneffekt, den man
hätte, würde man auf einem normalen Controller den USB-Stack sowie ein
"USB Mass Storage Device" implementieren.

Wenn es nur darum geht, ein IDE-Device (sei es eine Festplatte, ein
CD-Laufwerk oder eine CF-Karte) per USB an einen PC anzuschließen, dann
ist der Markt mehr als gesättigt mit spottbilligen fertigen
Adapterplatinen in Gehäusen mit Netzteilen.


Interessant ist der Cypress-Controller allerdings gerade in
Situationen, wo es um mehr geht als nur eine Platte an einen Rechner
anzuschließen, eben in einem festplattenbasierten MP3-Player, in dem
bei nicht angeschlossenem USB sich ein Microcontroller um die Platte
kümmert und bei angeschlossenem USB der µC die Klappe hält und die
Platte vom USB-Controller genutzt werden kann.

Hierzu übrigens ein für mp3-Player-Bastler hilfreicher Hinweis:
Ein FAT16/FAT32-Dateisystemtreiber für AVR ist dem CircuitCellar AVR
Design Contest zu verdanken:
http://www.circuitcellar.com/avr2004/DA3670.html

von Netbandit (Gast)


Lesenswert?

Klar gibt es sowas echt billig zu kaufen. Doch es geht mir da eher um
das Prinzip. Mein Endziel soll ein Stationärer MP3 Player mit HDD sein
und etwas extra drum herum.
Da ich habe mit MP3/FAT32/USB noch gar keine Erfahrung habe möchte ich
dieses Ziel Schrittweise erreichen.
Also dachte ich erstmal über einen kleinen einfachen MP3 Player nach,
welcher dann CF Karten benutzt. Da kam mir jedoch die Frage wie ich das
mit dem USB so am besten regeln kann. Also werde ich erstmal ne
Schaltung aufbauen, womit ich die CF Karte vom Rechner aus beschreiben
kann. Und kann dann später den PIC und MP3 Decoder noch hinten ran
hängen.

@Flo:

habe wenig Zeit im im IRC rumzuchatten :)
Aber du kannst mir gerne eine Mail schreiben, wenn du willst.
Allerdings bin ich ja auch gerade erst dabei die ganze Technik um MP3
herum zu erforschen :)
Aber der CY7 scheint schon genau das richtige dafür zu sein. Er ist
echt kinderleicht in die Scahltung einzubringen. Das hat natürlich auch
den Nachteil, daß man mit dem eben NUR das eine machen kann. Z.b. ne SD
Karte (habe ich inzwischen gelernt) wird ja nicht über ein IDE
kompatiebles Protokoll angesprochen sondern seriell und das beherrscht
der CY7 nun leider nicht.

von Florian (Gast)


Lesenswert?

Hi

oder hast du ne icq nr?
dann könnte man sich mal richtig unterhalten!

Gruss Flo

von Netbandit (Gast)


Lesenswert?

Hehe meinen ICR habe ich vor 2 Jahren das letzte mal aktiviert. Hat mich
ganz ehrlich immer genervt, da ich zum schluß über 100 Leute drin stehen
hatte und alle einen begrüßt haben und ich antworten musste :)

Schreib mir erstmal eine Mail ich werde sehen, daß ich etwas zeit finde
für ein IRC Gespäch ok? :)
Was hast du eigendlich vor zu bauen?

von Rufus T. Firefly (Gast)


Lesenswert?

@Netbandit:
Für Deine mp3-Player-Anwendung hast Du sozusagen den Nagel auf den Kopf
getroffen.

Wenn Du wirklich mit SD-Cards 'rummachen willst, könntest Du Dir mit
einem SD-CF-Adapter behelfen, das macht aus einer SD-Karte eine
CF-Karte und wird folglich genauso angesprochen wie eine CF-Karte oder
eine IDE-Festplatte.

Ansonsten hast Du selbst ja bereits den idealen Link für Dein
Selbstbauprojekt gepostet.

Was Speicherkarten betrifft, so sind CF-Karten meiner Ansicht nach
SD-Karten überlegen - sie sind günstiger und aufgrund ihrer
IDE-kompatibilität auch unproblematisch anzusteuern.
Ein Kapazitätslimit, wie es bei so gut wie allen anderen Speicherkarten
auftrat, ist bei CF auch nicht zu erwarten
(SmartMedia gab's nur bis 128 MByte, weil nichts größeres spezifiziert
war, Sonys Memoryfick musste auch schon etliche Male inkompatibel
erweitert werden, selbst die xD-Card, die angeblich bis 8 GByte
spezifiziert ist, erforderte mit der Einführung von 512 MByte-Karten
bereits Firmwareupdates für Kameras).

Das einzige Problem bei CF ist, daß ab 2 GByte Größe FAT32 statt FAT16
verwendet werden muss, aber da kann CF nichts dafür, das liegt nunmal
am Dateisystem.

Als billige Alternative zu großen CF-Karten gibt es ja auch noch
Microdrives:

Ein 4 GByte-Microdrive (vom allerdings umstrittenen Hersteller
Magicstor) gibt es incl. USB-Adapter und Gehäuse im Mediamarkt für 150
EUR

... und wenn Dir all das nicht reicht, kannst Du ja auch 'ne richtige
Festplatte nehmen.
Erst ab 128 GByte Größe musst Du Dir wieder Gedanken über das Interface
machen, weil ab da das LBA-48-Protokoll erforderlich ist.

Also: Mit CF liegtst Du auf der richtigen Seite, und für die USB-Seite
ist der Cypress-Controller in der Tat 'ne schicke Lösung.

Eine Bezugsquelle hab' ich Dir ja auch schon genannt, ebenso wie einen
Link auf C-Sourcecode eines FAT32-Treibers, der auf 'nem Mega128 läuft
...


Frohes Basteln!

von DerMax (Gast)


Lesenswert?

Der FAT Treiber sieht gut aus, aber wnen ich das auf den ersten Blick
sehe kann er eider keine langen Dateinamen was für einen MP3-Player mit
vielen Liedern in einem Verzeichnis ja doch wünschenswert wäre

von Rufus T. Firefly (Gast)


Lesenswert?

Tja - ein bisschen musst Du halt noch selber entwickeln.

Allerdings sind die langen Namen nicht wirklich relevant, da der
mp3-Player ja die mp3-Tags anzeigen kann und es somit wurscht ist, wie
die Dateien heißen.

von Thorsten (Gast)


Lesenswert?

Und bei Files ohne ID3-Tag bleibt die Anzeige leer, toll !

von Rufus T. Firefly (Gast)


Lesenswert?

Was anderes außer Anspruchshaltung scheint hier nicht zu existieren.

Schon mal auf die Idee gekommen, daß man manches auch selber_machen
kann?

von DerMax (Gast)


Lesenswert?

Ich wollte nur drauf hinweisen weil das Ding als so super toll und
fertig dargestellt wurde. Ich hab schonma nen FAT-Treiber mit langen
Dateinamen implementiert. So schwer is das auch nich.

http://home.teleport.com/~brainy/fat32.htm

kann ich nur empfehlern steht fast alles drin was man wissen muss. Den
Rest findet man in der MS-Dokumentation

von Thorsten (Gast)


Lesenswert?

Meine Empfehlung ist, FAT16 ganz neben liegen zu lassen und gleich auf
FAT32 zu gehen.

von Netbandit (Gast)


Lesenswert?

Danke für eure Zahlreichen hinweise. Ja vor FAT32 grault es mir schon :)
Da mein english leider nicht so perfekt ist. Aber so wie es scheint
kommt man darum ja nicht herum. Daher werde ich mir mal an einen
ruhigen Tag die ganzen Beschreibungen teilweise übersetzen.
Aber dafor soll ja das USB Inteface funktionieren.
SD Karten sind natürlich etwas schöner... etwas kleiner und so weiter.
Aber CF Karten sind halt wesendlich einfacher einzuarbeiten und eben
auch günstiger. Ich habe mir auf Arbeit erstmal eine 64MB Karte
bestellt. Damit kann ich dann auch etwas rumbasteln und wenn alles
läuft kann ich immernoch ne größere nehmen oder später eben auf HDD
umsteigen.
Derzeit kämpfe ich noch mit den IDE Spezifikationen der CF Karte.
Da gibt es ja den Memory Mode der gerade bei kleinen MP3 Playern mit
nur 8 Datenleitungen recht gut ist. Soweit ich gesehen habe, kann der
CY7 aber nur den True IDE Modus (oder habe ich da im Datenblatt was
übersehen?).
Nun sagte Thorsten allerdings, daß die Umschaltung zwischen Memory Mode
und True IDE nicht ganz so problemlos ist, da diese nur beim Power On
geschieht (bei den CF Karten)
Also wenn ich eine CF Karte ziehe und dann wieder reinstecke ist sie
nicht im True IDE Mode obwohl der entsprechende PIN (ist das der Pin
9???) richtig gesetzt ist.
Was muß ich dann machen? Die Versorgungsspannung abschalten, den Pin
richtig setzen und dann wieder einschalten?
Wenn das so geht, könnte ja der µC in einem MP3 Player die Umschaltung
vornehmen. Sobald USB gesteckt wird schaltet er die Karte auf True IDE,
aktiviert den ATA_Enable des CY7 und hält die klappe auf dem Bus. Und
wenn USB wieder gezogen wird, schaltet er die Karte wieder in den
Memory Mode und deaktiviert den ATA_Enable des CY7 und kann dann wieder
über 8 Datenleitungen zugreifen...

Sehe ich das richtig oder hab ich da einen Denkfehler?

Ich habe das Datenblatt der CF Karte und das des CY7 eben nicht
komplett verstanden, da eben mein Englisch zu wünschen übrig lässt. Ich
überlege mir ja schon, ob ich das Datenblatt der CF Karte mit etwas
hilfe aus dem Internet und mit einem Kumpel der sehr gut english
spricht mir einfach komplett auf Deutsch übersetze, dann könnte man
auch immer wieder nachlesen ohne dabei das Schulenglisch zu
strapazieren :)

Naja ich kann euch ja auf den laufenden halten. Sobald ich den CY7 habe
lege ich erstmal los.

von Netbandit (Gast)


Lesenswert?

Ach noch ne Frage am Rande: Für mein erstes Projekt (CF Karten reader)
strebe ich eine Spannungsversorgung über USB an. Das ist ja möghlich.
Ist das der VBUS Pin bei USB? Und was kommt da für eine Spannung an? 5V
oder 3.3V?
Ist es ratsam auch im 3.3V Fall einen Stabi zu verwenden um das ganze
abzusichern?
Auf was muß man bei einer Spannungsversorgung über USB so achten?

von Netbandit (Gast)


Angehängte Dateien:

Lesenswert?

So... ich habe nun einen Schaltplan entworfen. Für Interessenten stelle
ich diesen nun mal online. Ich habe das ganze allerdings noch nicht in
der Praxis getestet.
Der kleine PIC guckt ob die CF Karte drinne ist oder nicht und schaltet
dann dementsprechend die Betriebsspannung für die CF Karte und den
ATA_Enable Pin des USB Controller.

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.