Part Number:PCM3168A
1、硬件连线配置:
LRCKAD 与 LRCKDA 合并后 和 主控芯片的 LRCK 相连
BCKAD 与 BCKDA 合并后 和 主控芯片的 BCK 相连
SCKI 与 主控芯片的 MCLK 相连
主控侧, MCLK, BCK, LRCK 同源分频产生
数据线,只有 DOUT1 和 DIN1 和主控I2S相连
2、软件配置:
linux内核版本:4.9; 采用linux内核的pcm3168驱动
主控输出I2S时钟:MCLK: 24.456M, BCK:12.228M; LRCK:48K
期望工作模式:Left-Justified tdm + signal rate (数据线只有 DOUT1 和 DIN1 和主控I2S相连)
3、问题:
linux的pcm3168驱动 默认只有I2S 和 Left-Justified; 无 I2S/ Left-Justified on tdm; 需要手动配置寄存器
初始话默认寄存器值:
reg:40, val:c0
reg:41, val:1
reg:42, val:f0
reg:43, val:0
reg:44, val:0
reg:45, val:0
reg:46, val:0
reg:47, val:ff
reg:48, val:ff
reg:49, val:ff
reg:4a, val:ff
reg:4b, val:ff
reg:4c, val:ff
reg:4d, val:ff
reg:4e, val:ff
reg:4f, val:ff
reg:50, val:0
reg:51, val:1
reg:52, val:0
reg:53, val:0
reg:54, val:0
reg:55, val:0
reg:56, val:0
reg:57, val:0
reg:58, val:d3
reg:59, val:d3
reg:5a, val:d3
reg:5b, val:d3
reg:5c, val:d3
reg:5d, val:d3
reg:5e, val:d3
试验测试ad数据采集,配置寄存器如下:
reg:50, val:1
reg:51, val:7
此时无DOUT1无数据输出,但多次配置reg51寄存器,有时 DOUT1 有数据输出
Amy Luo:
您好,
您的意思是配置0X51寄存器为0x07( left-justified mode TDM format)时,DOUT1不稳定有时有数据输出、有时没有?您可以配置完后再读出来吗?以验证0X51寄存器正确配置进去
,
XIANHUI FU:
是的,把pcm3168的 0x51寄存器读取出来,发现已是0x7,但DOUT1无数据
同时请问下,pcm3168的AD工作的时序要求:包含硬件,以及软件配置的先后关系 有无特殊要求?
,
XIANHUI FU:
开机pcm3168默认工作在I2S+4DIN+3DOUT的模式下,当切换到left-j TDM + 1DIN + 1DOUT时,DOUT1无数据输出,此时导出的寄存器配置,都是期望值 0x51 为 0x7; 0x50 为1;
重新梳理 linux 下的pcm3168a驱动,发现由于 硬件在 "VDD1","VDD2","VCCAD1","VCCAD2","VCCDA1","VCCDA2" 管脚设计时,没有设计软件控制;在移植 pcm3168驱动时,把所有 struct regulator_bulk_data supplies[PCM3168A_NUM_SUPPLIES]; 操作的地方都屏蔽掉了。
请问,struct regulator_bulk_data supplies[PCM3168A_NUM_SUPPLIES]; 操作是否不能被屏蔽?
,
Amy Luo:
忽然发现您的时钟不对,采样率LRCK:48K MCLK: 24.576M, BCK:12.288M; ,而不是MCLK: 24.456M, BCK:12.228M
,
Amy Luo:
XIANHUI FU 说:
重新梳理 linux 下的pcm3168a驱动,发现由于 硬件在 "VDD1","VDD2","VCCAD1","VCCAD2","VCCDA1","VCCDA2" 管脚设计时,没有设计软件控制;在移植 pcm3168驱动时,把所有 struct regulator_bulk_data supplies[PCM3168A_NUM_SUPPLIES]; 操作的地方都屏蔽掉了。
请问,struct regulator_bulk_data supplies[PCM3168A_NUM_SUPPLIES]; 操作是否不能被屏蔽?
PCM3168A的上电是datasheet上是推荐VCC先于VDD的,掉电是推荐VCC和VDD同时掉电,参考下面截图: