[color=#ff0000]请教IT的工程师:[/color]
用两个PCM1864实现8路采样, 每个PCM1864实现4路单端MIC输入, 32000采样, 16bit。TDM输出。 目前时钟配置正常输出LRCK = 32K BCK = 8192K,但是DOUT一直无数据输出
[color=#ff0000]实现大致框架参考PCM1864手册p73[/color]
[img]https://file1.elecfans.com/web2/M00/00/30/wKgaomaoDZaAAMZcAAGPHgmLvHk293.jpg[/img]
[color=#ff0000]软件配置如下:(只是列出Master端的1864配置,Slave端配置大致相同)[/color]
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));
[color=#ff0000]请教IT的工程师:[/color]
用两个PCM1864实现8路采样, 每个PCM1864实现4路单端MIC输入, 32000采样, 16bit。TDM输出。 目前时钟配置正常输出LRCK = 32K BCK = 8192K,但是DOUT一直无数据输出
[color=#ff0000]实现大致框架参考PCM1864手册p73[/color]
[img]https://file1.elecfans.com/web2/M00/00/30/wKgaomaoDZaAAMZcAAGPHgmLvHk293.jpg[/img]
[color=#ff0000]软件配置如下:(只是列出Master端的1864配置,Slave端配置大致相同)[/color]
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));
举报