Bonjour à tous,
je dois réaliser un lecteur mp3. J'utilise un pic18f46k20 et codec audio VS1011E. Je n'arrive pas à faire fonctionner le codec : je n'arrive même pas à tester le codec avec une sinusoïde. Quelqu’un ayant déjà utilisé ce codec, pourrait-il m’aider ?
Voici ma fonction de test de la sinusoïde :
Merci d'avance pour vos réponses!Code:void F_VSInitsinu(void) { unsigned char UCH_i; if( VS_dreq == 1) {MUTE = 1; VS_cs = 1; //On met le cheap_select du codec à 1 VS_clk = 0;//On met le clock du codec à 0 VS_data = 0;//On met le data out du codec à 0 VS_reset = 1;//On met le reset du codec à 1 F_Delay(100);// attente de 100ms VS_reset = 0; F_Delay(30); VS_reset = 1; F_Delay(10); command=0x02030000;//on indique la vitesse qu quartz VS_cs = 0; F_Delay(1); for(UCH_i=0;UCH_i<32;UCH_i++) // on envoie les octets au codec { if((command & 0x80000000) == 0x80000000) {VS_data = 1;} else {VS_data = 0;} VS_clk = 1; command = command<<1; F_Delay(1); VS_clk = 0; } F_Delay(1); VS_cs = 1; F_Delay(40); command=0x02000C20;//on autorise les tests et on se met en mode SDI shared VS_cs = 0; for(UCH_i=0;UCH_i<32;UCH_i++) { if((command & 0x80000000) == 0x80000000) {VS_data = 1;} else {VS_data = 0;} VS_clk = 1; command = command<<1; F_Delay(1); VS_clk = 0; } F_Delay(1); VS_cs = 1; F_Delay(10); cmd_Vol_sinu=0x020B0000; //commande du volume VS_cs = 0; for(UCH_i=0;UCH_i<32;UCH_i++) { if((cmd_Vol_sinu & 0x80000000) == 0x80000000) {VS_data = 1;} else {VS_data = 0;} VS_clk = 1; cmd_Vol_sinu = cmd_Vol_sinu<<1; F_Delay(1); VS_clk = 0; } F_Delay(1); VS_cs = 1; F_Delay(10); command=0x53EF6E44;// commande du test de la sinusoïde VS_cs = 0; for(UCH_i=0;UCH_i<32;UCH_i++) { if((command & 0x80000000) == 0x80000000) {VS_data = 1;} else {VS_data = 0;} VS_clk = 1; F_Delay(3); command = command<<1; VS_clk = 0; } VS_cs = 1; F_Delay(1); command = 0x00000000; // 4 octets à vide VS_cs = 0; for(UCH_i=0;UCH_i<32;UCH_i++) { if((command & 0x80000000) == 0x80000000) {VS_data = 1;Nop();} else {VS_data = 0;Nop();} VS_clk = 1; F_Delay(1); command = command<<1; VS_clk = 0; } VS_cs = 1; F_Delay(3); MUTE = 0; //on demute
A bientôt
-----