Forum: Mikrocontroller und Digitale Elektronik ARM MP3/AAC Player Web Radio


von Norbert (Gast)


Lesenswert?

Ich bin grade dabei, ein Web Radio zu planen, also das ich Audio Streams
empfangen und hören kann. Das ganze befindet sich eher noch so in der
Konzept Phase. Bislang habe ich immer nur Systeme ähnlich wie das auf
der Arthernut veröffentlichte gesehen. Also mit einem AVR, einem
Ethernet Baustein und einem VS1003 o.ä.

Nun habe ich grade mit großem Interesse die Projektbeschreibung von
Andreas über seinen MP3/AAC Player gelesen. Meine Idee wäre, anstatt
dem AT91SAM7S256 den AT91SAM7S256 mit Ethernet Interface zu verwenden.
Und dann entsprechend anstatt die Audiodaten von der SD Karte zu lesen,
aus dem Audio Stream zu nehmen. Was ahltet ihr von dem Vorhaben? Wäre
das so möglich?

Als Endziel möchte ich das Ganze gerne so erweitern, dass ich z.B. den
MP3 Stream abspeichern kann.

Gruß
Norbert

von Clemens H. (sum)


Lesenswert?

Halloo Norbert,

ich habe soetwas auch schon geplant gehabt.

"Meine Idee wäre, anstatt
dem AT91SAM7S256 den AT91SAM7S256 mit Ethernet Interface zu
verwenden."

Ich vermute, du meinst den AT91SAM7X256, oder?
Dieser benötigt allerdings noch einen externen Treiber für den
Anschluss. Ich hatte damals den Eindruck, mit dem ENC28j60 besser
bedient zu sein, der hat alles intern.

Mein Entwurf umfasste:
AT91SAM7S256, ENC28j60, SD-Card, TLV320AIC23B und ein zusätzliches
EEPROM.
Einen Prototypen habe ich hier liegen, es funktioniert auch alles
soweit (SD-Card und EEPROM noch nicht gelötet), er kann Pakete
verschicken, Audio aufnehmen und auch abspielen. Leider habe ich aber
nicht ausreichend Zeit finden können, ein "gute" Implementierung des
TCP/IP-Stacks ausfindig zu machen oder selber zu schreiben. Hier könnte
man von diversen Funktionen des ENC28j60 gebrauch machen.

Unter Umständen ist der Zwischenspeicher des ARMs etwas klein für
Ethernet-Streaming. in die 64kByte passen ja nicht allzuviel Daten
rein, zumal auch noch einiges an Programmcode und Lookup-Tabellen rein
muss.

Schöne Grüße, Clemens

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Den Stream nur abzuspeichern dürfte kein Problem sein, wenn aber
gleichzeitig empfangen und abgespielt werden soll wird's etwas
komplizierter, weil die Abspielgeschwindigkeit mit der Geschwindigkeit
der ankommenden Daten synchronisiert werden muss. Damit das vernünftig
funktioniert ist wohl eine größere Menge RAM notwendig - und das ist
sowieso schon ziemlich knapp. Aber es ist nicht völlig unrealistisch
und könnte einen Versuch wert sein. Wenn es dir ernst mit der Sache
ist, schreib erst mal einen Prototypen auf dem PC, damit sollte sich
die Machbarkeit gut abschätzen lassen.

von Andreas Lang (Gast)


Lesenswert?

Zum Thema Speicher: Webradio höre ich unter Linux oft mit dem MPlayer
bei 32kB Cache@128kBit/s. So mal ganz blöd gerechnet würde ich sagen:
32  1024  8 / 128000 = 2,048s
sollte doch an sich genug sein?

von Florian___ (Gast)


Lesenswert?

Wenn ich mal ein bischen träumen darf:

Falls sich hier genügend Leute finden würden die zusammen eine einfache
Hardware entwickeln würden, die nur aus: AT91SAM7S256, ENC28j60, SD-Card
und TLV320AIC23B bestehen würde, könnte man damit schon eine Menge
machen. Vorallem wenn man vielleicht noch ein Display hinzufügt:

- Internet-Radio
  vielleicht mit einer Aufnahmefunktion, die MP3-Dateien
  könnten dann vie Ethernet auf den Computer gelangen.

- Podcasts
  Man könnte seinen Lieblingspodcast in der Küche hören

- RSS-Feeds
  Je nach Display wäre das Lesen von RSS-Feeds mehr oder weniger
  angenehm. Bei einem guten Display könnten irgendwann vielleicht
  sogar mal Bilder angezeigt werden.

- Wecker
  Falls das Teil in der Nähe des Betts steht, könnte man sich
  mit Musik wecken lassen die auf der SD-Karte gespeichert ist.
  Die aktuelle Zeit kann es sich auch übers Internet besorgen

- eMail-Posteingang
  Zum eMails lesen und schreiben vielleicht ein bischen unpraktisch.
  Aber vielleicht könnte oben rechts im Display immer ein Icon
  auftauschen wenn eine neue Mail gekommen ist.

- Wetter
  Auch solche Daten könnte es sich aus dem Internet holen.

- Ethernet-Lautsprecher
  Mit einem kleinen Tool auf seinem PC könnte man das WebRadio auch
  als Computerlautsprecher im Wohnzimmer verwenden.

Es wäre natürlich toll, wenn man die ganzen Einstellungen auch bequem
von jedem Computer im Lokalen Netzwerk via Browser machen könnte.

von Janik Wolters (Gast)


Lesenswert?

Hi!

Ich bin auch grad dabei sowas zu machen. Ausgegangen bin ich erstmal
von Ulrich Radigs Webserver mit nem ATMeaga32. Die Software hab ich
inzwischen soweit abgeändert, dass ich MP3-Streams aus dem Internet
ziehen kann. Jetzt bin ich grade dabei ein 512k SRAM dranzuklatschen.
Wenn das funzt fehlt nur noch der MP3 Decoder und ein schönes user
interface. Wenn Interesse besteht, kann ich ja mal meinen Code etc.
posten
Janik

von Thomas (tomtom1)


Lesenswert?

Hallo zusammen,

hier ist noch einer der gerade an sowas bastelt :)
Ist für ein FH-Projekt und soll mal Shoutcast-Streams über Netz
abspielen. Habe meinen eigenen TCP-Stack soweit fertig, dass ich von
nem eingerichteten Icecast Testserver den Stream rüberkrieg. Arbeite
derzeit mit nem Mega32, wird jedoch ein Mega64 werden, zum einen wegen
dem SRAM Speicherinterface, zum anderen soll die Weboberfläche zum
Konfigurieren des Players auch in den Flash. Fehlt jetzt noch der
MP3-Dekoder und das SRAM, dann werd ich sehen, wie es wirklich klappt
mit dem Streamen. Wenn das Projekt fertig und abgenommen ist, werd ich
es auch hier veröffentlichen wenn Interesse besteht.

Schöne Grüße,
Thomas

von Janik (Gast)


Lesenswert?

@Thomas
SIeht ja so aus, als ob wir ziemlich gleich weit währen...
Wie hast du vor deinen Speicher anzusteuern? Irgendeinen seriellen
SRAM? Was macht das Mega64 Speicherinterface?

Ich hab hier einen ganz normalen SRAM mit paralleler ansteuerung
liegen. Wollte den Speicher mittels 8-bit Zähler und die restlichen
Adressleitungen über Schieberegister ansteuern. Daten dann parallel
auslesen. Was hälst du davon?

Benutzt du einen "echten" TCP-Stack? Was für übertragungsraten
kriegst du?

von André K. (freakazoid)


Lesenswert?

Habt ihr Euch schonmal Tremor angesehen?
http://wiki.xiph.org/index.php/Tremor

Ist ein FixedPoint-Vorbis-Decoder (für z.B. Icecast) mit Optimierungen
für z.B. ARM.

Grüße, Freakazoid

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Tremor ist sehr viel anspruchsvoller als der Helix MP3/AAC-Decoder was
CPU und RAM betrifft. Wenn es auf einem SAM7 überhaupt läuft, dann wird
es SEHR knapp.

@Janik, Thomas: hier geht es speziell um ARM-basierte Projekte, siehe
1. Post. Bitte verlagert die Diskussion in einen anderen Thread.

von Thomas (tomtom1)


Lesenswert?

@Janik
Habe auch vor, den parallelen SRAM zu nehmen. Über das
Speicherinterface  kannst du max. 64 Kilobyte dranhängen, muss nur noch
ein Latch dazwischen um die unteren Adress- und Datenleitungen zu
trennen. Danach kannst du mit dem Speicher wie mit dem internen SRAM
arbeiten. Gehen halt viele I/O's verloren, aber der Mega64 bzw. 128
hat ja genug. Näheres zu dem Interface steht in den Datenblättern.
Werde auch mit 512 Kilobyte arbeiten und die oberen 3 Adressleitungen
über normale I/O's schalten.

Mit Zähler und Schieberegister müsste es ebenso gehen, da ich wie
gesagt sowieso den Mega64 nehmen wollte werde ich natürlich das
Speicherinterface benutzen.

Ähm, was meinst du mit "echten" Stack? :)
Ich gehe in meinem Stack von Schicht zu Schicht, werte die Header aus
und reagiere entsprechend darauf usw...
Beim testweisen streamen im LAN kam der 128kBit/s Stream ohne Probleme
an, laut Ethereal waren es etwas über 16 Kilobyte/s. Streams mit
höherer Bitrate werde ich demnächst testen.

von Marco L. (lehmi)


Lesenswert?

@Florian___
Bin gerade dabei, genau so ein Board zu entwickeln. Bestellung der
Leiterplatte ist schon raus, das ganze wird sich aber noch 3-4 Wochen
hinziehen. Sobald das Ding funktioniert, werd' ich auch die Unterlagen
dazu veröffentlichen. Als Display hatte ich an etwas Serielles (SPI)
gedacht, ist zusammen mit ein paar Ports über einen Steckverbinder
verfügbar.

von Norbert (Gast)


Lesenswert?

Sorry, dass ich mich so lange nicht mehr auf diesen Thread gemeldet
habe.

Hab mal wieder geschafft, ein wenig über ein mögliches Webradio auf ARM
Basis nachzudenken. In dem Bericht hier im Wiki zum MP3/AAC Player hat
Andreas ja beschrieben, dass einige Teile der Dekodierung im RAM
ausgeführt werden, da der Flash Speicher des AT91SAM7S256 einfach zu
langsam ist. Wenn ich das jetzt richtig in Erinnerung habe, soll der
Flash der LPC2000 Controller ja deutlich schneller sein. Damit wäre es
dann ja möglich, die Dekodierung weiterhin uas dem Flash auzuführen und
damit wäre wieder einiges an RAM gespart. Dieses könnte man wieder zum
puffern der Audiodaten benutzen.

Wie ist eure Einschätzung dazu? Hab ich dabei irgendwo ein Denkfehler
gemacht?

Ich fände es schön, wenn man auf externes RAM verzichten könnte, und da
ich nirgendwo so richtig einen ARM7 mit 128kB internem RAM gefuden habe,
wo ich jetzt sonst auch gesagt hätte, joa, das passt...habe ich halt die
oben beschriebenen Überlegungen gemacht. Konkret denke ich dabei an den
LPC2106 (128kB Flash/128kB RAM).

Danke schonmal für eure Meinungen!

von Marco L. (lehmi)


Lesenswert?

@Norbert:
der LPC2106 hat zwar nur 64kb Ram, aber der Bus ist 128 bit breit,
Programme im Flash sollten also schneller sein als beim AT91Sam7. Nur
dem LPC2106 fehlt der I²S Bus, den ich für den Audio-Codec brauche. Das
wird erst die neue LPC23xx Reihe haben. Da gibt es dann auch welche mit
mehr Ram... also wenn du noch warten kannst, dann warte auf die neue
LPC Reihe

von Marco L. (lehmi)


Lesenswert?

sorry, erst die LPC24xx Reihe wird mehr Ram habe (98kb)

von Tobias S. (tobias)


Lesenswert?

Hi,
ich hab sowas schonmal realisiert(mit einem AT89C51SND1C und einem
WizNet Chip fuers Ethernet).
Ich habe damals einen 16kB Ringpuffer fuer die MP3-Daten verwendet und
mir in Java einen Server geschrieben, der mir meine MP3s ins Netz
streamen kann und nebenbei noch die Indizierung und Aufbereitung der
Metadaten übernimmt. Dieser Server hat dann einfach immer 4kb Bloecke
an MP3-Daten in die TCP Verbindung geschoben und so immer einen halben
Puffer gefuellt. Dadurch hab ich Probleme mit dem synchroniesieren
vermieden.
Wenn man direkt auf einen SMB-Share oder einen FTP-Server zugreift wird
das natuerlich schwieriger, weil man selber alle Dateien im Speicher
haben muss und auch noch alle ID3-Tags auslesen muss. Wenn man das beim
Start des Players mach kann das schon ne weile dauern und wenn man es
nebenbei macht werden Funktionen wie zufaellige Wiedergabe schwer zu
implementieren oder gehen garnicht.

Bei Shoutcast-Streams ist es wohl so, dass man kantinuierlich Daten
bekommt und die auch einigermasen verarbeiten muss. Dann muss man
entweder mal den MP3-Dekoder drosseln oder schneller laufen lassen oder
man nimmt knacker in Kauf, weil der Puffer ueber oder unterlaeuft.

Gruss Tobias

von Fabian Knapp (Gast)


Lesenswert?

shoutcaststreams sind aber noch eines der einfachsten streams, die mim 
avr verarbeitet werden können. Und kontinuierlich sind die meines 
wissens auch, sodass mit einer richtigen rechnung (je nachdem welche 
qualität der stream hat) kein Bufferproblem entstehen sollte... wenn ich 
hier quatsch erzählen sollte dann verbessert mich :)

Habe auch starkes Interesse an diesem Projekt!

von Clemens H. (sum)


Lesenswert?

Hallo,

ich habe meine Platine nach einigen Monaten mal wieder unter Spannung 
gesetzt.
Ergebnis:
ARM (AT91SAM7S256) funktioniert
Audio-Baustein (TLV...23B) funktioniert (DMA).
Ethernet-Baustein (ENC28j60) funktioniert auch (noch kein DMA).

Software ist derzeit noch im PrePre-Alpha Stadium. Ich bin gerade dabei, 
den IPv4-Layer zu implementieren. Habe leider keinerlei positive 
Erfahrunge mit den offenen Stacks (UIP, LwIP, Micrchip) machen können. 
Entweder bin ich zu doof, um da durchzusteigen oder ich habe nicht 
gesehen, wie/wo man die CRC Funktionen in den Ethernet-Controller 
verlagern kann. Folglich entsteht derzeit mein eigenes System - 
natürlich möglichst offen.

Schöne Grüße, Clemens

von Clemens H. (sum)


Lesenswert?

Hi nochmal,

gibts noch Interesse, dass diese Projekt etwas wird? Ich habe nun mal 
eine Übertragung des Sounds direkt gemacht - ARM sendet, PC empfäng und 
gibt den Sound aus. Der ENC28j60 schafft nun etwa 2.9Mbit - das reicht 
für 48kHz*16bit*2Channels gut, für 96kHz reichts nicht.

Vielleicht hat jemand eine Idee, wie man die Ansteuerung des 
Ethernet-Chips noch etwas verbessern kann. Derzeit wird bei 
Übertragungen von unter 4 Byte Länge das Poll-Verfahren über das 
IO-Register genutzt, bei längeren Übertragungen wird der PDC verwendet. 
Allerdings braucht man, um den PDC nutzen zu können, einen Interrupt, 
der sehr viel Zeit in Anspruch nimmt (langer Aufruf, Prozeduren schon im 
RAM). Die CS-Leitung muss über den PIO gesteuert werden, da das Silicon 
vom AT91SAM7S Bugs enthält. (Wird es da wohl eine Verbesserung bei 
geben?)

Wer hat schonmal das SPI-Interface auf hoher Geschwindigkeit verwendet 
und kann eine möglichst Effektive Methode nennen?

Clemens

von Marco L. (lehmi)


Lesenswert?

Guten morgen an alle,

erst mal zu meinem Board; Leiterplatten sind angekommen, ich hab eine 
auch schon teilweise bestückt, aber Board wird über USB nicht erkannt 
"Unbekanntes Gerät"; hab aber leider kein Oszi, um mal Quarz etc. zu 
prüfen. Beim Messen mit dem Multimeter hab ich dann wohl den Arm 
zerschossen, am internen 1,8V Regler kommen jetzt 3,1V raus... das wars 
wohl mit dem Arm. Aber ich bleib dran.

@Clemens: hast du eigentlich dein Board selbst entworfen oder ist es ein 
Devel.Board ? Ich hätte nämlich Interesse am Layout Vergleich.
Zu deiner Rechnung: 2.9Mbit sollten doch für einen MP3 Player völlig 
ausreichen, oder hast du mit deinem Projekt noch etwas anderes vor ?

lehmi

von Clemens H. (sum)


Angehängte Dateien:

Lesenswert?

Hallo Marco,

ja, ich habe das Board selbst entworfen. Ich habe es auch selbst geätzt 
und gelötet. Alles einseitig mit geringem Verdrahtungsaufwand in Form 
von Drahtbrücken. Anbei mal ein Bild aus Eagle. Ich hab leider keine Cam 
hier, sonst hätt ich euch auch nen Foto gemacht ;-)

Die 2.9Mbit reichen reichlich. Damit kann man ja sogar CD-Qualität 
unkomprimiert streamen (1.7Mbit, funktioniet auch). Ich möchte nur gerne 
die Prozessorauslastung durch das Netzwerk möglichst gering machen. Denn 
nur dann wird es auch möglich sein, die ankommenden MP3-Daten zu 
dekodieren. Deshalb optimiere ich erstmal den Stack.
Btw: Dann fällt die Fehlersuche auch einfacher aus, da erstmal nur der 
Stack getestet wird...

Grüße, Clemens

von Florian R. (florian__)


Lesenswert?

Servus!

Sollen eure Projekte eigentlich Opensource sein/werden? Dann könnte man 
doch zusammen an dem Platinendesign und an der Software arbeiten.

@Marco:

Deine Platine sieht ja super aus! Vorallem scheinst du ja auch einen 
Line-In eingang einzuplanen. Wäre der AT91SAM7S256 den sogar schnell 
genug mp3 zu codieren?

von Marco L. (lehmi)


Angehängte Dateien:

Lesenswert?

@Florian:
Das Board ist von Clemens, meins ist 2-seitig. Hab mal ein Bild 
angehängt.

@Clemens:
Dein Board ist super geworden, an Line-in hab ich auch erst gedacht, 
aber dann mangels Platz erstmal verworfen. Wenn jetzt auch noch die 
Software Optimierungen klappen, dann steht dem Mp3 Stream Player ja 
nichts mehr im Wege ;-)
Ich hab mir übrigends den uip Stack von Adam Dunkel schon mal angesehen, 
aber mangels Hardware noch nicht mit der Software begonnen. 
Warscheinlich wäre sogar FreeRTOS eine Überlegung währt, aber die 
Einarbeitung ist noch ein wenig aufwendiger und derzeit hab ich mit dem 
Studium noch genug zu tun.

von Florian R. (florian__)


Lesenswert?

@ Marco & Clemens

Plant ihr die hardware/Software unter einer OpenSource Lizenz zu 
veröffentlichen?

von Michael I. (iller101)


Lesenswert?

Würde für das Projekt evtl. auch der s64 gehen?
Der hat halt nur 16kb Ram aberwenn man externen ram verwendet sollte das 
doch auch genügen oder?
Hab leider derzeit nur den kleinen hier rumliegen und wenns geht möchte 
ich den dann verwenden :-)

An was für ein LCD hattet ihr eigentlich gedacht?
Sollteja ein größeres sein da man ja nicht wircklich immer zur Anlage 
flitzen sollte um was zu lesen :-)
Denkbar wäre auch ein OSD-Chip um auf der Glotze was anzeigen zu können.

Verfolge das Projekt jedenfalls sehr gespannt :-)

von Marco L. (lehmi)


Lesenswert?

@iller101
Ext. Ram geht beim AT91Sam7S... gar nicht bzw. nur mit erhöhtem Aufwand, 
lohnt also nicht und die 16k bei S64 reichen sicher für den Player nicht 
(siehe Artikel von Andreas zum AAC/MP3 Player)
Habe mir noch keine Gedanken zum GLCD gemacht, es müßte (bei meiner 
Platine) eins sein, dass sich seriell (SPI / I²C ) ansteuern läßt. Da 
gibt es ja einiges an Auswahl. Aber das steht auf meiner TODO Liste ganz 
weit unten.

von Clemens H. (sum)


Lesenswert?

@florian:
Ja, ich wollte meine Arbeit unter einer Open-Source Lizenz 
veröffentlichen,
allerdings wird es bis dahin noch etwas dauern.

@marco:
Dein Doard sieht ja sehr aufgeräumt aus ;-) Ich hab halt versucht, das 
teil möglichst klein und ohne viele Brücken (die ich ja von Hand löten 
musste) umzusetzten. Vielleicht können wir mal ein "richtiges" machen, 
welches dann professionell gefertigt werden kann?
Wie sieht es bei dir mit der Software aus? Läuft der Stack schon? Mich 
würde der Durchsatz brennend interessieren!

Grüße,
Clemens

von Marco L. (lehmi)


Lesenswert?

@Clemens:
Mangels Zeit konnte ich noch nicht weitermachen, ich hoffe, das wird in 
den nächsten Tagen mal was.
Auf meinem Board wollte ich möglichst viel unterbringen damit es erstmal 
universell bleibt. Ich hab's auch herstellen lassen, Lötstoplack ist 
eine echt super Sache ;-) und mit meinem Equipment hab ich bei TQFP mit 
0,5mm Pinabstand eh keine Chance mehr. Ich wollte das Board eh noch 
überarbeiten, wenn die Software komplett läuft, damit es mal was 
"richtiges" wird. Vielleicht mit Gehäuse etc.

Grüße
Marco

von Florian R. (florian__)


Lesenswert?

@Clemens & Marco:

Wie weit stimmen den eure Schaltpläne überein? Fals ihr eine 
Sammelbestellung für die nächste Version eines Boards macht würde ich 
mich gerne beteiligen ;) Und noch eine Frage zum Schluss: Wieviel kann 
auf der SD-Karte gespeichert werden? Bei Aldi gibt es ab nächstem Montag 
eine SD-Karte mit 2GB.

Grüße, Florian

von Marco L. (lehmi)


Lesenswert?

@Florian:
Schaltpläne wurden noch nicht verglichen, Teile davon sind aber 
sicherlich gleich, ich hab mich an Olimex Schaltpläne und den vom 
AT91Sam7S-EK gehalten. Die 2GB SD Karte sollte unterstützt werden, FAT32 
ünterstütz ja weitaus mehr...

von Florian R. (florian__)


Lesenswert?

Denkt ihr man könnte Speex gleichzeitig en- und decodieren?

von Hansi L. (fabian87)


Lesenswert?

Supergeiles Projekt!
Hatte ich auch schon lange in überlegung, noch arbeite ich an meinen 
Kentnissen um solch ein Projekt aufzubauen :)

von Clemens H. (sum)


Lesenswert?

Hallo Leute!

ich hab soeben mein erstes MP3 über den ARM abspielen lassen. Der Codec 
verbraucht leider ziemlich viel RAM und die Speicherorganisation ist 
noch nicht ausreichend optimiert, so dass es von zeit zu zeit noch 
Pausen gibt. Klingt aber ziemlich gut mit dem Codec :-)

Schöne Grüße,
Clemens

von Marco S. (masterof)


Lesenswert?

Kannst du mal eine Aufnahme von der Ausgabe machen?
MfG Masterof

von K. Jürgens (Gast)


Lesenswert?

@Marco

Kann man dein Board via USB programmierene? Und planst du vielleicht 
eine Sammelbestellung deines Boards? Oder würdest du die Eagle-Dateien 
posten so das man es selber nachbestellen kann?

von Marco L. (lehmi)


Lesenswert?

Mein Board läßt sich über USB,seriel oder JTAG programmieren, wobei ich 
derzeit JTAG mangels Adapter nicht nutzen kann. Das macht das Testen der 
Hardware recht schwierig und zeitaufwendig. Ich kann auch noch nicht 
sagen, ob alles so funktioniert.
Ein paar kleinere HardwareBugs habe ich bereits behoben und wenn das 
Ganze läuft, wird das Board nochmal überarbeitet. Dann könnte man auch 
eine Sammelbestellung der Leiterplatten machen.


von Thomas Schulte (Gast)


Lesenswert?

Hi,

@Clemens Helfmeier
welchen Codec meinst Du?

Gruß
Thomas

von Marco L. (lehmi)


Lesenswert?

@Clemens
Ich habs mal wieder geschafft, ein wenig weiter zu basteln. Die 
Kommunikation mit der SD Karte und das FAT Dateisystem funktioniert, 
aber ich bekomme einfach den enc28j60 nicht zum laufen... ich denke, ich 
hab jetzt alles durchprobiert, hatte als Basis den Code aus der avrlib 
genommen und entsprechend angepasst, aber das Einzige, was ich über SPI 
empfange, ist 0xFF. Könntest du mir vielleicht deinen Code schicken, 
dann könnte ich vielleicht feststellen, was bei mir falsch läuft. Meine 
email marco.lehmann (at) freenet.de

Gruß
Marco

von Florian___ (Gast)


Lesenswert?

Wolltet ihr eigentlich die Eagle-Dateien/Schaltpläne veröffentlichen? 
Sonst würde ich mir mal die Mühe machen und an einem Opensource-Board 
arbeiten?

von Marko B. (glagnar)


Lesenswert?

Interessantes Projekt, aber man sollte sich vor Augen halten, daß man 
für relativ wenig Geld ein solches System bekommt:

http://www.jkmicro.com/products/omniflash.html

Da wäre die Hardware schon komplett fertig und man könnte 
Standardsoftware verwenden.

von Tobias S. (tobias)


Lesenswert?

Hi,

wuerd egerne mal wissen, was du unter "relativ wenig Geld" verstehst? ;)

Gruss Tobias

von Florian R. (florian__)


Lesenswert?

Sicher gibt es ne Menge fertig zu kaufen, aber wo bleibt denn da der 
Spaß?

von Michael I. (iller101)


Lesenswert?

Wenn man danach geht dasesschon etwas fertiges gibt geht dürfte man ja 
fast gar nichts mehr basteln.

von Hansi L. (fabian87)


Lesenswert?

sehe ich genauso man kann sich auch gutes fertiges internetradio mit 
schönem display usw für 150 euro von terratec kaufen... aber wenn man 
etwas selbst gebautes in den händen hält erhält das ganze teil ne ganz 
neue bedeutung :)

von Marco L. (lehmi)


Angehängte Dateien:

Lesenswert?

Das Omniflash Board sieht ja toll aus, aber, wie Florian schon sagt, wo 
bleibt da der Spaß ? Als Hobbybastler freut man sich doch über alles, 
was aus eigener Hans entsteht und dann auch funktioniert... Klar gibt es 
fertige MP3 Player mit SD Karten Support (beim großen C derzeit für 30 
Euronen mit 1GB SD Card) und auch fertige "Web" Player, aber wenn sich 
sowas auch zu Hause basteln läßt, warum nicht ? Der Spass rechtfertig 
m.E. den Preis als auch den Aufwand. Sonst hätte ich nie mit dem Basteln 
angefangen. Und "dazulernen" hat mir bisher nie geschadet...

@Florian:
Ich wollte das Board eigentlich nochmal überarbeiten, wenn alles läuft, 
aber ich hab derzeit Schwierigkeiten mit dem enc28j60. Und die wollte 
ich erstmal beseitigen. Mein Schematic hab ich mal angehängt, für 
Vorschläge und Hinweise bin ich natürlich offen.

von Clemens H. (sum)


Angehängte Dateien:

Lesenswert?

*gnaaa...* jezt tippe ich das zum 2.ten mal. Dummer Firefox. Bei Bedarf 
werde ich auch ausführlicher.

Im Anhang der derzeitige Stand der Entwicklung meinerseits:
Funktionsfähig ist: ENC28j60, Ethernet, ARP, ICMP, IPV4 (ohne 
reassembling, mit routing), UDP, TLV320AIC23b (Control-Interface über 
SPI angeschlossen).
In Planung: TCP, DNS.

Für eine andere Hardware anzupassen:
controller/config_spi.h (Chip-Select Lines, Baudrates)
controller/startup_sam7.h (für andere Quarzfrequenzen)
controller/led.h (derzeit nicht verwendet)
controller/usart.c (falls ein anderer Debug-UART verwendet werden soll 
oder andere Speed)

Als Applikation ist derzeit nur ein miniprogramm vorhanden, welches 
ankommende UDP Pakete entgegen nimmt und nach einer Zahl sortiert 
ausgibt.
Wenn Interesse besteht, kann ich noch das CD-Qualitäts-Telefon 
(ARM<->PC) reaktivieren. Hierbei beträgt die Datenrate etwa 3Mbit.

Achtung: Der ENC28j60 verwendet Interrupts zur effizienten Verarbeitung 
der Daten. Hierzu ist ein Memory-Management nötig, das derzeit etwas 
suboptimal gelöst ist. Ich hatte den Eindruck, dass entweder im 
utils/reorder.c Modul oder im Memory-Modul noch ein Bug steckt. Dieser 
erzeugt lauter kleine Memory-Fetzen mit ungültigen "used"-Werten (siehe 
memory/mem.c).

Für Anregungen, Hilfestellung und gefundene Fehlerursachen bin ich 
dankbar!

Der Code steht unter der GNU GPL.

Schöne Grüße,
Clemens

von Clemens H. (sum)


Angehängte Dateien:

Lesenswert?

Das Schematic meiner Hardware im Anhang.

von Michel S. (squonk)


Lesenswert?

Hallo Leute,

Sorry, I am French and my German is far... Enough to understand, but not 
to write:-)

Here are some interesting links on the web radio subject:
    - AVR Internet Radio (http://www.ethernut.de/en/medianut/index.html)
    - SPI2CF - WLAN for the AVR 
(http://www.harbaum.org/till/spi2cf/index.shtml)
    - Internet radio WMP3 
(http://www.circuitcellar.com/AVR2006/winners/DE/AT2581.htm)

There are some good ideas, especially in the last link (SAMBA support!).

WLAN support would be great, using a CompactFlash card (until SDIO WLAN 
becomes a little bit more documented... See 
http://sourceforge.net/projects/sdio-linux for good news).

Michel

von Florian R. (florian__)


Lesenswert?

Hallo Clemens & Marco,

wie weit seit ihr mit eurem Projekt? Plant ihr schon eine Platine 
fertigen zu lassen?

Grüße, Florian

von Fabian W. (fabi)


Lesenswert?

*abo

von Benjamin A. (beni0664)


Lesenswert?

Was haltet ihr von der Verwendung des XPorts von Lantronix?

Siehe:

http://www.lantronix.com/device-networking/embedded-device-servers/xport.html


mfg beni

von Boxi B. (boxi)


Lesenswert?

nix

von flo (Gast)


Lesenswert?

der ist gut für leute die mit dem eigentlichen ethernet-snschluss nix am 
hut haben. aber ich glaube einen mp3-stream wirst du darüber nicht so 
ohne weiteres empfangen können.

von Stefan N. (nollsen)


Lesenswert?

hi,

man könnte das projekt vielleicht um einen usb anschluss für eine 
festplatte erweitern.
der chip
CY7C68300
(gibts beim farnell) beinhaltet einen usb host stack und erlaubt das 
auslesen einer usb platte wie eine ide festplatte

mehr infos zu der ansteuerung:
http://www.frankvh.com/schematics.htm

von Ulrich P. (uprinz)


Lesenswert?

Hi!

Ich fürchte, dass solch ein ehrgeiziges Projekt aus Zeit und 
Lizenzgründen
scheitern könnte, wie es das schon so oft passiert ist.

Wie wäre es, die wirklich zeitkritischen Decoder-Arbeiten einem dafür 
spezialisierten DSP zu überlassen und dafür noch ein paar Codecs zu 
gewinnen, die so einfach nicht zu bekommen sind? Dafür hat der ARM dann 
genug Zeit sich um die Extras zu kümmern. Zum Beispiel könnte eine 
Kombination aus ARM7 und VS1053 MIDI, ADPCM, MP3, WMA und OGG 
decodieren. Da der ARM nur den Stream durchreichen muss, kann er sich um 
Filesystem, UPnP, eMail, Wetter, NTP, WLAN, Bluetooth u.s.w. kümmern.
Da das WMA nicht aktiviert werden muss, weil diese Fähigkeit an eine 
extra zu erwerbende Lizenz gebunden ist, sollte es kein Problem geben. 
Was jeder Einzelne zu Hause mit der Software macht, bevor er sie flasht, 
entzieht sich unserem Einfluss...

Um nicht wieder nur irgend einen weiteren MP3-Player zu bauen, sollte, 
neben der eMail anzeige (mir würde ein Symbol für neue eMails völlig 
reichen) ein paar neue Features integrieren.

Setzt man einen Tuner dazu, dann könnte man doch seine täglich zu 
fahrenden Bundesstraßen und Autobahnen eingeben. Man bekommt dann via 
TMC automatisch die dafür existierenden Stau-Meldungen aufs Display.

Der SAM7X hat doch USB Host und Device, also kann man daran einen 
beliebigen USB-Speicher anschließen ( Stick, HDD) und davon genauso 
lesen, wie von einem SD-Card Sockel.
Alternativ könnte er, angesteckt an einen PC, diesem als Soundkarte zur 
Verfügung stehen, und als Massenspeicher-Interface um die eingesteckte 
SD-Card zu füllen.

WLAN ist für mich ein absolutes Muss. Ich habe dazu noch keine 
nachvollziehbare, verfügbare und dokumentierte Lösung, aber was ich weiß 
ist, dass ein WLAN-Modul ständig mit dem Host kommuniziert. Also ist der 
ARM da eh schon beschäftigt, was uns zurück zu dem Software-Decoder 
Problem bringen würde, wenn man auf einen externen DSP verzichtet.

Bluetooth? Man könnte das Handsfree Profile implementieren. In einem 
Böro für Konferenzen wäre das interessant. Abgespeckt könnte man das 
Profile dafür verwenden, dass der Player automatisch leise wird, wenn 
das Handy klingelt und so lange man spricht.
Full-Featured könnte man A2DP unterstützen, um entweder einen 
BT-Kopförer zu verwenden, oder die MP3s von seinem Handy abzuspielen.

Der VS1053 hat auch einen Line- und einen Mic-Eingang. Warum also nicht 
mehrere von diesen Geräten im Haus haben und darüber dann eine 
Gegensprechanlage mit Anbindung an die Haustüre realisieren?

Für all diese Aufgaben kommt man sicherlich mit einem SAM7X256/512 hin, 
wenn man es schafft WLAN und Audio-Decoding außerhalb zu machen.

Der Tip mit dem TI-DAC ist schon sehr gut, TI bietet auch Chips mit 
integriertem Touchpanel Decoder an... Das bietet ab einer gewissen 
Anzahl Features einen enormen Bedienkomfort.

Fürs Layouten und weitere verrückte Ideen würde ich mich zur Verfügung 
stellen :)

Gruß, Ulrich

von Jorge P. (Firma: Portugal) (casainho)


Lesenswert?

Hello :-)

I would like to invite people to join Rockbox open source firmware for 
mp3 players, written from scratch. We are making one Free/Open hardware 
player and we should work together, since we have the same goals!

There is various ports of Rockbox for different ARM processors!

Read more here:
http://www.rockbox.org/twiki/bin/view/Main/RockBoxPlayer

Thank you.

von Sebastian (Gast)


Lesenswert?

Hallo an alle!


Is obiges Projekt noch am Leben?! ;-(

Oder zumindest die Idee davon?!

Mfg,
Sebastian

von Daniel (Gast)


Lesenswert?

Hallo Sebastian,

ich habe das Olimex Board da und wollte mich in Kürze einmal mit dem 
Projekt befassen. Eventuell könnte man sich dann austauschen.

Bei Interesse Mail an d.kaiser@kaiser-germany.com

von tbusse (Gast)


Lesenswert?

Moin moin

Gibt es noch Leben in diesem Projekt(en)?
Nachdem ich xmal Bandsalat entfernt habe und Streit zwischen meinen 
Burschen schlichten musste, weil alle ja zur gleichen Zeit die selbe 
CD/Cassette hören wollen kam mir die Idee Alles digitalisiert auf einen 
NAS zu legen und jedem einen kleinen Client ins Zimmer zu stellen. Nun 
hab ich auf meiner Suche nach einer Lösung dieses Thema gefunden, dass 
ja genau in die richtige Richtung geht aber leider nicht fort geführt 
wurde - oder doch?
Der Link zum WMP3 Ansatz ist fast perfekt wenn es nicht WLAN währe 
sondern normal in Kupfer.
Wer hat noch weitere Hinweise oder Hilfen?


MfG Thomas

von Andreas W. (andreasw) Benutzerseite


Lesenswert?


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.