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.
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
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
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.
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.
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
@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.
@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
@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
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
@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
Mhmm sorry, aber sone Files kann man bei Protel nirgends exportieren (jedenfalls wüsste ich nicht wo)
@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
@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
In dem Zip-Paket von meinem ersten Post ist ein PNG mit dem Layout drin...
@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
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.
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!
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.
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
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
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.
Danke für den Hinweis. Ich hab vor, die Schaltung komplett in SMD zu realisieren, die bedrahteten Bauteile nerven mich :)
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
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.
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
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
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
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.
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.
achso? muss ich noch aml ins Datenblatt von ST reinsehen, danke erstmal, ich dachte, es sei von vornherein aussichtslos. vlg axel
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.
Hi, hat die Kombination mit 128er AVR noch genug Ram/Rechenzeit für Dateisysteme sprich CF-Cards oder MMC-Cards übrig ?
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.
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
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.
für kleine Bauformen kann ich den IDT71V256SA10PZ empfehlen. Der hat ein TSOP28 Gehäuse. Speed ab 10ns. Kostenpunkt ist etwa 2,50 EUR.
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
Hi kann mir jemand sagen wie ich die gerber files aus eagle herausziehen kann mfg danny
@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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.