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.

[参考译文] TMS320F280039C:仅使用 CLB 读取 SPI 数据

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1361327/tms320f280039c-using-clb-exclusively-to-read-spi-data

器件型号:TMS320F280039C
主题中讨论的其他器件:ADS7853

使用 LAUNXL-F280039C、我希望通过 SPI 从 ADS7853读取数据、但希望通过 CLB 执行。 我在 SPIA 上有一个时钟、我可以将其路由到 CLB 和 GPIO 上的芯片选择。 我的 SPIA 用例设置为自定义、我将使用除 PTE 之外的所有组件。 如前所述、这是通过 GPIO 实现的。 由于项目中的硬件限制、我希望通过 CLB 读取数据以充分利用 CPU 内核并转储数据、因此需要在寄存器中读取数据、然后再从寄存器中读取数据。  

这是有可能实现的吗? 请告诉我需要进行哪些配置更改才能实现这一点。

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

    您好!

    是否考虑过在没有 CPU 干预的情况下使用具有 DMA 的 SPI 将数据移动到缓冲区? 您使用 CLB 的动机/需求是什么? DMA 能够读取 SPI RX FIFO 并传输数据、而无需 CPU 干预。

    谢谢!

    卢克

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

    导致这一问题的原因是 PCB 设计中的硬件限制。 我们打算使用 CLB、并且已经相应地做出了设计。

    如果您对原来的问题有任何看法、我很高兴

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

    如果我的理解是正确的、那么该硬件限制会限制您可以用于 SPI 通信的引脚、对吗? 这是您为何要使用 CLB 重现 SPI 外设?

    还可以选择使用 CLB 输出覆盖功能使用 CLB 覆盖 SPI RX 信号。 您可以使用 CLB 输入 XBar 读取任何引脚、在 CLB 输入多路复用器中选择 CLB 输入 XBAR、并将该信号发送到 CLB 输出、而该输出会覆盖其中一个 SPI 引脚。 TRM 中的下表列出了可由 CLB 覆盖的信号:

    这需要的 CLB 配置要简单得多。 如果不需要 CPU 干预、无论如何都需要 DMA 将数据从 SPI 缓冲区中移出、因此我建议使用此方法。

    通过在 CLB_SPI_DATA_CTRL_HI 中将事件配置为推入 FIFO、可以将数据从 R0寄存器写入 SPI RX FIFO。 STRB 位域。 HLC 事件在"HLC 事件列表"表中列出。

    谢谢!

    卢克

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

    Luke、您好!

    我知道、这里需要使用输出覆盖。 但是、我不知道您到底是如何从任何 GPIO 中读取数据。 比如、 数据存储在哪里、它是在某个缓冲器中还是在寄存器中?

    链接器将是很好的选择。

    此外、只是为了添加、由于只有硬件限制、在定制 SPIA 设置中使用了时钟和 PICO 和 CLK。 芯片选择目前正在通过 GPIO 完成、POCI 有望通过覆盖引脚来完成。

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

    CLB 输入 XBAR 并不是完全"读取"GPIO。 它是一个多路复用器、其输入由 GPIO 组成。 您可以通过配置 CLB 输入 XBAR 多路复用器来选择任何 GPIO。

    如果您有其他问题、请告诉我。

    Luke