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.

[参考译文] TMS320C5517:C5517的 I2S 输出问题

Guru**** 2612375 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/567577/tms320c5517-i2s-output-issue-of-c5517

器件型号:TMS320C5517


您好!

我对 C5517器件的 I2S2有疑问、我客户的电路板在不从 I2S2输出数据方面存在问题。

详细信息如下所示:
C5517是 I2S 主器件、它连接到从属微型计算机、如下所示。

通常会输出 CLK 信号和帧同步、但每个 TX 数据都未正确输出、即使 CCS 将数据直接写入 TX 缓冲区、也会发生相同的现象。
现已确认问题已通过以下方法解决。

方法1:
切断 I2S2_CLK 和测试端口之间的模式。

方法2:
将 I2S2SCTRL.DATADLY 位设置从1位数据延迟更改为2位。 或者、使用 DSP 格式而不是 I2S 格式。


当 C5517用作 I2S 主器件时、似乎存在一些限制。
特别是、C5517对 I2S 时钟线的图形长度和负载容量有限制吗?


此致、
H.U

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

    我已将其转发给设计团队。 他们的反馈应发布在此处。

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

    你好 ,Tsvetolin Shulev,

    请告诉我有关此问题的当前状态。 我需要您的支持。

    最好的服务
    H.U

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

    除非另有说明、否则 IO 时序表是使用4pF 输出电容负载计算的-请参阅 C5517数据表中的5.3.2电气特性。

    由于 I2S 时序表未指定任何其他负载、因此我们必须假设4pF 是计时结束时的输出电容。

    测试仪实际上在4.0pF + 1.85pF 的较大负载下进行测试、但该负载仅用于交流时序信号的表征和测量。 它不表示器件能够驱动的最大负载。

    我将研究该信号的最大布线长度、但它应是布线阻抗和由此产生的压降以及信号频率的函数。 来自测试点的反射也可能影响信号完整性、但在较低频率下影响较小。

    您的 I2S CLK 的频率是多少?

    是否可以在另一个器件上提供信号的示波器截图(是否有到测试点的迹线切割?)

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


    Mark、您好!

    感谢你的答复。
    我展示了波形、其中的迹线切至下面的测试点。
    输出数据正确。

    CH2为 I2S2_CLK、CH3为 I2S2_TX:


    下面的波形线迹切割、并 I2S2_CLK 线路中添加一个30pF 电容器、使用同一电路板和同一软件进行测量。
    I2S 时钟很明显、但输出数据不正确。
    似乎、如果有任何数据被写入 TX 缓冲区、那么只有1位被输出、那么移位寄存器被停止。

    CH2为 I2S2_CLK、CH3为 I2S2_TX:
              

    此致、
    H.U

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

    很抱歉按键,但是否有此问题的更新?

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

    你(们)好

    很抱歉耽误你的回答。

    30pF 电容在哪里? 它是与迹线串联还是与 GND 迹线之间?
    我想知道该电容器是否会在 I2S 总线的另一端略微延迟器件的时钟、然后该器件会稍微延迟输出其数据、这可能会导致 I2S 总线的 C5517侧出现帧错误...

    TX 是否在下一帧同步时再次启动? 它是仅每帧切换一位还是仅切换一次、然后永远停止?

    您的 I2S 中断是否已启用? 您是否获得任何中断、如 OUERR、表示缓冲区过流或欠流、或 FERR、表示从 RX 线接收到的位太少?
    您需要在 I2SINTMASK 寄存器中启用中断、然后在 I2SINTFL 寄存器中进行检查。
    如果您也可以在此处提供其他 I2S 寄存器的寄存器设置(如 I2SCTRL 的 CLKPOL 位字段)、我想了解一下其他 I2S 寄存器的寄存器设置。
    我希望在使用 CCS 写入 TX 数据时看到设置的中断、因为在使用 CCS 写入寄存器时无法保持 I2S 帧速率- OUERR 中断将触发、但我不希望传输完全停止。

    一旦发生发送中断(通过 CPU 轮询、中断服务程序或 DMA 事件)、您的软件必须立即将新数据写入发送左/右 Data1/0寄存器。 您应该使用软件(而不是 CCS)来检查 OUERR 和 FERR 中断并使用软件记录它们的发生、因为使用 CCS 可能会触发它们。

    请参阅 TRM 文档的 I2S 部分中的以下章节...
    *仿真注意事项
    *初始化和配置步骤
    * ISR 步骤(用于 CPU 传输)

    另请参阅此处提供的 CSL I2S 示例: software-dl.ti.com/.../index_FDS.html

    此致、
    标记

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

    您好,Mark-San。
    感谢您的始终支持。

    我们的客户有疑问。

    当 I2S2用作主器件时、I2S2端口是否会受到周围环境的不良影响?
    当 I2S2用作主器件时、要连接的电容容量是否存在限制?

    我们的客户怀疑 I2S2端口。

    请回答吗?

    此致、

    Manabu Itto

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

    Mark、您好!

    很抱歉耽误你的回答。


    > 30pF 电容器在哪里? 它是与迹线串联还是与 GND 迹线之间?

    电容器位于 GND 的布线之间。


    >我想知道该电容器是否会在 I2S 总线另一端略微延迟器件的时钟,然后该器件会稍微延迟输出其数据,这可能会导致 I2S 总线的 C5517侧出现帧错误...

    时钟没有延迟。


    > TX 是否在下一帧同步时再次启动? 它是仅每帧切换一位还是仅切换一次、然后永远停止?

    TX 不会再次启动、似乎第一个位继续输出。


    我确认了使用 EVM 5517会重现同样的现象。
    报告复制程序。

    使用 CSL 封装 C:\ ti\ c5_lp \ c55_CSL_3.06 \ ccs_v6.x_examples \ I2S \ CSL_I2S_PollExample.

    默认情况下、将使用 I2S0实例、因此将实例更改为 I2S2。
    请参阅随附的文件。

    e2e.ti.com/.../csl_5F00_i2s_5F00_PollExample.c

    U23引脚上的电容为3.A、电容为30pF:I2S2_CLK 线路上的7引脚。

    将步骤2中准备的示例程序加载并运行至 EVM、并检查 U29 (9引脚)处 I2S2_DX 的输出状态。

    连接电容器时、观察到输出信号不正常。
      
     以下波形:请勿插入电容器:

        以下波形:插入电容器:

    将一个小电容器连接到时钟线路时、为什么数据输出不正确?
    您可以进行相同的实验吗?

    此致、
    H.U

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

    您好、H.U、

    我无法重现此问题。 我尝试了三种不同的方法:1) I2S2主器件到编解码器从器件、2) I2S2外部环回、3) I2S0主器件到 I2S2从器件单声道外部环回

    我在 GND 上使用了三个不同的电容值:1)无电容、2) 2个33pF 电容并联、3) 2个33pF 并联电容、22 uF (相对较大)

    CVDD = 1.3V、DVDDIO = 3.3V

    附件: /cfs-file/__key/communityserver-discussions-components-files/791/6758.C5517-I2S-DX-stops-when-CLK-has-cap-to-GND.zip

    ==================-

    1) 1) I2S2主器件到编解码器从器件

    项目:C55_CSL_3.06\C55_CSL_3.06\CCS_v6.x_examples\I2S\cSL_I2S_AudioCodec_DMA

    配置:C5517 I2S 配置为主器件- AIC3204 I2S 配置为从器件

    向 CLK 布线添加电容会失真时钟、但 I2S_TX 从不停止传输、在示波器上看起来正常。 在所有情况下、正确的数据都会通过测试。 请参阅示波器快照...

    1) CSL_I2S_AudioCodec_DMA -没有电容连接到 GND I2S CLK 环、DX 正常、1.536MHz、pass.jpg

    2) CSL_I2S_AudioCodec_DMA - 33pf、33pf I2S CLK 丢失边沿过冲、DX 正常、1.536MHz、pass.jpg

    3) CSL_I2S_AudioCodec_DMA - 33pf、33pF、22uF I2S CLK 失真、DX 仍然正常、1.536MHz、pass.jpg

    ==================-

    2) 2) I2S2外部环回

    H.U.先生修改了 C55_CSL_3.06、C55_CSL_3.06、CCS_v6.x_examples\I2S\CSL_I2S_PollExample

    但该示例使用内部回送模式、因此 I2S TX 在内部连接到 I2S RX。 I2S 信号不会离开封装、无法探测... 如果我们将 I2S_loopback _enable 更改为 I2S_loopback _disable、则仍需要正确配置电路板上的多路复用才能将信号传输到编解码器和接头。

    更容易从 CSL_I2S_AudioCodec_DMA 开始并将 CSL_I2S_PollExample 代码合并到该项目中、在 IO 扩展器配置为正确设置电路板多路复用器后调用函数。

    hwconfig.loopBackMode = I2S_loopback_disable; //从 I2S_loopback_enable 更改为 I2S_loopback_enable

    hI2 = I2S_OPEN (I2S_instance2、I2S_polled、I2S_CHAN_STEREO); //将 I2S0更改为 I2S2

    结果= SYS_setEBSR (CSL_EBSR_FIELD_SP0MODE、CSL_EBSR_SP0MODE_1);//复位将 EBSR PPMODE 默认为 MODE1、这会从器件中多路复用 I2S2 ...

    项目:C55_CSL_3.06\C55_CSL_3.06\CCS_v6.x_examples\I2S\cSL_I2S_AudioCodec_DMA

    配置:C5517 I2S 配置为主器件- AIC3204 I2S 配置为从器件

    向 CLK 布线添加电容会失真时钟、但 I2S_TX 从不停止传输、在示波器上看起来正常、在所有情况下、正确的数据都通过了测试。 该测试使用的 I2S_CLK 频率为25MHz。

    观察结果:在 CLK 上有22uF 电容接地的情况3中、I2S 似乎在更长的时间内有更多的事务、但接收到的数据与发送的数据匹配... 请参阅示波器快照...

    备注:由于这是从 I2S2到 I2S2的外部回送、我不认为从外部加载 I2S_CLK 会改变数据传输。 I2S2是主器件、因此它使用内部时钟移出 I2S 数据并在其中移位。

    1) CSL_I2S_PollExample_ExternalLB -没有到 GND I2S CLK 环的电容器、DX 正常、25MHz、pass.jpg

    2) CSL_I2S_PollExample_ExternalLB - 33pf、33pf I2S CLK 丢失边沿过冲、DX 正常、25MHz、pass.jpg

    3) CSL_I2S_PollExample_ExternalLB - 33pf、33pF、22uF I2S CLK 失真、DX 仍然正常但重复、25MHz、pass.jpg

    ==================-

    3) 3) I2S0主器件到 I2S2从器件单声道外部环回

    我认为、如果外部回路依赖于 CLK 信号完整性(然后对时钟上的容性负载进行实验)、这将是一个更好的测试。 为此、我使用了 CSL_I2S0_I2S2_MONO_example、其中 I2S0和 I2S2通过 J14接头上的跳线连接(如 CSL_I2S0_I2S2_MONO_Example.c 注释中所述)。 然后、我在 J27引脚1处向 I2S0_CLK (以及连接的示波器探针)添加了电容负载。 我在 J28引脚1上探测了 I2S0_TX。 同样、I2S_CLK 在其上具有容性负载时看起来非常失真、但 DX 引脚看起来正常、没有停止、并且接收到的数据与传输的数据匹配。

    请参阅示波器快照...

    1) CSL_I2S0_I2S2_MONO_example - GND I2S CLK 环无电容、DX 正常、3.125MHz、pass.jpg

    2) CSL_I2S0_I2S2_MONO_example - 33pf、33pf I2S CLK 丢失边沿过冲、DX 正常、3.125MHz、pass.jpg

    3) CSL_I2S0_I2S2_MONO_example - 33pf、33pF、22uF I2S CLK 失真、DX 仍然正常、3.125MHz、pass.jpg

    您能帮助我重现 EVM 和 CSL 代码的问题吗?

    请与我分享 J27、J28、J29和 J30的跳线设置

    观察到问题时、您能否确认 DVDDIO 电压为3.3V?

    还请检查板载多路复用器是否配置为将信号路由到探测信号的位置。

    我可以通过电子邮件向您发送修改版本的 CSL_I2S_AudioCodec_DMA、其中合并了 CSL_I2S_PollExample 示例(在 IO 扩展器配置之后)。

    此致、
    标记

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

     Mark、您好!

    >您能帮助我重现 EVM 和 CSL 代码的问题吗?

    我请求你建立友好关系。  请向我提供您的测试代码。  我想尝试一下。

    >请与我分享 J27、J28、J29和 J30的跳线设置

    J27:1-3 =开路,2-4 =开路,
    J28:1-3 =开路,2-4 =开路,
    J29:1-3 =短接,2-4 =短接,
    J30: 1-3 =短、2-4 =短、

    >观察到问题时,您能否确认 DVDDIO 电压为3.3V?

    DVDDIO 稳定地以3.3V 供电

    此致、
    H.U