×
单片机 > 单片机程序设计 > 详情

ATmega 16 单片机的SPI的相关寄存器(九)

发布时间:2020-08-24 发布时间:
|
1.SPCR——SPI控制寄存器

         SPIE     SPE    DORD     MSTR     CPOL    CPHA    SPR1    SPR0

位 7——SPIE:使能SPI中断
置位后,只要SPSR寄存器的SPIF和SREG寄存器的全局中断使能位置位,就会引发SPI中断。
位 6——SPE:使能SPI
SPE置位将使能SPI。进行任何SPI操作之前必须置位SPE。
位 5——DORD:数据次序
DORD置位时数据的LSB首先发送;否则数据的MSB首先发送。
位 4——MSTR:主/从选择
MSTR置位时选择主机模式,否则为从机。如果MSTR为"1”,SS配置为输入,但被拉低,则MSTR被清零,寄存器SPSR的SPIF置位。用户必须重新设置MSTR进入主机模式。

位3——CPOL:时钟极性
CPOL置位表示空闲时SCK为高电平;否则空闲时SCK为低电平。CPOL功能总结如下:

             CPOL                        起始沿                   结束沿
                0                            上升沿                   下降沿
                1                            下降沿                   上升沿

位 2——CPHA:时钟相位
CPHA决定数据是在SCK的起始沿采样还是在SCK的结束沿采样。

           CPHA                           起始沿                  结束沿
               0                                采样                     设置
               1                                设置                     采样

位1,0——SPR1,SPR0:SPI时钟速率选择1与0
确定主机的SCK速率。SPR1和SPR0对从机没有影响。SCK和振荡器的时钟频率fosc关系如下表所示:

                    SPI2X          SPR1       SPR0              SCK频率
                       0                  0             0                     fosc/4
                       0                  0             1                     fosc/16
                       0                  1             0                     fosc/64
                       0                  1             1                     fosc/128
                       1                  0             0                     fosc/2
                       1                  0             1                     fosc/8
                       1                  1             0                     fosc/32
                       1                  1             1                     fosc/64

2.SPSR——SPI状态寄存器

          SPIF     WCOL      –        –       –      –     –      SPI2X

位7——SPIF:SPI中断标志
串行发送结束后,SPIF置位。若此时寄存器SPCR的SPIE和全局中断使能位置位,SPI中断即产生。如果SPI为主机,SS配置为输入,且被拉低,SPIF也将置位。进入中断服务程序后SPIF自动清零。或者可以通过先读SPSR,紧接着访问SPDR来对SPIF清零。
位 6——WCOL:写碰撞标志
在发送当中对SPI数据寄存器SPDR写数据将置位WCOL。WCOL可以通过先读SPSR,紧接着访问SPDR来清零。
位5..1——Res:保留
保留位,读操作返回值为零。
位0——SPI2X:SPI倍速
置位后SPI的速度加倍。若为主机,则SCK频率可达CPU频率的一半。若为从机,只能保证fosc/4。

3.SPDR——SPI数据寄存器

 

相对于串行数据,SCK的相位和极性有4种组合。CPHA和CPOL控制组合的方式。每一位数据的移出和移入发生于SCK不同的信号跳变沿,以保证有足够的时间使数据稳定。说明如下:

                                       起始沿                    结束沿                    SPI模式
CPOL=0,CPHA=0        采样(上升沿)          采样(下降沿)                   0
CPOL=0,CPHA=1        设置(上升沿)          采样(下降沿)                   1
CPOL=1,CPHA=0        采样(下降沿)          采样(上升沿)                   2
CPOL=1,CPHA=1        采样(下降沿)          采样(上升沿)                   3


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
51单片机CO2检测显示程序解析