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?
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
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
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.
> ob wir beide uns vielleicht etwas austauschen können
Gerne. Homepage mit Inhalt habe ich leider keine.
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
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.
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
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
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.
Hi oder hast du ne icq nr? dann könnte man sich mal richtig unterhalten! Gruss Flo
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?
@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!
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
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.
Was anderes außer Anspruchshaltung scheint hier nicht zu existieren. Schon mal auf die Idee gekommen, daß man manches auch selber_machen kann?
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
Meine Empfehlung ist, FAT16 ganz neben liegen zu lassen und gleich auf FAT32 zu gehen.
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.
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?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.