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.

[参考译文] TLV320ADC3100:用于获取 FS 的配置

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/953771/tlv320adc3100-configuration-for-obtaining-fs

器件型号:TLV320ADC3100
主题中讨论的其他器件:TLV320ADC3101

您好!

我已使用以下步骤进行配置。

SW_Reset、0x01
Clock_Gen_Multiplexing 0x07 //0b00000111 BCLK
PLL_PR_VAL、0x91    // P = 1 R = 1
PLL_J_VAL、0x30     // J = 48
PLL_D_VAL_MSB、0x00 // D = 0000
PLL_D_VAL_LSB、0x00
ADC_NADC、0x89      //NADC = 9
ADC_mAdc、0x82      //mAdc = 2
ADC_AGSR、0x80      //ASOR = 128
ADC_IADC、0xBC      //IADC = 94*2 = 188
ADC_AUDIO_IC_1、0x20 // I2S、20位、无三态
ADC_Processing _BLOCK_SELECTION、0x01
L_ADC_Volume_Control、0x00
   
MICBIAS_Control、0x00
L_ADC_INPUT_SELECING_L_PGA、0xF3
L_Analog _PGA_Setting、0x00
ADC_Digital、0x80
ADC_F精细_音量_控制、0x08

BCLK = 2.133MHz、LRCK = 44.5KHz。 我将 ADC 的输入作为1KHz 正弦波处理、偏移为100mVpp 和50mV。 记录的数字原始输出似乎是噪声。

如果上述配置可行,并且如果我将20位字长更改为24位而不进行任何其他更改,您能不能再进行吗?

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

    Cecil、您好!

    我已注意到你的请求。 请允许我花几天时间进行回顾、然后返回给您!

    最棒的

    Zak

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

    你好 Zak

    我能否知道当前状态或后续步骤

    谢谢

    Cecil

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

    Cecil、您好!

    很抱歉耽误你的回答。

    我怀疑这个问题可能是由各种时钟相关配置造成的。

    但是、我已经查看了所有配置设置、因此看起来是正确的。 在此序列中、我只看到一个缺点、即 PLL 首先上电、然后是有关 J 的 IT 配置以及我们正在更改的其他配置。 我不能完全确定这是否是我建议尝试以下更新的序列并让我们知道您观察到的内容的原因。

    您能否读回有关 ADC 上电的器件状态标志并共享该标志。

    您对20位/24bit 的查询是的、可以简单地更改字长设置、而无需更改任何其他配置设置。 我们只需要确保 BCLK/LRCK 比率足够高、以支持已编程的字长、这在您的情况下似乎是如此。

    SW_Reset、0x01
    Clock_Gen_Multiplexing 0x07 //0b00000111 BCLK
    PLL_PR_VAL、0x11     // P = 1 R = 1
    PLL_J_VAL、0x30     // J = 48
    PLL_D_VAL_MSB、0x00 // D = 0000
    PLL_D_VAL_LSB、0x00
    ADC_NADC、0x89      //NADC = 9
    ADC_mAdc、0x82      //mAdc = 2
    ADC_AGSR、0x80      //ASOR = 128
    ADC_IADC、0xBC      //IADC = 94*2 = 188
    ADC_AUDIO_IC_1、0x20 // I2S、20位、无三态
    ADC_Processing _BLOCK_SELECTION、0x01
    L_ADC_Volume_Control、0x00
    PLL_PR_VAL、0x91    // P = 1 R = 1


    MICBIAS_Control、0x00
    L_ADC_INPUT_SELECING_L_PGA、0xF3
    L_Analog _PGA_Setting、0x00
    ADC_Digital、0x80
    ADC_F精细_音量_控制、0x08

    请将您的测量结果与上述配置以及您的任何其他观察结果分享。

    此致、

    Uttam

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

    您好 Uttam、

    我能否知道应该检查哪个寄存器或标志。 抱歉、我不知道器件状态寄存器。

    您能否建议一种方法来确认 DOUT 是否为预期的数字输出?

    目前、我正在使用 ADC 的正弦输入进行测试、并使用 nRF52832微控制器打印 I2S SDIN 数据。 稍后、我想使用模拟麦克风进行测试。

    BR

    Cecil  

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

    Cecil、您好!

    有关 ADC 状态、请阅读以下寄存器的内容

    • 第0页/寄存器36:ADC 标志寄存器

    此外、如果您可以共享 DOUT 捕获的原始数据以了解您正在获得的噪声输出类型、也会有所帮助。 这可能有助于更快地对其进行调试。

    请注意、DOUT 是二进制补码数据格式。 由于 ADC3100输出总线格式与所使用的微控制器设置之间的格式不匹配、您是否可能遇到问题?

    根据 ADC3100配置设置、此器件被配置为24位 I2S 格式并且 BCLK = 48*LRCK。并且协议运行方式与数据表图19 (第18页)一样。 您能否共享微控制器的协议时序图、以便我们可以检查是否存在导致噪声数字输出的格式不匹配。

    一旦您能够正确地使用微控制器记录正弦波、相同的测试设置就可以与模拟麦克风一起使用、并且测试所需的 DOUT 捕捉方法无需更改。

    此致、

    Uttam

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

    e2e.ti.com/.../with_5F00_input_5F00_20bits.txt

    您好 Uttam、

    我读取第0页的寄存器36。 ADC 标志寄存器= 0x48;

    即使我怀疑我可能无法正确处理数据或格式兼容。 我将分享 NRF 52832的 I2S 文档。 从您那里获得一些见解或想法真的很不错。 pdf 中的第44章是 I2S、第448.e2e.ti.com/.../nRF52832_5F00_PS_5F00_v1.4.pdf 页的图132

    您在 ADC 文档中指向的图是左对齐模式,不是? 我还没有尝试对齐格式、我正在实现 I2S 格式和单声道。 我连续打印20位值。

    e2e.ti.com/.../without_5F00_input_5F00_20bits.txt

    我观察到一件事、即使没有 ADC 的任何输入、该值也处于微控制器的 I2S DIN 中。

    BR

    Cecil

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

    您好 Uttam、

    我不确定接收到的值是有符号值还是无符号值。 您能确认这一点吗?

    -Cecil

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

    Cecil、您好!

    很抱歉回复太晚了。  

    寄存器状态转储值表明 ADC 处于通电状态。

    不、我刚才提到的图19仅适用于 I2S 接口、但在该图中、它们似乎存在一些问题。 左右通道数据的 MSB 位应具有1个周期的偏移、如 NRF 52832的图132和 TLV320ADC3101的类似图20 (第19页)。 在我看来、此图和本数据表部分中的其他一些相关图在上一次数据表格式化和发布期间损坏。 一旦应用团队的 Zak 休假回来、我将询问他是否需要跟进有关此特定问题的数据表更正。  但是、同时、我建议参考 TLV320ADC3101以获取这些图、因为 TLV320ADC3101 和 TLV320ADC3100是软件兼容的、并且在内部使用相同的设计 IP。  

    是的、即使 ADC 输入接地 或未连接、我们也希望器件的 I2S DOUT 有一些位切换。 这是因为 ADC 的空闲通道噪声、因此一些 LSB 位将会切换、但这只能承载非常低的噪声信息。

    I2S 的输出格式是二进制补码、它仅是音频串行输出的行业标准。 对于负最大值、它将 MSB 设为"1"、其余位设为"0";对于正最大值、它将 MSB 设为"0"、其余位设为"1"。  

    我已查看转储的 txt 文件以进行数据捕获。 此数据不是预期数据、似乎存在一些问题、不确定处理器中是否存在捕获问题。 在 ADC 输入接地的情况下、如果您可以在 ADC 输出端共享一帧的 BCLK、WCLK 和 SDOUT 示波器图像、并且还可以与该图像共享从处理器侧捕获的数据、那将是一个不错的选择。 我们将回顾这一点、看看是否有示波器图像符合预期、否则我们需要安排下周与您进行远程调试会话的呼叫。

    此致、

    Uttam

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

    您好 Uttam、

    下图显示15.8Khz、762KHz、20位。 输入为 grounded.e2e.ti.com/.../grounded_5F00_test_5F00_15Khz.log

    下一种情况是在20位时具有44.4kHz、2.133Mhz。 IP 接地

    e2e.ti.com/.../grounded_5F00_test_5F00_44KHz.log

    我希望这些资料是足够的。 我还尝试在具有15.8Khz 和44.4Khz 的 ADC 中使用24位配置、捕获的数据行为类似于20位。

    我可以用于调试调用。

    谢谢

    Cecil

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

    Cecil、您好!

    我无法看到图像、因为它是作为损坏的图像出现的。 它们是否可以重新连接。

    此外、我无法完全解释此处的转储数据格式。 它的格式似乎完全不同。 如果您可以尝试通过使用以下步骤进行一些实验来关联此数据、那将会很好。

    1:使 ADC 通道静音并查看最终捕获数据。 应为"0"。 如果该值不为零、则断开 ADC3100的 DOUT、然后将处理器数据输入线路连接到低电平并检查捕获数据。

    2.我们可以通过将输入连接到直流电平(直接连接到器件引脚、不带交流耦合电容器、但具有支持的电压范围)进行检查、然后通过禁用 ADC3100的 HPF 来捕获数据。 我们可以检查处理器的捕获数据值、看看这是否与我们的期望相关。 还发送音频总线 BCLK、LRCK、DOUT 的示波器图像进行相同的操作、我们将进行检查。  

    此致、

    Uttam

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

    您好 Uttam

    抱歉、损坏的图像。 以下是使用15.8Khz、762KHz、20位捕获的。 我收到了0xFF800000。 值80000不表示0V?

    NRF 始终将24位值扩展为32位。

    在20位时为44.4kHz、2.133Mhz。 在本例中、我接收到的值不一致。

    我将检查您的建议、并将尽快作出响应。

    -Cecil

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

    Cecil、您好!

    谢谢。 现在图像可见。  

    由于 I2S 数据是二进制补码格式、因此0x80000表示负最大值、而不是零。 为了获得完美的零值、我们预计为0x00000。 如果它是小于1位的值、它应该是0xFFFFFFF、而不是0x80000。 因此、不确定我们为什么要获取0x80000、这需要进行调查。 交流耦合电容器之后的输入是否接地? 如果它直接接地到器件引脚、并且未使用高通滤波器、那么这可以解释为什么您得到负最大值。 您还可以共享用于此特定用例场景的器件配置脚本。 如果您提供的 BCLK 仅为762kHz、并将其用作 J.D 设置为48.0的 PLL 输入时钟、则不起作用、因为它不符合所有 PLL 输入和输出时钟范围、因此器件运行会发生错误。 因此、请共享您的脚本、我们可以根据该脚本得出结论、确定此问题是否是由于 PLL 输入时钟和输出时钟设置不当造成的。  

    是的、如果您使用24位捕获此数据并以32位格式表示、则 MSB 8位将是符号扩展1、因此预计为0xFF800000。 这就确认了捕获工作正常。

    我还注意到、在示波器图像中、DOUT 值并不像 BCLK 和 LRCK 信号那样一直处于高电平。 系统中 DOUT 线路上是否有下拉电阻? 现在、这似乎不会影响捕获值、但需要理解。

    对于44.4KHz、正如您提到的、数据将被全部捕获。 您能否重新发送用于此案例的确切脚本和提供的时钟。 另外、让我知道在收集此数据时、您在外部配置的输入是如何准确的。  

    此致、

    Uttam

     

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

    [引用 user="Uttam Agarwal"]

    1:使 ADC 通道静音并查看最终捕获数据。 应为"0"。 如果该值不为零、则断开 ADC3100的 DOUT、然后将处理器数据输入线路连接到低电平并检查捕获数据。

    [/报价]

    使 ADC 通道静音、并将数据采集为"0"。 并通过将一个低电平连接到处理器的 DIN 来进行检查、该 DIN 会导致"0"。

    [引用 user="Uttam Agarwal"]

    我们可以通过将输入连接到直流电平进行检查(直接连接到器件引脚、不带交流耦合电容器、但具有支持的电压范围)、然后通过禁用 ADC3100的 HPF 来捕获数据。 我们可以检查处理器的捕获数据值、看看这是否与我们的期望相关。 还发送音频总线 BCLK、LRCK、DOUT 的示波器图像进行相同的操作、我们将进行检查。

    [/报价]

    我在 WCLK = 31.25KHz、BCLK = 1.5MHz 和24位的情况下执行了所有这些操作。 请查看 BCLK、WCLK 和 DOUT.e2e.ti.com/.../Log_5F00_24bits_5F00_31.25Khz_5F00_2.268V_5F00_DC.loge2e.ti.com/.../Log_5F00_24bits_5F00_31.25Khz_5F00_0.413V_5F00_DC.loge2e.ti.com/.../Log_5F00_24bits_5F00_31.25Khz_5F00_1.341V_5F00_DC.loge2e.ti.com/.../Capture_5F00_31.25Khz.pdf 的 pdf

    谢谢

    Cecil

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

    Cecil、您好!

    感谢您试用此调试实验。  

    我无法找到任何随附的捕获数据文件直流电压测试。 任何机会、您都未能附加相同的内容。

    如果您能回答我在前一封电子邮件中提出的问题、那将会很有帮助。 这将有助于更快地调试问题。  

    此外、我还假设您在电路板上进行测试、因此您能否共享电路板原理图以及查看器件连接。

    此致、

    Uttam

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

    [引用 user="Uttam Agarwal"]

    由于 I2S 数据是二进制补码格式、因此0x80000表示负最大值、而不是零。 为了获得完美的零值、我们预计为0x00000。 如果它是小于1位的值、它应该是0xFFFFFFF、而不是0x80000。 因此、不确定我们为什么要获取0x80000、这需要进行调查。 交流耦合电容器之后的输入是否接地? 如果它直接接地到器件引脚、并且未使用高通滤波器、那么这可以解释为什么您得到负最大值。

    [/报价]

    ADC 输入端无交流耦合电容器。 是的、我直接在输入端连接接地引脚、而不使用 HPF。

    [引用 user="Uttam Agarwal"]

    您还可以共享用于此特定用例场景的器件配置脚本。 如果您提供的 BCLK 仅为762kHz、并将其用作 J.D 设置为48.0的 PLL 输入时钟、则不起作用、因为它不符合所有 PLL 输入和输出时钟范围、因此器件运行会发生错误。 因此、请共享您的脚本、我们可以根据该脚本得出结论、确定此问题是否是由于 PLL 输入时钟和输出时钟设置不当造成的。  

    [/报价]

    我使用的设置与我先前创建的案例相同。 我只是从 NRF 处理器更改 BCLK。

    [引用 user="Uttam Agarwal"]

    我还注意到、在示波器图像中、DOUT 值并不像 BCLK 和 LRCK 信号那样一直处于高电平。 系统中 DOUT 线路上是否有下拉电阻? 现在、这似乎不会影响捕获值、但需要理解。

    [/报价]

    DOUT 无下拉电阻。 IOVDD 是否会影响 OUT 数字值高位。

    [引用 user="Uttam Agarwal"]

    对于44.4KHz、正如您提到的、数据将被全部捕获。 您能否重新发送用于此案例的确切脚本和提供的时钟。 另外、让我知道在收集此数据时、您在外部配置的输入是如何准确的。

    [/报价]

    我在 BCLK = 2.133MHZ WCLK = 44.44kHz 且 ADC 的 IP 接地时使用了相同的配置脚本。

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

    是的、我很抱歉、在输入信息时发布了它。

    我已经分享了电路板的原理图。

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

    你(们) Cecil

    ADC 输入端无交流耦合电容器。 是的、我直接在输入端连接接地引脚、而不使用 HPF。

    这就解释了为什么要获得负最大输出。

    我使用的设置与我先前创建的案例相同。 我只是从 NRF 处理器更改 BCLK。

    --如果您使用相同的设置,则实际上 PLL 输出时钟设置不在数据表规格范围内,因此该配置设置不可靠。

    DOUT 无下拉电阻。 IOVDD 是否会影响 OUT 数字值高位。

    是的、IOVDD 将确定 DOUT 高电平、并且还需要使用相同的 IOVDD 电平馈送 BCLK 和 LRCK 信号(以及器件的其他数字输入信号、包括 SCL 和 SDA)。 如果它们馈送的电平高于此值、则会随时间的推移导致器件损坏、如果它们馈送的电平较低(低于 VIH 电平)、则器件可能无法可靠地检测到该电平是否为高。  

    我在 BCLK = 2.133MHZ WCLK = 44.44kHz 且 ADC 的 IP 接地时使用了相同的配置脚本。

    --这很奇怪。 此外、假设没有交流耦合电容器提供输入、器件应提供800000值。 您能否共享以下内容以更快地调试此内容:

    配置器件后、第0页中所有器件寄存器的 I2C 回读值。 这是为了交叉检查器件是否按预期配置。  

    2.分享您的电路板原理图供我们审阅。 请注意、当您馈入正弦波输入时、我假设您馈入交流耦合电容器。 该器件不支持直流耦合操作。

    此致、

    Uttam

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

    Cecil、您好!

    感谢大家分享该原理图。 我在该原理图中看到一些问题、可能会解释器件出现错误行为的原因。

    1.8V 电源的 DVDD 和 IOVDD 似乎是使用电阻分压器生成的、也使用1k Ω 的串联电阻器生成的。 当器件在运行期间消耗电流并使其低于工作电压时、此电路将导致 DVDD 和 IOVDD 电源出现高压降、从而实现更高电流消耗的用例场景、例如更高的采样率。 例如、即使我们抽取1mA 电流、也会导致 DVDD 的电源压降几乎~550mV、这肯定会导致器件行为错误。 我认为这可以解释当您以更高的采样频率运行时、器件开始出现错误行为的原因。  

    2.进行正弦波测试时,需要对器件输入进行交流耦合。 对于此电路板的初始测试、您可以在不使用交流耦合的情况下使用、但需要提供非常接近1.35V (即器件内部输入 CM)的直流共模值、同时提供任何交流信号。  

    IOVdd 电源电平应与您在处理器端为 BCLK、LRCK 和其他数字信号生成和接收使用的 IO 电源相同。 如果不满意、则设备可能无法可靠工作、正如我在前一封电子邮件中所述。 我建议从3.3V 电源中移除用于生成 IOVDD 的分压器、然后用蓝色线将器件 IOVDD 端子与处理器板 IO 电源相连。 它将负责 IOVDD 的生成。

    4、对于 DVDD 系列、仅在实验中、您可以尝试将分压电阻值降低到100欧姆和120欧姆、而不是1k 欧姆和1.2k 欧姆。 这将在某种程度上进一步帮助器件运行、但如果器件汲取的电流高于4mA、那么它将再次导致上述问题。 如果您可以使用任何其他1.8V 可用电源移除分压器和蓝色导线、这将是更好的方法。  

    此致、

    Uttam

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

    您好 Uttam、

    电流设置为 DVDD = 1.75V、IOVDD = 2.9V。 将 ADC 的输入端接地。 控制器中捕获的 DOUT 值为0。

     在 ADC 的 IP 处使用3V 进行测试时。 控制器中捕获的 DOUT 值为0。 对于任何 IP 电压(0.350-2.3V)、器件在相同电压下的行为每次都不同。 不确定现在要检查什么。

    尝试44Khz 和31.2Khz。

    -Cecil  

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

    Cecil、您好!

    我假设 DVDD 和 IOVDD 是生成的或馈送了良好的电源。 如果不是、则需要首先修复该问题。

    输入电压是使用交流耦合还是直流耦合馈送? 此外,该测量是在启用还是禁用内部数字高通滤波器的情况下完成的?

    如果使用交流耦合或启用高通滤波器进行此测量、则在两种情况下、器件 DOUT 值均应为"0"。 此外、如果 DVDD 和 IOVDD 电源的生成没有以适当的方式进行处理、则器件输出也不可靠。 因此、请检查其中是否有任何原因可以解释 DOUT 为什么具有0输出值。

    此外、如果注意电源电压、那么您现在是否可以尝试馈入1kHz 的正弦波、但采用交流耦合配置、并检查捕捉 DOUT 输出并共享相同输出。  

    此致、

    Uttam

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

    我的意思是说:

    如果使用交流耦合或启用高通滤波器进行此测量、则在两种情况下、当输入以0V 或3V 等直流电平馈送时、器件 DOUT 值应为"0"。  

    此致、

    Uttam

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

    我通过外部生成的电源为 DVDD 提供1.8伏电压、为 IOVDD 提供3.3V 电压。 在31.2Khz 下进行了测试、1kHz 交流信号200mVrrms 500mV 偏移和2微 F 耦合电容器。

    在没有耦合电容的情况下也尝试了相同的结果。

    输出始终为零。 未启用高通滤波器。