浅谈iic时序

news2024/11/23 7:05:09

一、iic通信核心要点

8c726b4e8c1144f9b69dfa048161af2c.png

在iic通信中,进行数据传输的时候,遵循在scl时钟线高的时候保持sda电平稳定,这个电平值就是要写入的值,然后,在scl时钟线拉低的时候去改变sda上的值,达到自己想要输出的值

所以说,一般scl高电平的时候,sda都是稳定的电平

但是,起始信号、结束信号、重开信号(SR)不同,他们可以也必须是在scl高电平的时候改变,以此来彰显不同

二、读写寄存器的时序

1、写寄存器

866d1439491d4560add0c23e5aa21092.png

2、读寄存器

db91606c673e48aca5aa06eb63b65513.png

三、过程中各种信号解释

首先,不管是读还是写寄存器,开始都是需要走下面这一步流程,目的是为了确定从机地址,然后要操作从机哪个地址的寄存器

start信号,7位从机地址+写,(从机ACK),要操作的寄存器地址,(从机ACK)

(1) start信号:scl高电平的时候,SDA输出一个下降沿

(2) stop信号:scl高电平的时候,SDA输出一个上升沿

(3) restart信号

restart信号被用于主机向从机读取的时候,因为这其中存在一次传输方向的变换,所以需要进行一次方向的变换。前面我也提到了,不管是想给从机写还是想从从机读取,最开始都是一个写入方向,写入从机地址,写入要通信的寄存器地址。因此,如果是要往从机写数据,那好,方向不变,已然是写这一个方向,就用不到restart信号,但如果需要读,那么方向就变了,从原来的写变成读,就需要用到restart信号。

start 和 restart 信号的区别:restart需要占据一个时序,也就是一个上升一个下降这样一个时序周期,而start不需要,它只要是scl时钟线是高电平就行

(4) ack和nack信号

ack也占一个时序,nack也占一个时序

ack和nack的区别:ack表示不再需要后续,nack表示已经结束,在连续读取寄存器的时候需要,另外,nack只有主机主动发送这一种情况,从机发送的都是ack

(5) 其他需要注意的点:

iic两条总线也就是数据线和时钟线,都是需要上拉的,就像下面这样

45a7a49aa8f644c8980bf7e181296331.png

如果之前是低电平,直接配置成输出模式,因为有上拉电阻的存在,他就会直接输出1,但我们可能傻傻的认为,它还没输出1呢,用的时候要小心,另外,这种变化操作都在scl低电平的时候去做,切记,切记!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/631012.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何做架构设计

1、设计很重要 我们可以看一下周边的事物,那些好的东西,他们并不会天然存在,都是被设计出来的,因此设计就是创造和改善事物的重要过程。设计的重要之处在于,最初的设计往往决定最终的结果,甚至决定着事物的…

端口扫描伪装技术实践

端口扫描伪装技术实践 1.-f(分段传输)2.-mtu(使用指定的MTU)3.-D(使用诱饵主机隐蔽扫描)4.--source-port(源端口欺骗)5.--data-length (发送报文时附加随机数据&#xff…

入职字节外包一个月,我离职了····

有一种打工人的羡慕,叫做“大厂”。 真是年少不知大厂香,错把青春插稻秧。 但是,在深圳有一群比大厂员工更庞大的群体,他们顶着大厂的“名”,做着大厂的工作,还可以享受大厂的伙食,却没有大厂…

电子元器件解析02之电容(二)——电容分类与应用场景

书接上文:电子元器件解析02之电容(一)——定义与性能参数:https://blog.csdn.net/weixin_42837669/article/details/131142286 摘要 本文总结了各种不同介质电容的特性,包括陶瓷电容、电解电容、薄膜电容等;同时对一些特殊场合的电…

Hadoop Distributed System (HDFS) 写入和读取流程

一、HDFS HDFS全称是Hadoop Distributed System。HDFS是为以流的方式存取大文件而设计的。适用于几百MB,GB以及TB,并写一次读多次的场合。而对于低延时数据访问、大量小文件、同时写和任意的文件修改,则并不是十分适合。 目前HDFS支持的使用…

HTTP协议【网络基础/应用层】

文章目录 1. 网络基础 TCP/IP2. 与HTTP密切相关的协议2.1 负责传输的 IP 协议路由选择 2.2 确保可靠性的 TCP 协议三次握手 2.3 负责域名解析的 DNS 服务2.4 各种协议和 HTTP 协议的关系 3. URL和编码问题3.1 介绍格式 3.2 编码问题 4. 初识 HTTP 协议4.1 C-S 模式4.2 通过响应…

vue中开发包、生产包、全局包的区别以及安装语法

目录 开发包 (devDependencies) 安装方法 生产包 (dependencies) 安装方法 全局包 (Global build) 安装方法 vue中有三种不同类型的包:开发包 (Development build),生产包 (Production build) 和全局包 (Global build)。下面我们分别解释它们的区别…

EVE-NG 平台搭建以及发布“Ruijieroute”“Ruijieswitch”

下载相关资源 1、锐捷模拟器镜像文件:锐捷镜像官方下载链接 2、VMware虚拟化平台:可以是VMware vSphere、也可以是VMware Workstation:VMware Workstation Pro官方下载链接 当然,我们也可以使用其他虚拟化平台:Orac…

什么,你还在用 momentJs 处理相对时间

我想&#xff0c;下面这段代码&#xff0c;你是不是在开发中常常这样使用来计算距离现在过去了多长时间&#xff1a; import moment from moment // 61k (gzipped:19.k) function Relative(props) {const timeString moment(props.date).fromNow()return <>{timeString…

Tomcat实现ThreadPoolExecutor和JDK线程池区别

1.1 tomcat线程池和juc线程池流程 jdk 线程池策略&#xff1a; 当线程池中线程数量小于 corePoolSize&#xff0c;每来一个任务&#xff0c;就会创建一个线程执行这个任务当前线程池线程数量大于等于 corePoolSize&#xff0c;则每来一个任务&#xff0c;会尝试将其添加到任务…

深入理解深度学习——注意力机制(Attention Mechanism):位置编码(Positional Encoding)

分类目录&#xff1a;《深入理解深度学习》总目录 相关文章&#xff1a; 注意力机制&#xff08;AttentionMechanism&#xff09;&#xff1a;基础知识 注意力机制&#xff08;AttentionMechanism&#xff09;&#xff1a;注意力汇聚与Nadaraya-Watson核回归 注意力机制&#…

【CSS---定位基础篇】

CSS---定位基础篇 CSS-----基础定位:一 、 学习定位原因&#xff1a;&#xff08;定位的作用&#xff09;二 、定位组成&#xff1a;2.1 四种定位模式&#xff1a;&#xff08;1&#xff09;静态定位&#xff08;了解&#xff09;&#xff1a;&#xff08;2&#xff09;相对定位…

8.1 正弦波振荡电路(1)

正弦波振荡电路是在没有外加输入信号的情况下&#xff0c;依靠电路自激振荡而产生正弦波输出电压的电路。它广泛地应用于测量、遥控、通讯、自动控制、热处理和超声波电焊等加工设备之中&#xff0c;也作为模拟电子电路的测试信号。 一、概述、 1、产生正弦波振荡的条件 在负…

“不擅长开发,所以选择测试”,软件测试面试时这么说就凉了...

见过不少软件测试岗位&#xff0c;在面试时&#xff0c;问到选择软件测试作为职业的原因时 有不少测试工程师会回答&#xff1a;因为不擅长或不喜欢开发的工作。 这个想法&#xff0c;这个回答&#xff0c;就已经在面试官眼里打低分了。 现在网上也有不少类似观点 “不喜欢开…

TiDB亿级数据亚秒响应查询将MySql数据同步到TiDB

目录 1 MySQL环境准备1.1 MySQL测试数据库1.1.1 导入数据1.1.2 验证是否成功 2 DM数据迁移2.1 TiUP DM 组件简介2.1.1 基本功能2.1.2 使用限制 2.2 TiUP安装 DM组件2.2.1 安装TiUP DM 组件2.2.2 更新 TiUP DM 组件 2.3 TiUP部署 DM组件2.3.1 编辑初始化配置2.3.2 部署命令格式2…

PID算法:增量式PID 位置式PID

前面的文章已经介绍过什么是pid了&#xff0c;现在再回顾一下&#xff1a; PID&#xff1a;是过程控制中常用的一种针对某个对象或者参数进行自动控制的一种算法。 这一篇分享不打算再深究pid的理论知识&#xff0c;如果有不懂或者对pid感兴趣的朋友&#xff0c;可以自行查阅资…

【docker桌面版】windows使用docker搭建nginx

1.拉取nginx镜像 docker pull nginx 2.运行容器 docker run -d -p 80:8081 --name nginx nginx 3.本地磁盘创建nginx目录 D:\Docker\project\nginx 4.复制docker中的nginx配置文件 查看运行的容器docker ps -a docker cp 8f18d58bc77b:/etc/nginx/nginx.conf D:\Docker…

【Leetcode】DP | 打家劫舍,当一个机灵的小偷

198 打家劫舍 令 D [ i ] D[i] D[i]表示前 i i i间房子的最大收益&#xff1a; D [ i ] max ⁡ ( D [ i − 1 ] , D [ i − 2 ] n u m s [ i ] ) D [ 0 ] n u m s [ 0 ] D [ 1 ] max ⁡ ( n u m s [ 0 ] , n u m s [ 1 ] ) D[i] \max(D[i -1], D[i-2]nums[i]) \\ D[0] …

软件测试工程师如何从功能测试转成自动化测试?

功能测试转成自动化测试&#xff0c;答案就三个字&#xff1a;“靠学习”。 学习自动化的方法无非是三种&#xff1a; 一、靠培训&#xff08;下方有如何选择培训机构&#xff09; 在相对有氛围的学习环境中来学习自动化测试&#xff0c;这是一个较快学习的方法。二、靠自学自…

js文件引入vue $notify组件,自定义添加按钮功能!

import Vue from vue; //新创建一个vue实例 let v new Vue(); const h v.$createElement console.log(h) v.$notify({ dangerouslyUseHTMLString: true, message: h( div, {}, [ h(p, {}, [ h(p, {style:"font-size: 15px;"}, 车架号&#xff1a;${res.rows[0].…