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.

[参考译文] AM2634-Q1:有关 MCSPI+EDMA 的芯片勘误表(i2350 ABSYNC 模式)

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1213208/am2634-q1-chip-errata-with-respect-to-mcspi-edma-i2350-absync-mode

器件型号:AM2634-Q1
主题中讨论的其他器件:ADS7038-Q1ADS7038

您好!

基于正在进行的主题:

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1209787/am2634-q1-am2634-edma3-mcspi-spi-adc-system-performance-questions/4564154#4564154

我曾尝试将 DMA 序列请求从1.25us 放宽到5us。 为此、我确实希望 EDMA 将外部 SPI-ADC 的4通道请求突发写入 MCSPI 片上元件的 FIFO。 但如果这样做、SPI-TX 方向在几次传输后"消失"。 EDMA3配置为使用 ABSYNC 模式来执行此操作。 我在芯片勘误表(i2350)中读到、相对于 MCSPI 片上 IP、此 DMA 模式似乎存在问题。 然而,我不是真正理解的含义的描述。 我想利用这项工作。 然而、没有什么更好的发生。 因此、我认为我确实出错了。 如果希望在我的示例中在 MCSPI 内使用 EDMA + FIFO 模式的权变措施、有任何提示。

图例:

- Ch3 (蓝色)      : EDMA 每5 us 触发一次
- Ch2 (品红色):MCSPI SPI-CSN 输出。 它相对于 SPI-Clk 以最大速度运行
-通道1 (绿色)   : MCSPI SPI-Clk. SPI-Clk 频率为25MHz。

两个5us SPI 突发序列可以正常工作。 那么它就消失了。 不再有 SPI-Tx 活动。 根本原因未知。 EDMA 触发仍每5us 发生一次(蓝色迹线)。 EDMA3配置为在此通道上无限运行。

示波器屏幕截图与第一张屏幕截图相同。 不过已经放大了。 在此设置中、SPI-CSN (品红色布线)并不满足 ADS7038-Q1在大于1us 的片选周期时间方面的所有要求。 ADS7038 SPI-CSN 高电平时间> 230ns、满足低电平时间> 400ns 的要求。 违反了少量 ADC 采样周期。 但是、降低 SPI-Clk 频率可以(!) 从而形成一个能够满足所有时序要求的组合。

我确实配置了 EDMA 通道以便进行传输、从而将4个字(16位字)写入 MCSPI 的 FIFO。 这将每5微秒发生一次。 它确实会按预期启动。 但经过两个序列后、它消失了。 这是否与芯片勘误表(i2350)中所述内容有关?

Br
Markus

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

    尊敬的 Markus:

    我认为您观察到的上述问题正是勘误表 i2350中所述的问题:

    使用了 EDMA 的 ABSYNC 并将4*16位> 32位的数据发送到 TX FIFO。

    解决方法是使用较小的突发尺寸,如2*16位,以解决问题。

    此致、

    Ming

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

    尊敬的 Ming:

    尝试你的建议我得到的2*16和3*16 DMA 写突发到传输 FIFO 以下模式. 最后,如果我使用1*16但仍处于 ABSYNC 模式,我知道在一种模式下它的工作方式与1*16相同。 因此、我对芯片勘误表中 i2350的描述有点困惑。 除非我没有什么完全错误,它看起来我32位也不工作。 它不必大于32位、相等似乎就足够了。 似乎... 我不是100%肯定的。

    ABSYNC 上 MCSPI-Tx 3*16 -停止后的第三轮... :

    ABSYNC 在 MCSPI-Tx 2*16上-在第四轮内停止... :

    ABSYNC ON MCSPI-Tx 1*16 -运行无限... :

    在传输一个字的情况下使用 ABSYNC 是没有意义的。 使用它。 目前、可能无法为此类型的应用使用任何 ABSYNC 选项。 尝试减少传输的位数实际上并没有什么变化。 例如,如果我将位数从16减少到12,我应该能够通过使用 EDMA3的 ABSYNC 选项和 MCSPI 永久传输小于32位的2*12位。 但事实证明,它看起来与 ABSYNC 模式中的2*16位选项相同。 只有位/时钟数从16减少到了12。 除非我这里做错了、否则似乎现在无法针对 MCSPI IP 在 ABSYNC 模式下使用 EDMA3。

    Br
    Markus

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

    尊敬的 Markus:

    您的观察结果似乎与勘误表 i2350冲突。 我需要与我们的硬件应用团队以及 McSPI 和 EDMA 的 IP 所有者讨论这个问题。 我一收到任何更新就会回复您。

    同时,1*16 A 模式是否适合作为一种变通办法? 如果是、则应该解除对开发的阻断。

    此致、

    Ming

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

    尊敬的 Ming:

    使用从 EDMA 到 MCSPI 的 FIFO 的突发写入操作的动机是放宽 DMA 触发速率、现在是1.25us 到5us。 实际上、我们似乎能够以现状运行我们计划的应用程序、即 EDMA 触发率将保持每1.25us 一次。 因此,是的,我们可以使用1*16模式通过 MCSPI-IP 进行读写。 我将关闭该主题。 不过、如果有更有效地使用 EDMA+MCSPI 的更新、如果您能及时告知我、我将不胜感激。

    Br
    Markus