EDA365电子工程师网

标题: TMS320F28335学习笔记-SPI模块 [打印本页]

作者: duzy    时间: 2016-6-28 14:55
标题: TMS320F28335学习笔记-SPI模块
什么是SPI接口?
" @/ s% l) M8 L( mSPI接口是高速同步串行输入输出接口。
0 x2 I2 G+ p* u7 X$ W+ z; o# eTMS320F28335有几个SPI接口模块?" V/ R& n/ o/ o& W/ p; }* t
有一个专门的SPI模块, 另外两个McBSP也可以配置为SPI接口。
9 t# C( H7 T6 P; G0 ~, wTMS320F28335SPI接口由几组寄存器控制?
8 c# S" N. w! b' j7 d12组,位于控制寄存器帧0x7040h开始的位置。所有的寄存器都为16bit寄存器
+ R  B- W3 j2 ?: I2 y& Y+ p5 _4 jFIFO有几级?0 }- J+ U9 Z, i5 H$ o
16级/ e, r$ k$ i3 @
SPI FIFO模式下如何对传输和接收FIFO进行操作?3 P& u3 c! C( u( u, H/ D
直接对SPITXBUF进行赋值以传输数据例如:SpiaRegs.SPITXBUF=sdata。此操作可理解为:首先使TXFIFO头指针加1,然后把值写入TXFIFO头指针指向的位置。
7 C' p9 P0 O* D6 f如果当前没有一个激活的传输过程时,对SPITXBUF的写入会激活一个传输过程。
- w' J4 f( D2 I; f0 N- Q直接读取SPIRXBUF的值以接收数据例如:rdata=SpiaRegs.SPIRXBUF,此操作可理解为:首先从RXFIFO头指针处读取1个word, 然后使RXFIFO头指针减1。
) x! M0 t4 R* q. a# K7 Y% P  ISPI FIFO模式下传输和接收中断何时产生?
6 C+ _( l8 M1 g8 C; z是在数据传输或接收结束后,再判断传输和接收FIFO队列中有多少数据(SPIFFTX.TXFFST4-0和SPIFFRX.RXFFST4-0的值)。对于传输FIFO如果FIFO中数据小于等于TXFFIL4-0(此寄存器指定临界值)指定的值时会触发中断,在中断处理例程中继续传输数据。对于接收FIFO如果FIFO中的值大于等于RXFFIL4-0中指定的值时触发中断,在中断处理例程中接收数据。故FIFO模式下中断触发条件除了标准SPI模式下的数据传输接收完毕的条件外还要满足FIFO中的数据小于等于TXFFIL或大于等于RXFFIL设定值的条件,在两个条件都满足的情况下才会触发中断。另外一般情况下,FIFO模式SPI初始化完后会立即产生以个传输中断,因为此时TXFIFO没有数据满足产生中断的条件。
4 S' V' G3 ^, D9 h+ Z5 S: v如果只接收数据不发送数据如何激活接收过程?3 k' _' E+ R8 h; o% s8 W: t) b; q
SPI的的接收过程必须依赖传输过程,故即使值接收数据也必须对SPITXBUF写入以激活一个传输过程来接收数据。
作者: helendcany    时间: 2016-6-29 09:01
看贴学心得,回贴是美德* N, D0 D* k" |

作者: hasky    时间: 2016-6-29 10:41
必须赞一个~
! |; n/ Q7 O5 m' r
作者: 10929390    时间: 2016-6-29 11:03
必须赞一个




欢迎光临 EDA365电子工程师网 (https://bbs.elecnest.cn/) Powered by Discuz! X3.2