AnsweredAssumed Answered

STM32F400 and CS42L52 audio codec

Question asked by perez_de_siles.rafae on Apr 16, 2013
Latest reply on May 7, 2013 by perez_de_siles.rafae
I have a big problem and need a lot of help. First of all I will try to explain the global situation and after that I will ask you for some questions.

I am working in a project. I have to make a full-duplex audio communication between a PC with Linux and the evaluation board "Keil MCBSTM32F400". They have to be connected throw Ethernet. The part of the PC is finished and now I have to implement the part of the evaluation board. The board has to take UDP packets (with PCM audio that was sended from the PC), playback the audio throw the speakers, capture audio throw the built-in MEMS microphone and send the captured audio within UDP packets.

My first step is to make work the speaker (reading a PCM audio file stored in the board memory). I have looked for examples of this board but there is any audio example. I was trying to use the examples for the "STM32 Discovery" board and "STM3240G Eval" but the problem is that the audio codec is not the same. My board has a CS42L52 audio codec while the other two boards have a CS43L22 auido codec. Both audio codecs are very similar.
I was trying to make some changes to let the examples work with my board but I have a problem with the reset function of the codec. In the example for the STM32 Discovery board, the reset is made using a GPIO pin:
    /* Audio Reset Pin definition */
#define AUDIO_RESET_GPIO_CLK           RCC_AHB1Periph_GPIOD 
#define AUDIO_RESET_PIN                GPIO_Pin_4   
#define AUDIO_RESET_GPIO               GPIOD

In the example for the STM3240G Eval board, the reset function is made using the IO expander and I am not sure what does it means and if I have (or may have) that in my board:
#include "stm324xg_eval_ioe.h" /* IOExpander driver is included in order to allow
                                   CS43L22 codec reset pin managment on the
                                   evaluation board */

Can someone help me? I am very frustrated. I have asked to the ARM support but they only have answered me that there is no GPIO pin dedicated to reset the audio codec and that maybe I have to use the I2C to make the reset... but how???

Thanks in advance!