Forum: Mikrocontroller und Digitale Elektronik MP3-Player mit Bascom und IDE-Festplatte, ATmega 32


von Marius (Gast)


Lesenswert?

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

von taucher (Gast)


Lesenswert?

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.

von Moi (Gast)


Lesenswert?

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

von Moi (Gast)


Lesenswert?

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

von Daniel P. (ppowers)


Lesenswert?

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

von Christian B. (schlebinski)


Lesenswert?

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

von Benedikt K. (benedikt)


Lesenswert?

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.

von holger (Gast)


Lesenswert?

>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 ;)

von Marius (Gast)


Lesenswert?

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!;)

von Marius (Gast)


Lesenswert?

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

von holger (Gast)


Lesenswert?

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

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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

von Marius S. (lupin) Benutzerseite


Lesenswert?

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

von Benedikt K. (benedikt)


Lesenswert?

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

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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

von Martin (Gast)


Lesenswert?

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.

von taucher (Gast)


Lesenswert?

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!

von Marius (Gast)


Lesenswert?

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)

von taucher (Gast)


Lesenswert?

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

von Benedikt K. (benedikt)


Lesenswert?

taucher wrote:
>  Allerdings würde ich SCSI nehmen, sonst ist
> die Platte zu lahm...

Wenn schon, dann eine SATA2 mit dem Interface über Bitbanging...

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.