|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
什么是SPI接口?
2 X$ y( V% K# g0 f7 GSPI接口是高速同步串行输入输出接口。
% e: d) {* V0 b3 t' X$ ?TMS320F28335有几个SPI接口模块?. v9 i% l: _( |! z
有一个专门的SPI模块, 另外两个McBSP也可以配置为SPI接口。$ y4 j x5 r l: A0 G+ g) H
TMS320F28335SPI接口由几组寄存器控制?
: O- `, f7 f: F4 V+ m2 _12组,位于控制寄存器帧0x7040h开始的位置。所有的寄存器都为16bit寄存器# v/ u& t6 J4 U" Y' M2 L8 w' F# U+ L
FIFO有几级?$ J& X0 ^, |- H
16级
5 V0 @, ~; T1 z9 R) M7 tSPI FIFO模式下如何对传输和接收FIFO进行操作?
- _) E0 |3 r4 @6 r# f8 A# {直接对SPITXBUF进行赋值以传输数据例如:SpiaRegs.SPITXBUF=sdata。此操作可理解为:首先使TXFIFO头指针加1,然后把值写入TXFIFO头指针指向的位置。% A0 Z" C- K6 h4 y1 Z/ q F! m
如果当前没有一个激活的传输过程时,对SPITXBUF的写入会激活一个传输过程。
/ H# F$ C- f3 C8 G+ [* o直接读取SPIRXBUF的值以接收数据例如:rdata=SpiaRegs.SPIRXBUF,此操作可理解为:首先从RXFIFO头指针处读取1个word, 然后使RXFIFO头指针减1。
0 y) m/ m L6 L! U) W+ r& {SPI FIFO模式下传输和接收中断何时产生?* [" X0 v, U4 N4 R3 a# d. G/ `
是在数据传输或接收结束后,再判断传输和接收FIFO队列中有多少数据(SPIFFTX.TXFFST4-0和SPIFFRX.RXFFST4-0的值)。对于传输FIFO如果FIFO中数据小于等于TXFFIL4-0(此寄存器指定临界值)指定的值时会触发中断,在中断处理例程中继续传输数据。对于接收FIFO如果FIFO中的值大于等于RXFFIL4-0中指定的值时触发中断,在中断处理例程中接收数据。故FIFO模式下中断触发条件除了标准SPI模式下的数据传输接收完毕的条件外还要满足FIFO中的数据小于等于TXFFIL或大于等于RXFFIL设定值的条件,在两个条件都满足的情况下才会触发中断。另外一般情况下,FIFO模式SPI初始化完后会立即产生以个传输中断,因为此时TXFIFO没有数据满足产生中断的条件。2 A0 X+ H7 a' @9 g" O5 s2 _. w" ~& W
如果只接收数据不发送数据如何激活接收过程?5 l5 Q9 V. j5 R" ]7 ` n
SPI的的接收过程必须依赖传输过程,故即使值接收数据也必须对SPITXBUF写入以激活一个传输过程来接收数据。 |
|