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.
什么是SPI接口?
SPI接口是高速同步串行输入输出接口。
TMS320F28335有几个SPI接口模块?
有一个专门的SPI模块, 另外两个McBSP也可以配置为SPI接口。
TMS320F28335SPI接口由几组寄存器控制?
12组,位于控制寄存器帧0x7040h开始的位置。所有的寄存器都为16bit寄存器
FIFO有几级?
16级
SPI FIFO模式下如何对传输和接收FIFO进行操作?
直接对SPITXBUF进行赋值以传输数据例如:SpiaRegs.SPITXBUF=sdata[i]。此操作可理解为:首先使TXFIFO头指针加1,然后把值写入TXFIFO头指针指向的位置。
如果当前没有一个激活的传输过程时,对SPITXBUF的写入会激活一个传输过程。
直接读取SPIRXBUF的值以接收数据例如:rdata[i]=SpiaRegs.SPIRXBUF,此操作可理解为:首先从RXFIFO头指针处读取1个word, 然后使RXFIFO头指针减1。
SPI FIFO模式下传输和接收中断何时产生?
是在数据传输或接收结束后,再判断传输和接收FIFO队列中有多少数据(SPIFFTX.TXFFST4-0和SPIFFRX.RXFFST4-0的值)。对于传输FIFO如果FIFO中数据小于等于TXFFIL4-0(此寄存器指定临界值)指定的值时会触发中断,在中断处理例程中继续传输数据。对于接收FIFO如果FIFO中的值大于等于RXFFIL4-0中指定的值时触发中断,在中断处理例程中接收数据。故FIFO模式下中断触发条件除了标准SPI模式下的数据传输接收完毕的条件外还要满足FIFO中的数据小于等于TXFFIL或大于等于RXFFIL设定值的条件,在两个条件都满足的情况下才会触发中断。另外一般情况下,FIFO模式SPI初始化完后会立即产生以个传输中断,因为此时TXFIFO没有数据满足产生中断的条件。
如果只接收数据不发送数据如何激活接收过程?
SPI的的接收过程必须依赖传输过程,故即使值接收数据也必须对SPITXBUF写入以激活一个传输过程来接收数据。