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!
> 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.
Ich hätte noch einen Atmega644. Der ist doch 16 bit? Warum geht es nicht mit nem 8 bit?
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.
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).
Such mal nach AVR + MP3 da findest du bestimmt hunderte Seiten wo das erklärt und vorgestellt wird...
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
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.
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.
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!
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.
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.
Samuel K. schrieb: > Ich hätte noch einen Atmega644. > Der ist doch 16 bit? das wäre mir neu...
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.
Informier dich erstmal ein wenig ueber Prozessorarchitektur und Hardware-Decoding und ueberdenke dein Vorhaben dann nocheinmal....
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?
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
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!
> 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 ;-)
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!
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?
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.
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.
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.
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)
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?
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.
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).
Benedikt K. schrieb:
> 16bit Stereo
Wie oft noch MONO!!!
Das ist nicht so aufwändig!
Martin schrieb: > Das Gute liegt - wie oft - so nah! > > > P. S. 2 ATMegas != AT91SAM7S256 stimmt: Dekoder Stereo != Dekoder Mono
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.
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
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!
Martin schrieb: > ... der Kracher ... > > Der will uns auf den Arm nehmen. OK, War vielleicht ein bisschen zu voreilig
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...
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
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.
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?
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 ?
... 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"
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!
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?
4 KB reichen warscheinlich nicht. Aber das kommt doch nicht so oft vor. Wo kauft man so ein Dekoder Chip!!!
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.
>Zeig mir wie man einen NE555 programmiert und ich behaupte es vielleicht
Der Wahnsinn!!! :-)))))))))))
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).
@ 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!
... 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.
@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
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
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.
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.
>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;)
Hm, hat mal jemand versucht, einem billig-mp3player eine sd-karte vorzugaukeln ? Quasi mit unendlichgroßer Datei..das wäre dann der Stream.
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.
>Finde ich auch. Wenn ein Pferd nicht den Baum rauf will, nehmen wir >halt zwei. Sam sollte aufpassen das es ihm nicht genauso geht;) http://www.google.de/imgres?imgurl=http://www.20min.ch/images/content/1/1/7/11767708/5/1.jpg&imgrefurl=http://heerdnet.de/2009/06/16/pferd-bleibt-in-baum-stecken/&h=297&w=249&sz=23&tbnid=DKrYNcKD0KjHtM:&tbnh=116&tbnw=97&prev=/images%3Fq%3Dpferd%2Bim%2Bbaum&usg=__NgFbqRLt6zWw__8_9bptrDqDZ8I=&ei=1Kf9So3eEceO_AbhpsCVCw&sa=X&oi=image_result&resnum=8&ct=image&ved=0CCEQ9QEwBw
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 :)
>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"
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.
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 ?
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.
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.. :-)
@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
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ß
er wird glaueb nicht versuchen .. da er nichtmal die hardware kapiert ... wirds mit software ganz düster aussehen
Die Menüs und der Einschaltbildschirm sind doch bestimmt schon fertig. Jetzt fehlen nur noch die 10% Rest.
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 ^^
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 ;)
Oder sowas: http://shop.embedded-projects.net/product_info.php/info/p33_MP3-Player-Projekt--MOD-MP3-.html
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
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!!!
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 ;)
>>Netzwerk Platine, Hauptatmega, Audiochip/atmega >>Wenn die sich verstehen, dann ist es nur noch programmierung! xD
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
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
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.
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 ?!?
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.
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!
@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
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
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
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.
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.
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.
ein Mega644P ist mehr als genug. Ich habe sogar einen Mp3-Player mit Attiny gebastelt...
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.
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.
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
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 ;)
>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
>"Simple SD Audio Player with an 8-pin IC"
Da ist SD Interface dann mir dem Stereo Audio Ausgang gemultiplext ?
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.
Elm Chan ist schon ziemlich krass oder? Auch seine anderen Projekte mit Tinys sind auf den ersten Blick völlig unmöglich. Gruß Tom
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.