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: SPI使能FIFO的情况下,能否采用非16位(即SPICHAR != F)的方式发送

Part Number: TMS320F28075
Other Parts Discussed in Thread: TMS320F28067

如题,在技术手册中我并未查到075使能FIFO的情况下,必须用16位模式发送数据,但是在实际测试中,当我将SPICHAR=F时,075作为SPI主机发送一帧数据(0A 00 00 46 00 50)给作为从机的TMS320F28067,用示波器观察SPIMOSI,波形如下

当我所有代码不变,只将SPICHAR=F改为SPICHAR=7(即为8位发送时),再次重复发送操作,观察波形如下

从上图可以看出,当SPICHAR=7时,虽然有SPICLK信号,但是没有任何高电平发出,这是为什么?是由于SPICHAR=7时其他寄存器(在使能FIFO的情况下)要做出相应配置变化,还是SPI FIFO使能的情况下就只能采用16位发送,若是的话在那份手册可以找到相关说明,在技术手册和外设说明手册中我并未找到相关说明

  • SPI 一直会先移出 SPIDAT 寄存器的 MSB。在 16 位模式下,整个 16 位数据都被移出,这没问题。在 8 位模式下,您需要在写入 SPITXBUF 寄存器之前将数据移位 <<8。如果您不移动数据,那么您可能会在 MOSI 引脚上看到 0。