英飞凌
直播中

duke刘

9年用户 723经验值
擅长:可编程逻辑
私信 关注

Tricore Tc397 SPI能否发送超过32位的帧呢?

我正在研究 Tricore Tc397 SPI。
看起来,datawith 是 2-32 位。
是否有办法在一个帧中通过 SPI 发送超过 32 位(例如 64 位)的数据?
这里的一帧是指 CS 保持低电平,SCLK 持续。                                                                                                                                                                                                                                                                                                                 
                                                        

                                                                                                                                                      

回帖(2)

夏日余晖

2024-5-28 10:07:25

是的,你可以,而且你可以选择如何做到这一点。 如果 QSPI 模式设置为位,则可以使用"短数据连续模式" 然后操作 BACON.LAST 位。


或者,您也可以在"长数据模式" 下操作,BACON.BYTE=1,然后发送两个字,在一个片选序列中传输 64 位。



范围上的示例:


举报

吴湛

2024-5-28 16:07:46
Tricore Tc397 的 SPI 接口确实支持在一帧中发送 2-32 位的数据。然而,要发送超过 32 位的数据,您需要采取一些额外的步骤。以下是实现这一目标的方法:

1. **分帧传输**:您可以将超过 32 位的数据分成多个帧进行传输。例如,如果您需要发送 64 位数据,可以将数据分为两个 32 位的帧。在这种情况下,您需要在发送每个帧之间保持 CS(片选)信号低电平,以确保数据的连续性。

2. **使用多字节传输**:在每个 SPI 帧中,您可以使用多字节传输来发送更多的数据。例如,您可以在一个帧中发送 4 个字节(32 位)的数据,然后将剩余的 32 位数据分成另外两个帧发送。这样,您就可以在一个操作中发送超过 32 位的数据。

3. **软件层面的控制**:在软件层面,您可以编写一个函数来处理这种超过 32 位的数据传输。这个函数将负责将数据分成适当的帧,并通过 SPI 接口发送这些帧。在接收端,您还需要编写一个相应的函数来接收和重组这些帧。

4. **硬件层面的考虑**:在硬件层面,您需要确保 SPI 接口的时钟速率和数据传输速率能够支持这种超过 32 位的数据传输。此外,您还需要考虑数据同步和错误检测机制,以确保数据的正确传输。

5. **通信协议**:为了实现这种超过 32 位的数据传输,您可能需要设计一个通信协议,以确保发送方和接收方能够正确地处理和解析数据。这个协议可以包括数据帧的开始和结束标志、数据长度信息以及错误检测和纠正机制。

总之,虽然 Tricore Tc397 的 SPI 接口在一帧中只能发送 2-32 位的数据,但通过分帧传输、多字节传输、软件层面的控制、硬件层面的考虑以及设计通信协议,您仍然可以实现超过 32 位的数据传输。这需要在软件和硬件层面进行一些额外的设计和实现,但这是完全可行的。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分