请教IT的工程师:
用两个PCM1864实现8路采样, 每个PCM1864实现4路单端MIC输入, 32000采样, 16bit。TDM输出。 目前时钟配置正常输出LRCK = 32K BCK = 8192K,但是DOUT一直无数据输出
实现大致框架参考PCM1864手册p73
软件配置如下:(只是列出Master端的1864配置,Slave端配置大致相同)
I2CRegWrite1(baseAddr, 0x00, 0xFE, (0x94u >> 1));
I2CRegWrite1(baseAddr, 0x00, 0x00, (0x94u >> 1));
I2CRegWrite1(baseAddr, 0x00, 0x03, (0x94u >> 1));
I2CRegWrite1(baseAddr, 0x15, 0x11u, (0x94u >> 1));
I2CRegWrite1(baseAddr, 0x00, 0x00, (0x94u >> 1));
I2CRegWrite1(baseAddr, 0x01, 0, (0x94u >> 1));
I2CRegWrite1(baseAddr, 0x02, 0, (0x94u >> 1));
I2CRegWrite1(baseAddr, 0x03, 0, (0x94u >> 1));
I2CRegWrite1(baseAddr, 0x04, 0, (0x94u >> 1));
I2CRegWrite1(baseAddr, 0x05, 0x86, (0x94u >> 1));
I2CRegWrite1(baseAddr, 0x06, 0x41, (0x94u >> 1));
I2CRegWrite1(baseAddr, 0x07, 0x41, (0x94u >> 1));
I2CRegWrite1(baseAddr, 0x08, 0x42, (0x94u >> 1));
I2CRegWrite1(baseAddr, 0x09, 0x42, (0x94u >> 1));
I2CRegWrite1(baseAddr, 0x0A, 0x00, (0x94u >> 1));
I2CRegWrite1(baseAddr, 0x10, 0x00, (0x94u >> 1));
I2CRegWrite1(baseAddr, 0x11, 0x01, (0x94u >> 1));
I2CRegWrite1(baseAddr, 0x12, 0x00, (0x94u >> 1));
I2CRegWrite1(baseAddr, 0x13, 0x04, (0x94u >> 1));
// 设置数据模式和数据位宽
I2CRegWrite1(baseAddr, 0x0B, 0xDF, (0x94u >> 1));
I2CRegWrite1(baseAddr, 0X0C, 0x01, (0x94u >> 1));
// 字时钟的上升沿到捕获有效数据的时钟个数
I2CRegWrite1(baseAddr, 0X0D, 0x00, (0x94u >> 1));
I2CRegWrite1(baseAddr, 0X0E, 0x00, (0x94u >> 1));
//选择主从模式
I2CRegWrite1(baseAddr, 0x20, 0x11, (0x94u >> 1));
//配置LRCK 和 BCK
I2CRegWrite1(baseAddr, 0X25, 0, (0x94u >> 1));
I2CRegWrite1(baseAddr, 0X26, 2, (0x94u >> 1));
I2CRegWrite1(baseAddr, 0X27, 255, (0x94u >> 1));
user151383853:
但是DOUT一直无数据输出, 我觉得先检查检查硬件吧,也许是供电问题, 接触焊接问题也说不定呢
user5781709:
回复 user151383853:
硬件没什么问题,供电,焊接不正确,不然不会时钟正常输出啊