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.

[参考译文] TMS320F28075-Q1:对于读取/操作码和地址、SPI 移位寄存器操作可以返回 0xFF?

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1632660/tms320f28075-q1-spi-shift-register-operation-can-return-0xff-for-read-op-code-and-addresses

器件型号: TMS320F28075-Q1

具体情况是、我先通过 SPI 主模式写入读取命令(一个字节)、然后写入 3 个字节的地址、再写入 16 个字节的虚拟字节、我可以在 fifoRx 寄存器中看到这些值。

我尝试编写驱动程序级函数来读取、而不是使用库、这样我就可以在实现过程中很好地学习。

SPI 是一个移位寄存器、根据参考手册、可以理解的是、每次发生 TX 操作时都会将元件转移到 RX 缓冲器。  

 

 在 RX 缓冲区中使用 0xFFFF 来发送读取命令和地址字节是否正常?

注:我在调试和单步执行代码时收到此信息。

来自参考手册:

image.png

 芯片数据表中的读取序列:

image.png

调试观察、它将 RX FIFO 寄存器中的前四个字节显示为 0xFFFF 和 0xFFFF、后跟实际值。

image.png

 

 

 

欢迎您提出所有建议和观点!

此致、

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

    尊敬的 Arun:

    是的、预计需要 0xFF。  

    SPI 为 A 全双工移位寄存器协议 :对于在 MOSI 上时钟输出的每个位,硬件同时从 MISO 中计时—没有例外。 您的主设备不能“仅传输“。 推出读取命令和地址字节的那一刻、RX 移位寄存器已经并行填充。

    关键问题是:在该命令/地址阶段、从器件在 MISO 上驱动什么? 答案是— 还没有什么意义 。 从器件甚至没有完成接收到您的命令、更不用说对其进行解码并准备好响应。 在此窗口期间、MISO 线位于 A 中 高阻抗状态 、并且在总线上使用典型的上拉电阻器时、主器件将以 1 为时钟。 对于 16 位字、读为0xFFFF。 对于字节范围的传输、0xFF按插槽显示。

    这正是参考手册所描述的内容、即移位寄存器在每次 TX 操作时都会将数据移动到 RX 缓冲区中、它始终会接收数据、即使接收到的内容没有电气意义也是如此。

    希望这对您有所帮助!

    谢谢、

    IRA

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

    Ira Thete 

    非常感谢你的确认,我想知道,如果我做了什么错. 因此、这本质上意味着、只需考虑在前 4 个字节(读取字节和地址字节)之后推入 RX 缓冲区的数据。