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.

[参考译文] TMS320F28069F:SPI 驱动器似乎发送/接收2个字节的数据

Guru**** 2551640 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/693077/tms320f28069f-spi-driver-seems-to-send-recieve-data-by-2-bytes

器件型号:TMS320F28069F

尊敬的 TI 成员:

我将介绍 SPI 驱动器。

我在 TRG 文档的方框图中看到 SPIRXBUF、SPITXBUF 有4 x 16位 FIFO。

但是、SPI_Obj 中 SPIRXBUF 和 SPITXBUF 寄存器的类型仅为 uint16_t

这是否意味着 SPI 可以在单次传输期间发送/接收16位数据?

SPI_write()和 SPI_read() 能否在一次传输时支持32位或更多位?

此致、

Hae Ryong

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    也许该解决方案将为您提供帮助。 github.com/.../c2000-mcp-can
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Hae Ryong、

    F2806x 器件上的 SPI 具有4级发送和接收 FIFO。 通过写入/读取 SPITXBUF 和 SPIRXBUF 寄存器可以访问这些寄存器。 SPI 的字长可配置为1至16位。  

    是的、SPI 可以发送/接收每个字传输16位。 如果需要发送16位以上的字、则必须发送两个16位(或4 x 8位)字。 只要在主动发送字完成发送之前下一个字在 FIFO 中、SPI 就会在整个传输过程中将 SPISTE 信号保持为低电平。

    根据这些函数的来源、它们可能本身支持其他字、或者您可以轻松编写自己的函数以实现所需的结果。

    谢谢、
    标记