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.
工具/软件:Code Composer Studio
我使用 f28377s Launch Pad 作为启用 FIFO 的 SPI 从设备。 我能够正确接收传入的消息、但是它们以两字节的延迟环回 SOMI、即使 SPITXBUF 从未被主动写入并且 SPILBK 被禁用。 我认为这种行为不寻常吗? 此外、当 写入 SPIDAT 的数据被正确发送时、对 SPITXBUF 的主动写入会被忽略。 目前我无法解释这种行为。
这里有人知道会发生什么情况吗?
SPI 的配置方式如下:
SpibRegs.SPICCR.bit.SPISWRESET = 0; SpibRegs.SPICCR.bit.CLKPOLARITY = 0; SpibRegs.SPICCR.bit.SPILBK = 0; SpibRegs.SPICCR.bit.SPICHAR = 0x7; SpibRegs.SPICTL.bit.CLK_PHASE = 1; SpibRegs.SPICTL.bit.MASTER_SLAVE = 0; SpibRegs.SPICTL.bit.OVERRUNINTENA=0; SpibRegs.SPICTL.bit.SPIINTENA=1; SpibRegs.SPICTL.bit.TALK = 1; SpibRegs.SPIRXEMU = 0; SpibRegs.SPIFFTX.bit.SPIFFENA=1; SpibRegs.SPIFFTX.bit.TXFIFO=0; SpibRegs.SPIFFTX.bit.TXFFINTCLR=1; SpibRegs.SPIFFTX.bit.TXFFIENA=1; SpibRegs.SPIFFTX.bit.TXFFIL=4; SpibRegs.SPIFFRX.bit.RXFIFORESET=0; SpibRegs.SPIFFRX.bit.RXFFOVFCLR=1; SpibRegs.SPIFFRX.bit.RXFFINTCLR=1; SpibRegs.SPIFFRX.bit.RXFFIENA=1; SpibRegs.SPIFFRX.bit.RXFFIL=4; SpibRegs.SPIFFRX.bit.RXFIFORESET=1; SpibRegs.SPICCR.bit.SPISWRESET=1; SpibRegs.SPIFFCT.bit.TXDLY=0; SpibRegs.SPIPRI.bit.SOFT=1; SpibRegs.SPIPRI.bit.free=1; SpibRegs.SPIPRI.bit.STEINV=0; SpibRegs.SPIPRI.bit.TRIWIRE=0;
感谢你的帮助!
此致、
Tobi
Tobias、
这是预期的结果。 将传输 SPIDAT 中的任何数据。 由于您使用的是字节、因此会有几个字的延迟、直到接收到的数据从传输中恢复。 下表介绍了该行为。 每行表示操作后的状态。 SIMO 为收到的数据、SPIDAT 为寄存器的状态、SOMI 为从器件发送的数据。
时间 | SIMO | SPIDAT | SOMI |
T0 | 00 | 0000 | 00 |
T1 | AA | 00AA | 00 |
T2 | 55 | AA55 | 00 |
T3 | BB | 55 BB | AA |
T4 | 66 | BB66 | 55 |
T5 | 抄送 | 66cc | BB |
如果您不希望从机发送任何数据。 将 TALK 位设置为0、直至准备就绪。
谢谢、
标记