Hallo alle, ich bin dabei mir ein mp3 spieler zu basteln, der auf mega16, sta013 und cs4331 basiert. später werde ich noch CF oder CD ranhängen als source für die mp3s aber im augenblick benutze ich noch die parralelle schnittstelle um daten an den controller zu senden. das datenblatt für den sta013 gibts hier : http://us.st.com/stonline/prodpres/dedicate/mp3/sta013.htm das design für die schaltung habe ich von hier : http://www.pjrc.com/tech/mp3/sta013.html ich kann über i2c mit dem decoder kommunizieren. uploade die 2007 byte paare aus der .bin von der st website, setze dann die werte aus tabelle 5 für 10Mhz crystal. setze PLAY, RUN, !MUTE. dann geht der Data_req hoch und mein controller fängt ann daten zu senden, mit folgender routine. #define MP3DDR DDRC #define MP3PORT PORTC #define MP3PIN PINC #define MP3DATA PC5 // serial data line #define MP3CLK PC4 // serial clock line #define MP3DATA_REQ PC3 #define MP3RST PC2 #define MP3DATA_LO cbi(MP3PORT,MP3DATA) #define MP3DATA_HI sbi(MP3PORT,MP3DATA) #define MP3CLK_LO cbi(MP3PORT,MP3CLK) #define MP3CLK_HI sbi(MP3PORT,MP3CLK) void sta_HWinit(void){ cbi(MP3PORT, MP3DATA); sbi(MP3DDR, MP3DATA); cbi(MP3PORT, MP3CLK); sbi(MP3DDR, MP3CLK); sbi(MP3PORT, MP3DATA_REQ); cbi(MP3DDR, MP3DATA_REQ); }; void sta_send_data(unsigned char byte){ char i; for(i = 7; i>=0;i--){ MP3CLK_LO; if((byte >>i)&1) MP3DATA_HI; else MP3DATA_LO; MP3CLK_HI; }; }; aus dem DAC kommt leider kein mucks. wenn ich das syncstatus register abfrage erhalte ich 0x00 (also : Research of sync word, seite 15 im datenblatt) und das Errorcode register enthält 0x20 ?!? obwohl es laut daten blatt nur 0x00,0x01 und 0x02 haben soll. ich nehme an, das 0x02 == 0x20 ist was auch sinn machen würde, denn 0x02 bedeutet DATA not available. ich bin mit meiner weissheit am ende. Ich hoffe, das jemand hiermit erfahrung hat und mir einen tipp geben kann. vielen dank im vorraus, john p.s. wenn bedarf besteht, kann ich noch die komplette source posten. (avr code & windows code um mp3 per lpt zu senden)
ich habe jetzt noch mal ein paar test gemacht und eine text datei ann denn controller geschickt. die kommt korrekt an und die chars scheinen auch richtig an den sta013 gesendet zu werden ... warum spielt das teil dann nichts ab ?
Vielleicht Lautstärke falsch eingestellt oder immer noch im Mute-Modus... ?
nee nicht mehr im mute lautstärke ist egal das habe ich an den hifi verstärker angeschlossen. wenn ich das FRAME_CNT register enthält auch konstant 0x01 also dekodiert das teil garnichts
Kenne mich mit dem Teil nicht aus, aber besteht die Möglichkeit, die Daten, die man reinschreibt, auch wieder auszulesen? (Geht wohl nur im Stop-Modus, falls überhaupt.) Bzw. Guck doch mal mit nem Oszi, was beim DAC alles ankommt. Kommt was an, solltest du deinen DAC mal kontrollieren.
am DAC kommt nix an. der sta akzeptiert die daten irgendwie nicht. sie scheinen anzukommen aber der sta dekodiert sie nicht... ;(
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.