SPI总线
SPI总线有四种工作方式,2种时钟极性和2种数据相位。
SPI总线协议不定义数据字节内部位序,位序由应用层根据需要定义。
SPI总线数据帧长度由应用层定义。
2.1 时钟极性配置CPOL
时钟极性配置CPOL决定空闲状态时钟线SCK的电平状态。
空闲状态时钟线SCK电平状态与CPOL值一致。CPOL=0则空闲时SCK为低电平,CPOL=1则空闲时SCK为高电平。
2.2 数据相位配置CPHA
2.2.1 数据相位配置CPHA决定在时钟线SCK的第几个跳变沿第一次采样数据。
(1)如果时钟线SCK跳变沿数字从0开始计算,第一次采样的跳变沿数字与CPHA数字一致。
CPHA=0则在SCK的第0个跳变沿第一次采样,CPHA=1则在SCK的第1个跳变沿第一次采样。
(2)如果时钟线SCK跳变沿数字从1开始计算,第一次采样的跳变沿数字与CPHA数字的大小排列顺序一致。
CPHA=0则在SCK的第1个跳变沿第一次采样,CPHA=1则在SCK的第2个跳变沿第一次采样。
CPHA=0则在SCK的奇数跳变沿采样,CPHA=1则在SCK的偶数跳变沿采样。
2.2.2 如何配置CPHA最好
配置CPHA=1最好。
若配置CPHA=0,则数据发送端必须在时钟信号SCK第一次跳变前把数据放在总线上。
对于主机来说这没有问题,对从机来说就有点困难,因为从机不知数据传输何时开始。
配置CPHA=1,即使没有CS,从机也可以把SCK信号的第一个跳变沿作为数据传输开始的信号。
2.3 片选信号线CS
片选信号CS并不是必须的,CS可以直接接地。
2.3.1 有片选信号CS
CPHA=0时,必须CS信号必须先于时钟信号,即先将CS拉低,延时几十微秒后再开启时钟。
这样从机可以在CS拉低后立即把数据放在总线上,主机可以在SCK的第1个跳变沿读取到正确的数据。
2.3.2 无片选信号CS
若无片选信号CS,最好配置CPHA=1。
即使配置CPHA=0,问题也不大,主机向从机读取数据之前,一般会先写数据,通过命令告诉从机准备哪些数据。
在某些情况下,从机需要主动请求主机读取数据,从机一般会通过IO中断通知主机,并在产生中断时把数据放在总线上。
2.4 SPI总线的使用方式
2.4.1 主机主动向从机读数据
这种情况,若无片选信号CS,必须配置CPHA=1。
由于SPI总线数据传输速度较快,半个SCK周期的数据准备时间对从机来说并不充裕。
2.4.2 主机主动向从机写数据或先写后读数据
主机一般会在时钟信号SCK开始前先把数据放在总线上。
若主机写完数据后还要读数据,需要延时一段时间,给从机留下足够的时间准备数据。
2.4.3 从机主动请求主机读取数据
从机一般会通过IO中断通知主机,若无CS且配置为CPHA=0,从机需要在产生中断的同时把数据放在总线上。
2.5 SPI总线注意事项
要给从机留下充足的时间来准备数据。
SPI总线
张小明
前端开发工程师
奇点展开原理:一个统一的数学方法论
摘要:本文提出“奇点展开原理”——在数学系统中,当一个计算在奇点处无法确定唯一结果时,其结果应取所有可能值的集合。从这一原理出发,我们推导出展开公理 a/0R,并系统讨论其代数性质、初等函数应用、数学分析扩展、集…
八股文随记
字节对齐 规则 成员对齐:结构体第一个成员偏移量为 0,后续成员的起始地址必须是指定对齐大小的整数倍。如果不满足,插入填充字节; 整体对齐:结构体的总大小必须是结构体中最大成员大小的整数倍。如果不够,末…
别再只点灯了!用ESP32和WebServer库做个智能家居控制面板原型(附完整代码)
用ESP32打造智能家居控制面板:从网页控制到硬件交互实战 想象一下,清晨醒来无需下床,轻点手机就能打开窗帘、调节灯光;离家时一键关闭所有电器,还能实时查看家中温湿度——这些看似未来的场景,如今用一块ES…
JMeter 如何使用 JMeter 并发测试 测试 QPS 吞吐量 测试线程安全问题
JMeter 如何使用 JMeter 并发测试 测试 QPS 吞吐量 测试线程安全问题 一、JMeter 配置文件1.1、JMeter 配置为中文1.2、JMeter 记录接口响应数据二、JMeter 如何使用三、放弃 JMeter 使用 APIfox
C#基础9泛型
一、 泛型 :允许我们延迟编写数据类型, 直到真正使用时确定类型的一种规范方法本质上也是数据类型泛型:体现多态,与var相似1.可以创建自己的泛型接口、泛型类、泛型方法、泛型集合 ,泛型事件和泛型委托2.泛型的格式: 结构<泛…
抖音无水印视频下载终极方案:从技术原理到实战应用的完整指南
抖音无水印视频下载终极方案:从技术原理到实战应用的完整指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallbac…