首页 理论教育 AVR单片机开发套路与SPI寄存器

AVR单片机开发套路与SPI寄存器

时间:2023-10-17 理论教育 版权反馈
【摘要】:表10-2 CPHA功能位[1∶0]——SPR[1∶0]:SPI时钟速率选择1与0确定主机的SCK速率。表10-3 SCK和振荡器频率的关系2.SPI状态寄存器——SPSR位7——SPIF:SPI中断标志串行发送结束后,SPIF置位。进入中断服务程序后SPIF自动清零。ATmega16的SPI接口同时还用来实现程序和EEPROM的下载和上传。

AVR单片机开发套路与SPI寄存器

1.SPI控制寄存器——SPCR

978-7-111-35161-0-Chapter10-28.jpg

(1)位7——SPIE:使能SPI中断

置位后,只要SPSR寄存器的SPIF和SREG寄存器的全局中断使能位置位,就会引发SPI中断。

(2)位6——SPE:使能SPI

SPE置位将使能SPI。进行任何SPI操作之前必须置位SPE。

(3)位5——DORD:数据次序

DORD置位时数据的LSB首先发送;否则数据的MSB首先发送。

(4)位4——MSTR:主/从选择MSTR置位时选择主机模式,否则为从机。如果MSTR为“1”,978-7-111-35161-0-Chapter10-29.jpg配置为输入,但被拉低,则MSTR被清零,寄存器SPSR的SPIF置位。用户必须重新设置MSTR进入主机模式。

(5)位3——CPOL:时钟极性

CPOL置位表示空闲时SCK为高电平;否则空闲时SCK为低电平。请参考表10-2与表10-3,CPOL功能总结如下:

978-7-111-35161-0-Chapter10-30.jpg

(6)位2——CPHA:时钟相位

CPHA决定数据是在SCK的起始沿采样还是在SCK的结束沿采样。请参考表10-2与表10-3。

表10-2 CPHA功能

978-7-111-35161-0-Chapter10-31.jpg

(7)位[1∶0]——SPR[1∶0]:SPI时钟速率选择1与0

确定主机的SCK速率。SPR1和SPR0对从机没有影响。SCK和振荡器的时钟频率fosc的关系如表10-3所示。(www.xing528.com)

表10-3 SCK和振荡器频率的关系

978-7-111-35161-0-Chapter10-32.jpg

2.SPI状态寄存器——SPSR

978-7-111-35161-0-Chapter10-33.jpg

(1)位7——SPIF:SPI中断标志

串行发送结束后,SPIF置位。若此时寄存器SPCR的SPIE和全局中断使能位置位,SPI中断即产生。如果SPI为主机,978-7-111-35161-0-Chapter10-34.jpg配置为输入,且被拉低,SPIF也将置位。进入中断服务程序后SPIF自动清零。或者可以通过先读SPSR,紧接着访问SPDR来对SPIF清零。

(2)位6——WCOL:写冲突标志

在发送当中对SPI数据寄存器SPDR写数据将置位WCOL。WCOL可以通过先读SPSR,紧接着访问SPDR来清零。

(3)位[5∶1]——Res:保留

保留位,读操作返回值为零。

(4)位0——SPI2X:SPI倍速

置位后SPI的速度加倍,见表10-3。若为主机,则SCK频率可达CPU频率的一半。若为从机,只能保证fosc/4。

ATmega16的SPI接口同时还用来实现程序和EEPROM的下载和上传。

3.SPI数据寄存器——SPDR

978-7-111-35161-0-Chapter10-35.jpg

SPI数据寄存器为读/写寄存器,用来在寄存器文件和SPI移位寄存器之间传输数据。写寄存器将启动数据传输,读寄存器将读取寄存器的接收缓冲器

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈