background image
宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技:专业单片机 / 存储器供应商   www.MCU-Memory.com   STC12C5410AD 系列 1T 8051 单片机中文指南
116
通过 / S S   改变模式
    如果 SPEN=1, SSIG=0 且 MSTR=1,SPI 使能为主机模式。/SS 脚可配置为输入或准双向模式。这
种情况下,另外一个主机可将该脚驱动为低电平,从而将该器件选择为 S P I   从机并向其发送数据。
   为了避免争夺总线,SPI 系统执行以下动作:
   1)MSTR 清零并且 CPU 变成从机。这样 SPI 就变成从机。MOSI 和 SPICLK 强制变为输入模式,而
MISO 则变为输出模式。
   2 )S P S T A T 的 S P I F 标志位置位。如果 S P I 中断已被使能,则产生 S P I 中断。
   用户软件必须一直对 MSTR 位进行检测,如果该位被一个从机选择所清零而用户想继续将 SPI 作为主
机,这时就必须重新置位 MSTR,否则就进入从机模式。
写 冲 突
      S P I 在发送时为单缓冲,在接收时为双缓冲。这样在前一次发送尚未完成之前,不能将新的数据
写入移位寄存器。当发送过程中对数据寄存器进行写操作时,WCOL 位(SPSTAT.6)将置位以指示数据冲
突。在这种情况下,当前发送的数据继续发送,而新写入的数据将丢失。
   当对主机或从机进行写冲突检测时,主机发生写冲突的情况是很罕见的,因为主机拥有数据传输的
完全控制权。但从机有可能发生写冲突,因为当主机启动传输时,从机无法进行控制。
   接收数据时,接收到的数据传送到一个并行读数据缓冲区,这样将释放移位寄存器以进行下一个数
据的接收。但必须在下个字符完全移入之前从数据寄存器中读出接收到的数据,否则,前一个接收数据
将丢失。
      W C O L 可通过软件向其写入“1 ”清零。
数 据 模 式
   时钟相位位(CPHA)允许用户设置采样和改变数据的时钟边沿。时钟极性位 CPOL 允许用户设置时钟极
性。
 SPI
图 4~图 7  所示为时钟相位位 CPHA  的不同设定。
 
 
S P I   图 4     S P I   从机传输格式(C P H A = 0 )
时钟周期
SPICLK (CPOL = 0)
SPICLK (CPOL = 1)
MOSI(输入)
DORD = 0
DORD = 1
MSB
LSB
LSB
MSB
DORD = 0
MSB
LSB
DORD = 1
LSB
MSB
MISO(输出)
SS
(如果 SSIG 位= 0)
未定义
(1)
(1)