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.

[参考译文] AM273X-AM273X:采用 4 引脚模式时、MSS_SPIB 使用 MCU-PLUS-SDK 芯片组的 CS 信号的最高速率是多少?

Guru**** 2463330 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1552100/mcu-plus-sdk-am273x-what-is-the-highest-rate-of-cs-signal-of-mss_spib-with-4-pin-mode-for-am273x-chipset

部件号:AM273X - MCU-PLUS-SDK


工具/软件:

您好支持团队、

我们使用 AM273x 通过 SPI 从 AD7389-4 ADC 芯片组收集数据。 现在我们发现、输入数据的采样率受 AM273x 中 SPI 的 CS 速率的限制。 如下面的屏幕截图所示、SPI 时钟为 20MHz、4 引脚模式、启用 CS 保持功能时、CS 信号周期为 14.25us、因此我们得到的采样率为 70.2KHz

是否有办法提高 CS 速率? CS 速率的限制是多少?

我的数据收集源代码如附件所示。 如果我出了问题、您能查看一下吗? 还是我在每个 SPI 事务之间产生了任何额外的延迟?

e2e.ti.com/.../void-AD738x_5F00_dataConversion_2800_void_2900_.txt

另外、为了了解更多信息、我附上了一个 Saleae 捕获文件以供您参考。 (请将其从 xxx.txt 重命名为 xxx.Sal)

e2e.ti.com/.../Session10_5F00_latestOne.txt

非常感谢您的帮助和支持。

期待您的答复。

此致、

LIN

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

    您好 Lin、

    从 Saleae 捕获可以看出、8 字节数据的数据传输大约需要 3.5us、CS 低电平(而非时钟)5.6us、CS 高电平 4.7us。 理论上、数据传输速率可以是当前传输速率的 4 倍。 从您共享的程序中、我假设您使用的是阻塞模式。 您是否使用 DMA 模式? 您使用的是 Release 版本还是 Debug 版本? 您能否共享 example.syscfg 文件、linker.cmd 文件和映射文件 ?

    此致、

    Ming

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

    尊敬的 Ming:

    是的、我使用阻塞模式、但尚未使用 DMA、如下所示。 我使用 Debug Build。

    以下是我的 example.syscfg 和映射文件。 找不到 linker.cmd 文件。

    e2e.ti.com/.../8508.example.zip  e2e.ti.com/.../mibspi_5F00_loopback.Debug.zip

    如果您需要更多信息、请告诉我。

    谢谢、此致、

    LIN

      

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

    您好 Lin、

    您可以尝试以下三种方法:

    1.从 Debug Build 更改为 Release Build。 它肯定会有所帮助、尤其是您使用的是 CPU 副本

    2.启用 DMA

    3.取消选中“CS HOLD ENABLE“

    此致、

    Ming

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

    尊敬的 Ming:  

    感谢您的指示。

    我刚刚完成了上述所有测试。

    1) 从 debug build 更改为 release build 确实会将 CS 速率从 69.54KHz 增加到 91.14KHz。 它真的很有帮助。

    2) 如下面的屏幕截图所示启用 DMA 后,我得到了所有的零数据,并且 CS 速率降低到 69.95KHz。 除了选中 example.syscfg 中的 Enable DMA 框之外、我是否应该在代码中做任何其他操作? 这是我第一次启用 DMA。  

    3) 取消选中 CS HOLD ENABLE 框后、CS 速率将从 91.14 增加一点点、达到 92.63KHz。 然而,此时所有回读数据都不正确,因为 AD7380-4 芯片组要求 CS 在数据转换期间保持低电平。

    因此、当前采用 Release Build、无 DMA 和启用 CS 保持时的最佳结果为 91.14KHz。 然而、91.14KHz 远不符合我们的要求。 我们需要处理至少 500KHz 的信号。  

    我们感谢您提供进一步的建议和建议。

    仅供参考、我附上了每个配置的 Saleae 捕获文件。

    e2e.ti.com/.../Session812_5F00_4x_5F00_Release_5F00_noDMA_5F00_CSHoldEnabled.txt e2e.ti.com/.../Session812_5F00_4x_5F00_Release_5F00_EDMA_5F00_CSHoldEnabled.txt e2e.ti.com/.../Session812_5F00_4x_5F00_Release_5F00_noDMA_5F00_CSHoldDisabled.txt

    谢谢、此致、

    LIN

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

    您好 Lin、

    如果您希望至少实现 500kHz 的采样率、那么 AM273x 执行任务是不可能的。 每个样本需要 64 位(4 通道* 16 位)。 500kHz/64 = 32MHz、但 MIBSPI 以 25MHz 最大频率运行 您将需要查找其他器件。

    此致、

    Ming

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

    尊敬的 Ming:

    完全同意您的计算和解释。 我们有以下想法。

    一种方法是使用两个 SPI 来支持 AD7380-4 的两线制模式以实现目标。 因此、我们希望进一步将 MIBSPI 的 CS 速率增加到 理论值。 如果 DMA 和其他方式可以进一步改进它,我们希望继续投资。

    另一种方法(正如我在上一篇文章中提到的)是尝试使用 AM273x 的 QSPI 来支持 ADC 的 4 线模式。 如果您可以提供有关 QSPI 使用的更多建议、这将对我们的开发非常有帮助。

    由于我们已经花了大量时间研发 AM273x 芯片组、我们真的希望能够使用它来满足我们的要求。

    感谢您的帮助和支持。

    此致、

    LIN

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

    您好 Lin、

    我认为、使用两个 SPI 来支持 ADC 芯片的 2 线模式很难实现、因为两个 SPI 实例之间很难实现时钟同步。

    我认为、使用 QSPI 支持 ADC 芯片的 4 线模式更可行、但也有自身的挑战:

    1.所有 QSPI 示例都与闪存紧密耦合。 尽管有 QSPI HLD(高级驱动器)和 SPI LLD(低级驱动器)API、但 QSPI 驱动器没有独立的示例

    2.我们不知道 QSPI 驱动器是否支持 ADC 芯片的模式(模式 0/1/2/3 等)

    3.我们能提供的支持是有限的,因为 MCU+ SDK 官方只支持 QSPI 闪存。

    如果你走这条路线,你是自己的。

    如果您决定这样做、请为 QSPI 驱动程序提交另一个 e2e 主题。 将有一个不同的人从那里支持你。

    此致、

    Ming  

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

    尊敬的 Ming:

    非常感谢您的快速响应。

    我们刚刚进行了内部讨论、发现很难使用多个 SPI 来支持 ADC 的 2 线或 4 线模式。 您提到了时钟同步问题、我们认为 即使是 CS 同步也是一个问题。 所以我们会放弃这个想法。

    对于 QSPI、我检查了示例代码、并注意到它们都与闪存密切相关。 正如您强调的那样、QSPI 没有独立的示例代码、在我们进行最终决策时、我们将考虑该代码。 感谢您对有限的 QSPI 支持的诚实守信。 如果我们这样做,我们将尽最大努力来解决这个问题。 如果愿意、我肯定会为 QSPI 创建另一个线程。

    感谢您的帮助和支持。

    如果您没有任何其他建议、我可以关闭此主题

    此致、

    LIN

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

    您好 Lin、

    我对 MIBSPI 方面没有更多的建议。 请关闭此主题。

    此致、

    Ming

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

    尊敬的 Ming:

    再次感谢您提供的持续且信息丰富的支持。

    此致、

    LIN