Forum: Mikrocontroller und Digitale Elektronik Mp3 Player mit Atmega


von Sam .. (sam1994)


Lesenswert?

Ich habe vor kurzem angefangen einen Mp3 player mit einem Atmega, einer 
Sd karte, später noch mit Mp3 streaming vom Internet, zu bauen. ALs ich 
aber auf http://www.matuschek.net/projekt-netzwerkplayer/ gestoßen bin, 
wurde ich verunsichert. Wieviel Ram, Cpu brauche ich eigentlich für 
einen Mp3 decoder?

Nach dem Fehlgeschlagenen Projekt( siehe Link) reicht der Ram nicht aus. 
Würde es dann nicht mit

http://www.ramtron.com/products/nonvolatile-memory/serial.aspx

dem seriellen Ram funktionieren (seriell ist doch einfacher, weil er 
weniger pins hat,oder?)?

Am liebsten würde ich für das decoden und abspielen einen Atmega 16 
verwenden, der sich dann nur um den Sound kümmert.

Weiß jmd ob das klappt?
Und woher ich den Algorithmus her bekomme?
Ich weiß, dass lizensiert ist, aber es muss doch was legales für C 
geben!

Danke für eure Hilfe!

von Frank B. (frank_boe)


Lesenswert?

> Am liebsten würde ich für das decoden und abspielen einen Atmega 16
> verwenden, der sich dann nur um den Sound kümmert.
>

Ein 8-Bit AVR reicht bei weitem nicht. Der ist um Größenordnungen zu 
klein dafür.

Anders sieht es aus, wenn er lediglich einen externen MP3-Decoder 
steuern soll.

von Sam .. (sam1994)


Lesenswert?

Ich hätte noch einen Atmega644.
Der ist doch 16 bit?

Warum geht es nicht mit nem 8 bit?

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Das dekodieren des MP3s verbraucht einfach zuviele Recourcen, nimm 
doch einen externen Decoder, in der Codesammlung gab es meine ich sogar 
mal ein Projekt für einen Web MP3 Player.

von Sam .. (sam1994)


Lesenswert?

Wieviel kostet den ein externer Decoder. Außerdem: der 
Resourcenverbrauch ist nicht schlimm, ich hab mehrere Atmgeas noch 
zuhause, um andere Sachen zu erledigen (der 644 kann ruhig fast 
ausgelastet sein).

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Such mal nach AVR + MP3 da findest du bestimmt hunderte Seiten wo das 
erklärt und vorgestellt wird...

von Frank B. (frank_boe)


Lesenswert?

Keine Chance..

Aber es wäre evtl möglich die Dekodierung von mehreren avrs (jeder nur 
ein kleiner Teilschritt) machen zu lassen. Wär mal ein Projekt für 
jemanden mit zu viel Zeit :-)

Externer Decoder: vs1101

von Benedikt K. (benedikt)


Lesenswert?

Samuel K. schrieb:
> Außerdem: der
> Resourcenverbrauch ist nicht schlimm,

Wenn der Ressourcenverbrauch allerdings die 100% Marke übersteigt, dann 
schon.
Grob geschätzt würde ich sagen ein AVR müsste mit mindestens 100MHz 
laufen um eine 44kHz, 128kBit/s, Stereo mp3 zu dekodieren. Außerdem 
benötigt man über 10kByte RAM um die Zwischenergebnisse zu speichern.

von Sam .. (sam1994)


Lesenswert?

Ram ist doch kein Problem -> www.ramtron.com
Mhz???
dann müsste mein uralter pc mit 200 Mhz ja entweder mit 50% cpu 
auslastung
Mp3 decodieren oder soundkarten müssten 100Mhz proz. haben. Außerdem 
glaube ich nicht das die mp3 chips mit 100 Mhz laufen!?!

Sorry für die Kritik, ich finde es hört sich halt unglaubwürdig an.

von Gast (Gast)


Lesenswert?

>Externer Decoder: vs1101
Kostet nur 11€

von Sam .. (sam1994)


Lesenswert?

Ich finde ich habe schon genügend Geld für Atmegas Platinen... 
ausgegeben.

So weit ich mp3 verstanden habe:

Komprimierung -> zusammenfügen der einzelnen Kanäle -> fertig.

Mehr ist es nicht, warum reichen da 16 Mhz nicht aus?
2. Kann mir jmd sagen warum man einen 16 bit prozessor braucht?
Ich hätte noch 2 Atmgea 64 mit 20Mhz mit Ram erweiterung wären die 
Perfekt!

3. Wo kann man den vs1101 kaufen - da kommen doch sicher noch 5€ versand 
dazu!

von Frank B. (frank_boe)


Lesenswert?

warum kaufst du dir nicht einen mp3-player für 5 euro ?

von Benedikt K. (benedikt)


Lesenswert?

Samuel K. schrieb:
> dann müsste mein uralter pc mit 200 Mhz ja entweder mit 50% cpu
> auslastung

Ein PC hat auch mehr als 8bit. Schau dir z.B. alleine mal an wie lange 
ein AVR für eine Fließkommamultiplikation braucht, und wie lange eine PC 
CPU dafür braucht. Die Untergrenze zum ruckelfreien mp3 Abspielen liegt 
irgendwo zwischen 486er und Pentium 1, also bei 50-100MHz.

> Mp3 decodieren oder soundkarten müssten 100Mhz proz. haben. Außerdem
> glaube ich nicht das die mp3 chips mit 100 Mhz laufen!?!

Die haben entsprechende DSP Funktionen. Was die in einem Befehl machen, 
dafür braucht ein AVR auch mal 10-20 Befehle (z.B. ein 16x16 MAC Befehl: 
2 16bit Werte aus dem Speicher laden: 8 Takte, 16x16 Multiplikation: 
rund 10 Takte, aufaddieren auf 32bit Akkumulator: 4 Takte.)
Ein VS1011 läuft übrigens mit rund 24MHz.

von Sam .. (sam1994)


Lesenswert?

auf ulrichradig.de gibt es ein projekt als Mini server mit einem Atmega.

Das will ich machen. Am Ende soll das Gerät, Mp3 herunterladen können, 
abspielen, streamen, als internetradio dienen...

Als Hauptcpu wollte ich eigentlich einen 2. Atmega644, ich nehm ihn 
meinetwegen auch als decoder (Vielleicht kann ich den 644 auf der 
Netzwerk platine nehmen (ich weiß nicht wie stark der belastet wird)).

Ich habe noch folgende Atmgegas: 2x 16-8, 2x 64, 2x644 (die beiden 
erwähnten), 1x 16-8 mit leicht verbogenen Beinchen (vielleicht auch 
defekt, muss ich mal testen).

Mp3 Player kann nicht ins Internet gehen, außerdem kann ich immer was 
neues zu meinem Player dazubauen, Display kommt übrigens auch dran 
132x32.

von Justus S. (jussa)


Lesenswert?

Samuel K. schrieb:
> Ich hätte noch einen Atmega644.
> Der ist doch 16 bit?


das wäre mir neu...

von Frank B. (frank_boe)


Lesenswert?

Samuel K. schrieb:
> auf ulrichradig.de gibt es ein projekt als Mini server mit einem Atmega.
>
> Das will ich machen. Am Ende soll das Gerät, Mp3 herunterladen können,
> abspielen, streamen, als internetradio dienen...
>
> Als Hauptcpu wollte ich eigentlich einen 2. Atmega644, ich nehm ihn
> meinetwegen auch als decoder (Vielleicht kann ich den 644 auf der
> Netzwerk platine nehmen (ich weiß nicht wie stark der belastet wird)).
>
> Ich habe noch folgende Atmgegas: 2x 16-8, 2x 64, 2x644 (die beiden
> erwähnten), 1x 16-8 mit leicht verbogenen Beinchen (vielleicht auch
> defekt, muss ich mal testen).
>
> Mp3 Player kann nicht ins Internet gehen, außerdem kann ich immer was
> neues zu meinem Player dazubauen, Display kommt übrigens auch dran
> 132x32.

Dann mach mal.
Und wenn du es fertig hast, zeigst du es uns, und beweist uns wie blöd 
wir doch sind.
Bin gespannt.
Obwohl, die verbogenen Beinchen sind natürlich ein ernstes Problem.

von Alexis S. (seraptin)


Lesenswert?

Informier dich erstmal ein wenig ueber Prozessorarchitektur und 
Hardware-Decoding und ueberdenke dein Vorhaben dann nocheinmal....

von Mark B. (markbrandis)


Lesenswert?

Samuel K. schrieb:
> 2. Kann mir jmd sagen warum man einen 16 bit prozessor braucht?

Die vorliegenden Daten haben eine Wortbreite von 16 Bit. Man kann solche 
Datenwörter natürlich auch mit einem 8-Bit-Prozessor verarbeiten. Dir 
ist aber schon klar, um wieviel das den Rechenaufwand erhöht wenn ich in 
mehreren Schritten 8-Bit-Worte verwursteln muss als wenn ich mit einem 
einzigen Zugriff 16 Bit vom Speicher in ein Register des 
Mikrocontrollers lade?

von Markus K. (markus-)


Lesenswert?

Samuel K. schrieb:
> Ram ist doch kein Problem -> www.ramtron.com
> Mhz???
> dann müsste mein uralter pc mit 200 Mhz ja entweder mit 50% cpu
> auslastung
> Mp3 decodieren oder soundkarten müssten 100Mhz proz. haben. Außerdem
> glaube ich nicht das die mp3 chips mit 100 Mhz laufen!?!

Mein Pentium1 mit 90MHz wurde durch die MP3s so zu etwa 60% ausgelastet 
und auf dem 486/100MHz meines Bruders lief Winamp nur dann halbwegs, 
wenn man die Ausgabequalität auf 22kHz/Mono gestellt hat.

Das war wahrscheinlich in Floating Point implementiert, mit 
Fixpoint-Arithmetik wäre das sicher schneller gelaufen.

Markus

von Sam .. (sam1994)


Lesenswert?

Mann, ich bin programmierer!

Die Prozessoren sollen sich verständigen könne und der Rest wird 
programmtechnisch geregelt. Das kann ich auch deutlich besser.

Ich weiß das die Idee ein bisschen groß ist, aber ich will es ja 
schrittweise machen:

1. SD kartenleser/schreiber
2. Mp3 Player
3. Email/webserver
4. Mp3 streamer
5. Internetradio (ist ja fast das gleiche)
6. Download

Vielleicht vertausch ich ein paar schritte, aber am Ende muss der Mp3 
Player vor dem anderen kommen.

Kompliziert???

Nein eigentlich nicht.

Netzwerk Platine, Hauptatmega, Audiochip/atmega
Wenn die sich verstehen, dann ist es nur noch programmierung!

von Mark B. (markbrandis)


Lesenswert?

> wenn man die Ausgabequalität auf 22kHz/Mono gestellt hat.

Klar, man kann auch auf 8 Bit Mono bei 11 kHz Abtastrate oder noch 
weniger gehen... vielleicht kriegt man dann sogar was hin. Nur klingt 
das dann wie Hund ;-)

von Sam .. (sam1994)


Lesenswert?

Mark Brandis schrieb:
> Samuel K. schrieb:
>> 2. Kann mir jmd sagen warum man einen 16 bit prozessor braucht?
>
> Die vorliegenden Daten haben eine Wortbreite von 16 Bit. Man kann solche
> Datenwörter natürlich auch mit einem 8-Bit-Prozessor verarbeiten. Dir
> ist aber schon klar, um wieviel das den Rechenaufwand erhöht wenn ich in
> mehreren Schritten 8-Bit-Worte verwursteln muss als wenn ich mit einem
> einzigen Zugriff 16 Bit vom Speicher in ein Register des
> Mikrocontrollers lade?

Wenn ich das richtig weiß, braucht man nur für stereo 16 bit
Mono ist doch 8 bit.

Und eigentlich brauche ich für so was kein stereo. Ich mach doch kein 
Dolby-Suround Kino!!!
Dafür gibt es Soundkarten!

von Martin (Gast)


Lesenswert?

Es würde mich interessieren welche Ressourcen ein MP3-Dekoder, sagen wir 
bei 128 KBit/s mono bzw. Stereo, so benötigt (z. B. CPU-Leistung, RAM). 
Gibt es eine Seite, wo dies ausführlich dargelegt wird?

von Markus K. (markus-)


Lesenswert?

Samuel K. schrieb:

> Wenn ich das richtig weiß, braucht man nur für stereo 16 bit
> Mono ist doch 8 bit.

Nein. Das hat nichts mit Mono oder Stereo zu tun.

Du kannst die Ausgabe natürlich in 8Bit machen, auch 8Bit Stereo oder 
was-auch-immer. Kommt einfach auf Deine Qualitätsansprüche an.

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

Für das dekodieren in Software braucht man mindestens einen PC (32bit !) 
mit 300MHz (wenn noch ein Betriebssystem drauf läuft). Selbst der 
Prozessor des Bifferboard (486er; 150MHz) mit Minimallinux schafft (hat 
aber auch keinen mathematischen Coprozessor) das nicht.

Für Webradio brauchst Du dann noch einen genügend größen Ringbuffer mit 
getrennen Schreib- und Lesezeiger (Buffer). Denn die Daten aus dem Netz 
tröpfel nur so rein. Der Dekoder braucht aber einen kontinuerlichen 
Datenstrom. Das könntest Du ggf mit dem AVR machen.

von Ben _. (burning_silicon)


Lesenswert?

also ich hab das damals getestet, als ich aus einem alten pentium-1 
einen auto-PC basteln wollte. diese kiste mußte mit mindestens 100 Mhz 
laufen und erreichte selbst dann 90% CPU-last beim abspielen von 
VBR-codierten stereo-MP3.

mit einem 8bit atmega dekodieren keine chance also. daß er die 
versorgung eines externen dekoders mit daten aus einem flash oder so 
schafft kann ich mir aber durchaus vorstellen.

von Mark B. (markbrandis)


Lesenswert?

Samuel K. schrieb:
> Wenn ich das richtig weiß, braucht man nur für stereo 16 bit
> Mono ist doch 8 bit.

Nein, eben nicht. Du schätzt den Aufwand damit von vornherein falsch 
ein. So wird das nichts.

> Und eigentlich brauche ich für so was kein stereo. Ich mach doch kein
> Dolby-Suround Kino!!!
> Dafür gibt es Soundkarten!

Dann mach halt Mono. Aber beschwer Dich nicht, wenn Du alle Deine 
vorhandenen MP3-Dateien vorher erstmal von Stereo nach Mono konvertieren 
musst. Viel Spaß :-) (Tipp: Einen Batch-Job über Nacht laufen lassen)

von Sam .. (sam1994)


Lesenswert?

Könnt ihr mal mir dem Ram gerede aufhören, ich sags nur noch einmal 
www.ramtron.com

Trotzdem, wie groß muss der Ringbuffer denn sein?

von Benedikt K. (benedikt)


Lesenswert?

Martin schrieb:
> Es würde mich interessieren welche Ressourcen ein MP3-Dekoder, sagen wir
> bei 128 KBit/s mono bzw. Stereo, so benötigt (z. B. CPU-Leistung, RAM).

Wie weiter oben schon geschrieben: Man benötigt ein paar 10kByte RAM 
(ein Block des komprimierten Signals ist max 1152 Samples lang. Für 
16bit Stereo benötigt man dafür alleine schon 4,6kByte nur um die Daten 
wieder zusammenzusetzen. Voher muss man die komprimierten Daten aber 
erstmal entpacken.) Man kann hier etwas zwischen RAM und CPU 
Geschwindigkeit variieren. Der VS1053 hat afaik um die 50kByte SRAM.
Die CPU Leistung kann man nur schwer angeben, da diese stark von der CPU 
abhängt: Ein VS10xx der speziell dafür gebaut wurde, schafft das mit 
<20MHz, ein dsPIC ist mit seinen 40MHz an der Grenze, ein ARM7 schafft 
das auch mit 70MHz, ein 8bit µC würde ich auf >100MHz schätzen.

von Sam .. (sam1994)


Lesenswert?

Was verheimlicht iht mir denn die ganze Zeit:

http://www.mikrocontroller.net/articles/MP3

27Mhz für Mp3 dekodieren.
30-40kb ram.

evtl. müssten das 2 Atmegas schaffen.

Ich lehne den Dekodierchip ab, weil ich 15€ dafür zuviel finde (Chip + 
Versand mitrechnen).

von Martin (Gast)


Lesenswert?

Das Gute liegt - wie oft - so nah!


P. S. 2 ATMegas != AT91SAM7S256

von Sam .. (sam1994)


Lesenswert?

Benedikt K. schrieb:
> 16bit Stereo

Wie oft noch MONO!!!

Das ist nicht so aufwändig!

von Sam .. (sam1994)


Lesenswert?

Martin schrieb:
> Das Gute liegt - wie oft - so nah!
>
>
> P. S. 2 ATMegas != AT91SAM7S256

stimmt:

Dekoder Stereo != Dekoder Mono

von Markus K. (markus-)


Lesenswert?

Martin schrieb:
> Es würde mich interessieren welche Ressourcen ein MP3-Dekoder, sagen wir
> bei 128 KBit/s mono bzw. Stereo, so benötigt (z. B. CPU-Leistung, RAM).
> Gibt es eine Seite, wo dies ausführlich dargelegt wird?

Das würde mich auch interessieren.

Die nötige CPU-Leistung scheint direkt von der Datenrate abzuhängen.

Hier
http://www.mikrocontroller.net/articles/ARM-MP3-Player
steht, dass ein 55MHz ARM7 195kbit/s VBR problemlos abspielt, es steht 
aber nicht drin, ob er auch mehr schaffen würde.

von Justus S. (jussa)


Lesenswert?

Samuel K. schrieb:
> Was verheimlicht iht mir denn die ganze Zeit:
>
> http://www.mikrocontroller.net/articles/MP3
>
> 27Mhz für Mp3 dekodieren.
> 30-40kb ram.
>
> evtl. müssten das 2 Atmegas schaffen.
>
> Ich lehne den Dekodierchip ab, weil ich 15€ dafür zuviel finde (Chip +
> Versand mitrechnen).

du bist echt der Kracher...ich krieg mich gar nicht mehr ein vor Lachen 
:cD

von Martin (Gast)


Lesenswert?

... der Kracher ...

Der will uns auf den Arm nehmen.

von Sam .. (sam1994)


Lesenswert?

Mark Brandis schrieb:
> Samuel K. schrieb:
>> Wenn ich das richtig weiß, braucht man nur für stereo 16 bit
>> Mono ist doch 8 bit.
>
> Nein, eben nicht. Du schätzt den Aufwand damit von vornherein falsch
> ein. So wird das nichts.
Also das mit den bit sachen hab ich in einem Buch gelesen.
>
>> Und eigentlich brauche ich für so was kein stereo. Ich mach doch kein
>> Dolby-Suround Kino!!!
>> Dafür gibt es Soundkarten!
>
> Dann mach halt Mono. Aber beschwer Dich nicht, wenn Du alle Deine
> vorhandenen MP3-Dateien vorher erstmal von Stereo nach Mono konvertieren
> musst. Viel Spaß :-) (Tipp: Einen Batch-Job über Nacht laufen lassen)

Wenn man Stereo Mp3 nur das Mono dekodiert hat man nicht so viel arbeit.

Außerdem mach ich das Projekt aus Spaß und bin nicht in irgendeiner 
Firma, ich möchte nicht extrem viel Geld ausgeben, sondern lieber ein 
System mit prozessoren machen und dann eine Software dafür zu 
prorammieren!

von Sam .. (sam1994)


Lesenswert?

Martin schrieb:
> ... der Kracher ...
>
> Der will uns auf den Arm nehmen.

OK, War vielleicht ein bisschen zu voreilig

von Justus S. (jussa)


Lesenswert?

Martin schrieb:
> ... der Kracher ...
>
> Der will uns auf den Arm nehmen.

mal schauen wan er behauptet, dass das doch auch mit ein paar 
Transistoren und einem NE555 gehen muss, wenn er nur die Software 
richtig programmiert...

von Sam .. (sam1994)


Lesenswert?

Der Artikel war als ich meinen geschrieben habe noch nicht da!

von Sam .. (sam1994)


Lesenswert?

Justus Skorps schrieb:
> Martin schrieb:
>> ... der Kracher ...
>>
>> Der will uns auf den Arm nehmen.
>
> mal schauen wan er behauptet, dass das doch auch mit ein paar
> Transistoren und einem NE555 gehen muss, wenn er nur die Software
> richtig programmiert...

Zeig mir wie man einen NE555 programmiert und ich behaupte es vielleicht

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

Wer schreit, hat unrecht!

Die Dekodierung eines MP3 (du sprichst von Webradio) ist unabhängig von 
der Ausgabebitbreite. Auch wird wohl kein Streamingserver extra für Dich 
eine kleine Datenrate mit nur 8bit Mono anbieten.

> http://www.mikrocontroller.net/articles/MP3
>
> 27Mhz für Mp3 dekodieren.
Wo steht das? Wieso schafft mein 150MHz 486er (32bit) das nicht? Ram hat 
der genug. Eigentlich auch genügend MHz (jedenfalls mehr als 27MHz oder 
mit Deiner Logik 2x27 = 54MHz).

Aber wenn Du meinst, Du bekommst das hin, mach doch einfach.

von Sam .. (sam1994)


Lesenswert?

Genau deswegen frag ich euch! Ich weiß es ja nicht. Und bevor ich alles 
noch mal neu löten kann, tue ich das lieber.

Kann mir jmd sagen w man so ein chip kaufen kann?

von Michael Sauron (Gast)


Lesenswert?

Samuel K. schrieb:
> Könnt ihr mal mir dem Ram gerede aufhören, ich sags nur noch einmal
> www.ramtron.com

Dir ist schon klar, das Die Serielle Schnittstelle ein echter 
Flaschenhals ist ?

von Martin (Gast)


Lesenswert?

... 27Mhz für Mp3 dekodieren ...

Abgeleitet aus dieser Aussage:

"MP3 lässt sich schon auf kleinen ARM-Controllern in Software 
dekodieren. Das Helix Datatype-Projekt stellt einen MP3-Decoder mit 
optimierten ARM-Assemblerroutinen als Open Source zur Verfügung. Ein 
AT91SAM7 (ARM7TDMI) mit 55 MHz ist damit ungefähr zur Hälfte 
ausgelastet, der RAM-Bedarf liegt bei ca. 30-40 kB"

von Sam .. (sam1994)


Lesenswert?

achso, die geschwindigkeit. Ich habe halt gedacht die kann man am besten 
an den Atmega anschließen.

Aber mit dekoder brauch ich die doch nicht mehr!

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

Samuel K. schrieb:
> achso, die geschwindigkeit. Ich habe halt gedacht die kann man am besten
> an den Atmega anschließen.
>
> Aber mit dekoder brauch ich die doch nicht mehr!

Hat der einen Buffer, der groß genug ist, mehrere Sekunden Netzstörungen 
auszugleichen?

von Sam .. (sam1994)


Lesenswert?

mit SPI müsste es doch schneller sein.

von Sam .. (sam1994)


Lesenswert?

4 KB reichen warscheinlich nicht.

Aber das kommt doch nicht so oft vor.

Wo kauft man so ein Dekoder Chip!!!

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

128kBit/Sekunde = 16kByte/Sekunde

von Sam .. (sam1994)


Lesenswert?

Christian H. schrieb:
> 128kBit/Sekunde = 16kByte/Sekunde

Ein stream muss man doch die ganze zeit empfangen, da kommen doch nicht 
die daten schon vorraus, oder lieg ich da falsch.

von Max (Gast)


Lesenswert?

>Zeig mir wie man einen NE555 programmiert und ich behaupte es vielleicht

Der Wahnsinn!!! :-)))))))))))

von Sam .. (sam1994)


Lesenswert?

Wenn ich schon so ein chip kaufen muss empfehlt mir doch mal einen der 
mehr als mp3 decoden kann und nicht so kompliziert ist (28 pins naja 12 
reichen doch auch).

von mp3-guru (Gast)


Lesenswert?

@ Samuel K.
Ich finde, Du solltest Dich von all den Schwarzmalern
hier nicht verunsichern lassen.
Dein Lösungsansatz klingt gut.
Statt FRAM bietet sich mittlerweile auch SPI-RAM an.
Da gibt es richtig fette Chips mit 32 kB (23K256).
Und mit dem ATmega1284 der kompatibel zum 644er ist
bekommst Du sogar 16 kB RAM in der CPU. Das reicht
dann auch locker für die Ergänzungen wie SD-Flash usw.
Lass' Dich nicht ausbremsen!
Einfach anpacken und später das Ergebnis präsentieren!

von Gast (Gast)


Lesenswert?


von Martin (Gast)


Lesenswert?

... mp3-guru ...

Mal unter uns Pastorentöchtern: hast du jemals eine LED mit einem 
Controller an- bzw. ausgeschaltet? Ist nur so eine Frage, da ich den 
Eindruck habe, daß du einen kleinen Jungen in Wald schicken willst, aus 
dem der nicht mehr herausfindet - du Guru.

von Robert T. (robertteufel)


Lesenswert?

@Samuel,
du hast nach Hilfe gefragt. Fast alle sagen Dir, der ATMega ist einfach 
der falsche Prozessor, das sollte die Hilfe sein nach der Du gefragt 
hast!

@MP3-Guru
Ich kann mich auch nicht des Eindruckes erwehren, dass Du vielleicht 
weisst wo man einen Ripper oder andere MP3 Produkte online findet aber 
hast Du wirklich eine Ahnung von der Dekodierung? Alle Infos, die ich 
hab sprechen auch von 32-bit MCUs weil die Daten eben nicht nur 8-bit 
breit sind.

Wenn Samuel denkt er muss es versuchen, viel "Spass".

Robert

von bix (Gast)


Lesenswert?

mp3-guru schrieb:
>@ Samuel K.
>Ich finde, Du solltest Dich von all den Schwarzmalern
>hier nicht verunsichern lassen.
>Dein Lösungsansatz klingt gut.

Dem schließe ich mich an.

Lass Dich von den Miesmachern nicht verunsichern. Ich glaube, dass Du es 
schaffen kannst. Diese Schlussfolgerung ist ja schon genial:

Samuel K. schrieb:
>Wenn ich das richtig weiß, braucht man nur für stereo 16 bit
>Mono ist doch 8 bit.

... und Mono reicht ja auch.

Falls Du Stereo willst, nimmst Du einfach zwei ATMegas. 2*8 Bit macht ja 
dann 16 Bit.

Du könntest zum testen auch erstmal den MP3 Datenstrom ohne Dekodierung 
ausgeben. Also einfach jedes Byte per PWM auf die Stereoanlage hauen.

Das klingt dann zwar noch nicht so wie es soll, aber der Rest ist dann 
nur noch Software. ;-)

Gruß bix

von mp3-guru (Gast)


Lesenswert?

wieso sollte das nicht gehen?
nur weil hier alle meinen es würde nicht gehen,
ohne das selbst überhaupt erst einmal probiert zu haben?

erst einmal MONO mit einem ATmega angehen
und wenn das dann läuft, kann man immer noch für
STEREO einen zweiten ATmega dazu schalten.

für MP4 käme dann ein upgrade auf ATXmega in Frage.

von Hc Z. (mizch)


Lesenswert?

mp3-guru schrieb:

> erst einmal MONO mit einem ATmega angehen
> und wenn das dann läuft, kann man immer noch für
> STEREO einen zweiten ATmega dazu schalten.

Finde ich auch.  Wenn ein Pferd nicht den Baum rauf will, nehmen wir 
halt zwei.

Lauter Miesmacher hier.

von Frank B. (frank_boe)


Lesenswert?

Ja, zwei Bäume sind besser. ;-)

von holger (Gast)


Lesenswert?

>Finde ich auch.  Wenn ein Pferd nicht den Baum rauf will, nehmen wir
>halt zwei.

Die können dann aber immer noch nicht klettern
und stehen nur dumm rum;)

von krishna (Gast)


Lesenswert?

Hm, hat mal jemand versucht, einem billig-mp3player eine sd-karte 
vorzugaukeln ? Quasi mit unendlichgroßer Datei..das wäre dann der 
Stream.

von Benedikt K. (benedikt)


Lesenswert?

krishna schrieb:
> Hm, hat mal jemand versucht, einem billig-mp3player eine sd-karte
> vorzugaukeln ?

Das dürfte schwer sein, denn diese verwenden meist das 4bit Interface 
bei der SD Karte, für das es die Specs nur gegen viel Geld gibt.

von holger (Gast)


Lesenswert?


von Mark B. (markbrandis)


Lesenswert?

Hazeh Zimmerer schrieb:
> Finde ich auch.  Wenn ein Pferd nicht den Baum rauf will, nehmen wir
> halt zwei.

Der ist gut, den muss ich mir merken :)

von krishna (Gast)


Lesenswert?

>Das dürfte schwer sein, denn diese verwenden meist das 4bit Interface
>bei der SD Karte, für das es die Specs nur gegen viel Geld gibt.

Dann guck mal hier im Forum...

Beitrag "Sd-Card endlich im 4-Bit-Mode! -> Init  Read  Write"

von Benedikt K. (benedikt)


Lesenswert?

Ja, das kenne ich. Vermutlich fehlen aber dennoch etliche Befehle oder 
sonstigen Infos, denn das komplette Simulieren einer SD Karte ist etwas 
umfangreicher als nur das Lesen und Beschreiben einer SD Karte.

von krishna (Gast)


Lesenswert?

Ich deke, das läßt sich herausfinden.
Ein Player wird nicht die gesamt Spec ausnutzen, sondern nur so einfach 
wie möglich an die abzspielenden Dateien kommen wollen.

Man nimmt eine frisch formatierte SD-Karte mit einer einzigen MP3-Datei.

Dann belauscht man die Kommunikation des Players mit der Karte bis zum 
"Play" und schneidet sie mit.

Im Prinzip braucht man also nur genau die Daten in der Reihenfolge 
"Abzuspielen" wie das bei der echten Karte auch passiert.
Dafür müssen die Kommandos nichtmal interpretiert werden. Wozu auch.

Erst an der Stelle, wo das Abspielen beginnt, gibt man dann "echte" MP3 
Daten aus.

Könnte das nicht funktionieren ?

von Benedikt K. (benedikt)


Lesenswert?

Ok, wenn das nur speziell für einen Player sein soll, dann könnte das 
funktionieren. Ich dachte an eine universell funktionierende Lösung.
Wobei ein V10xx aber vermutlich die einfachere Lösung sein dürfte, da 
dieser schon von sich aus den Streaming mode unterstützt.

von krishna (Gast)


Lesenswert?

Das ist natürlich korrekt; universell wäre das nicht.
Außer man modifiziert das ganze dahingehend, daß man die Karte sogar im 
System belässt, und bei Abspielbeginn einfach vom Bus abklemmt und 
eigene Daten einspielt.. ich glaube das wäre an Einfachheit nicht zu 
schlagen.

Jetzt bin ich selbst neugierig geworden.. ich glaube, das probiere ich 
mal aus.. :-)

von gast (Gast)


Lesenswert?

immer die trolle füttern ^^

mahlzeit

von Thomas B. (escamoteur)


Lesenswert?

@Samuel: Sorry aber anscheinend hast Du von Prozessorarchitektur und MP3 
überhaupt keine Ahnung.

Das ein ARM so was schafft liegt vor allem daran, dass das ein 32-Bitter 
RISC ist. Schon mal was von Pipelining bei nem ARV gehört? Ein ARM 
schafft nen 32Bit befehl pro Takt, vei gut gefüllter Pipe sogar mehr.

MP3 zu decodieren ist auch mehr als

Komprimierung -> zusammenfügen der einzelnen Kanäle -> fertig.

Ohne FPU wenn möglich mit DSP befehlen wird so was schnarch langsam oder 
denkst Du all die Programmierer die MP3 in Software auf nem PC gelöst 
haben waren so doof dass es erst ab nem 486 mit 100Mhz losging?

Glaub einfach mal den Leuten die Dir geantwortet haben, die wissen was 
ein AVR kann und was nicht.

Den Harwaredecoder bekommst Du übrigens hier

http://www.vlsi.fi/en/buy.html

Gruß Tom

von Phil S. (zippi)


Lesenswert?

Hi Samuel K.

Ich würde dir erstmal raten mit Wav anzufangen. Also schaltung bauen mit 
SD karte DAC und prozessor.

Und wenn das erst einmal Richtig funktioniert, dann kannst du dir mal 
gedanken über MP3 machen.

Ich selber habe auch den Helix mp3 decoder auf einem AVR32 laufen. Und 
der braucht für (Stereo 16bit 320kbit/s) gut 30Mhz.

gruß

von gast (Gast)


Lesenswert?

er wird glaueb nicht versuchen ..

da er nichtmal die hardware kapiert ... wirds mit software ganz düster 
aussehen

von krishna (Gast)


Lesenswert?

Die Menüs und der Einschaltbildschirm sind doch bestimmt schon fertig.
Jetzt fehlen nur noch die 10% Rest.

von gast (Gast)


Lesenswert?

ich vermute WENN
isses maximal ein startbildschirm der was mit MP3 zeigt ^^
dann ein 2ter nach einem _delay der copyrights zeigt ...
dann noch einer welche SW version das ding hat
und wann kommt eine ganz wichtige while(1) ^^

wie schön der der µC genau 0% der funktionen erfüllt ^^

von gast1 (Gast)


Lesenswert?

Samuel:

ich hab genau das projekt gerade hinter mir...(guckst du "zeigt hier 
eure kustwerke)
ok ich benutz nen pic32 der koennte es locker schaffen das im chip zu 
decoden... hab mich auch bisschen umgesehen nach sourcen... gibt 
durchaus performante die so um die 20-30 kb speicher brauchen... die 
auch mit fixed point arbeiten...

aber ich habs dann doch mit nem chip gemacht... kauf dir bei ebay 
einfach nen sp 504 mp3 player (ist blau) von pontis (den gibts haeufiger 
mal den gibts schon fuer 1 euro + versand...) dort ist ein mas 3507d f10 
(ist qfp44) drin...
ansonsten gibts noch den sp 501 (ist schwarz) da ist auch ein mas 3507d 
d8 drin... der ist aber plcc44...
kann man auch lautstaerke und klang regeln und du hast gleich nen dac 
dabei... ;) also dach ist dort ein cs 4331 drin oder so...

aber kein sp 600 von pontis kaufen ! da ist nen kein decoder chip mehr 
drin...

lg ;)

von krishna (Gast)


Lesenswert?


von gast (Gast)


Lesenswert?

das wäre dem TE zu teuer
er hat doch einige AVRs liegen ...


für 30€ gibts doch fertige MP3 und billige china NetStream geräte

von gast (Gast)


Lesenswert?

Meine Güte... Hab gerade nen Lachkrampf bekommen als ich diesen Thread 
gelesen hab.
Und daher in kürze:

THE BEST OF SAMUEL K.

seriell ist doch einfacher, weil er
weniger pins hat,oder?)?


Ich hätte noch einen Atmega644.
Der ist doch 16 bit?


Wieviel kostet den ein externer Decoder. Außerdem: der
Resourcenverbrauch ist nicht schlimm, ich hab mehrere Atmgeas noch
zuhause, um andere Sachen zu erledigen (der 644 kann ruhig fast
ausgelastet sein).


Ich finde ich habe schon genügend Geld für Atmegas Platinen...
ausgegeben.


So weit ich mp3 verstanden habe:
Komprimierung -> zusammenfügen der einzelnen Kanäle -> fertig.


Das will ich machen. Am Ende soll das Gerät, Mp3 herunterladen können,
abspielen, streamen, als internetradio dienen...


Ich habe noch folgende Atmgegas: 2x 16-8, 2x 64, 2x644 (die beiden
erwähnten), 1x 16-8 mit leicht verbogenen Beinchen (vielleicht auch
defekt, muss ich mal testen).


Mp3 Player kann nicht ins Internet gehen, außerdem kann ich immer was
neues zu meinem Player dazubauen, Display kommt übrigens auch dran
132x32


Mann, ich bin programmierer!
Die Prozessoren sollen sich verständigen könne und der Rest wird
programmtechnisch geregelt. Das kann ich auch deutlich besser.
Kompliziert???
Nein eigentlich nicht.
Netzwerk Platine, Hauptatmega, Audiochip/atmega
Wenn die sich verstehen, dann ist es nur noch programmierung!


Wenn ich das richtig weiß, braucht man nur für stereo 16 bit
Mono ist doch 8 bit.


Könnt ihr mal mir dem Ram gerede aufhören, ich sags nur noch einmal
www.ramtron.com


Ich lehne den Dekodierchip ab, weil ich 15€ dafür zuviel finde (Chip +
Versand mitrechnen).


Außerdem mach ich das Projekt aus Spaß und bin nicht in irgendeiner
Firma, ich möchte nicht extrem viel Geld ausgeben, sondern lieber ein
System mit prozessoren machen und dann eine Software dafür zu
prorammieren!


> mal schauen wan er behauptet, dass das doch auch mit ein paar
> Transistoren und einem NE555 gehen muss, wenn er nur die Software
> richtig programmiert...
Zeig mir wie man einen NE555 programmiert und ich behaupte es vielleicht


Genau deswegen frag ich euch! Ich weiß es ja nicht. Und bevor ich alles
noch mal neu löten kann, tue ich das lieber.


Wenn ich schon so ein chip kaufen muss empfehlt mir doch mal einen der
mehr als mp3 decoden kann und nicht so kompliziert ist (28 pins naja 12
reichen doch auch).



GRÖÖHL!!!

von gast (Gast)


Lesenswert?

und das vor dem ersten kaffee.

danke ! das hat mir den tag gerettet :)

von gast (Gast)


Lesenswert?

ich habs eben nochma gelesen. jeder deiner saetze zeigt das du in der 
thematik nicht wirklich drin bist.

lies doch erstmal ein wenig wenn du nicht mal weisst ob ein proz 8 oder 
16 bit ist sehe ich da einen herben rueckschlag. der deutlich teurer 
wird als 15 euro.
bau doch erstmal ein wechselblinker mit leds und dann stueck fuer stueck 
weiter.

natuerlich ist es gut sich hohe ziele zu setzen nur das hoert sich 
bisschen zu hoch an. und wird dich mit sicherheit frustrieren. nur 
programmieren koennen reicht da halt nicht.

wenns ne verarschung war. glueckwunsch voll gelungen ;)

von gast (Gast)


Lesenswert?

>>Netzwerk Platine, Hauptatmega, Audiochip/atmega
>>Wenn die sich verstehen, dann ist es nur noch programmierung!

 xD

von 2345 (Gast)


Lesenswert?

>für 30€ gibts doch fertige MP3 und billige china NetStream geräte

die zeig mir mal

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Samuel K. schrieb:
> Mann, ich bin programmierer!

Na das is ja mal suess ;)

> Ich weiß das die Idee ein bisschen groß ist, aber ich will es ja
> schrittweise machen:
>
> 1. SD kartenleser/schreiber
> 2. Mp3 Player
> 3. Email/webserver
> 4. Mp3 streamer
> 5. Internetradio (ist ja fast das gleiche)
> 6. Download
>
> Vielleicht vertausch ich ein paar schritte, aber am Ende muss der Mp3
> Player vor dem anderen kommen.
>
> Kompliziert???

Sagen wir es so: Zu kompliziert fuer Dich, sonst wuerdest Du die Frage 
nicht stellen und...

>
> Nein eigentlich nicht.

Schon gar nicht so beantworten.
Ich nehme an den kompletten TCP-Stack willst auch noch selber schreiben, 
was? Hehe oO"

> Netzwerk Platine, Hauptatmega, Audiochip/atmega
> Wenn die sich verstehen, dann ist es nur noch programmierung!

An alle: OK OK OK der Thread is wirklich unterhaltsam, aber ganz so 
schlimm fuettern braucht Ihr den Sami jetzt auch nich *g

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Martin schrieb:
> Es würde mich interessieren welche Ressourcen ein MP3-Dekoder, sagen wir
> bei 128 KBit/s mono bzw. Stereo, so benötigt (z. B. CPU-Leistung, RAM).
> Gibt es eine Seite, wo dies ausführlich dargelegt wird?

Von mpg123 weiss ich, dass er auf nem 386 laeuft, hab ich selber erlebt, 
ich nehme an 30MHz, RAM das uebliche bei so nem Geraet. Aber das war mit 
Sicherheit ein 386DX ;)

Fuer solche, die es wirklich interessiert: Das aufwaendige am MP3 ist 
das Berechnen der Fourier-Reihen. Aber fragt mal den Sami, der kennt 
sich damit ja bestens aus hehe :D

von Markus K. (markus-)


Lesenswert?

Michael G. schrieb:
> Fuer solche, die es wirklich interessiert: Das aufwaendige am MP3 ist
> das Berechnen der Fourier-Reihen.

Mich interessiert das. Man findet aber kaum detailierte Infos zu MP3, 
meist wird das nur sehr oberflächlich erklärt. Dass man den ISO-Standard 
kaufen kann ist mir bekannt, aber wenn man schon so eine 
Super-Spar-Lösung implementiert, dann will man ja wohl kaum noch 
ordentlich Geld für den Standard ausgeben.

Wenn man die Ausgaberate runtersetzt (z.B. von 44kHz auf 11kHz), dann 
sollte auch die notwendige Rechenleistung runtergehen, weil man dann ja 
entsprechend weniger trigonometrische Funktionen braucht. Das wäre dann 
bei einem ARM7 statt 26MHz nur noch 6,5MHz.

Dann noch Mono statt Stereo, macht 4MHz. Das ist für einen 20MHz AVR 
schon viel realistischer. Da müsste man dann genauer wissen, welche 
Rechenoperationen denn gebraucht werden. Wenn man die Ausgabe von 16Bit 
auf 8Bit verringert, dann spart ein ARM zwar nichts mehr, aber bei einem 
AVR halbiert sich der Aufwand an einigen Stellen.

Ich halte es nicht für völlig ausgeschlossen, dass es mit einigen 
Kompromissen möglich ist, auf einem AVR MP3s abzuspielen.

von fragender (Gast)


Lesenswert?

Ja, könnte klappen, aber was soll das ?
Miese Qualität und ein Mörderaufwand.

Und das, um 10 EUR für einen ARM oder noch besser einen Decoderchip zu 
sparen ?!?

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Vorallem muß man es ja auch so sehen: Entweder das wird nen sehr fetter 
AVR (=teuer und schwer zu löten) oder man braucht noch eine Menge 
Zusatzchips (RAM/ROM). Alleine die Tabellen für die Huffmandecodierung 
brauchen 70kb.
Wenn man die IDCT auslagern würde (z.B. auf einen kleinen FPGA/CPLD) 
könnte es klappen würde aber leztendlich nicht wirklich "günstiger".

Der Vorteil das man "alles in einem Chip" hat wäre dann ja eh dahin und 
preislich kann man da echt nix sparen.

Eine gute Anleitung für MP3 decoding findet sich hier:
http://blog.bjrn.se/2008/10/lets-build-mp3-decoder.html
Das könnte man erstmal in C umsetzen und dann versuchen das auf einen uC 
zu bringen aber wie gesagt die Aussichten sind schlecht das das 
vernünftig läuft.

von Hans (Gast)


Lesenswert?

Dass der Junge keine Ahnung hat von dem was er tut ist offensichtlich. 
Dass da jeder Depp aber noch drauf rumreiten muss finde ich eine bloße 
Unverschämheit. Aber dadurch zeichnet sich dieses Forum ja aus! Jeder 
Depp will seinen Senf dazugeben und zieht alles ins Lächerliche, keinem 
ist geholfen. Toll!

von Thomas B. (escamoteur)


Lesenswert?

@Hans: Na prima, mit diesem post bist Du ja auch VIEL besser. Wenn Dich 
der thread nervt, leis ihn einfach nicht.

In der zwischenzeit unterhalten sich hier ja auch ein paar ernsthaft, 
wie es doch gehen könnte.

Die Forumsmitglieder zu beschimpfen ist auch völlig unnötig. Ich kenne 
kein Forum, in dem einem so schnell und bereitwillig geholfen wird. Also 
gib Du besser nicht solchen Senf von Dir!

Gruß
Tom

von Hans (Gast)


Lesenswert?

Klar, mein Post macht es nicht besser, aber ich muss mir auch mal Luft 
verschaffen, wenn ich sowas lese.
Das stimmt, es wird einem hier schnell geholfen, es gibt auch viele sehr 
kompetente Leute hier. Nur wenn ich mir den langen Beitrag von  Gast 
ansehe, und es explizit nochmal aufgeführt wird, welche Fehltritte sich 
Samuel K erlaubt hat, und sich dann darüber lustig zu machen, finde ich 
völlig unangemessen.
Ich will das jetzt hier auch nicht in epischer Breite diskutieren, hier 
sind ja paar am Werk die dem Thread noch was gutes tun wollen.

Gruß
Hans

von Hans (Gast)


Lesenswert?

Aso:

ich hatte mir mal ein Buch zur MP3 Dekodierung an der Uni Bib 
ausgeliehen:

Understanding MP3  : syntax, semantics, mathematics, and algorithms

Verfasser: Ruckert, Martin
Ort, Verlag, Jahr: Wiesbaden, Vieweg, 2005
Serie/Reihe und Band: Vieweg IT
Sprache: Englisch

War eigentlich nicht schlecht, teilweise mit C Code etc.

Gruß
Hans

von Markus K. (markus-)


Lesenswert?

fragender schrieb:
> Ja, könnte klappen, aber was soll das ?
> Miese Qualität und ein Mörderaufwand.

Muss es denn sinnvoll sein? Die Hälfte der Selbstbauten hier kann man 
für weniger Geld fertig kaufen.

> Und das, um 10 EUR für einen ARM oder noch besser einen Decoderchip zu
> sparen ?!?

Man könnte sich SMD sparen. Abgesehen davon finde ich es pervers, einen 
Decoderchip mit einem AVR anzusteuern, da der Decoder ja viel mehr Power 
als der AVR hat.

@Läubi:
Danke für den Link. Sowas hab ich gesucht.
FPGA halte ich auch nicht für sinnvoll, da könnte man ja genausogut 
einen DSP oder ARM nehmen. Ich hätte eher an 2x Mega644P gedacht.

Dass die Huffman-Tabellen wirklich 70KB brauchen bezweifel ich mal. Das 
steht zwar in dem Artikel drin, aber diese Implementierungen für ARM 
brauchen deutlich weniger Speicher. Das wäre meiner Meinung nach sowieso 
der erfolgversprechenste Ansatz: Man nimmt den ARM-Code und strippt ihn 
weiter runter.

@Hans:
Danke für den Hinweis, hab ich mir mal notiert.

von Benedikt K. (benedikt)


Lesenswert?

Markus Kaufmann schrieb:

> Dass die Huffman-Tabellen wirklich 70KB brauchen bezweifel ich mal. Das
> steht zwar in dem Artikel drin, aber diese Implementierungen für ARM
> brauchen deutlich weniger Speicher.

Vermutlich gibt es verschiedene Implementierungen und 70kByte ist die, 
die am meisten Speicher braucht.
Die dsPIC Version des MAD mp3 Dekoders belegt etwa 11kByte im Flash mit 
Konstanten. Großteils für die Huffman Tabellen.

Wie weiter oben schonmal geschrieben, benötigt ein AVR für eine 
16x16->32 MAC Operation über 10 Takte, was ein dsPIC oder auch ein ARM 
in deutlich weniger Takten schafft. Vermutlich gewinnt man am meisten, 
wenn man die Auflösung der Samples, also die Genauigkeit des Dekoders 
etwas reduziert, indem man nur 8x8 Multiplikationen verwendet.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Markus Kaufmann schrieb:
> @Läubi:
> Danke für den Link. Sowas hab ich gesucht.
> FPGA halte ich auch nicht für sinnvoll, da könnte man ja genausogut
> einen DSP oder ARM nehmen. Ich hätte eher an 2x Mega644P gedacht.
Naja wie gesagt ich halte das ganze Vorhaben für nicht vernünftig 
umsetzbar.
Nur um sich das bischen SMD löten (den Decoder gibt es ja noch im SO 
Gehäuse) zu sparen? Ein Mega644 ist auch nicht gerade günstig und ob 
sich die Aufgabe ausreichend sinnvoll auf zwei AVR verteilen läßt ist 
auch zweifelhaft. Und man wird trozdem RAM als Zwischenspeicher 
brauchen.

Und der Unterschied zu anderen Projekten die man auch fertig kaufen kann 
ist einfach, das diese nachher zufriedenstellend laufen! Hier hat man 
ein eher schlecht als recht laufenden Decoder niedriger Qualität.

Wenn man es den gerne selber machen wäre ein Format wie ADPCM (ggf. 
danach nochmal Huffmankomprimiert mit variabler Tabelle) sehr viel 
vielversprechender als MP3.

von David .. (volatile)


Lesenswert?

Flac ;)

von attiny (Gast)


Lesenswert?

ein Mega644P ist mehr als genug. Ich habe sogar einen Mp3-Player mit 
Attiny gebastelt...

von Benedikt K. (benedikt)


Lesenswert?

attiny schrieb:
> Ich habe sogar einen Mp3-Player mit Attiny gebastelt...

Wenn du ELM chan heißen würdest, würde ich dir das sofort glaube:
http://elm-chan.org/works/sd8p/report.html

Ok, ist kein mp3 sondern "nur" ein Waveplayer, aber dennoch 
bemerkenswert.

von Malte _. (malte) Benutzerseite


Lesenswert?

Der Thread dient echt der Erheiterung...
Hat er eigentlich gesagt, dass er das Radio zeitnah hören möchte? Sonst 
könnte man ein Stück (~3 min) aus dem Stream auf ner SD Karte 
aufzeichen, dann den AVR 3 Stunden (geschätzt) lang mp3 dekodieren 
lassen und danach die dekomprimierte Variante abspielen. Mit 60 AVRs, 
könnte man dann vielleicht sogar eine unterbrechungsfreie Wiedergabe 
erreichen. ;-)

Aber mal ernsthaft:
Ich habe mir selbst einen Streaming Client mit einem AVR und externem 
Dekoder gebaut. Das war schon aufwändig genug. 512KB RAM als Buffer 
bezeichne ich für die Aufgabe als komfortabel. Dass der sich dann aber 
in "Seiten" unterteilt, hat mich schon sehr viele Nerven gekostet. 
Nächstes mal nehme ich gleich einen ARM.

von Markus K. (markus-)


Lesenswert?

Läubi .. schrieb:

> Nur um sich das bischen SMD löten (den Decoder gibt es ja noch im SO
> Gehäuse) zu sparen?

Und natürlich wegen der intellektuellen Herausforderung. So viele Leute 
die da "geht nicht" sagen...

> Ein Mega644 ist auch nicht gerade günstig und ob
> sich die Aufgabe ausreichend sinnvoll auf zwei AVR verteilen läßt ist
> auch zweifelhaft. Und man wird trozdem RAM als Zwischenspeicher
> brauchen.

Ich befürchte, das eine bedingt das andere. Viel RAM->viel Rechenpower 
nötig um das RAM zu füllen.

> Und der Unterschied zu anderen Projekten die man auch fertig kaufen kann
> ist einfach, das diese nachher zufriedenstellend laufen! Hier hat man
> ein eher schlecht als recht laufenden Decoder niedriger Qualität.

Stimmt, das wäre eher sowas wie die Webserver auf einem PIC 16F84. 
Können keine URLs auswerten und kein Ethernet (nur SLIP über RS232), 
aber man kann zeigen, dass es geht.

> Wenn man es den gerne selber machen wäre ein Format wie ADPCM (ggf.
> danach nochmal Huffmankomprimiert mit variabler Tabelle) sehr viel
> vielversprechender als MP3.

Das ist natürlich viel realistischer, aber wo sind denn da die 
Buzzwords? Bei der aktuellen Größe von SD-Karten kann man durchaus ganz 
auf die Kompression verzichten.

Markus

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Markus Kaufmann schrieb:
> Und natürlich wegen der intellektuellen Herausforderung. So viele Leute
> die da "geht nicht" sagen...
;) Klar aber wenn man sich obigen Artikel mal zu gemüte führt sieht man 
das das kein Spaßprojekt fürs Wochenende ist...

> Ich befürchte, das eine bedingt das andere. Viel RAM->viel Rechenpower
> nötig um das RAM zu füllen.
Nicht zwangsläufig. Viel Ram bedeutet auch das man vieles ggf. 
vorberechnet vorliegen haben kann.

> Das ist natürlich viel realistischer, aber wo sind denn da die
> Buzzwords? Bei der aktuellen Größe von SD-Karten kann man durchaus ganz
> auf die Kompression verzichten.
Dann muß maqn aber auch die Datenrate schaffen, was auch ein Problem 
werden kann ;)

von Gast (Gast)


Lesenswert?

>Dann muß maqn aber auch die Datenrate schaffen, was auch ein Problem
>werden kann ;)
Muss kein Problem sein.
http://elm-chan.org/works/sd8p/report.html

von Mark B. (markbrandis)


Lesenswert?

"Simple SD Audio Player with an 8-pin IC"

Schon cool, das Teil :)

von Purzel H. (hacky)


Lesenswert?

>"Simple SD Audio Player with an 8-pin IC"

Da ist SD Interface dann mir dem Stereo Audio Ausgang gemultiplext ?

von Benedikt K. (benedikt)


Lesenswert?

Nein, schau mal in der Schaltpan auf der Seite, da sieht man wie das 
angeschlossen ist:
4 Pins für die SD Karte, 2 Pins für Audio, man muss halt den Resetpin 
mitbenutzen.

von Thomas B. (escamoteur)


Lesenswert?

Elm Chan ist schon ziemlich krass oder? Auch seine anderen Projekte mit 
Tinys sind auf den ersten Blick völlig unmöglich.

Gruß
Tom

von Glaskugel (Gast)


Lesenswert?

Samuel, nicht entmutigen lassen. Die wollen nur ihre ARMs verkaufen. Das 
kann man locker mit ATmegas machen.

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.