当MSP430F149的USART模块控制器UxCTL的SYNC位置位时,串行模块工作在SPI模式,通过4线(SIMO,SOMI,UCLK及STE)或者3线(SIMO,SOMI,UCLK)同外界通信。
MSP430的同步通信模块特点:
1,支持3线和4线SPI操作。 2,支持主机和从机模式。 3,接收和发送有单独的移位寄存器和独立的缓冲器和独立的中断能力。 4,时钟的极性和相位可编程。 5,主模式的时钟可编程。 6,7位或8位字符长度。
SIMO: 从进主出,主机模式下,数据输出;从机模式下,数据输入。
SOMI:从出主进,主机模式下,数据输入;从机模式下,数据输出。
UCLK:USART SPI模式时钟,信号有主机输出,从机输入。CLK时钟只能由主机提供。
STE为从机模式发送/接收允许控制引脚,控制多主/从系统中的多个从机。该引脚不用于3线SPI操作,但可以在4线SPI操作中使多主机共享总线,以避免发生冲突。
4线SPI操作主模式中,STE的含义如下:
0:SIMO和UCLK被强制进入输入状态;
1:SIMO和UCLK正常操作。
4线SPI操作从模式中,STE的含义如下:
0:允许从机发送接收数据,SOMI正常操作。
1:禁止从机发送接收数据,SOMI被强制进入输入状态。
SPI工作模式:
SPI工作在全双工下,即主机发送的同时也接收数据,传输的速率由编程决定。4线SPI模式用附加数据线,允许从机数据的接收和发送。
(1)主机模式
当控制寄存器UxCTL中的MM=1是,MSP430的USART工作在SPI主机模式。
在发送端,SPI通过UCLK控制串行通信,当数据写入发送缓冲器UxTXBUF,并行加载到发送移位寄存器TSR当中,立即开始发送数据,在第一个UCLK周期,SIMO移出数据,经过8个时钟周期把8位的数据发送到从机当中,其中,最高有效位先发送。
在接收端,SIMO的数据以先高后低的顺序接收,接收到数据右对齐,当8位数据收完之后,有移位寄存器并行移入接收缓冲器UxRXBUF当中,并将接收中断标志位置位,表明接收缓冲器当中有数据存入,可以通过进中断将数据读走。
(2)从机模式
MM=0时,工作在SPI从机模式。
数据传输速率由主机发出的串行时钟确定,而不由内部的波特率发生器决定。在开始的UCLK之前,由UTXBUF装入移位寄存器中的数据在主机提供的UCLK信号作用下,通过从机的SOMI引脚对外发送(给主机)。同时,在UCLK时钟的反向沿SIMO引脚上的串行数据移入接收寄存器中。如果接收中断标志URXIFG=1,则标志数据已经接收并装配到接收缓存器。当新数据写入接收缓存时前一个数据还没有被取出,则溢出标志位被置位。
SPI主机模式下的中断标志位的理解:
用户可以通过SPI的发送和接收中断标志位来完成协议的控制。
在发送端,当移位寄存器把数据发送给从机后,发送中断标志位UxTXIFG置位,说明此时发送缓冲器为空,可以进中断将数据写到发送缓冲寄存器当中。while((IFG&UxTXIFG)==0);//等待发送缓冲器为空
在接收端,当移位寄存器把接收到的8位数据并行写入接收缓冲器时,接收中断标志位UxRXIFG置位,此时说明接收缓冲器当中已经有数据,等待CPU来读取数据。
UxRXIFG标志指示数据移出/移入完成。UxTXIFG标志不代表数据移入/移出完成。
同步通信寄存器:
文章评论(0条评论)
登录后参与讨论