I am going to use ADAU1978 audio codec. I have 3 MICs connected to 3 of the ADCs on the codec. I use I2C interface between the codec and STM3F407. What are the register settings that needs to be done?
I will be using the ADC as master. Also, I have a crystal of 12.288 Mhz which will be the master clock.Please help me with register settings.
I have done a register setting as follows:
REGISTER ADDRESS VALUE
please confirm the same.
You made no mention of what the sample rate is and what serial format you require.
niyathi08! said:0x01 0x40
With 12.288MHz MCLK then you need to set this for 256x fs. So 0x41 should be the setting.
niyathi08! said:0x05 0x04
So you are setting this for 192kHz fs with I2S as your serial format. If this is what you need then this is correct.
niyathi08! said:0x06 0x01
This is set to have the ADC be the master. This is correct. The rest of the format settings are correct for standard I2S.
niyathi08! said:0x1A 0x00
This register is for control of the DC offset present on all ADCs. If this is a standard audio application then I would recommend you turn on the High Pass Filters. The cutoff is really low so it has minimal effect on the audio but it saves MIPS in the DSP by having the HPF located on the ADC. It will also help prevent and switching pops when switching signals or muting since there will be no DC offset.
The other option with this part is to do a calibration at startup to obtain the value of the DC offset. Then in this register you can set it to subtract this DC offset from the output signal. This is good to do if you have an application where you need the ADC to go down to DC so therefore you cannot use the HPF, this allows you to remove this offset and still go down to DC on the output of the ADC.
So since you mentioned you are using this part with three mics I will assume this is a standard audio application. In addition, microphones themselves can have a high DC offset. So I recommend you turn on the HPF for all channels you are using. Set it to 0x07