【数据寄存器】SPI通信协议中文版( 七 )
1.4.8 等待模式的操作
等待模式下的SPI操作取决于SPI控制寄存器2的SPISWAI位 。
· 如果SPISWAI清除 , 如果CPU处于等待模式时 , SPI操作正常 。
· 如果SPISWAI置起 , 如果CPU处于等待模式时 , SPI时钟停止产生 , 进入低功耗状态 。
——如果SPISWAI置位并且SPI配置为主机 , 在进入等待模式时任何发送和接收将停止 。SPI从等待模式退出时发送与接收重新开始 。
——如果SPISWAI置起并且SPI配置为从机 , 如果来自主机的SCK任然存在 , 当前发送与接收继续进行 。保证从机与主机的SCK同步 。
如果从机处于等待模式时主机发送多个字节 , 从机将继续发送进入等待模式前操作模式的内容(例如 , 如果从机当前向主机发送SPIDR , 将会持续发送相同字节 。如果从机当前发送的是从主机接收的字节 , 将继续发送之前主机的字节) 。
注意
当从机处于等待或停止模式时 , 希望主机获取数据时需要小心 。虽然移位寄存器任然可以操作 , 但SPI的其它是被关闭的(例如 , SPIF中断直到退出停止或等待模式才会发生) 。同时 , 移位寄存器的内容直到从机SPI退出等待或停止模式才会复制到SPIDR寄存器中 。只有传输期间进入或退出等待模式才会产生SPIF和复制SPIDR 。如果从机从空闲模式进入等待模式以及从等待模式退回到空闲模式 , 不会产生SPIF标识和SPIDR复制操作 。
1.4.9 停止模式的操作
停止模式取决于系统 。当模块时钟禁用时(保持高电平或低电平)SPI进入停止模式 。如果SPI工作在主机模式 , 并在CPU进入停止模式时进行数据交换 , 传输会被冻结直到CPU退出停止模式 。退出停止模式后 , 与外部SPI的数据交换是正确的 。在从机模式 , SPI将与主机同步 。
停止模式不受SPISWAI为影响 。
1.5 重置
寄存器重置值与信号在内存映射和寄存器一节中说明(参考1.3 内存映射与寄存器描述) , 详细说明了寄存器与位域 。
· 如果从机在重置后未写入SPIDR就进行数据传输 , 那么会发生一个垃圾数据或发送重置前从主机接收的数据 。
· 重置后读取SPIDR会读到数据0 。
1.6 中断
SPIV3仅在启用SPI时发出中断请求(SPICR1的SPE位置起) 。以下内容说明SPIV3如何产生请求以及MCU如何响应请求 。中断向量偏移量与中断优先级与芯片相关 。
中断标志位MODF、SPIF与SPTEF是逻辑或的关系产生中断请求 。
1.6.1 MODF
当主机在SS脚上检测到错误时会产生MODF 。主机SPI必须配置MODF(参见表1-3) 。MODF置起后 , 当前传输被中止并更改以下位:
· MSTR = 0 , SPICR1主机位重置 。
MODF中断反应在状态寄存器的MODF标识位中 。清除该位会同时清除中断 。当MODF标识位置起时该中断保持激活 。MODF有一个自动清除过程 , 参见"1.3.2.4 SPI状态寄存器(SPISR)" 。
1.6.2 SPIF
当数据接收完成并复制到SPI数据寄存器中时SPIF产生 。SPIF置位后 , 直到响应后才会被清除 。SPIF的自动清除过程在"1.3.2.4 SPI状态寄存器(SPISR)"有描述 。如果SPIF在下一次传输结束前未得到服务(例如 , SPIF在另一次传输过程中保持激活) , 后一次传输会被忽略 , 新的数据不会被复制到SPIDR中 。
1.6.3 SPTEF
【【数据寄存器】SPI通信协议中文版】当SPI数据寄存器可以接收新数据时 , SPTEF产生 。SPTEF置起后 , 直到被服务后才会清除 。SPTEF自动清除的过程在"1.3.2.4 SPI状态寄存器(SPISR)"中进行描述 。
推荐阅读
- []重庆移动-亚德高等级数据中心落户西永微电园
- 平台■在线视频平台大数据杀熟成惯例 买VIP就活该被宰?
- 「数据线」手机充电慢?那你需要看看是不是这些地方出了问题
- 大数据:这套绝对是2020年大数据最全面的线路图+实战项目+源码限时赠你
- 【Ace】原创 用实际数据发声,OPPO Ace2的这些亮点你要知道
- #颜七公子#TunesKit iPhone Data Recovery for Mac(iPhone数据恢复工具)
- 邓锄头挖科技■关于IDC数据中心的“容量管理”的目标和3种子业务场景
- 技术@为楼宇安上“智慧大脑”,翠苑街道开创“一平台”数据互通模式
- 「北京」这家环保大数据企业为北京抗“疫”装上千里眼
- #大数据#金山云赴美IPO:近三年营收复合增长79% 雷军持股15.8%
