【数据寄存器】SPI通信协议中文版( 五 )
数据接收是双缓冲的 。在传输过程中数据被连续移入SPI移位寄存器 , 在最后一位传输完成后移入SPI数据寄存器 。
在第16个SCK边沿后:
· 先前在主机SPI数据寄存器中的数据现在位于从机的数据寄存器中 , 并且从机的数据寄存器中的数据位于主机数据寄存器中 。
· SPI状态寄存器中的SPIF位置起表示传输完成 。
图1-9是SPI传输的时序图 , 其中CPHA = 0 。SCK波形分别对应CPOL=0和CPOL=1 。此图可解释为主机或从机的时序图 , 因为主机和从机的SCK、MISO、MOSI引脚是直接相连的 。MISO信号是从从机输出的 , MOSI信号是从主机输出的 。主机的SS引脚必须为高电平或配置为不影响SPI的其它功能 。
文章图片
文章图片
图1-9 SPI时钟格式0(CPHA = 0)
在从机模式中 , 如果在连续传输中SS未断开 , 那么SPI数据寄存器中的内容不会被传输 , 而是传输上一次接收到的内容 。如果SS在传输中中断一个最小空闲时间(半个SCK周期) , SPI数据寄存器的内容将被传输 。
在主机模式中 , 从机选择输出使能线SS要在连续传输中中断一个最小空闲时间 。
1.4.3.3 CPHA = 1传输格式
一些外设在数据输出线上第一个数据位有效前需要一个SCK边沿 , 第二边沿将数据记录到系统中 。这种格式中 , 第一个SCK边沿是在8位循环移位操作开始前通过设置CPHA位发出的 。
第一个SCK边沿在半个SCK时钟周期延时后立即发出 。第一个边沿控制从机将第一个数据位发送到主机的串行数据输入脚上 。
半个SCK周期后 , 第二个边沿出现在SCK引脚上 。该边沿是主机与从机的锁存边沿 。
当第三个边沿出现时 , 之前从串行数据输入脚上锁存的值将移入SPI移位寄存器的LSB或MSB , 这取决于LSBFE位 。该边沿结束后 , 主机数据的下一位将输出到串行数据输出脚上 , 传输给从机串行输入脚 。
这种过程在SCK线上持续16个边沿 , 数据在偶数边沿被锁存 , 在奇数边沿被移位 。
数据接收使用双缓冲 , 在传输期间数据连续移入SPI移位寄存器 , 在最后一位传输完成后移入SPI数据寄存器 。
在第16个SCK边沿后:
· 先前在主机SPI数据寄存器中的数据现在位于从机的数据寄存器中 , 并且从机的数据寄存器中的数据位于主机数据寄存器中 。
· SPISR寄存器中的SPIF位置起表示传输完成 。
图1-10给出CPHA=1时的两种时钟变化 。此图可解释为主机或从机的时序图 , 因为主机和从机的SCK、MISO、MOSI引脚是直接相连的 。MISO信号是从从机输出的 , MOSI信号是从主机输出的 。对于从机 , SS线是从机选择输入 。主机的SS引脚必须为高电平或配置为不影响SPI的其它功能 。
SS线在连续传输时可以保持低电平活跃(随时可以限制为低电平) 。该格式在系统仅有一个主机和一个从机时是首选的 。
· 主机模式下的背靠背传输
在主机模式中 , 如果传输已经完成并且SPI数据寄存器中的新数据是有效的 , 该字节会立即发送 , 而不需要最小空闲时间 。
SPI中断请求标识(SPIF)同时对主机和从机模式有效 。SPIF在最后一个SCK边沿后的半个SCK周期后置起 。
文章图片
文章图片
图1-10 SPI时钟格式1(CPHA=1)
1.4.4 SPI波特率发生
波特率产生由多个分频级组成 。SPI波特率寄存器的6个位(SPPR2,SPPR1,SPPR0,SPR2, SPR1,SPR0)决定SPI模块时钟分频 , 由此产生SPI波特率 。
SPI时钟速率由产品波特率预选位(SPPR2-SPPR2)和波特率选择位(SPR2-SPR0)决定 。模块时钟分频因子公式如图1-11所示 。
推荐阅读
- []重庆移动-亚德高等级数据中心落户西永微电园
- 平台■在线视频平台大数据杀熟成惯例 买VIP就活该被宰?
- 「数据线」手机充电慢?那你需要看看是不是这些地方出了问题
- 大数据:这套绝对是2020年大数据最全面的线路图+实战项目+源码限时赠你
- 【Ace】原创 用实际数据发声,OPPO Ace2的这些亮点你要知道
- #颜七公子#TunesKit iPhone Data Recovery for Mac(iPhone数据恢复工具)
- 邓锄头挖科技■关于IDC数据中心的“容量管理”的目标和3种子业务场景
- 技术@为楼宇安上“智慧大脑”,翠苑街道开创“一平台”数据互通模式
- 「北京」这家环保大数据企业为北京抗“疫”装上千里眼
- #大数据#金山云赴美IPO:近三年营收复合增长79% 雷军持股15.8%
