这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » 学习、理解TLV320AIC23的初始化和配置的代码

共1条 1/1 1 跳转至

学习、理解TLV320AIC23的初始化和配置的代码

专家
2025-05-11 18:17:31     打赏

代码取自STC的Ai8051U实验盒的I2S相关例程,涉及I2C数据通讯的处理就不罗列了,I2C的通讯使用端口模拟的方式实现的。,两个关键的处理函数代码如下:

void AIC23_Init(void) {
    /* P_AIC23_CS = 0; //CS = 0, 2024-6-18,对于2024-7-12和2024-7-21版本,CS直接接地了
    P2n_standard(Pin4+Pin3); //SDA SCL设置为准双向口
    P1n_standard(Pin7);   //CS设置为准双向口
    */
    P5n_standard(Pin1+Pin0); //SDA SCL设置为准双向口
    P5PU = 0x02;
 
  // 写【复位用寄存器】,复位芯片
    AIC23_WriteCmd(R_ResetRegister, AIC23_Reset); //Reset
}


 // 配置芯片工作参数
void AIC32_InitSet(void) {
 
  // 写【线路输入用左声道音量控制寄存器】
  // 开启左右声道同步更新,非静音,设置音量
    AIC23_WriteCmd(R_LineInVolume_L,  (LinVol_LRS | LinVol_Mute | LinVol_Value));
 
  // 写【线路输入用右声道音量控制寄存器】
  // 开启左右声道同步更新,非静音,设置音量
    AIC23_WriteCmd(R_LineInVolume_R,  (RinVol_RLS | RinVol_Mute | RinVol_Value));
 
  // 写【耳机用左声道音量控制寄存器】
  // 开启左右声道同步更新,启用左声道过零检测,设置音量
    AIC23_WriteCmd(R_HeadphoneVolume_L,  (LhpVol_LRS | LhpVol_LZC  | LhpVol_Value));
 
  // 写【耳机用右声道音量控制寄存器】
  // 开启左右声道同步更新,启用左声道过零检测,设置音量
    AIC23_WriteCmd(R_HeadphoneVolume_R,  (RhpVol_RLS | RhpVol_RZC  | RhpVol_Value));
 
  // 写【模拟音频通道控制寄存器】
  // STA[2:0]=0 ,STE=0,DAC=1;Byp=1;MICM=1;INSEL=0;MICB=0
  //AIC23_WriteCmd(R_AnalogAudioCtrl,  (SidetoneAtten | SidetoneEnable | DAC_Select | Bypass | InputSelect | MIC_Mute | MIC_Boost));
 
  // 写【数字音频通道控制寄存器】
  // 禁用软静音,禁用去加重控制,禁用ADC高通滤波器
    AIC23_WriteCmd(R_DigitalAudioCtrl,  (DAC_Mute | De_emphasis | ADC_HighPassF));
 
  // 写【省电控制寄存器】
  // 开设备
    AIC23_WriteCmd(R_PowerControl,    0);
 
#if defined (I2S_MASTER_TRANSMITTER)
  // 选择tlv320aic23b工作于接收DAC模式
    
 
  // 写【模拟音频通道控制寄存器】
  // STA[2:0]=0 : 侧音-6db
  // STE=0   :
  // DAC=1   : 使用DAC
  // Byp=1   : 使能旁路
  // INSEL=0 : ADC来源为线路输入
  // MICM=1  : 麦克风静音
  // MICB=0  : 麦克风不增强
    AIC23_WriteCmd(R_AnalogAudioCtrl,  (SidetoneAtten | SidetoneEnable | DAC_Select | Bypass | InputSelect | MIC_Mute | MIC_Boost));\
    
  // 写【数字音频接口格式寄存器】
  // AIC_Master  (1<<6) //0=Slave,   1=Master
  // DAC_LR_Swap  (0<<5) //0=disable, 1=enable
  // DAC_LR_Phase (0<<4) //????
  // AIC_DataLength (0<<2) //0=16bit, 1=20bit, 2=24bit, 3=32bit
  // AIC_DataFormat  2 //0=MSB first, right aligned, 1=MSB first, left alihned, 2=I2S format, MSB first,left -1 aligned, 3=DSP format,
  // 禁止左右交换,
    AIC23_WriteCmd(R_DigitalAudioFormat, (DAC_LR_Swap | DAC_LR_Phase | AIC_DataLength | AIC_DataFormat));
 
#elif defined (I2S_SLAVE_RECEIVER)
  // 选择tlv320aic23b工作于接收ADC模式
    
  // 写【模拟音频通道控制寄存器】
  // STA[2:0]=0 : 侧音-6db
  // STE=0   :
  // DAC=1   : 使用DAC
  // Byp=1   : 使能旁路
  // INSEL=0 : ADC来源为线路输入
  // MICM=1  : 麦克风静音
  // MICB=0  : 麦克风不增强
  AIC23_WriteCmd(R_AnalogAudioCtrl,  (SidetoneAtten | SidetoneEnable | Bypass | InputSelect | MIC_Mute | MIC_Boost));
    
 
  // 写【数字音频接口格式寄存器】
  // AIC_Master  (1<<6) // 0=Slave,   1=Master
  // DAC_LR_Swap  (0<<5) // 0=disable, 1=enable
  // DAC_LR_Phase (0<<4) //????
  // AIC_DataLength (0<<2) //0=16bit, 1=20bit, 2=24bit, 3=32bit
  // AIC_DataFormat  2 //0=MSB first, right aligned, 1=MSB first, left alihned, 2=I2S format, MSB first,left -1 aligned, 3=DSP format,
  // 主机模式,禁止左右声道交换,MSB在LRCIN上升沿之后的第一个BCLK上升沿可用,16位数据长度,I2S模式
  AIC23_WriteCmd(R_DigitalAudioFormat,    (AIC_Master | DAC_LR_Swap | DAC_LR_Phase | AIC_DataLength | AIC_DataFormat));
#endif
    
  // 写【采样率寄存器】,设置采样率
    AIC23_WriteCmd(R_SampleRate,   (MclkOutputDiv | MclkInputDiv | AIC_SampleRate | AIC_BOSR | AIC_ClockMode));
  // 写【数字音频接口激活开关寄存器】
  AIC23_WriteCmd(R_DigitalInterfaceEn, DigitalInterface);
}


宏定义【I2S_MASTER_TRANSMITTER】被定义为有效,所以 TLV320AIC23 是工作于主机模式的。

一、初始化函数:AIC23_Init

    它的初始化处理实际上就一条关键指令:

        AIC23_WriteCmd(R_PowerControl, 0);

    向复位寄存器写入0,触发复位,不知道是否会按照默认值初始化各个寄存器。

 

二、配置参数函数:AIC32_InitSet

这里除了需要参考寄存器的设置说明理解外,额外需要说明的一点是配置TLV320AIC23的【数字音频接口格式寄存器】时,设置为主机模式还是从机模式的疑惑。

1、TLV320AIC23本身是可以进行ADC和DAC处理,根据程序注释,工作于DAC模式时,使用Master方式,而用ADC时,使用Slave模式。

2、根据TLV320AIC23的资料,I2S串行位时钟源的设置。在音频主机模式下,TLV320AIC23产生该信号并将其发送给 DSP。在音频从机模式下,信号由DSP产生。

 





关键词: 菜鸟学单片机     Ai8051U     I2S     配置TLV3    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]