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.

[参考译文] TLV320ADC5140:即使 FS 和放大器也无法获得 SDOUT 流;BCLK 看起来是正确的

Guru**** 2385940 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1257365/tlv320adc5140-cannot-seem-to-get-a-sdout-stream-coming-out-even-though-fs-bclk-look-correct

器件型号:TLV320ADC5140

我不确定这为什么不起作用、但我已经多次检查设置、并通过示波器查看了信号。

我将 Jetson Nano 的输出用作主设备、显示48kHz FS 和 BCLK 6.144Mhz、均非常稳定

我打开 ALSA 驱动程序、以便可以观察信号输出、然后还检查状态寄存器、以确定它应该进行流式传输

我要求具有 TDM、32位、4通道

ASI_STS 将从0x46更改为0x36再保持为0xf6。  6 =正确对于第二部分、我不明白为什么它会锁定到信号上。

IT_LTCH0显示为 c0、表示由于 FS 和 BCLK 的不良组合而触发了两个中断

DEV_STS0 = 0x0,使其关闭所有通道

DEV_STS1 =0xc0、表示全部断电。

我试图让它忽略这些错误、但在 SDOUT 上输出仍然没有改变

另一件奇怪的事情是我必须写两次唤醒。  如果我写入它一次、等待1ms、然后继续、似乎不起作用。  但是、如果我调用两次并重新检查所有寄存器、则它们都是正确的

//唤醒设备
spiADC (FD_AUD、0x02、0x81、0);//0表示最后一个元素、表示写入
spiADC (FD_AUD、0x02、0x81、0);
std::this_thread::sleep_for (std::chrono:::毫秒(10));
printf ("A Check Sleep Mode:%x\n"、spiADC (FD_AUD、0x02、0x00、1);
// TDM 和32位(I2S 仅支持2个通道、需要支持4个通道的 TDM)另外需要反转 BCLK
spiADC (FD_AUD、0x07、0x34、0);
//我们关闭总线错误检测
//spiADC (FD_AUD、0x09、0x20、0);
// 0x13我们保留默认值,设置为从模式
//设置所有4个通道的线路输入
spiADC (FD_AUD、0x3C、0xF0、0);
spiADC (FD_AUD、0x41、0xF0、0);
spiADC (FD_AUD、0x46、0xF0、0);
spiADC (FD_AUD、0x4B、0xF、0);
//启用所有4个 ADC
spiADC (FD_AUD、0x73、0xF0、0);
//启用 ASI 4输出时隙
spiADC (FD_AUD、0x74、0xF0、0);
//加电 ADC 和 PLL (不确定它们是否正确)
spiADC (FD_AUD、0x75、0x60、0);

然后从这里调用 ALSA 驱动程序。

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    为了进一步研究、我认为我不应将 tlv320adv5140内的 BCLK 反相、此 BCLK 配置将上升沿1/2周期放在前面、从而满足9ns 设置要求。

    仍不确定内部检测机制为什么 要跳得这么远。  

    我检查了所有电源是否正常、一切看起来都正常。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我返回并将寄存器0x07更改为0x30、因此极性现在正确并重新运行。  这可以解决从寄存器0x15中检测到的设置获取0x36的问题、但并未解决所有不良检测问题。

    当接口处于活动状态时、我的代码运行 while 循环、并且它所做的只是读取状态寄存器。  

     ASTI_STS 统计信息:0x46 (3635) 0xf6 (1072)
     INT_LTCH0 -> c0
     DEV_STS0 -> 0
     DEV_STS1 -> c0

    我运行了一段时间、收集了从 Asti_STS 寄存器发出的每个单个输出。  您可以看到0x46、在77%的时间内正确发生。  这一比率似乎仍然成立。  乘法器值(6)始终保持正确。

    正如我之前提到的、示波器上的信号非常稳定。  我尝试了各种长度的 FCLK 占空比、没有区别。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    因为我知道接下来会问这个问题、所以这里是我如何连接 ADC 的原理图。  请注意、我没有在屏幕上显示的4个单端电路。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的提问。 预计48个工作小时内得到回复。  

    此致

    Ore.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我发现了问题、我更换了电路板上的 IC、现在看到 SDOUT 流式传输、检测正在工作。