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.

[参考译文] TLV320AIC3204:ADC &放大器;DAC Gian 状态标志始终处于非活动状态

Guru**** 2554580 points
Other Parts Discussed in Thread: TLV320AIC3204

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/909406/tlv320aic3204-adc-dac-gian-status-flags-are-always-inactive

器件型号:TLV320AIC3204

大家好、

加电后、我们将尝试验证 TLV320AIC3204的 ADC 和 DAC 是否正常运行。 轮询电源状态(ADC 为 P0_R36位2和位6、DAC 为 P0_R37位3和位7)按预期工作(这些位最终从"0"更改为"1")。 但是、尽管 编解码器按预期工作、但增益状态标志(ADC 的 P0_R36位3和位7以及 DAC 的 P0_R38位0和位4)始终保持为"0"。 这些标志是否应该以某种方式工作、或者我们是否应该提交此检查?

请注意、在 SLAA473A 第6页中、这些寄存器预计在正确的编解码器从睡眠或待机状态唤醒后变为"1"。 诚然、我们在应用中不使用睡眠或待机模式、但我们希望这些标志在任何情况下都能正常工作、因为这些寄存器的目的是验证"应用于 xxx 的增益等于控制寄存器中编程的增益"。

我们使用的编程序列如下:

  1. 通过编解码器复位引脚硬复位编解码器
  2. 等待1ms
  3. 软复位编解码器
  4. 等待1ms
  5. 配置时钟输入、分频器和数字接口参数(寄存器 P0_R4...P0_R52)
  6. 为 ADC 和 DAC 配置处理块(寄存器 P0_R60、P0_R61)
  7. 配置内部电源稳压器、加电输入 CM 电压和基准(寄存器 P1_R1、P1_R2、P1_R10、P1_R71、P1_R123)
  8. 定义 ADC 和 DAC 的 PowerTune 模式(寄存器 P1_R3、P1_R4、P1_R61)
  9. 配置 TX (AGC、ADC、MICPGA)路径(寄存器 P0_R83...R88、P0_R94...R96、P1_R52...R60)
  10. 为 ADC 加电
  11. 等待 P0_R36 D2、D6位(ADC 电源状态)变为有效状态
  12. 取消 ADC 静音(寄存器 P0_R81、然后是 P0_R82)
  13. 等待 P0_R36位 D3、D7 (ADC 增益状态)变为“1”
  14. 配置 RX (DAC、LOL/LOR)路径(寄存器 P1_R14、P1_R15、P1_R18、P1_R19、P1_R09、 P0_R65、P0_R68)
  15. 应用轮询寄存器 P1_R63确定的等待时间
  16. 为 DAC 加电
  17. 等待相应的 P0_R37位(DAC 和线路或者耳机输出电源状态)变为有效
  18. 使 DAC 取消静音(寄存器 P0_R63、P0_R64)
  19. 等待 P0_R38位 D0、D4 (DAC 增益状态)变为“1”。

提前感谢您

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

    Dimitrios、  

    我对延迟回复表示歉意!  

    您是否正在使用 EVM 和 GUI?  当使用 EVM 和 GUI 时、我在读取寄存器方面确实遇到了一些问题、 但是当我使用通用 I2C 程序时、 我可以很好地读取寄存器38、并且这些位确实变为"1"。

    此致、

    -Steve Wilson

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

    您好 Steve、

    感谢您的回答。 我们不使用 EVM、因为它在 Windows 10上运行时出现问题。 在我们的产品板上、我们的 CPU 使用 SPI @ 20MHz 对 TLV320AIC3204寄存器进行写入(很抱歉、之前没有这样说)。 SPI 时钟处于最大值、我们计划将其降低相当大的值、但这是否足以解释我们的问题?

    一般而言、我们通过 SPI 对这个复杂的编解码器进行编程时会遇到一些问题。 它通常起作用、但其某些寄存器在发出下一条命令之前似乎需要未知的保护间隔。 我们使用了指南 slaa557和 slaa404c 以及整个器件支持文献、但到目前为止、我们没有注意到任何应监控的保护间隔和标志、以验证成功编程。

    此致、

    Dimitrios

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

    Dimitrios、  

    数据表中提到了顺序传输延迟。  您可能会提到这一点吗?

    此致、

    -Steve Wilson

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

    您好 Steve、

    很抱歉耽误你的回答。 我不确定该问题与顺序传输延迟有关、因为后者比 SPI 时钟半周期小(20ns)。 因此、我假设只要 SPI 时钟具有50%的占空比、hte 要求就已满(我想这是因为我们使用的 SPI 端口是 OMAP CPU 上的专用端口)。

    我只能怀疑各种命令在编解码器内需要不同的处理时间、因此必须有更长的(微秒范围?) 主机 CPU 通过 SPI 发送的后续命令之间的延迟要求。 首先、我们将尝试降低 SPI 时钟的速度、并在每次命令后使用固定的延迟。

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

    更新:

    将 SPI 速度降低至4MHz 并在连续命令之间添加30个 SPI 周期延迟后没有任何改善。 标志 P0_R36位 D3、D7和 P0_R38位 D0、D4始终为"1"。 更有趣的是、当我们使用 OMAP 调试环境通过 JTAG 逐行执行应用程序时、问题仍然存在。

    此致、

    Dimitrios