Hi,
bin gerade dabei einen MP3-Player mit Ethernet, USB - Connection und
SD-Karte zu designen. Das ganze soll mit zwei 8051er Controllern, einem
Ethernet-Device und dem VS1033 realisiert werden.
Suche jemand der Lust hat über meinen Schaltplan drüber zu schauen.
So wie es bisher geplant ist, werde ich mehrere (5) Leiterplatten
fertigen lassen. Drei werde ich selber behalten, die restlichen würde
ich zum Selbstkostenpreis weiterverkaufen... Steht aber noch alles in
den Sternen...
Meldet euch doch einfach hier im Forum für mehr Infos bzw. Schaltplan...
Ciao
Miu
Mich würde es auch interessiern warum du zwei 8051 verwendet hast. Bei
Ethernet und USB wäre doch ein ARM sehr interessant gewesen. Was für
8051 setzt du ein?
Hoi,
also ich habe vor von Silabs den F120 und F340.
Den F340 für USB und zwar habe ich vor das Ganze als Mass Storage Device
anzusprechen. An den Controller soll auch ein Display ran.
An den F120 soll der CP2200 Ethernet Controller, der VS1033 und ein
zusätzliches SRAM hin.
Einen ARM möchte ich nicht einsetzen, da ich keinen entsprechenden JTAG
Adapter besitze... Außerdem möchte ich die Leistungsfähigkeit des F120
testen...
>Einen ARM möchte ich nicht einsetzen, da ich keinen entsprechenden JTAG>Adapter besitze...
Das kann ja wohl kein Argument sein.
Hast Du dir mal die AT91SAM7X Serie angeschaut? Die haben USB und
Ethernet bereits implementiert.
> Das kann ja wohl kein Argument sein.
Einen einfachen Parallelportadapter ("Wiggler"-Clone) verkauft Andreas
hier in seinem Shop, einen ernstzunehmenden USB-Adapter (für OpenOCD auf
Basis des FT2232) auch.
Die Welt kosten beide nicht.
Werd mir das Ganze mit dem ARM noch mal genau durch den Kopf gehen
lassen.
Aber im Prinzip kann ich mir wenn ich den ARM7TDMI nehme, den MP3
Hardware Decoder sparen und das Software mäßig machen...
Die Stellaris LM3S6000 Serie von Luminary Micro sollte man auch noch
erwähnen. Die hat den 10/100 Ethernet MAC und PHY gleich in einem
Gehäuse. Es fehlt zwar der USB Controller, aber den kann man zur Not
noch durch einen externen erweitern.
> Aber im Prinzip kann ich mir wenn ich den ARM7TDMI nehme, den MP3> Hardware Decoder sparen und das Software mäßig machen...
Würde ich nicht machen, nimm einen Hardware Decoder und nutze die
Ressourcen des ARM lieber für alles andere.
Ein ARM wie der AT91SAM7X512 hat genug Ressourcen für MP3und alles
andere, allerdings braucht man dann statt dem VS10xx einen DAC, vom
Aufwand her wird es also auf das selbe hinauslaufen.
Also ganz ehrlich... denke nicht, dass der ARM so etwas ohne weiteres
schafft.
FTP (File Download), HTML Webserver, USB, Display und dann noch MP3
Decoding... alles zur selben Zeit?
Hat das schon mal wer geschafft?
Meiner Meinung nach, macht es schon Sinn vor allem die MP3
Funktionalität auszulagern. Der DSP am VS10xx bietet es an, einige
Zusatzfunktionen laufen zu lassen. Unter anderem kann man ein Plugin
raufladen um einen Spectrum Analyzer zu realisieren.
Ich denke das sollte mit nem ARM kein Problem sein. USB soll
hauptsächlich nur für den Zugriff auf die SD-Karte erfolgen (Stichwort
Mass Storage Device).
Das Display ist absolut kein Problem.
Warum eigentlich FTP und Webserver, abgesehen davon, dass dies durchaus
möglich wäre...
Viel mehr Sorgen mach ich mir um die Entwicklungsumgebung. Habe bisher
bei ARM Controllern nur mit Hilfe von Keil, also einer professionellen
Umgebung, gearbeitet. (Studium)
Taugt die WinARM Umgebung oder was könnt ihr mir da empfehlen?
>FTP (File Download), HTML Webserver, USB, Display und dann noch MP3>Decoding... alles zur selben Zeit?
Zumindest zu USB MSD Class kann ich aus Erfahrung sagen, das der
Transfer Speed bei USB einbricht sobald der Kontroller noch irgend etwas
anderes macht ausser USB zu verarbeiten.
@Miu
>Warum eigentlich FTP und Webserver, abgesehen davon, dass dies durchaus>möglich wäre...
Wozu dann die Ethernet Schnittstelle?
Der MP3-Decoder braucht ca. 60% Rechenzeit, der Rest reicht locker für
das bisschen HTTP und USB, das schafft ja auch schon ein AVR. Das
wichtigste ist nur dass man genug RAM hat, 128 kB sollten es schon sein.
> Zumindest zu USB MSD Class kann ich aus Erfahrung sagen, das der> Transfer Speed bei USB einbricht sobald der Kontroller noch irgend etwas> anderes macht ausser USB zu verarbeiten.
So pauschal kann man das nicht sagen. Wenn der Controller die komplette
Rechenleistung für USB verbrät macht man was falsch. Und ganz abgesehen
davon muss man ja gar nicht gleichzeitig USB und MP3-Decodierung machen.
Ich nutze eine abgespeckte Version des Atmel Frameworks und der MSD
Class. Auf einem AT91SAM7S128 mit microSD Karte. Die Master Clock läuft
mit 48MHz und die SPI für die SD Karte mit 24MHz, Zugriff auf die Karte
erfolgt über DMA Kontroller.
Mit all diesen Daten kann erreiche ich maximal 2.1 Mbit/s beim Lesen,
gemessen mit der Software USBinfo.
Ich hatte mehr erwartet...
Miu wrote:
> Das Display ist absolut kein Problem.> Warum eigentlich FTP und Webserver, abgesehen davon, dass dies durchaus> möglich wäre...
Also eine Grafik-Display Ansteuerung inkl. Spectrum Analyser braucht
schon etwas Rechenleistung, so etwas würd ich nicht unterschätzen!!!!
Wenn du nur ein 2-Zeilen-Display verwenden möchtest und nur Titel
anzeigen willst, dann braucht das kaum Ressourcen.
Also mir persönlich ist ein Download via FTP um vieles lieber als USB.
Das Ethernet kann ich dann auch noch für streaming verwenden und da
öffnen sich für mich schon ganz neue Horizonte.
Zusätzlich zur SD Karte würd ich außerdem ein IDE Interface vorsehen.
Eine Frage bleibt aber offen. Warum MP3 in den ARM packen? Wegen den
Kosten für den VS10xx?
Ich wollte eigentlich damit nicht sagen, dass ich grundsätzlich gegen
einen externen Decoder bin. Den Gedanke an Software-MP3 fand ich
interessant...
Ich glaube das es auf einen Hardware Decoder hinauslaufen wird, der mir
auch zusätzliche Arbeit für die Analyse abnimmt. Außerdem entfällt die
Digital-Analog-Wandlung...
Von der Hardware her wäre es ja im Endeffekt völlig offen ob ich ein FTP
aufsetze oder nicht... Das sieht man dann...
IDE Interface sieht es schon anders aus, weil da muss ich meine Hardware
auf jeden Fall anpassen. Hat einer von euch schon mal was mit SATA
gemacht?
Bisher wollte ich eigentlich nur ein einfaches Zeilendisplay
verwenden...
Ein grafisches Display auszuprobieren hatte ich bisher noch keine
Gelegenheit, kann deshalb auch nicht beurteilen, wieviel Ressourcen
(RAM, Code, Rechenzeit) das benötigt.
Ich verwende bei meinem MP3 Player ein Grafikdisplay mit 240x128 Pixel.
Hab ein Plugin geschrieben, so dass ich das Display bei Bedarf (per
Tastendruck) splitten kann und in einer Hälfte einen "Explorer" zum
Navigieren auf der HDD und auf der anderen Hälfte Titelinformationen
(MP3 Tags) und den Spectrum Analyzer anzeigen lassen kann. So etwas
braucht natürlich recht viel Rechenleistung. Je nachdem wie oft der
Spectrum Analyzer aktualisiert werden soll desto mehr Rechenleistung
wird benötigt. Mit dem PIC18F8722 bin ich aber da schon ziemlich an der
Grenze.
Würde ich ein neues Design machen, würde ich auf jeden Fall einen ARM7
oder ARM9 verwenden.
Rechenleistung zuviel zu haben ist nie schlecht. Stell dir vor du
möchtest eine HDD anschließen und volles FAT32 unterstützen (also auch
ADPCM aufzeichnen und Datein auf HDD schreiben bzw. schreiben via FTP).
Mein MP3 Player hat 1MB SRAM (Programm und Datenspeicher) und 512kB
Flash (Programmspeicher). Mein Flaschenhals ist also eher die
Rechenleistung vom PIC. Es gibt jedoch auch Prozessoren von ATMEL mit
ARM7 und externem Speicherinterface. Da kannst auch SDRAM oder SRAM
dranhängen. Sollte also dein Speicherproblem lösen.
Für Ethernet könntest auch eine integrierte Lösung von Lantronix
verwenden, jedoch willst du FTP Unterstützung müsstest es auch wieder im
ARM implementieren, weil so Module sind nur für Ethernet-To-Serial
Anwendungen brauchbar. Vielleicht gibt es jedoch Programmbeispiele eines
Webservers / FTP Servers für den ARM7.
Noch was...
Seh einfach die zwei Leitungen die du zusätzlich für ein Grafikdisplay
(monochrom) benötigst vor, dann kannst du später immer noch entscheiden
ob du ein Zeilendisplay oder ein Grafikdisplay verwenden möchtest.
Andreas Schwarz wrote:
> Ich würde auch eher einen Hardware-Decoder wie den VS1033 empfehlen, da> spart man sich einiges an Aufwand und kann auch MP2, WMA und AAC> abspielen.
Ja, und mal ehrlich: Ob man jetzt einen D/A Chip dranhängt und das
dekodieren in Software macht, oder direkt einen VSxyz Chip, ist doch vom
Platzverbrauch wumpe. Höchstens der Preis macht da was aus. Wobei
hochqualitative D/A Wandler auch nicht billig sind. Dadurch relativiert
sich das dann wieder.
Und außerdem gibt es auch noch chips die MP3-encoding beherschen. Und so
ein LineIn Eingang wäre ein echter mehr wert.
Ich denke wenn sich hier einige auf ein paar gemeinsamme Eckpunkte
festlegen, würde daraus bestimmt ein schönes Gemeinschaftsprojekt. Ist
halt nur die Frage wass man bracuht und was nicht:
- Ethernet
- Display
- IR-Fernbedienung
- LineIn
- kleine Verstärkerendstufe
Wenn das ganze modular aufgebaut wäre, könnten wahrscheinlich die
meisten Wünsche erfüllt werden. Eine Hauptplatine mit Ethernet, µC,
mp3decoder darauf ausgelegt das man zum beispiel noch ein
Zeilen/Grafik-Display anschließen kann oder eine kleinen Verstärker
sowie einen IR-Empfänger. Dann könnte Jeder überlegen was er bestücken
will. Über ein Webinterface könnte man sogar bei einem Display losen
Projekt alle Einstellungen verwalten.
Meiner Meinung nach muss ich inzwischen haben:
- MP3-Decoder
- Ethernet
- Display (Grafik, Ordnerstruktur usw. für mich inzwischen notwendig)
- IR - Fernbedienung
- Vorverstärker (will ja das Ding schließlich an meine Stereo-Anlage
ranhauen)
- SD-Karten-Slot
- Festplatte (PATA bzw. SATA)
- USB 2.0 Full-Speed
Bestimmt habe ich noch was vergessen...
Also ich möchte dieses Projekt auf jeden Fall verwirklichen. In welchem
Zeitraum kann ich noch nicht sagen...
Wer Lust hat sich daran zu beteiligen ist auf jeden Fall herzlich
willkommen!
Möchte mich auch schon vorab mal bedanken für die vielen Replys,
Anregungen und Hilfestellung. THX
Solltest du einen VS10xx verwenden, ratsam natürlich das neueste Modell,
dann kannst du dir diesen Vorverstärker sparen. Bei mir funktioniert das
tadellos mit meiner HIFI Anlage.
Na, das klingt ja mal nach einem riesen Projekt. An SATA würde ich mich
nicht drann trauen. Da braucht man bestimmt einen Controller den es
wieder nirgendwo in normalen Stückzahlen gibt :) Aber der rest klingt
doch ganz machbar.
Primär hatte ich es für die Stereoanlage vorgesehen. Allerdings könnte
ich mir auch einen Einbau in mein Auto vorstellen.
Batteriebetrieben hat ich eigentlich net vor, wo doch bei uns hier in
Deutschland der Strom aus der Steckdose kommt.
Aber im Prinzip spricht ja nichts dagegen das Gerät auch mit einem Akku
zu betreiben. Da ich immer noch manchmal versuche den Planeten zu
retten, kann man ja auf bestimmte Stromsparfunktionen (Hard- und
Software seitig) eingehen.
Das kann auch am netzgebundenen Betrieb nicht schaden...
Also ich weiß ja nicht wie wichtig dir der Ethernet Anschluss ist, aber
ich denke wenn der Player ein Ethernetkabel braucht macht ein
Batteriebetrieb wenig sinn. Über PoE kann man natürlich streiten.
Hallo, falls es kein "Miniportale Unit" werden soll würde sich das
NGW100 von Atmel anbieten.
1. CPU mit genug Power
2. Linux mit MP3 Softwaredecoder
3. Netzwerk
4. USB
5. SD Card
Display und DAC lassen sich problemlos anloeten und AC97 Treiber gibt
auch.
Hoi,
hab hier mal meinen ersten Entwurf von meinem Player. Wenn jemand Lust
hat kann er ja mal drüber schauen und mir Fehler bzw. Verbesserungen
aufzeigen...
Bin für jegliche Kritik außer "das geht so nicht, weil das so nicht
geht" offen :-)
Ist ein ziemliches IC-Grab. Ich würde gleich einen Controller nehmen der
Ethernet und USB integriert hat, z.B. den AT91SAM7X256/512. Da brauchst
du auch keinen externen RAM und er hat einen DMA-Controller, was die
SPI-Übertragung sehr beschleunigt. Als Prototyp-Hardware kannst du die
SAM7X- und VS1002-Platinen von Olimex nehmen, dann musst du nicht mal
den Lötkolben anwerfen.
Sehe ich das richtig dass du die SD-Karte per BitBanging ansteuern
willst? Wozu, der Controller hat doch zwei schöne SPI Interfaces?
Gibt es eigentlich hier was neues? Hört sich sehr interessant an, vor
allem der Anschluss für eine HDD und das Anzeigen der Ordnerstruktur auf
dem Display, sowie das "Browsen" durch die Ordner.
Das Eval Board AT91SAM7X-EK für den AT91SAM7X256 hat doch sogar ein
eingebautes Display auf dem man das realisieren könnte.
Gruß,
Indy