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.
我尝试使用 TMS320F28335上的 SPI 模块与 Cypress FM25L04B F-RAM 芯片进行通信。 F-RAM 需要一个1字节 WREN (写入使能)指令、然后才能将一个字节写入 RAM 中的寄存器。 这意味着单字节 WREN 指令后跟一个3字节写入指令(操作码+地址+数据字节)。 我的问题是、如果我使用16寄存器 FIFO、如何指定指令的长度? 每条指令从 Slave_Enable 引脚拉至低电平开始、一旦指令完成、Slave_Enable 引脚将变为高电平。 因此、寄存器中应该有一些设置来暗示指令的长度、对吧? 如果没有、那么我是否必须控制软件中的 Slave_Enable 位、而不是由 SPI 模块自动处理? 请澄清。
Rohit、
SPI 是一个通用通信模块、这意味着它不支持硬件中的任何特定指令/数据格式。
只要有数据要发送、SPI 就会将 CS 保持为低电平。 因此、如果您需要4个字节(32位)的 CS 低电平、则可以将字大小设置为8位、并将4个字写入 FIFO。 如果您需要进行多次连续传输、则需要等待之前的传输完成、然后再将下一组数据写入 FIFO。 您可以使用 GPIO 手动控制 CS、但仍需要遵循与仅使用 FIFO 相同的建议。
这有道理吗?
-Mark
Rohit、
是的、您的理解是正确的。 SPIRXBUF 和 SPITXBUF 是用户可访问各自 FIFO 的位置。 您可以将它们视为一个、就编码您的软件而言也是一样的。 当该值自动从 SPIDAT 寄存器复制到 SPIRXBUF (或 SPITXBUF 相反)时、数据也会放置在 FIFO 中。
谢谢、
标记
Rohit、
你是对的。 你的计划是好的。
[引用用户="Rohit Baranwal"]…… 不存在发送垃圾数据的风险。[/报价]
在理想的世界中、您的评论将是完全正确的。 然而、世界是嘈杂的。 SPI 不会发送垃圾数据、这在很大程度上是有保证的;但是、只要芯片选择线路被拉低、就会有系统噪声的风险、从而产生足够的干扰、以便在从器件上注册为有效时钟。 即使在常规传输过程中、这也始终是一种风险、但启用从器件的时间越长、噪声导致损坏的可能性就越大。 这是一个需要注意和采取预防措施的问题。
此致、
标记