原创 【博客大赛】MSP430MSP430学习笔记--USART的同步模式SPI

2013-8-8 20:27 1505 16 16 分类: MCU/ 嵌入式

   当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:从出主进,主机模式下,数据输入;从机模式下,数据输出。
     UCLKUSART 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)主机模式
 
20130808153053799.jpg
    当控制寄存器UxCTL中的MM=1是,MSP430的USART工作在SPI主机模式。
   在发送端,SPI通过UCLK控制串行通信,当数据写入发送缓冲器UxTXBUF,并行加载到发送移位寄存器TSR当中,立即开始发送数据,在第一个UCLK周期,SIMO移出数据,经过8个时钟周期把8位的数据发送到从机当中,其中,最高有效位先发送。
  在接收端,SIMO的数据以先高后低的顺序接收,接收到数据右对齐,当8位数据收完之后,有移位寄存器并行移入接收缓冲器UxRXBUF当中,并将接收中断标志位置位,表明接收缓冲器当中有数据存入,可以通过进中断将数据读走。
 
(2)从机模式
20130808155842205.jpg
    MM=0时,工作在SPI从机模式。
   数据传输速率由主机发出的串行时钟确定,而不由内部的波特率发生器决定。在开始的UCLK之前,由UTXBUF装入移位寄存器中的数据在主机提供的UCLK信号作用下,通过从机的SOMI引脚对外发送(给主机)。同时,在UCLK时钟的反向沿SIMO引脚上的串行数据移入接收寄存器中。如果接收中断标志URXIFG=1,则标志数据已经接收并装配到接收缓存器。当新数据写入接收缓存时前一个数据还没有被取出,则溢出标志位被置位。
 
 
    SPI主机模式下的中断标志位的理解:
      用户可以通过SPI的发送和接收中断标志位来完成协议的控制。
      在发送端,当移位寄存器把数据发送给从机后,发送中断标志位UxTXIFG置位,说明此时发送缓冲器为空,可以进中断将数据写到发送缓冲寄存器当中。while((IFG&UxTXIFG)==0);//等待发送缓冲器为空
 
      在接收端,当移位寄存器把接收到的8位数据并行写入接收缓冲器时,接收中断标志位UxRXIFG置位,此时说明接收缓冲器当中已经有数据,等待CPU来读取数据。
 
  UxRXIFG标志指示数据移出/移入完成。UxTXIFG标志不代表数据移入/移出完成。
 
 
同步通信寄存器:
 
 
  
    

文章评论0条评论)

登录后参与讨论
我要评论
0
16
关闭 站长推荐上一条 /2 下一条