Forum: Projekte & Code STA015 MP3 Decoder Evaluation Board


von ape (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
hier mal ein kleines Testboard für den STA015 MP3 Decoder. Den Decoder
samt gutem DA-Wandler bekommt man zur Zeit sehr günstig in Form von
alten MP3-Playern für Siemens-Handys bei ebay (~2€ + Fracht). Das
Auslöten ist mit einem Heißluftgebläse kein Problem, ohne wirds etwas
schwieriger geht aber auch.
Die Mute-Schaltung (Transistoren Q1 und Q2) stammt aus einer App-Note
von ST. Ich hab die Schaltung aber noch nicht ausprobiert und die
Transistoren erstmal weggelassen.
Über JP4 kann der MP3-Decoder mit einem externen Takt versorgt werden,
ich verwende aber einen 8MHz Quarz.

Die Firmware ist für den mega128, andere AVRs gehen natürlich genauso,
mann muss dann nur die Verbindungen an die jeweiligen SPI-Pins
anpassen.
Bei mir sieht die Verbindung folgendermaßen aus:
BIT_EN -> PB0
SCKR -> PB1 (SCK)
SDI -> PB2 (MOSI)
DATA_REQ -> PB4

SCL -> PD0 (SCL)
SDA -> PD1 (SDA)

Um Die UART-Baudrate anzupassen, müssen in der uart.h die gewünschte
Baudrate und der Prozessor-Takt angegeben werden.
In der main.h muss noch eine Routine zum Lesen der Daten von einem
Speichermedium eingefügt werden. Ich verwende eine 32MB
Multi-Media-Karte.

von Volker Kattoll (Gast)


Lesenswert?

Hallo Ape,
besteht bei dir evtl. die Möglichkeit eine einzelne Testplatine
käuflich zu erwerben?

Wenn ja, schick 'ne Mail an o.a. Adresse.

Gruss Volker

von mode (Gast)


Lesenswert?

Man man man,

Da komme ich meiner Idee einen Shoutcastplayer zu bauen ja ganz schon
nahe. (Shoutcast ist Radio über Internet im MP3 format)
z.B.: http://212.73.29.83:8500 (mit Winamp oä öffnen)
Wenn ich dieses Board und den Webserver von Uli modifiziere koennte das
ja gut klappen.
Was meint ihr?


Gruss

Mode

von Sascha (Gast)


Lesenswert?

hätte auch interesse an einer platine

Mfg sascha

von ape (Gast)


Lesenswert?

Hallo,
ich ätze meine Platinen selber, daher bin ich nich wirklich in der Lage
welche zu verkaufen (Dauert einfach zu lange welche zu machen...)
Aber ich hab mal das Protel-File angehängt, so dass ihr sie euch bei
PCB-Pool oder so machen lassen könnt. (Keine Ahnung wie da so die
Preise sind)

@mode: Möglich wäre das wohl, dürfte allerdings ne nette
Herausforderung sein.

von ape (Gast)


Angehängte Dateien:

Lesenswert?

Mist, Anhang vergessen

von AxelR. (Gast)


Lesenswert?

hättste mal gerber files geschickt, damit kann mein fertiger was
anfangen. Gibt es Protel irgentwo, dann könnt' ich die auch selbst
generieren. Eagle haste nich? Weil das würde auch direkt gehen.
geht sicher anderen auch so.
AxelR.

von ape (Gast)


Angehängte Dateien:

Lesenswert?

Hatte fix bei PCB Pool nachgeguckt die ham keine Gerber-Files genommen,
aber Protel...
Im Anhang also auch nochmal die ganzen Gerber Files. Den Top-Layer kann
man übrigens weglassen, sind nur ein paar Brücken die man da löten
muss.

Für Eagle müsst ich das Board neu routen, da hab ich eigentlich keine
Lust zu :P

von Benedikt (Gast)


Lesenswert?

@mode
Ist das wirklich ganz normales mp3 Format, das man mit einem VS1011,
STA015 usw. dekodieren kann ?
Einen DVB Radio Stream kann ein VS1011 auf jedenfall nicht dekodieren.

von mode (Gast)


Lesenswert?

@benedikt,

Ja das ist ganz normales MP3, nix DVB. Kann man sich mit nem Tool auch
als MP3 auf HD Streamen. Momentan hoere ich hier mit 112K und die Quali
is durchaus i.o.
Das ganze hab ich bei mir fuers Bad gedacht. Fuer die Musik morgens
unter der Dusche. Dann werd ich nicht mehr mit der Werbung der localen
Radiosender hier zugeschuettet. Und viele 1000 Sender Auswahl....

Warum posten wir nicht in uC und Elektronik, das hier ist doch schon
was mehr als ein Codeschnipsel.



Gruss

Mode

von Bernd (Gast)


Lesenswert?

@ape
kannst du bitte die Gerberlisten benennen, so kann ich die schwer nach
Target konvertieren. wenn ich wüsste was ist zB. unten oben bestückung
bohrloch usw.
Ich stelle die " vom Glauben " konvertierten, dann auch hier rein.
mfg

von ape (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
die Dateiendungen geben doch an um was für Layer es sich handelt:
gbl = Bottom Layer
gbo = Bottom Overlay
gbp = Bottom Paste
gbs = Bottom Solder Mask
gd1 = Drill Drawings
gko = Keep Out
gm1 = Mechanical 1
gtl = Top Layer
gto = Top Overlay
gtp = Top Paste
gts = Top SolderMask

Hab übrigens den Drill Guide Layer vergessen, hab den auch nochmal
angehängt

von Bernd (Gast)


Lesenswert?

@Ape
Sorry, daß das jeder wusste, nur ich nicht, bin zu blöde.
Für Protel, (war doch Protel) will Target noch Bohre- und Blendenlisten
haben. Die Dateiendungen sollen sein:
Bohre   : *.DRR
Blenden : *.A**
mfg

von ape (Gast)


Lesenswert?

Mhmm sorry, aber sone Files kann man bei Protel nirgends exportieren
(jedenfalls wüsste ich nicht wo)

von Bernd (Gast)


Lesenswert?

@Ape
dann gebe ich auf.

@Alle
Ist "Gerber einlesen" bei anderen Programmen möglich, um daraus
wenigstens ein GIF oder PDF oder sonst was draus zu machen ?
mfg

von AxelR. (Gast)


Lesenswert?

@Bernd
Bohr-und Blendenlisten sind für -sagen wir- uralt Gerber.
Keiner arbeitet mehr mit Blendenlisten usw. sind alles Rasterplotter.
Gut, probiermal Gerber247X einzulesen. In diesen Daten sind die
Emulationsmakro's und die ToolTables im Gerberfile integriert.
Vielleicht kennt Target dises -aktuelle- Format.
Bekomm' ich jetzt erst mit:
kann Target Gerber einlesen, so? Warum kann mein Eagle das nicht auch
von Hause aus??

So gute Nacht, schon wieder spät...
AxelR

von ape (Gast)


Lesenswert?

In dem Zip-Paket von meinem ersten Post ist ein PNG mit dem Layout
drin...

von Thorsten (Gast)


Lesenswert?

@ape

Eine kleine Bitte: könntest du die beiden Protel-Dateien (.pcbdoc und
.schdoc) mal im Protel99(SE)-Format speichern und hier posten oder mir
mailen? Leider habe ich zu DXP keinen Zugang und ich würde mir gerne so
ne Leiterplatte ätzen. Gerber ist ungeeignet, da die Löcher nicht
angezeigt werden.

Vielen Dank.

Gruß
Thorsten

von ape (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
Protel99 hab ich nicht in den Export-Formaten gefunden, aber Protel 3.0
(ich hoffe mal das is alt genug :)
Wenn du die Platine selber ätzen willst, brauchst du doch aber
eigentlich nur das Bild vom Layout, das ist doch in meinem ersten
Posting enthalten (die png-Datei).
Das Schematic-File wird dir wenig nützen denke ich, da du ja die
Bibliotheken auch nicht hast.

von Thorsten (Gast)


Lesenswert?

Keine Ahnung, ob das mit dem png-File so gut geht. Vielleicht gibts da
irgendwie Skalierungsprobleme? Wollte mal ein PDF als Vorlage nehmen,
da kam auch nur Müll bei raus.

Was die Libraries angeht, so ist das ja das schöne an Protel. Aus nem
Schaltplan und auch aus einem Layout kann man sich eine Lbrary
erzeugen. Die ursprünglichen Libraries sind IMHO nicht erforderlich.
Ich hoffe ich erzähle jetzt kein Blödsinn, aber ich meine das das geht.


Jedenfalls vielen Dank für deine Mühe!

von ape (Gast)


Angehängte Dateien:

Lesenswert?

Mhmm, kann sein. Ich kenn mich zugegebener Maßen mit Protel auch nich so
super aus :) Also jetzt auch noch das Schematic im Anhang.

Zum png: sollte eigentlich nich so schwierig sein: mit nem
Grafikprogramm öfnnen (glaube selbst Paint kann mittlerweile png
öffnen), evtl. noch Auflösung auf 600dpi stellen (müsste aber
eigentlich schon sein) und ausdrucken, da sollte eigentlich nichts
verzerren.

von Thorsten (Gast)


Lesenswert?

Ich werds auf jeden Fall mal mit dem PNG probieren. Danke!

von Wolfgang Schröder (Gast)


Lesenswert?

Hab mir die platine nach der png dataei gemacht. Geht perfekt.
Jetzt hab ich aber mal ne Frage. Läuft die Schaltung mit 5V oder
3,3V? (Ich vermute 3,3V)

Gruß Wolfgang

von ape (Gast)


Lesenswert?

stimmt, hab ich vergessen zu erwähnen, die Schaltung läuft mir 3,3V

Datenblatt zum STA015 gibts übrigens hier:
http://www.st.com/stonline/books/ascii/docs/7042.htm

von ape (Gast)


Lesenswert?

noch was: Falls jemand die Schaltung neu designed, wäre es ganz sinnvoll
eine zweite 5V Versorgung mit vorzusehen, mit der der DAC versorgt wird.
 Levelshifter sind nicht notwendig, da der DAC auch mit 5V-Versorgung
3,3V sicher als high erkennt.
Mit 5V-Versorgung für den DA-Wandler könnte man sich nämlich die
momentan verwendete Dämpfung von 10dB sparen.

Hatte beim entwickeln der Schaltung gar nicht dran gedacht, das 3,3V
nicht ausreichen um einen vollen Line Pegel zu schaffen.

von Thorsten (Gast)


Lesenswert?

Danke für den Hinweis. Ich hab vor, die Schaltung komplett in SMD zu
realisieren, die bedrahteten Bauteile nerven mich :)

von Michael Rubitschka (Gast)


Lesenswert?

Hallo

Zuerst einmal großen Dank für die Veröffentlichung des Demoboards,
und den Tipp wie man den STA015 billig bekommen kann an ape.

Hat von euch auch schon jemand das Board nachgebaut?

Bei mir funktioniert es leider nicht ganz.
Ich lese den mp3 stream von einer MMC Karte.
Das Board spielt zwar, aber es hört sich an als ob der Sänger
stottert.
z.B.: My way (nein ich bin noch keine 60, aber mir fällt gerade kein
besseres Beispiel ein ;-)

IIIIII lllliiivvvedd aaa livvveee thatttssss fffulll,...

Hat jemand vielleicht eine Idee was ich falsch mache ?


LG
Michael

Debug Auszug:


STA015 initialisieren...
IDENT: 0xAC
VERSION: 0x20
SOFTVERSION: 0x11
konfigurieren... System OK

Karte gefunden!!
Initialisierung der MMC/SD-Karte ENDE!
File Found!
System OK!


128 04 1B6490
128 04 1B6490
128 00 1B6490
128 00 1B6490
128 00 1B6490
128 04 1B6490
128 00 1B6490
128 04 1B6490
128 00 1B6490
128 00 1B6490
128 00 1B6490
128 00 1B6490
128 04 1B6490
128 00 1B6490
128 00 1B6490
128 00 1B6490
128 00 1B6490
128 04 1B6490

von ape (Gast)


Lesenswert?

Mit welcher Taktrate läuft dein AVR?
Möglicherweise schafft er es einfach nicht schnell genug die Daten in
den Dekoder zu schaufeln, dann tritt genau der von dir genannte Effekt
auf.
Häng einfach mal eine LED (oder besser, falls vorhanden ein
Oszilloskop) an die DATA_REQ Leitung. Es dürfen immer nur kurze Peaks
zu sehen sein, bzw. ein schwaches leuchten bei der LED.

von Michael Rubitschka (Gast)


Lesenswert?

Hallo Ape

Meiner läuft eigentlich auf 8Mhz, ich verwende den internen
Oszillator.
Werde es mit einem externen Quarz versuchen, gute Idee!
Kann es vielleicht daran liegen, das ich für die MMC einen software
spi
verwende ?
Das MP3 hat 128 k /s.

LG
Michael

von Michael Rubitschka (Gast)


Lesenswert?

Antwort von Ape
>>>
Hallo,
ja das Software SPI wirds sein denke ich, damit lassen sich bei weitem
nicht
die Geschwindigkeiten des Hardware SPIs erreichen. Ein Software SPI ist
aber
eigentlich auch gar nicht notwendig, da man ja mit dem BIT_EN Pin des
STA015
und dem Enable Pin an der MMC auswählen kann welche von beiden
angesteuert
werden soll. Auf diese Weise kann man beide ans Hardware SPI hängen. Du

musst dann nur immer beim Wechsel auf das jeweils andere Gerät das SPI

Config Register ( SPCR ) anpassen.

also ungefähr so:

// Main-Loop
while(1) {
    SPCR = mmcSpcr;
    // MMC aktivieren, Chip Select auf Low
    // einen Sektor von der MMC lesen
    // MMC deaktivieren, Chip Select auf High

    SPCR = sta015Spcr;
    // STA015 aktivieren, BIT_EN auf High
    // Daten an Decoder senden
    // STA015 deaktivieren, BIT_EN auf Low
}

mfg ape

PS: Wär vielleicht ganz gut, wenn wir die Diskussion im Forum
fortsetzen,
auf diese Weise haben andere die das gleiche Problem haben auch was
davon.
<<<<
Hallo Ape

Hast recht, deswegen war ich so frei und habe ich deine Antwort ins
Forum kopiert

von dave (Gast)


Lesenswert?

Ich hab mir auch die Bauteile vom mp3-Player ausgebaut.
Frage: was braucht der als Takt? Reicht es, wenn ich den 8MHz der auch
auffem Board war benutze (für den STA)?

Kannste zufällig noch Eagle hochladen?

dave

von ape (Gast)


Lesenswert?

Hallo,
ja ein 8MHz Quarz is vollkommen ausreichend bzw. mit meinem Code auch
zwingend erforderlich, da der STA015 halt auf 8MHz eingestellt wird.

Eagle Files hab ich leider keine.

von AxelR. (Gast)


Lesenswert?

Hallo,
wenn ich jetzt ein - sagen wir  - Diktiergerät mit den Teilen bauen
wöllte... Geht ja nicht so ohne weiteres oder? Kann der STA nur
decodieren oder auch encodieren? Was nimmt man da dann am besten für
einen Chip?

AxelR.

von Michael Rubitschka (Gast)


Lesenswert?

Der Sta kann auch encodieren.

LG
Rubi

von AxelR. (Gast)


Lesenswert?

achso? muss ich noch aml ins Datenblatt von ST reinsehen, danke erstmal,
ich dachte, es sei von vornherein aussichtslos.

vlg
axel

von ape (Gast)


Lesenswert?

Für einen MP3 Encoder muss man halt noch nen AD-Wandler an den STA015
hängen, hab ich aber noch nie ausprobiert. Ich weiß auch nicht wie man
dann die encodierten Daten aus dem Chip wieder rausbekommt, das normale
SPI Interface hat keinen Data-Out Pin.

von lemmz (Gast)


Lesenswert?

Hi,
hat die Kombination mit 128er AVR noch genug Ram/Rechenzeit für
Dateisysteme sprich CF-Cards oder MMC-Cards übrig ?

von ape (Gast)


Lesenswert?

Hallo,
also die Rechenleistung ist kein Problem, allerdings passt in das
interne RAM kein sonderlich großer Buffer rein, das macht es recht
schwierig eine lückenlose Wiedergabe zu garantieren. Ein externes RAM
sollte schon sein, allerdings werden dann die Pins für ne CF Card
knapp, die musst du dann auch an die gleichen Ports hängen wie das SRAM
-> der YAMPP zeigt wies geht.
MMC/SD Karte sollte aber kein Problem sein.

von dave (Gast)


Lesenswert?

Für einen halbwegsgescheiten mp3 Player brauchts glaub unbedingt nen
externen RAM mit genügend Größe...
Wenn ich mir allein überlege, wieviel so eine Ordnerliste, in der alle
Files eines Ordners drinstehen speicherplatz kosten. Man will natürlich
nicht nur 8.3 Namen angezeigt haben.. am Besten natürlich die id3-Tags
und die sind bekanntlich groß.
Da hat man wieder Speed vs. Platz : man könnte natürlich bei jedem
runterscrollen in der Liste die ganze Liste auslesen... ;) und dann die
richtigen Items raussuchen... ich denke aber, mit nem 32 oder 64er RAM
ist man sicher gut bedient.

Wenn wir dabei sind: hat jemand ne Bezugsadresse für so einen bei
3,3V?

dave

von ape (Gast)


Lesenswert?

32kx8 SRAMs gibs erstaunlicherweise zu einigermaßen akzeptablen Preisen
(~5€) beim großen C, einfach mal auf der Seite nach 62256 suchen. 3,3V
sind die wohl alle.

von Steffen (Gast)


Lesenswert?

für kleine Bauformen kann ich den IDT71V256SA10PZ empfehlen. Der hat ein
TSOP28 Gehäuse. Speed ab 10ns. Kostenpunkt ist etwa 2,50 EUR.

von dave (Gast)


Lesenswert?

Mir fiel grad auf, beim betrachten (in Eagle ;) des Chips, dass der 3
Steuer/Datenleitungen für nen ADC hat.. ich denke, der steuert den ADC
beim Encoden selbst an und raus kommts am IO-Port.

Den Quarz sicher an XTI und XTO anschließen.. denk isch mal. Weiste
zufällig, wie der Quarz aussem Player belegt ist?

dave

von Danny Müller (Gast)


Lesenswert?

Hi kann mir jemand sagen wie ich die gerber files aus eagle herausziehen
kann

mfg
danny

von Thorsten (Gast)


Lesenswert?

@ape

Hast du dein STA015-Board eigentlich mal in Betrieb genommen? Wollte
wissen, wie das funktioniert und ob du noch Änderungen vorgenommen
hast. Denn ich bin jetzt mal dazu gekommen, eine kleine Platine (100%
SMD) zu entwickeln. Im wesentlichen habe ich deinen Entwurf benutzt,
mit ein paar Änderungen:

1. Externe Taktmöglichkeit für den STA015 ist weggefallen
2. XTAL ist 10MHz (hatte keine 8MHz)
3. Pullups am IIC weg, mache die immer auf Masterseite
4. Mute-Circuit ersatzlos gestrichen
5. Stromversorgung (VCC) ist 5V, Spannungsregler auf 3.3V
6. Spannungsregler kann überbrückt werden -> VCC = 3.3V
6. VCC für den CS4340 per Jumper auf 5V oder 3.3V setzbar

Das ganze gibt eine reine Decoderplatine, das ADPCM-Encoding habe ich
komplett weggelassen.

Bin gerade am überlegen, ob ich noch nen Pegelwandler von 5V auf 3.3V
für die Datenleitungen einbaue. Denn wenn der µC auf 5V läuft, kann ich
ja keine 3.3V-Devices ansteuern. Schreib einfach mal, was dir zu dem
geschriebenen so einfällt.

Gruß
Thorsten

von Fabian T. (ape)


Lesenswert?

Hallo,
die Platine lief bei mir tadellos, hab sie aber mittlerweile schon
nciht mehr im Einsatz :)
Deine Änderungen sollten alle kein Problem sein, beim 10MHz Quarz muss
dann natürlich die Initialisierung des Decoders auf die Taktfrequenz
angepasst werden. Auch ein Pegelwandler ist nicht die schlechteste
Idee, allerdings ist das Pegelwandeln vom I2C Interface nicht ganz so
einfach. Ich hatte das gleiche Problem und hatte die vorgeschlagene
Pegelwandlung aus den Philips IIC Specs mit 2 FETs ausprobiert. Auf dem
Oszi sah alles ganz toll aus hat aber trotzdem nicht funktioniert. Hab
daher dann die Pullups direkt auf 3,3V gelegt. Dem AVR reicht das auch
bei 5V Betrieb noch jedoch muss man die Widerstände schon recht klein
wählen. 1k8 hatte bei mir gut funktioniert.
Ansonsten kanns noch nicht schaden die Reset Leitung rauszuführen. Ich
hatte während des Testbetriebs mit langen Leitungen doch den ein oder
anderen Absturz des Decoders.

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.