主题中讨论的其他器件:TLV320AIC31、
器件配置完毕后、CPU 将发送 I2S 数据、示波器的峰值大于400mV。
我认为很可能是寄存器配置问题、但不知道是什么问题、
寄存器配置如下。
tlv320aic31_write (IIC_DEVICE_addr[chip_num]、0x1、0x80);
mleep (10);
/*CLKDIV_IN 使用 MCLK*/
tlv320aic31_write (IIC_DEVICE_addr[chip_num]、 102、 0x32);
/*PLL 禁用 并 选择 Q 值*/
tlv320aic31_write (IIC_DEVICE_addr[CHIP_num]、 3、 0x10);
/*左 侧和 右侧 DAC 打开*/
tlv320aic31_write (IIC_DEVICE_addr[CHIP_num]、 7、 0xA);/* FSref = 48kHz *
/*样片*/
tlv320aic31_write (IIC_DEVICE_addr[CHIP_num]、 2、 0x44);/* fs = FSR/3 *
/*Ctrl mode*/
tlv320aic31_write (IIC_DEVICE_addr[chip_num]、 8、 0xf0);/* 主 模式 *
/*音频 串行 数据 接口 控制*/
tlv320aic31_write (IIC_DEVICE_addr[CHIP_num]、 9、 0x7);/* I2S 模式、16位 *
/*音频 编解码 器数字 滤波 器控制 寄存器*/
tlv320aic31_write (IIC_DEVICE_addr[CHIP_num]、 12、 0x50);
//tlv320aic31_write (IIC_DEVICE_addr[chip_num]、 25、 0x0);
tlv320aic31_write (IIC_DEVICE_addr[CHIP_num]、 25、 0x40);
tlv320aic31_write (IIC_DEVICE_addr[CHIP_num]、 17、 0xF);
tlv320aic31_write (IIC_DEVICE_addr[CHIP_num]、 18、 0xf0);
tlv320aic31_write (IIC_DEVICE_addr[CHIP_num]、 15、 0x0);
tlv320aic31_write (IIC_DEVICE_addr[chip_num]、 16、 0x0);
tlv320aic31_write (IIC_DEVICE_addr[chip_num]、 19、 0x04);
tlv320aic31_write (IIC_DEVICE_addr[chip_num]、 22、 0x04);
tlv320aic31_write (IIC_DEVICE_addr[CHIP_num]、 28、 0x0);
tlv320aic31_write (IIC_DEVICE_addr[chip_num]、 31、 0x0);
/*输出 交流耦合*/
tlv320aic31_write (IIC_DEVICE_addr[CHIP_num]、 14、 0x80);
/*左 侧和 右侧 DAC 通电 */
tlv320aic31_write (IIC_DEVICE_addr[chip_num]、 37、 0xc0);
/*out 共模 电压*/
tlv320aic31_write (IIC_DEVICE_addr[chip_num]、 40、 0x80);
/*out 路径 选择*/
tlv320aic31_write (IIC_DEVICE_addr[chip_num]、 41、 0x1);
/*out 路径 选择*/
tlv320aic31_write (IIC_DEVICE_addr[chip_num]、 42、 0xa8);
/*左 侧 DAC 未静音*/
tlv320aic31_write (IIC_DEVICE_addr[CHIP_num]、 43、 0x0);
/*右侧 DAC 未静音*/
tlv320aic31_write (IIC_DEVICE_addr[CHIP_num]、 44、 0x0);
tlv320aic31_write (IIC_DEVICE_addr[CHIP_num]、 47、 0x80);
/*HPLOUT 未静音*/
//tlv320aic31_write (IIC_DEVICE_addr[chip_num]、 51、 0x9f);
tlv320aic31_write (IIC_DEVICE_addr[chip_num]、 64、 0x80);
/*HPROUT 未静音*/
//tlv320aic31_write (IIC_DEVICE_addr[chip_num]、 65、 0x9f);
/*OUT 短路 保护*/
tlv320aic31_write (IIC_DEVICE_addr[chip_num]、 38、 0x3E);