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.

[参考译文] TLV320ADC3101:TLV320ADC3101 I2S缓冲器/I2S时钟设置

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/570851/tlv320adc3101-tlv320adc3101-i2s-buffer-i2s-clock-settings

部件号:TLV320ADC3101
主题中讨论的其他部件: TLV320AIC3254

您好,

我想知道TLV320ADC3101是否有任何形式的缓冲区? 我希望缓冲TLV中的值,并以大小的数据包发送值,例如一次发送32个样本。 这是否可行?或者I2S数据是否仅可通过流式传输?

另外,如何在PurePath Studios中配置所需的时钟设置? 我发现从GDE生成的头文件中的初始化值与44khz的采样频率相关联,我希望采样频率为8kHz。 我确实尝试更改了值,但无法从I2S读取值。 我不确定是因为我不确定I2S Tx的设置,还是因为I2S Rx的设置。

启用ADC后,I2S是否已设置为可用? 此外,是否可以仅使用一个ADC并仅传输一个ADC (例如,仅左侧ADC)? 这些值是否仍位于单词SELECT的一个方向上?

任何帮助都是非常好的。

谢谢。

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

    遗憾的是,TLV320ADC3101中没有缓冲区。 所有数据都通过I2S以16至32位的样本形式发送。 因此,您需要另一个设备,例如具有I2S协议的微处理器,它可用于按样本存储数据样本。

    关于PurePath Studio的问题,您需要在属性窗口中修改采样频率。 请单击PurePath Studio的主窗口。 您将看到一个包含不同采样率的属性窗口。 请将正确的采样率置于"真"状态,其余采样率置于"假"状态。 最后,确保选择8kHz作为CurrentRate。

    PurePath Studio包含一个初始化代码,可根据CurrentRate配置PLL值。 您可以通过单击ADC3x01框架来访问此代码。 其属性窗口包含一个名为"SystemSettingsCode"的属性。 您可以在此处找到所有寄存器配置。

    一旦启用ADC信道,就会设置I2S。 您可以单独配置每个通道。 如上一段所述,您可以使用SystemSettingsCode属性配置寄存器配置。 您需要修改第0页/注册81 (ADC数字)以关闭/打开每个通道的电源。

    如果您有其他问题或意见,请告诉我。

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

    您好Luis,

    感谢您的所有回答。

    我仍然注意到,寄存器初始化代码的PLL评论说,它的速率为88.2khz,是44.1kHz的两倍。 我想知道是只是评论没有改变还是代码保持不变。

    另一件事是,我如何知道时钟频率应该是多少? 我读过I2S的时钟频率应为2*samplingFrequency*wordSelectPeriod,这意味着如果我想要每个数据采样16位,并且采样频率为8kHz, 然后,时钟频率为512khz (如果有两个通道,则字选择周期是数据位数的两倍)。 这是否正确?

    Thanks.e2e.ti.com/.../3301.base_5F00_main_5F00_Rate8_5F00_pps_5F00_driver.h

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

    感谢您的观察。

    修改速率时,ADC3x01框架似乎不会修改PLL值(某些框架具有此功能)。 在这种情况下,您需要根据所使用的MCLK (或CODEC _CLKIN时钟)修改SystemSettingsCode。 您能否提供应用程序中使用的MCLK,BCLK,WCLK和字长(16,20,24或32位)? 我可能会提供一些PLL值建议。

    关于时钟频率,您是指BCLK吗? BCLK的计算方法如下所述:

    BCLK =(通道数)*(采样频率)*(数据位)

    至少您应该具有具有此值的BCLK或此值的倍数。

    此致,
    Luis Fernando Rodríguez ñ o S.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好Luis,

    我当前正在使用一个IDE,它根据输入主时钟为我创建时钟。 我目前正在尝试使用相同的P,R,K等值(基于数据表)对TLV进行编程,并从这些值中选择主时钟。 我的主时钟值为1.024MHz。 由此,BCLK为512kHz,WCLK每触发32位周期(每个通道16位)。

    我最大的问题是,我只能读取0的值,并且不确定是因为时钟问题还是其他初始化问题。

    非常感谢您迄今为止的所有帮助。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好Luis,

    我尝试过的另一个更新。 我尝试将主时钟更改为1.024MHz (如前面的评论中所述)。 读取传入值时,我仍得到0值。 我还尝试将TLV320AIC3254框架对象放入PurePath中,以查看它们在8kHz采样率下用于P,R,K等的值。 我还尝试用4.096MHz时钟来实现这一点。 我的值仍为0。 我不知道问题是什么,也不知道应该如何处理。 我确信连接到TLV的麦克风工作正常。 我也确信我可以通过I2C从它中写入/读取。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Nicole:

    是否可以读取TLV320ADC3101应用程序的所有寄存器? 能否向我发送寄存器值以确定它是否与配置问题或其他任何问题有关?

    谢谢你。

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

    您好,Luis,

    这是我正在使用的头文件。 我测试了一个值的写,然后在I2C上读回来,它看起来很有效。

    我刚刚更改了头文件中的一些内容:PLL值,如前所述,以及每个ADC的输入(我尝试输入所有输入,以防我们错过麦克风)。

    非常感谢您的帮助。

    祝你一切顺利,

    Nicole

    e2e.ti.com/.../3632.base_5F00_main_5F00_Rate8_5F00_pps_5F00_driver.h

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这里有同样的问题!!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Nicole:

    我查看了您的头文件,似乎一切都井然有序。 配置寄存器时,您能否验证TLV320ADC3101的模拟输入是否具有共模电压? 此外,您的麦克风是否需要偏置电平? MICBIAS似乎未在您共享的文件中配置(第1页/注册51)。

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

    您好,Luis,

    我们的麦克风不需要偏置电平。 此外,使用示波器查看模拟输入时,我们确实会看到波形振荡在0mV左右。

    谢谢!
    Nicole

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

    您应在模拟输入处获得共模电平。 此共模电平约为1.35V。 请确保ADC块已通电且模拟输入正在路由至PGA。

    此致,
    Luis Fernando Rodríguez ñ o S.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好Luis,

    如何知道ADC块是否已打开? 启用ADC块是否足够? PGA的路由是内部路由吗? 请提供建议。

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

    ADC块应使用第0页/寄存器81打开电源。 有一个标志寄存器可用于确保ADC已启用(第0页/寄存器36)。 关于模拟输入路由,可通过第1页/寄存器52-57选择这些路由。 正确配置ADC和模拟输入后,您应该获得共模电压电平。

    此致,
    Luis Fernando Rodríguez ñ o S.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好Luis,

    我可以确认我得到的是共模电压。

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

    这意味着模拟输入现在已准备好记录输入信号。 您只需确保I2S时钟线正确无误。 然后,您应该能够通过I2S记录信号。

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

    您好Luis,

    请原谅您的延迟回复,感谢您迄今为止的帮助。

    只是为了了解一下,DOUT引脚的一般行为是怎样的? 目前,我看到MCLK,BCLK和WCLK都从I2S主控获得时钟输入,但DOUT似乎总是设置为0。 根据我的理解,DOUT应该根据其输出的串行数据进行波动?

    MCLK = 512kHz

    BCLK = 256kHz

    WCLK = 8.192kHz

    谢谢!
    Nicole

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

    你是对的。 输出插针应根据模拟输入电压显示多个脉冲。 您只能测试两个ADC中的一个是否通电。 您应获得WCLK低或高电平的DOUT脉冲。

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

    您好,Luis,

    我附上了TLV的设置。 MIC_SIG是来自我们的麦克风的信号。 此配置是否有效?

    通过此设置,我现在尝试仅启用ADC IN2L(P)作为加号,IN3L(M)作为减号(第1/register52页设置为0x3f,因此IN2L和IN3L是左侧ADC的差分输入),并且我只启用了左侧ADC PGA并为左侧ADC通电。 我仍然没有通过I2S获得任何输出,也没有看到DOUT发生任何变化。 我还为MICBIAS1和MICBIAS2禁用了MICBIAS。

    我使用示波器重新测量了IN2L和IN3L,发现它们都是1.3V。

    我尝试为DOUT启用3-state,但DOUT引脚上似乎仍然没有脉冲。 我在第0/Register 38页中更改了D0,在第0/Register 27页中更改了D1。 这是否足以设置DOUT 3状态? 我只是想看看DOUT是否会显示脉冲。 这位于数据表的第15页(www.ti.com/.../tlv320adc3101.pdf )

    谢谢!

    Nicole

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

    您好,Nicole:

    使用差分麦克风时,我们建议将其连接到差分输入,如下图所示:

    为了验证I2S通信和DOUT引脚是否正常工作,您可以尝试使用抖动控制寄存器(第1页/寄存器26)。 此寄存器以15mV步长发送偏移值。 您应该通过配置此寄存器来获得恒定的数字脉冲。

    如果问题仍然存在,请告诉我。

    此致,
    Luis Fernando Rodríguez ñ o S.

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

    您好,Luis,

    我尝试将第1页寄存器26更改为0x70 (在左通道上应为105mV),但DOUT仍得到0。

    您提到I2S通信应正常工作。 这是否意味着I2S缓冲液永远不会溢出,并且不断读取样品?

    我还尝试将引脚更改为微控制器一侧的电阻上拉,它明显高于0,如果只是轻微的话,但仍然足够低,可以被视为0,所以我怀疑有什么东西正在将DOUT拉至0。 有什么想法?

    谢谢!
    Nicole

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

    是否可以获取使用TLV320ADC3101的嵌入式系统的示例代码? 我在产品页面上查看了麦克风示例,但没有找到有关TLV初始化的任何信息。 相反,我只发现一个I2C写入更改了音量。 我知道有可用的Linux驱动程序,但我觉得这对我们没有太大用处。

    如有任何帮助,我们将不胜感激。 提前感谢。

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

    您好,Nicole:

    您的PC上是否安装了PurePath Studio? PurePath Studio可在此网站( www.ti.com/.../aicpurepath_studio )申请。 它可用于配置进程流并生成.c和.h代码以配置主机处理器。 请查看随附的流程。 这是一种基本配置,用于在I2S输出处获取麦克风输入。

    e2e.ti.com/.../8080.ProcessFlow1.zip

    如果您需要此流程的帮助,请告诉我。

    此致,
    Luis Fernando Rodríguez ñ o S.

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

    您好Luis,

    我终于能够使用其中一个处理块从DOUT获得一些东西。 但是,当我尝试使用miniDSP代码对TLV进行编程时,它不再起作用。 我是否需要写入miniDSP上的所有页面? 我删除了一些只包含0写入的页面,因为它在我的微控制器上造成了内存问题。

    要注意的其他事项是,电源电压稳定,并且来自外部LDO。 另外,TLV的PLL似乎正在工作。

    谢谢!
    Nicole

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

    所有miniDSP寄存器都是获得正确行为所必需的。 我建议使用简单的算法验证您的miniDSP代码。 您可以尝试使用我分享的流程。 然后,确保所有miniDSP寄存器均已正确写入。 由于您能够从DOUT引脚获得某些信息,因此必须验证miniDSP代码。

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

    您好Luis,

    这是我正在使用的头文件。 如果我将写入到第0页寄存器61更改为0x00,那么它应该从miniDSP读取,这就是出现问题的地方。

    下面的代码是miniDSP初始化代码。 我这次写入了所有的页面(之前,我删除了一些只写入0的页面)。

    尝试使用miniDSP时,DOUT上仍未得到任何结果。

    谢谢!

    Nicolee2e.ti.com/.../1207.base_5F00_main_5F00_Rate8_5F00_pps_5F00_driver.h

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

    您能否提供PurePath Studio的整个流程? 这是为了在我的评估板上对其进行测试并修改任何可能的错误。

    谢谢你。

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

    您好,Luis,

    以下是流程。 这也是您给我测试的流程。 它中只有一个音量控制组件。 我在该软件包中唯一更改的是配置第一部分的base_main_Rate8_pps_driver.h文件。

    谢谢!

    Nicole

    e2e.ti.com/.../2642.ProcessFlow1.zip

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

    该过程流在TLV320ADC3101EVM-K上正常工作 我只是需要配置MICBIAS并增加MICPGA,以便使用板载麦克风。 您能否将您的应用与TLV320ADC3101EVM-K原理图进行比较? 我使用WCLK和BCLK作为输入。

    www.ti.com/.../slau267a.pdf

    此致,
    Luis Fernando Rodríguez ñ o S.