This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

PCM3168A: pcm3168A数据采集测试,DOUT无数据输出

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 有数据输出

  • 您好,

    您的意思是配置0X51寄存器为0x07( left-justified mode TDM format)时,DOUT1不稳定有时有数据输出、有时没有?您可以配置完后再读出来吗?以验证0X51寄存器正确配置进去

  • 是的,把pcm3168的 0x51寄存器读取出来,发现已是0x7,但DOUT1无数据

    同时请问下,pcm3168的AD工作的时序要求:包含硬件,以及软件配置的先后关系 有无特殊要求?

  • 开机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]; 操作是否不能被屏蔽?

  • 忽然发现您的时钟不对,采样率LRCK:48K  MCLK: 24.576M, BCK:12.288M; ,而不是MCLK: 24.456M, BCK:12.228M

  • 重新梳理 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同时掉电,参考下面截图: