Hi Leute!
Als erstes mal ein grosses Lob an das Forum, lese nun schon seit einigen
Monaten mit und ich finde es angenehm das hier dieses "fertigmachen von
Personen mit komischen Ideen" welches in den anderen Foren so
eingerissen hat hier weitestgehend fehlt!
Und nun meine Frage:
Ich möchte gerne einen MP3-Player bauen der eine 2.5" IDE-Festplatte als
Speicher benutzt und im Windows-Arbeitsplatz als normales
Wechsellaufwerk erkannt wird, also so das dann die Musik per Drag n'Drop
übertragen werden kann und die Ordnerstruktur beibehalten wird
Also wenn ich, als Beispiel, die Ordner von den interpreten X(10 Lieder)
und Interpret Y (15 Lieder) übertrage soll es nachher auf dem Display
des Players auch so angezeigt werden.
Das ganze möchte ich in Bascom programmieren, bin aber was die Sprache
angeht auch flexibel (solange ich im Internet genug dokumentationen
finden kann welche ich in Notsituationen als "strohhalm" benutzen kann)
Und nun: Was denkt ihr? Machbar? An was hab ich noch alles nicht
gedacht?
Also:
Speicher: IDE-Festplatte
Sprache: Bascom
Microkontroller: Atmel ATmega 32
Welchen MP3-Decoder Chip bräcuht ich und ist kompatibel und so?
PS: Ich habe viel im i-net gelesen, einige Projekte gefunden usw. doch
bis jetzt war das welches genau meinen Vorstellungen entspricht noch
nicht darunter.
Also, ich freue mich auf eure Antworten und gegenfragen!
Viele liebe Grüsse, Marius
Laso ob dieses Forum soo friedlich ist? Ich finde, hier sind einige sehr
hochnäsig. Soviel zu Deiner Einleitung.
Wie willst Du denn den Player an den PC anschießen? Welche
Schnittstelle?
Als MP3-Decoder würde ich den STA013 verwenden. Der kann alles und ist
extrem einfach zu handeln.
Machbar ist es sicherlich, aber warum sollte man sowas tun?
Ich habe mir vor einigen Jahren mal eine HDD von Kenwood fürs Auto
gekauft. (Auch eine 2,5") Die wird als normaler Wechsler erkannt.
Super sache... Bis jetzt die ganze Speicherkarten eine akzeptable Größe
aufweisen.
Wenn Du ein solches Projekt vorhast, so würde ich lieber auf eine
Speicherkarte pledieren. Die ist einfacher anzusteuern und dadurch
sparst Du Dir einiges an Problemen.
Außerdem könntest Du die Karte einfach rausnehmen und in ein
Chipkartenlesegerät stecken.
Genügend Demo-Sources im Umgang mit dem FAT Betriebssystem gibt es.
Als Dekoder wirst Du wohl ein Hardwaredecoder benötigen. MP3 in einem
Atmega mal eben so zu dekodieren nenne ich jetzt einfach mal unmöglich.
Aber überlege Dir gut, ob es die Arbeit wirklich wert ist...
zu taucher:
Finde ich auch, dass dieses Forum keineswegs friedlich ist. Es kommt
sehr selten mal vor, dass ich einen Thread lese, indem nicht über
irgendwelche Rechtsschreibfehler diskuttiert wird. Aber das nur OT
Die Sache mit dem "Wechsellaufwerk in Windows" ist wohl der Knackpunkt
bei Deinem Projekt, weil alle anderen aufgezählten Features sind bereits
"alte Hüte". Ich gehe mal davon aus, dass Du den Player per
USB-Schnittstelle an den PC anschließen willst. Der ATmega 32 hat selber
keine USB-Schnittstelle und die USB-MassStorageDevice-Funktionalität
ohne USB-Hardware in Bascom nachzubilden halte ich auch für unmöglich.
Du müsstest daher wohl auf einen AVR mit USB-Hardware umsteigen...
Hallo Marius,
das Projekt hört sich ganz gut machbar an. Es gibt auch einen
Controller, der das Ansteuern von Festplatten sehr einfach macht. Man
sendet einfache Kommandos a la DOS an den Controller und dieser
übernimmt die Ansteuerung der Platte (soweit ich weiss muss es eine
Platte mit USB sein) und lässt einem bequem die gewünschten Daten
zukommen. Frag mich nur nicht wie der Controller heisst :-p Aber ich
könnte es rausfinden wenn du mich nochmal fragst, ein Kollege hat den
bei sich rumliegen, den könnte ich fragen.
Gruß,
Christian
Christian Böge wrote:
> Frag mich nur nicht wie der Controller heisst :-p
Du meinst sicherlich den Vinculum.
Dessen Ansteuerung empfinde ich teilweise als sehr nervig, da dessen
Firmeware etliche Bugs und sonstige unschönen Features hat.
Da würde ich eine echte HDD oder eine SD Karte bevorzugen: Die ist nicht
nur schneller, sondern am Ende auch einfacher.
>Da würde ich eine echte HDD oder eine SD Karte bevorzugen: Die ist nicht>nur schneller, sondern am Ende auch einfacher.
Compact Flash wäre auch noch eine Möglichkeit.
HDD ist für einen portablen Player wegen des Stromverbrauchs
nicht so schön. Braucht eigentlich auch zu viele Pins am uC.
Die Daten mit einem Atmel uC mit USB Fähigkeiten zu übertragen
dürfte zum Geduldsspiel werden. 40, 80 oder mehr GB wollen erst mal
übertragen werden. Bei einer SD würde ich den Kartenleser bevorzugen.
Ab 4GB wird auf jeden Fall FAT32 benötigt. Und der
Support von langen Dateinamen dürfte wohl auch nötig sein.
>das Projekt hört sich ganz gut machbar an.
Das ist masslos übertrieben ;)
Okay, natürlich muss ich mich nicht auf meinem ATmega 32 festbeissen,
wenns was andres gibt mit besserer USB-Funktionalität (vielleicht schon
integriert?) w$re das natürlich noch schöner;)
und ja, will den Player über USB an den PC anhängen können aber die
Festplatte nicht über USB an den Player!
Wieso man sowas machen sollte? Weils spass macht!;)
Hab nen Blitzeinfall gehabt!
Kennt ihr die Konverter um interne IDE-HD's an USB anzuschliessen?
Wie wäre es zwischen HD und player einen Controller zu schalten der das
kann und dann würde man die Lieder nicht vom PC->Player->HD SOndern
einfach PC->HD übertragen, also wie mit einer Speicherkarte
was meint ihr? Wie gross ist der aufwand noch xtra so einen Controller
zu programmieren?
Und einen Hardware-Decoder-Baustein möcht ich eigentlich eh!...
>Kennt ihr die Konverter um interne IDE-HD's an USB anzuschliessen?
Nö, noch nie was von gehört.
>Wie wäre es zwischen HD und player einen Controller zu schalten der das>kann und dann würde man die Lieder nicht vom PC->Player->HD SOndern>einfach PC->HD übertragen, also wie mit einer Speicherkarte
Geh spielen Kleiner ;) Du hast sowas von keine Ahnung.
> Kennt ihr die Konverter um interne IDE-HD's an USB anzuschliessen?
Cypress CY7C68300 ist dafür geeignet. Du musst allerdings darauf achten,
daß Dein µC die IDE-Platte nicht anspricht, solange es die
USB-IDE-Bridge tut, also solange Dein Aufbau an den PC angeschlossen
ist.
Außerdem solltest Du bedenken, daß man, um eine IDE-Platte anzusteuern,
sehr viel I/O-Leitungen benötigt, da Festplatten mit
16-Bit-I/O-Zugriffen arbeiten, und daß man außerdem nicht um FAT32
herumkommt, sofern die Festplatte größer ist als 2 GByte.
Für FAT32 dürfte das RAM des ATmega32 jedoch ein bisschen zu knapp
dimensioniert sein.
Besser als ein 8-Bit-AVR dürfte ein Controller mit externem 16- oder
32-Bit-Bus geeignet sein, da da die IDE-Schnittstelle per "memory mapped
I/O" angesteuert werden kann, was erhebliche Performancevorteile mit
sich bringt. Auch können diese Controller i.d.R. sehr viel mehr RAM
ansteuern als ein 8-Bit-Controller; wenn FAT32 und "lange"
Dateinamen/Verzeichnisnamen anständig funktionieren sollen, ist dafür
viel RAM vorteilhaft.
mit BASS-COM wird das sicherlich nix mit MP3 player + IDE Festplatte.
Mit einer richtigen Programmiersprache und guten Programmierstil (den
man von einem BASS-COM Programmierer nicht erwarten kann), könnte das
selbst ein kleinerer AVR schaffen (aber unter Mega16, besser noch
mega128 würde ich nicht ansetzen).
Marius S. wrote:
> Mit einer richtigen Programmiersprache und guten Programmierstil (den> man von einem BASS-COM Programmierer nicht erwarten kann), könnte das> selbst ein kleinerer AVR schaffen (aber unter Mega16, besser noch> mega128 würde ich nicht ansetzen).
Ein Mega16 sollte eigentlich reichen, außer man baut komplizierte
Playlists oder sowas in der Richtung ein. Mein mp3 Player mit SD Karte
und FAT16, LFN Unterstützung, ID3, Display usw. kommt mit einem mega8
aus (es sind sogar noch 802 Bytes frei)...
Mit BASCOM (warum fällt es so schwer, das richtig zu schreiben? Sind
doch nur 6 Buchstaben) kann man prinzipiell schon Festplatten ansteuern,
dazu hat F.J. Vögel eine geeignete Library entwickelt. Was damit halt
nicht out-of-the-Box geht, sind echte Dateinamen statt der
8.3-Namenskürzel, und auch nicht FAT32, sondern nur FAT16 (mit der
bekannten 2 GByte-Einschränkung).
Für C wirst du mehr Unterstützung vom Forum erwarten können. FAT32
bracht doch gar nicht so viel mehr Recourcen als FAT16. Aber natürlich
gehen die Berechnungen auf einem 32 Bit MC schneller.
Na, nimm doch eine 64-Bitter. Da gehts noch schneller...
Also mal im Ernst: Was soll der MC denn machen? Die dateien dem
MP3-Decoder zuschieben und das wars dann. Dafür reicht ein 8-Bitter
bequem!
Und Fat32 ist nicht komplizierter oder komplexer als Fat16. Damit wird
ein 8-Bitter locker fertig. Nur wenn Du alle Dateien alphabetisch
sortieren willst, brauchst Du viel Speicher, aber nicht mehr
Rechenleistung!
Okay, danke vielmals für die vielen Antworten und Denkanstösse;):)
Ich soll: ->Ein 32-bit MC nehmen (Mega 128?)
->Fat 32 verwenden
->C Verwenden (mehr Unterstüzung)
->Cypress CY7C68300 als USB-Bridge verwenden
Wo liegt der Denkfehler in dieser Aufbau's Idee?:
Ich nehm meinen ATmega32 einfach als "Eingangspforte" also wenn Spannung
aufm USB-Weg reinkommt (wenns am PC angeschlossen ist) schlatet er um au
USB-Modus, "koppelt" also die Festplatte ab so das sie nur am PC hängt.
Liegt danach die Spannung nicht mehr an "verbindet" er FEstplatte und
Mega 128 wieder.
So, und nun zum C:
Meine C-Zeit ist schon n'Weilchen her, wer kennt n'gutes Buch das sich
mit C auf Atmel's beschäftigt?
Oder n'Tutorial? (noch schöner wär eins das sich gerade mit MP3-Playern
beschäftigt;))
Kann ich beim Mega128 meinen ISP-Programmer weiterhin verwenden? (MK2)
32-Bit MC für so ne Kleinigkeit? Nunja, dann solls sicher eine
32TByte-Platte sein, oder? Allerdings würde ich SCSI nehmen, sonst ist
die Platte zu lahm...kopfschüttel