回答

收藏

【ATMEGA328P-XMINI】SPI的使用

#其他 #其他 3171 人阅读 | 0 人回复 | 2015-02-11

ATMEGA328P只有一组SPI。
首先来看下SPI的特性

SPI允许高速同步数据传输在ATMEGA328P和外围设备之间,或者在几个AVR设备之间。
有意思的是,ATMEGA328P的USART也能被用于主SPI模式。

这是SPI的框图。
主从CPU之间用SPI互联。系统由两个移位寄存器和一个主时钟组成。
SPI主机启动通信周期当从设备片选SS为低时。主机和从机准备数据移入各自的移位寄存器,主机生成所需的时钟脉冲在sck线上从而来交换数据。在主机输出端,数据传输总是从主机到设备。在从机输出端则相反。
在每个数据包后,主机将同步从机通过从机SS为高。
当配置作为主机,SPI接口不能自动控制SS线。这必须在通信开始前通过使用软件处理。当这做完,写一个字节到SPI数据寄存器开始SPI时钟生成。赢家转移8 bits到从机。在转移一个字节后,SPI时钟停止。设置传输标志(SPIF)的结束。如果SPI中断使能位(SPIE),在SPCR寄存器被设置,一个中断被请求。从机可能继续传下一字节的数据,通过写它到SPDR,或标志数据包的结束通过拉高从机片选SS线。最后输入字节将保存在缓冲寄存器供以后使用。
当配置作为从机,基本相反。
PS:参考datasheet翻译理解,主要觉得这个spi的原理过程很重要,只有理解了,才好开始写spi通信部分的程序。
关注下面的标签,发现更多相似文章
分享到:
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条