主题中讨论的其他器件: AM263P4-Q1、 TMS320F28377D、 AM263P4
工具与软件:
您好!
我想将 ADS127L18 ADC 与 TI 的 AM263P4-Q1 MCU 连接、 我知道、帧同步数据端口是为其他外设(如 McBSP (可在 C2000 TMS320F28377D 上看到)创建的、而 SPI 仅用于寄存器配置。 话虽如此、是否有一种方法可以将 ADS127与 AM263连接、而不涉及位拆裂或其他软件实现的方法?
谢谢!
迪伦
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.
工具与软件:
您好!
我想将 ADS127L18 ADC 与 TI 的 AM263P4-Q1 MCU 连接、 我知道、帧同步数据端口是为其他外设(如 McBSP (可在 C2000 TMS320F28377D 上看到)创建的、而 SPI 仅用于寄存器配置。 话虽如此、是否有一种方法可以将 ADS127与 AM263连接、而不涉及位拆裂或其他软件实现的方法?
谢谢!
迪伦
您好、Dylan、
我不太熟悉 AM263P4、但它具有 PRU 内核、该内核应该能够支持帧同步接口。 遗憾的是、我们没有显示如何专门针对 ADS127L18执行此操作的示例代码。 我找到了这份应用手册、其中介绍了如何使用 PRU 内核实现不同的串行接口。
https://www.ti.com/lit/an/sprade1/sprade1.pdf
作为 PRU 的替代方案、AM263P4具有多个 SPI 端口。 您应该能够在3线外设配置中使用一个或多个 SPI 端口来捕获帧同步数据。
此致、
Keith Nicholas
精密 ADC 应用
Keith、您好!
我没有 PRU 方面的经验、您可以检查一下我的想法吗? 按照我的理解、我们会将 PRU 引脚配置为多路复用为具有直接输入模式的 eGPI 引脚。 这会为 DCLK、FSYNC 和 DOUT0消耗3个 GPI (因为我们只想使用1个数据输出引脚)。
至于使用 SPI、3线制外设将使用 MOSI、SCK 和 CS。 在此配置中、我们需要将 SCK 映射到 DCLK、将 MOSI 映射到 DOUT0、并不断将 CS 拉至低电平。 然而、FSYNC 会走到哪里? 关于帧同步接口的一个更一般的问题是、总体功能是否需要 FSYNC (即、可以使用软件和一些数学运算来了解帧何时完成传输)?
最后、使用 PRU 与使用 SPI 有何优缺点?
感谢您的及时帮助、
迪伦
您好、Dylan、
是的、要使用 PRU、这将是正确的引脚配置。
如果要使用 SPI 连接到数据端口、则从技术上讲、SPI 端口中只使用2根线;MISO 连接到 DOUT0、SCK 连接到 DCLK (ADC 的输出和 MCU 的输入)。 这种情况下不使用 FSYNC、ADC 上的 START 引脚用于启动和停止转换。 在完整帧同步接口中、FSYNC 是转换率时钟、将自动使 MCU 数据收集与 ADC 保持同步、以防由于噪声或其他一些系统级瞬态而导致通信中断。
这是使用 SPI 的最大缺点。 一旦通过 SPI 开始通信、就不会有直接的硬件反馈来纠正任何通信错误。 对于仅收集一个数据块然后进行处理、然后再收集另一个数据块、进行处理等的系统而言、这种限制可能不是个问题。 由于您没有连续收集数据、因此您可以通过脉冲 START 引脚在每次采集新数据块时重新同步。 如果您不断收集数据、在某个时候、可能会出现通信错误、您需要一种机制来在系统级检测此情况、例如在数据流中启用 CRC 和检查正确的 CRC 代码。
对于 AM263P4、由于它具有一个应能够直接实现帧同步接口的 PRU、因此这将是更稳健的通信方法、因为在一些样本中会快速恢复导致同步丢失的任何通信干扰。 我只提到了使用 SPI、因为这样在处理器和 ADC 之间工作可能会更快。
此致、
Keith