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 :

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
Merci d'avance pour vos réponses!

A bientôt