Forum: Mikrocontroller und Digitale Elektronik 8051 MP3 Player (Web Radio )


von Benny S. (b_stark)


Lesenswert?

Morgen,
Ich wollte mal mein aktuelles Projekt, (in der Anfangsphase) vorstellen 
und mir vielleicht noch ein paar Ideen und Tips geben lassen :)
Momentan Plane ich ein MP3 Player / Webradio mit dem AT89C51SND1C. 
Diverses andere Projekte mit dem AT89 bzw. in Richtung Webradio laufen 
ja schon und dienten auch schon als kreative Anstöße. Wobei mir die 
meisten Ideen gefielen, aber doch wieder nicht alles so das es zu den 
Projekt gekommen ist.

Momentan Plane ich (bzw. hab schon Schaltpläne)
Mainboard:
- AT89C51SND1C
- 32kb RAM
- CS4344 DAC + Cinchbuchsen
- USB
- RS323 RX/TX auf Pinleisten
- Pinleisten: MMC, KEYS, I2C,SPI, Adress-/Datenbus

Addonboards:
- IDE mit HDD (evtl. CDRom)
- MMC
- RTC über I2s
- Wiznet Ethernet Chip mit TCP/IP Core (spart Rechenzeit, Ressourcen)

Ausgabe:
Fernseher  LCD  RS323

Wie man sieht soll es "Modulbasierend" sein. Zuerst wird wohl noch die 
IDE/Ethernet Platine geroutet und ausprobiert.

Naja bei Fragen antworte ich gerne ansonsten gebt mal euro Kommentare 
ab.

Aja als Projektziel ist nicht übermorgen geplant eher Mitte/Ende 
nächstes Jahr. ;)

von Ralf (Gast)


Lesenswert?

Hab eventuell Interesse mitzuarbeiten.
Habe ebenfalls zwei SND1 hier rumfahren, bin aber noch nie dazu 
gekommen, mit denen zu spielen. Falls du noch jemanden dazu gebrauchen 
kannst, sag Bescheid...

Ralf

von Benny S. (b_stark)


Angehängte Dateien:

Lesenswert?

Hi, Ralf
Zum spielen bin ich auch noch nicht gekommen, außer mit Eagle aber da 
bin ich momentan noch am überlegen ob der Dac wirklich mit dort rauf 
soll. Angehängt hab ich schonmal den (momentanen) Schaltplan, die 
Platine hab ich zwar auch schon fast fertig aber sie gefällt mir noch 
nicht da ich nicht alle Ports vom SND als Leiste zurverfügung hab und 
das ganze Teils noch sehr chaotisch wirkt.

Gegen Zusammenarbeit hab ich eigentlich nichts, wollte früher oder 
später das ganze ehe für private Zwecke frei geben. Und wie gesagt für 
Ideen/Kritik auch bezüglich Layout, etc. bin ich offen.

von Ralf (Gast)


Lesenswert?

> für Ideen/Kritik auch bezüglich Layout, etc. bin ich offen.

Das trifft sich, ich bin fortgeschrittener Layouter (beruflich) grins

Ich werd mir bei Gelegenheit mal den Schaltplan zu Gemüte führen, aber 
für heut langts mir, ich geh jetzt erst mal in die Kneipe :-)

Ralf

von Benny S. (b_stark)


Lesenswert?

Naja ich bin Semi-Amateur Layouter ;)Aber habe das Board auch schon zu 
75% fertig.
Wenn ich heut Nachmittag zuhause bin kann ich es ja mal reinstellen und 
du gibts dein Kommentar dazu ab, ob das was werden kann.

Für den DAC hab ich wahrscheinlich auch noch Platz gefunden nur für die 
Chinchbuchsen nicht mehr. Außerdem ist der Max3232 momentan nicht auf 
dem Board aber der könnte auch noch passen.

von Commtel @. (commtel)


Lesenswert?

@ Ralf

was willst für den haben?

Hasis55@hotmail.com

c.u
commtel

von Benny S. (b_stark)


Lesenswert?

Bei Farnell respektiv Mercateo gibt es sie für ca 18 € die TQFP 
Variante.

von Tobias S. (tobias)


Lesenswert?

Hi,
wozu den Layouts und Schaltplaene? Sowas macht man auf Lochraster:

http://blinkenlichts.net/dalbum/showimg.php?file=/Tobias/Player/100_3195.jpg

;)

Gruss Tobias

von Christian (Gast)


Lesenswert?

Hätte prinzipiell auch Interesse an dem Projekt, mal sehen wies zeitlich 
bei mir in nächster Zeit aussieht...

> Das trifft sich, ich bin fortgeschrittener Layouter (beruflich) *grins*

Das würde sich wirklich gut treffen, hab vom HW Teil und dem Layouten 
leider nicht ganz so viel Ahnung... :D
Bin dafür was SW betrifft ziemlich fit (auch beruflich)

Lasst mal was von euch hören wenns news gibt.

Gruß,
Christian

von Ralf (Gast)


Lesenswert?

@Ingo:

> was willst für den haben?

Was meinst du? Den SND1? Die will ich ja selber verbauen :-)
Aber ich denke, es dürfte kein unlösbares Problem sein, noch ein paar 
von den Dingern aufzutreiben, sofern sich das Projekt als durchführbar 
erweist und genügend Leute Interesse haben...

Ralf

von Benny S. (b_stark)


Lesenswert?

@ Tobias
Nicht schlecht, deiner?
Hab zwar beim googlen ein oder 2 Projekte mit dem SND gefunden aber das 
hab ich noch nicht gesehen.
Wenn es dein Projekt ist kannst du ja mal was dazu schreiben, würd mich 
freuen.

@Christian
Bei der Software sind wir noch nicht aber wenn dann kommen wir zurück 
auf dich ;)

@Ingo bzw Ralf
Hab ja schon gesagt wo es die noch gibt ;)
Außerden gibt es da auch noch den CS4344 DAC, und das 62V256 Ram.

Also denk ich das ich da aufjedenfall Bestellen werde, falls sich das 
nirgendwo anders (CSD,...) oder so auftreiben lässt.

von Commtel @. (commtel)


Lesenswert?

achso ich hab das falsch verstanden

ich hab schon mehere threads durch was den SND1 betrifft
am anfang war ich auch sehr angetan von seinem möglichkeiten.
Nur code beispiele gibt es sehr wenige

von Benny S. (b_stark)


Lesenswert?

Kein Problem.

Naja ich denke kopieren ist nicht das Ziel aber gucken wie es andere 
gemacht haben tue ich auch mal gerne ;)
Ansonsten ist es halt ein 8051 mit nen bisschen Zusatzhardware meiner 
Meinung nach, nicht was umbedingt extra Beispiele braucht. Aber mann 
wird sehen. Auch wenn das Datenblatt nicht so Ausführlich ist wie das 
von manchen AVRs.

von Commtel @. (commtel)


Lesenswert?

ich wills erst mal mit dem AT 89C51ED2 PLCC und hardware dazu
also ide interface für die festplatte
spi hat der ed2 für die sd karte
i2c per software für i/o expander und eeprom
nen pixel display mal schauen sonst nen 4 mal 20 zeichen

jetzt erst mal die sd karte verstehen

von Benny S. (b_stark)


Lesenswert?

Ok allerdings hat der SND1 ein extra IDE-Interface sprich die oberen 
Adressleitungen sind auch Multiplexed. Was die ganze sache 
Ansteuerungstechnisch einfacher machen sollte. Genauso wie ein "echtes" 
MMC-Interface also nicht per SPI.
Allerdings sind das Sachen die im untersten Layer passieren also wenn du 
deinen Code vernünftig aufbaust, musst du später nur die Write und Read 
Routinen verändern (und den MP3-Dekoder ansteuern).

von Commtel @. (commtel)


Lesenswert?

stimmt aber das ide interface bekommt man auch mit 2 74hc373 hin für 
high byte und den low byte mach ich ganz einfach mit 74hc245

Auch aus dem vs1003 hab ich den testton schon raus und 2 sekunden eines 
musikstücks.
Dabei waren die mp3 daten in einem 62256 und würden mit einem 80c32 16 
mhz mit simulierten spi an den vs1003 geschickt.
klar das lied kann man sich mit dem 62256 nicht komplett anhören aber 
die 4 sekunden waren ok für den test.

von Ralf (Gast)


Lesenswert?

Bei Digikey gibts den SND1 auch relativ günstig, vielleicht können wir 
da was machen... Mal sehen...

Bzgl. der Programmierung, ich denke der härteste Teil wird der USB-Part, 
oder soll der nicht genutzt werden?

Ralf

von Commtel @. (commtel)


Lesenswert?

war aber kein host controller der usb part weiss das nicht mehr so 
genau?

von Benny S. (b_stark)


Angehängte Dateien:

Lesenswert?

So hier mal die ersten Schritte mit dem Board, ist alles noch Work In 
Progress, aber es nimmt gestallt an.

Es ist kein USB-Host und intressant wird das ehe erst dann wenn man 
Massenspeicher ala Festplatte,etc... an den SND klemmt. Man braucht dann 
soviel ich weiß nur die Zugriffe USB<->HD implantieren. Aber dazu wollte 
ich erst später kommen.

von Michael F. (fury)


Lesenswert?

Moin,

ich möchte dir noch einen kleinen Tip geben für das Layout.
Die Adressleitungen für den RAM kannst du untereinander beliebig 
tauschen. Denn du hast ja nur ein RAM und damit ist es egal ob Daten, 
die du auf 3457 schreiben willst im RAM in Wirklichkeit auf 3457 oder 
6523 stehen, beim Lesen hast du dann die gleichen Drehungen drin.

P.S. Interresse an einer Platine hab ich auch, ich habe vermutlich schon 
2 SND1 in den Himmel geschickt.

von Ralf (Gast)


Lesenswert?

> ...habe vermutlich schon 2 SND1 in den Himmel geschickt

Dann wäre es evtl. hilfreich, wenn du schreibst, wie du sie gehimmelt 
hast, damit Benny das nicht auch passiert...

Ralf

von Christian (Gast)


Lesenswert?

Moin zusammen!

Hab mal das Forum ein bisschen durchsucht und 2 Threads zu ähnlichem 
Thema gefunden:
Beitrag "MP3-Dekoder AT89C51SND1C"
Beitrag "AT89C51SND1C"

Der AT89C51SND1C-RDTIL ist übrigens scheinbar bei 
http://www.er-tronik.de/ für 20€ zu erwerben

von Benny S. (b_stark)


Angehängte Dateien:

Lesenswert?

So ich hab mal noch mal das Board angehängt, die Orangen Bereiche werden 
noch neu gemacht( stammen noch aus dem ersten Layout/Versuch ) und da wo 
DAC bzw. RS323 steht kommt noch das passende hin.

@Michael
Jup die Daten auch, wie gesagt sind noch aus dem ersten Design (von 
vielen) ;)
Aber wie du die SNDs zum lieben Gott geschickt hast würd mich auch 
intressieren, damit ich nicht die gleiche "Dummheit" begehe.

@Christian
Leider kann ich die 2 Threads auf der Arbeit nicht öffnen, aber ich 
glaube ich hab alles zum SND in diesen Forum gelesen. Zumindest was mann 
mit der Foren und Topic suche finden konnte.
Den Shop kannte ich noch nicht, hab aufghört zu suchen als ich ihn bei 
Farnell fand.

Intressant wäre vielleicht für die entfernte Zukunft ein VNC1L von 
Vincullum/FTDI aber bis es soweit ist wird man ihn hoffentlich irgendwo 
bekommen ;)


von Michael F. (fury)


Lesenswert?

Die sind dadurch kaputt gegangen, das ich die Leitungen des 
USB-Anschlusses getauscht habe.
Ich kann mir das zwar nicht vorstellen das die davon kaputt gehen, aber 
nach dem zurück tauschen hat mein Windows nicht mehr auf das anstecken 
reagiert und kein unbekanntes Gerät angezeigt.

Nachdem 2. SND1 hab ich dann aufgegeben, habs einfach nicht geschafft 
die mit FLIP anzusprechen und zu programmieren.

von Commtel @. (commtel)


Lesenswert?

wieso steht da restposten

http://www.er-tronik.de/shop2/index.php?cPath=25&osCsid=54e16853241ce365a5db93edd1bcf20b

ist der snd1 ein auslaufartikel geworden ?

von Benny S. (b_stark)


Lesenswert?

Vielleicht weil sie noch den AT89C51SND1C-ROTIL haben der nicht ROHS 
Konform ist und es kein großes Intresse mehr an diesen Chip gibt. 
Außerdem ist der AT89C51SND1C-ROTIL bei Farnell auch als "nicht 
verfügbar" angegeben. Der AT89C51SND1C-ROTUL (ROHS Konform) ist 
allerdings noch verfügbar und ich denke nicht das er so schnell 
abgekündigt wird.

von Commtel @. (commtel)


Lesenswert?

also wer bestellt den nu ?
einer zum test wär ok

von Benny S. (b_stark)


Lesenswert?

Also erst mal möchte ich das Board fertig haben und dann bestellen, den 
ausser dem SND muss auch noch ein CS4344 und ein 62V256 her.
Allerdings der einzigste Shop wo ich alle 3 zusammen gesehen hab ist 
Farnell also wirds darauf hinaus laufen das ich da bestellen werde.
Bin allerdings für alternativ Vorschläge offen, wie z.B. mal bei CSD 
anfragen.

von Commtel @. (commtel)


Lesenswert?

na gut also wenn bestellst denkst bitte an mich

hasis55@hotmail.com

c.u
commtel

von Ralf (Gast)


Lesenswert?

Hab mir den Schaltplan mal angesehen...

Bitte nicht als Kritik auffassen, aber das Schaltplanzeichnen solltest 
du noch üben. Ist wie gesagt keine Kritik, sondern um Fehler zu 
vermeiden, wenn ich nicht schon selbst auf die Art Fehler gemacht hätte, 
würde ich es nicht sagen.

Den ADC-Teil solltest du noch beschalten.

Warum CS vom RAM über A15? Warum nicht per 74HC30 den CS generieren? 
Somit kann man fast volle 64kB RAM anschließen, und mittels HC138 oder 
HC154 noch weitere CS-Signale generieren... Falls das fürs Projekt 
relevant ist...

Übrigens wären auch 64k x 16(!) möglich, IDE-Interface sei dank...

Ralf

von Hansi L. (fabian87)


Lesenswert?

Hi,

habe auch sehr starkes Interesse an einem Webradio mc based.
Würde mich auch gerne zu lernzwecken an der entwicklung beteiligen, habe 
aber über die thematik noch nicht allzuviel ahnung und stufe mich mal 
als AVR anfänger ein (Mein größtes Projekt war es bisher erst ein T6963 
in assembler anzusteuern + lm75 interface usw, also nix dolles). Wenn 
meine Hilfe allerdings willkommen ist und mir genau gesagt werden kann, 
was ich machen soll und es in meinem machbaren bereich ist würde ich 
gerne mithelfen.

Dann mal noch weiterhin viel Erfolg :)

von Benny S. (b_stark)


Lesenswert?

@Ralf
Naja in der ersten Version sah der Schaltplan auch noch nicht so 
chaotisch aus und würd ich nicht an die Eagle Freeware gebunden sein 
könnte ich auch mehrere Seiten verwenden. Aber keine Angst Kritik finde 
ich (immer) gut man lernt raus.

Zum ADC, da sehe ich keine möglichkeit als die der Aufnahme und dafür 
seh ich keine Verwendung. Mir ist jedoch zum Glück aufgefallen das dort 
die Supply-Pins nich als extra Symbol vorliegen. Ansonsten für 
Vorschläge wie immer Dankbar;)

Und es sind nur 32Kb Ram eingeplant weil ich die oberen 32kb schon 
verplant hab (Den Wiznet TCP/IP 
Chip(http://www.mcselec.com/index.php?page=shop.product_details&flypage=shop.flypage&product_id=95&option=com_phpshop&Itemid=1), 
HD, LCD, etc...) und da ist es halt einacher gewesen die A15 als CS zu 
"missbrauchen". Zwar könnte man den EthernetChip auch indirekt 
Adressieren aber so halt ich mir für das AddonBoard etwas offen.

Und 64kx16 bzw. 32kx16 halte ich auf Grund der 2 Verschiedenen Register, 
im 8051 (und der 8Bit Architektur) nur für die HD Intressant.

Aber wie gesagt lass mich auch gern Umstimmen, wenn jemand mich 
Überzeugt.

@Fabian
Es ist zwar ein 8051 und kein AVR aber wenn du C kannst, sehe ich da 
keine größeren Probleme. Musst du halt wissen.

von Ralf (Gast)


Lesenswert?

> Zum ADC, da sehe ich keine möglichkeit als die der Aufnahme und dafür
> seh ich keine Verwendung.

Zumindest solltest du noch mal nachprüfen, ob die AD-Pins auch bei 
Nichtverwendung beschaltet werden müssen, sicher ist sicher...

> Und es sind nur 32Kb Ram eingeplant weil ich die oberen 32kb schon
> verplant hab (HD, LCD, etc...)
> ...
> aber so halt ich mir für das AddonBoard etwas offen

Eben. Deswegen wäre die "Ausbeute" größer, wenn du die CS-Signale für 
andere Hardware ab der Adresse 0xFF00 generierst. Aber das musst du 
wissen, du bist der Master-Chief :-)

> Und 64kx16 bzw. 32kx16 halte ich auf Grund der 2 Verschiedenen Register,
> im 8051 (und der 8Bit Architektur) nur für die HD Intressant.

Klar, ich vermute auch nicht, dass es so ist wie beim PC: Mehr RAM --> 
mehr Performance. Ich persönlich bin halt jemand, der alle Features 
ausreizt, wenn sie schon da sind grins

Ralf

von Benny S. (b_stark)


Lesenswert?

> Zumindest solltest du noch mal nachprüfen, ob die AD-Pins auch bei
> Nichtverwendung beschaltet werden müssen, sicher ist sicher...
>
Soweit ich es gefunden/gelesen habe nicht.


> Eben. Deswegen wäre die "Ausbeute" größer, wenn du die CS-Signale für
> andere Hardware ab der Adresse 0xFF00 generierst. Aber das musst du
> wissen, du bist der Master-Chief :-)
>
Der Master-Chief sagt Adresslogik ab 0xFF00 kommt aufs Addon Board. ;)
Alles unter 0xFF00 ist Ram, da reicht ein CS und dafür wird A15 
"missbraucht".


> Klar, ich vermute auch nicht, dass es so ist wie beim PC: Mehr RAM -->
> mehr Performance. Ich persönlich bin halt jemand, der alle Features
> ausreizt, wenn sie schon da sind *grins*
>
OK aber wir müssen ja auch nicht mit einen riesigen Betriebssystem 
kämpfen und 50 Programmer gleichzeitig laufen lassen :D
Nein im ernst ich denke 32kb reichen aus, der Wiznet Chip hat auch biszu 
8kb Empfangs- und Sende-Buffer. Außerdem macht er den ganzen TCP/IP kram 
so das wir nur "Nutzdaten" dort reinschreiben und rausholen müssen.
Fürs FAT werden wir später auch nur 1-2 kb brauchen und vielleicht 
brauchen wir etwas MP3-Buffer aber wir haben ja dann noch massig.

von Benny S. (b_stark)


Lesenswert?

Ähm soll natürlich heisen Adresslogik ab 0x08000 darunter nur RAM ;)

von Christian (Gast)


Lesenswert?

Hallo zusammen,

wie habt ihr euch denn das weitere vorgehen vorgestellt? Bestellt jetzt 
jeder und bastelt auf eigene Faust, oder macht Benny jetzt erstmal alle 
fehler und sagt uns dann wies geht? ;-)
Interessiert mich hauptsächlich wegen der Bestellung. Würde sich ja dann 
anbieten eine Sammelbestellung zu machen.

Christian

von Ralf (Gast)


Lesenswert?

> ...Nein im ernst ich denke 32kb reichen aus...

Dann solltest du dir (leider nochmal grins) Gedanken machen wegen dem 
Display, wenns ein grafisches sein soll, müsste die Ansteuerung 
ebenfalls über ein Addon-Board laufen, welches evtl. zusätzliches RAM 
benötigt, falls mit du Bildern arbeiten willst...

Ralf

von Sven DerSchreckliche (Gast)


Lesenswert?

Also ich möchte ja keinen Ärgern:
Der SND1c kann ansich viel, ist aber eine ziemlich langsame Kiste. Ich 
würde davon abraten...

Ich habe hier noch 10x CS4344 und 4x 89C51SND1c-UL (UL ist die 
ROHS-Version) rumliegen.
Gegen kleines Geld und Porto kann die gerne jemand haben.

von Benny S. (b_stark)


Lesenswert?

@Christian
Hab gedacht ich mach das Board weiter und ihr gebt eure 
Kommentare/Kritik dazu ab, dann gucken wir weiter (und allee sind für 
die Fahler verantwortlich ;) ). Sammelbestellung lohnt sich glaub ich 
Ingo wollte ja auch schon.

@Ralf
Wenn wir mehr RAM brauchen müssten wir 1) auf ein 8051 mit 16Bit 
Adressraum umsteigen oder 2) andere Teile auslagern. Aber müssen wir 
eine Eierlegende -Wollmilch-Sau haben (Ja, hätte ich auch gerne aber 
...)

Zu 1) Gibt es von Silabs glaubich, aber dann wäre der MP3 Decoder extra, 
das IDE-Interface nicht so simple, der MMC-Bus würd wegfallen, ... Mag 
aber auch Vorteile haben und da noch nichts gemacht wurde ausser 
Denkarbeit lass ich mich auch wie immer gerne zu was anderen Überreden.

Zu 2) Wir könnten statt für die Ethernet anbindung das IIM7010B+ Board 
nehmen und es über SPI ansteuern. Nur hab ich das noch nirgends gesehen, 
alternativ darf auch einer von euch ein Board mit dem WZ3050A+, PHY, 
Magjack machen. Mit dem IIM7010A über I2C wirds wohl zu langsam.

Als alternative würde auch noch Bankswitching in Frage kommen, mit dem 
internen RAM hätten wir dann 2kb die wir immer einblenden könnten und 
"4"x32kx8 in einem 128kx8 RAM und die oberen Adressen wieder fix.
Muss allerdings ehrlich gestehen hab nie etwas  mit Bankswitching 
Programmiert.

@Sven
Ja langsam ist Relativ er muss sich ja durch WizNet Chip nicht viel 
Rechnen  was TCP/IP angeht und auch sonst läuft vieles in Hardware ab. 
Eigentlich nur Lesen  -> (Buffern ->) in den Dekoder.

Aber zu den Chips kannst uns ja gerne mal ein Angebot machen. :)

von Ralf (Gast)


Lesenswert?

> Wenn wir mehr RAM brauchen müssten wir 1) auf ein 8051 mit 16Bit
> Adressraum umsteigen oder 2) andere Teile auslagern. Aber müssen wir
> eine Eierlegende -Wollmilch-Sau haben (Ja, hätte ich auch gerne aber
> ...)

zu 1) HÄ? JEDER 8051/52 hat 16-BIT Address-Raum --> 64kByte!!! Auch der 
SND1!!! Somit fällt 2) raus. Das einzige, was du dir im Fall eines RAMs 
mit 64kB überlegen musst, ist, dass es soweit ich weiss keine 8-Bit RAMs 
mit 64kB gibt, wohl aber 16-Bit 64kB RAMs!!!

> Zu 1) Gibt es von Silabs glaubich, aber dann wäre der MP3 Decoder extra,
> das IDE-Interface nicht so simple, der MMC-Bus würd wegfallen, ... Mag
> aber auch Vorteile haben und da noch nichts gemacht wurde ausser
> Denkarbeit lass ich mich auch wie immer gerne zu was anderen Überreden.

Naja, als extra MP3-Decoder eignet vielleicht einer von VLSI, ein VS1001 
o.ä. In dem Fall wäre dann nur das IDE-Interface per Software zu lösen, 
was du aber auch beim SND1 machen musst, das einzige was dazu kommt, 
wäre dann noch eine evtl. geringfügig aufwendigere Ansteuerung der 
IDE-Schnittstelle, aber das dürfte kein Problem sein...

> Zu 2) Wir könnten statt für die Ethernet anbindung das IIM7010B+ Board
> nehmen und es über SPI ansteuern. Nur hab ich das noch nirgends gesehen,
> alternativ darf auch einer von euch ein Board mit dem WZ3050A+, PHY,
> Magjack machen. Mit dem IIM7010A über I2C wirds wohl zu langsam.

Ich meine, es gab im Forum mal einen Beitrag über einen Ethernet-Phy, 
der per SPI-Schnittstelle kommuniziert... Weiss aber grad nicht, welcher 
das war. SPI ist aber sauschnell, bis 20MBit(1) sind glaub ich drin. Ob 
das der angesprochene SPI-Phy kann, weiss ich nicht, wäre eine Recherche 
wert...

Um die von Sven angesprochene Geschwindigkeit sowie deinen Wunsch nach 
einer eierlegenden Wollmichsau anzusprechen, guckt euch mal den 
C8051F120 von SiLabs an. Das ist ein 8051er, der keine eierlegende 
Wollmichsau ist, sondern weit darüber, 100MHz, jede Menge Ports, 
semi-wählbarer Port-Layout usw. usw. usw. Treibt natürlich den Preis des 
Projekts in die Höhe, aber dafür der schnellste 8051er, den ich kenne... 
Alternativ gibts den natürlich auch mit n paar weniger Features, einfach 
mal auf www.silabs.com gucken...

Ralf

von Ralf (Gast)


Lesenswert?

Argl, kleiner Schreibfehler:

> ...wohl aber 16-Bit 64kB RAMs

Das soll "wohl aber 16-Bit 128kB RAMs" heissen. Also 16-Bit Adressbus, 
16-Bit Daten. Dabei möchte ich noch anfügen, dass man sich bei 16-Bit 
Datenbreite Gedanken wegen der Variablen und deren Ablegen machen muss.

Als Alternative fällt mir noch ein, dass man ja auch zwei 32kB RAMs 
hintereinander setzen kann... A15 macht die Unterscheidung der beiden 
RAMs. Und die CS-Generierung ab 0xFF00 ist immer noch möglich, ich kann 
dich mit einem Schaltungsbeispiel versorgen, wenn du möchtest...

Hast dir das mit dem Display und den Grafiken überlegt?

Ralf

von Benny S. (b_stark)


Lesenswert?

> zu 1) HÄ? JEDER 8051/52 hat 16-BIT Address-Raum --> 64kByte!!! Auch der
> SND1!!! Somit fällt 2) raus. Das einzige, was du dir im Fall eines RAMs
> mit 64kB überlegen musst, ist, dass es soweit ich weiss keine 8-Bit RAMs
> mit 64kB gibt, wohl aber 16-Bit 64kB RAMs!!!

Ups meine natürlich 24Bit ;) Man sollte dann vielleicht doch noch mal 
drüber lesen.

Aber zu den anderen Sachen. Wenn wir auf einen anderen 8051 umsteigen, 
fliegt der Interne MP3-Decoder. OK das ist noch akzeptabel, wenn wir 
einen einen VS10xx dafür nehmen. Das IDE-Interface wird aber 
aufjedenfall komplizierter, im SND ist es schon schön in der Hardware 
drin ansonsten müssten wir die oberen 8Bit jedes mal Zwischenspeichern. 
Aber OK lass ich mir auch noch halbwegs gefallen :)

Jedoch besteh ich auf den WizNet Chip ;), da er TCP/IP On-Board hat und 
somit ein großer "komplizierter" Softwareteil, der auch noch viel 
Rechenzeit braucht wegfällt.

Zur Wollmilchsau, denke ich das es eigentlich nicht nötig ist ein 
Grafikdisplay zu haben. Sie wurd halt nur schonmal erwähnt aber wenn 
alles da rein soll, brauchen wir denk ich auch noch mehr als die 64k 
Programmspeicher und da läuft wieder alles auf einen der "ganz großen" 
8051 oder einen ARM raus nur dann brauchen können wir uns auch bei einen 
der anderen Projekte bedinen. Alternativ wäre da auch noch ein 
ATmega128/256 denkbar aber dann hätten wir "nur" eine Art Ethernut.
Und die 100Mhz find ich übertrieben da wären auch schon wieder ARM oder 
direkt nen Computer drin. Also wirds nicht mit der alten Sau.

Aber wenn wir 64kb RAM nehmen und den Wiznet über SPI und die HD/Display 
hinten dran ? oder was ganz anderes ?

von unsichtbarer WM-Rahul (Gast)


Lesenswert?

Interessant, einen ARM nur für die TCP/IP-Geschichte zu benutzen.
Der langweilt sich 80% der Zeit, und der 8-Bitter rotiert im Kreis.
Warum nicht gleich das Ding mit einem ARM aufziehen?
Dass ein 8-Bitter mit TCP/IP und MP3 abspielen etwas überlastet ist, 
kann ich mir schon vorstellen, aber einen ARM zum Sklaven zu machen...

von Benny S. (b_stark)


Lesenswert?

Naja eigentlich war der ARM dann für alles gedacht und der 8051 müsste 
nur TCP/IP machen und die Daten dann in den Decoder schieben. Nen 8051 
MP3-Decoder würd ich gerne mal sehen ;)

Aber nen ARM will ich ja nicht, dafür gibt es schon andere Projekte hier 
im Forum.

von Sven DerSchreckliche (Gast)


Lesenswert?

@Ralf:
Sicherlich kann der SiLabs mit 100MHz takten, aber er hat die 
angegebenen 100Mips nicht. Es sind tatsächlich "nur" 33Mips. Dennoch 
natürlich weit mehr als die 1,3Mips des 89C51Snd1.

Wenn hier überlegt wird, ob man auf eine andere CPU umsteigt und dann 
einen VLSi einsetzt, könnte man auch statt des VS10xx den 89C51Snd 
nehmen. Nur die MP3-Daten von einem Port zu lesen und in den internen 
MP3-Decoder zu schreiben würde ihn nicht überlasten. Er kostet unter 
10€, der VS10xx kostet mehr.
Die Software hätte man leicht im Griff, da es ja dann zwei 8051 wären.

von Ralf (Gast)


Lesenswert?

@Benny:

> Aber wenn wir 64kb RAM nehmen und den Wiznet über SPI und die HD/Display
> hinten dran ? oder was ganz anderes ?

Klar, das geht schon. RAM bis 0xFEFF, ab 0xFF00 CS-Generierung für HD, 
Display, IDE-Latch, usw.

@Sven:

> Es sind tatsächlich "nur" 33Mips

Woher kommt die Aussage? Okay, 100Mips peak als Aussage auf der 
Website, trotzdem wie du sagst, immer noch erheblich schneller...

Ralf

von Benny S. (b_stark)


Lesenswert?

@Sven
Endlich einer der mich (halbwegs) versteht ;)
Der SND schiebt quasi nur die Daten von Register zu Register, rechnen 
muss er kaum. Aber nen 2ten braucht man nicht einsetzen man kann ja ehe 
nur entweder von HD oder vom Netzwerk oder von ... abspielen und 
zwischen durch nen Display updaten. Das Dateisystem wird nicht soviel 
Rechenzeit in anspruch nehmen und TCP/IP macht der Chip.

Der 2te 8051 wird vielleicht Intressant als Frontpanelmc für 
Fernbedingung, Knöpfe und um den SND ins Standby zu schicken aber auch 
das passt bestimmt noch in den SND.

Und selbst wenn alle Stricke reißen besitzt der SND 12C und SPI 
Slave-Fähigkeiten in Hardware.

Nur verate mir wo du den SND für (unter) 10€ bekommst?

von Sven DerSchreckliche (Gast)


Lesenswert?

@Ralf

Also die 33Mips beim SiLabs sind eigene Erfahrung. Ich setze den F133 
schon eine Weile ein. Und wenn Du ganz einfache Loops baust und dann 
z.B. Ports togglest, kommst Du auch ca.20Mips.
Außerdem macht er die 100Mips nur bei 1-Cycle-Befehlen (sind zwar viele 
Befehle, aber die 2Cycle braucht man doch mehr) und dann nur, wenn er 
alles aus seinem Cache bekommt. Falls nicht, braucht er wieder 4 Zyklen, 
um sich 32 Bit reinzuholen.

@Benny
Nun, einfach z.B. bei Digikey kaufen. 1 Stück 9,67€, 10 Stück gibts für 
je 8,70€. Deshalb gebe ich meine 4x 89C51SND1C-UL für je 6,- und meine 
10x CS4334-KSZ für je 1,20€ zzgl. Porto ab...

Beim Thema Geschwindigkeit des 89C51SND1c möchte ich dennoch warnen. 
Viel mehr als nur Daten zum internen MP3-Decoder schaufeln wird nicht 
drin sein.

von Sven DerSchreckliche (Gast)


Lesenswert?

oops...schwerer Fehler: Das sind CS4344 und nicht CS4334 !!

von Benny S. (b_stark)


Lesenswert?

@ Sven
Was würd mich den ein SND + CS4344 + Portokosten? Den für kleinemengen 
lohnt Digikey nicht.
Wäre nämlich an der Kombination intressiert.

@ Ralf
OK, aber wenn wir das so machen dann müssten wir entweder das IIM7010B+ 
auftreiben (wegen SPI) oder das IIM7010a/b indirekt Adressieren oder per 
100khz I2C betreiben was jedoch zulangsam wäre für 128kbit/s MP3s.
Und IDE-Latch braucht man beim SND ja nicht extra ansteuern nur ein 
zusätzliches 74xx573 und mit an ALE.

Wäre nur noch zuklären wie wir mit den 128kx8 umgehen, zwecks aufteilung 
in Bänken und Peripherie

von Tobias S. (tobias)


Lesenswert?

Hi,
jo der Player weitet oben ist von mir. Er besitzt 32kb ram, den 
witznet-chip fuers ethernet und einen ti dac fuers audio. Das Display 
wird seriell angestuert und hat nochmal einen eigenen avr fuer 
Zeichensatzgenerierung und Displayverwaltung. Ich wollte mir damals 
einen Player bauen, der alle meine MP3s im Netzwerk schnell und 
benutzderfreundlich abspielen kann. Deshalb habe ich mir damals einen 
extra java-server auf einem pc geschrieben, der der dem Player alle 
Daten bereits aufbereitete, damit der sich ncihtmehr um irgendwelche 
Dateiprotokolle kuemmern musste. Entsprechend hat sich auch der Server 
darum gekuemmert, webradios quasi transparent als mp3 dateien 
darzustellen. Dadurch besteht fuer den Player kein unterschied zwischen 
Datei und Radio, weil er sowieso die MP3-Daten und die 
Titelinformationen getrennt bekommt.

Die Geschwindigkeit des SND1 reicht dazu ueberigens locker aus. Nur mit 
320er Bitraten hatte ich probleme, war dann aber zu faul herauszufinden 
woran es lag.

Der Chip macht ueberigens 3.3Mips und 1.3

Wenn ihr einen anderen Chip nehmen wollt(ohne integrierten mp3 codec) 
dann solltet ihr euch genau ueberlegen, ob avr oder 8051er da noch die 
richtige wahl sind. Haengt auch dann am besten an das arm-mp3-webradio 
dran. Da sehe ich viel mehr Potential drin.


Gruss Tobias

von Ralf (Gast)


Lesenswert?

@Benny:

Man braucht ja nicht gleich 128kB RAM, 64kB (2x32) tun es auch. Auf die 
Art hast du die volle Ausreizung ohne zusätzliche Banking-Hardware. Man 
kann ja auch ein zweites RAM vorsehen, wenn man sieht, dass man es 
braucht, baut man es ein. Somit hast du deine ursprünglichen 32kB, aber 
die Möglichkeit, zu erweitern, ohne nochmal was am Board zu ändern.

Ralf

von Ralf (Gast)


Lesenswert?

@Benny:

Was mir grad noch bzgl. IDE eingefallen ist, du beachtest doch 
hoffentlich, dass der SND1 keine 5V-toleranten IO-Pins hat. Wie willst 
du die Pegelwandlung lösen? Evtl. lässt sich die Pegelwandler-Schaltung 
aus den I2C-Specs verwenden, die ist bidirektional. Alternativ gibt die 
MAX3000er Serie, aber die kosten halt auch wieder...

Ralf

von Benny S. (b_stark)


Lesenswert?

@Tobias
Nicht schlecht plannen tue ich ja in soweit das gleiche ;)
Nur hatte ich vor statt einen eigenen Server zu verwenden einfach 
Ice-/Shoutcast-Streams zu benutzen kommen mehr oder weniger auch nur MP3 
Daten an.
Kannst ja dann sicher bei Codefragen weiter helfen ?
Hast du das Wiznet Board Indirekt Adressiert?
Und Buffers du den Stream?
Fragen, über Fragen.

Und zu 320kbit/s MP3s stand etwas im Errata.
>MP3 Decoder – Underrun When Playing High Bit-Rate Frames
>When playing frames with the following frequencies sampling and bit rates, audio 
DAC
>runs out of data leading to noise and wow.
>–44.1 kHz - 320 Kbs
>–32 kHz - 256 Kbs, 320 Kbs
>Workaround Implemented in latest firmware packages.
Nur kommt man ohne Referenzdesign wahrscheinlich nicht an die Firmware.

@Ralf
Das mit den 2ten 32kb auf die Addon-Platine gefällt mir am besten, von 
den bisherigen Vorschlägen. Mir gings dabei ja nicht ums Board Redesign 
sondern vielmehr um die mehr oder weniger "einfachheit" des System.
Aber wenn wir es nun so machen werde ich, sobald ich Zeit hab herraus 
suchen wer, wo, wieviel Speicher/Adressen braucht und dann mal etwas 
zusammen stellen.

Zur 5V<->3V Problematik hab ich mir auch schon etwas gedanken gemacht, 
entweder MAX3000 oder ein GAL/CPLD mit 5V tolleranten I/Os komplett 
dazwischen.
Vorteil wäre er könnte direkt sämtliche Adresslogik übernehmen.
Aber da hab ich dann auch schon wieder aufgehört zu denken ;)

von Sven DerSchreckliche (Gast)


Lesenswert?

@Benny

Also der "workaround" ist sehr simpel.
Problem beim SND1c ist, daß der interne Speicher für ein MP3-Frame nur 
1kByte groß ist und bei 320kbs-Frames dieser größer sein kann. Deshalb 
wird in einem Register des SND1c (das nicht publik gemacht wurde) 
einfach nach einer bestimmten Menge bereits gesendeter Daten ein Bit 
gesetzt und somit dem MP3-Decoder der Befehl gegeben, bereits mit der 
Decodierung anzufangen und nicht zu warten, bis der komplette Frame im 
Speicher ist. So zumindest der O-Ton eines Entwicklers von Atmel, den 
ich deshalb mal eine Weile ausgequetscht hatte.

@Tobias

Wie der SND1c 3,3Mips machen soll, versteh ich nicht ganz. Er taktet 
maximal mit 20MHz und braucht 6 Takte für einen 1-Cycle-Befehl. Das 
wären 3,3Mips. Jedoch sind die meisten Befehle immerhin 2-Cycle-Befehle 
und somit wären wir schon bei 1,6Mips...Und die Praxis zeigt dann, daß 
es eben noch etwas weniger sind. Man sollte sich nicht auf die 
"peak"-Angaben der Hersteller verlassen.

@Benny

Unter Leidensgenossen: Ein 89C51SND1C-UL(6,-) und ein CS4344(1,20) inkl. 
Porto(0,90) wären für Dich 8,10€

von Commtel (Gast)


Lesenswert?

stimmt so ein 8051-mp3-webradio hab ich noch nicht gesehen
wobei es gewisse bausteine schon gibt.

Mir wärs am liebsten wenn es sowas wie das 8051 kochbuch für nen arm7 
geben würde.
Für C kenn ich mich zu wenig aus und ich müste dann alles von vorne 
machen
sprich arm7 und c oder hat jemand gute kenntnisse in arm7 und assembler
der mir was beibringen kann?

von Benny S. (b_stark)


Lesenswert?

@Sven
Schick mir mal bitte deine Kontodaten an Benny_Stark ÄÄT online.de
ich würd nämlich als Leidgenosse dir von beiden gerne einen abnehmen. ;)

Das mit dem Register hört sich gut an, könnte nämlich praktisch sein 
weil ich bis jetzt noch nicht heraus gefunden habe ob Ice-/Shoutcast mit 
der ersten neuen Frame oder mitten drin anfängt zu Senden. Ich mein es 
wäre zwar nur sehr kurz rauschen zuhören aber wer weiß ob der SND mit 
abspielen des "Mülls" überhaupt anfängt.


@Commtel
Was meinst du den mit den "gewissen Bausteinen" ?
Ansonsten gibt es ein ähnliches Projekt mit ARMs auch, kurz unter diesem 
Thread.
Persönlich kann ich dir den Tip geben wenn dann lerne C direkt auf dem 
ARM. Wenn du es auf z.b. einen AVR lernst ändert sich ehe wieder einiges 
sobald du auf dem ARM umsteigts oder auf dem PC benutzt.

von Sven DerSchreckliche (Gast)


Lesenswert?

@Benny
(at)online.de? richtig?

von Benny S. (b_stark)


Lesenswert?

Entschuldige aber ich war das Wochenende nicht zuhause. Ich werd dir das 
Geld am Montag überweisen und meine Adresse schicken.
Aber jetzt geh ich erst einmal schlafen, ich bin KO ;)

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.