AT24C02(I2C总线)通信的学习

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、存储器介绍
  • 二、AT24C02芯片
  • 二、I2C总线
    • I2C电路规范
      • I2C时序结构
      • I2C数据帧
      • AT24C02数据帧
  • 总结


前言

学习AT24C02(I2C总线)芯片

一、存储器介绍

在这里插入图片描述
RAM()存储速度较快,但容易丢失数据。ROM(Read Only Memory)存储速度较慢,但掉电不丢失数据。在使用时需要两者结合先存入RAM再转存到ROM中。
在这里插入图片描述

二、AT24C02芯片

AT24C02是一种可以实现掉电不丢失的存储器,可以用于保护单片机运行时想要永久保存的数据信息。
存储介质:E2PROM
通讯接口:I2C总线
容量:256字节
在这里插入图片描述
在这里插入图片描述
注:高电平为写保护。

在这里插入图片描述

二、I2C总线

多设备通信协议

  • I2C总线(inter IC BUS)是由Philips公司开发的一种通用数据总线
  • 两根通信线:SCL(Serial Clock)、SDA(Serial Data)
  • 同步、半双工、带数据应答
  • 通用的I2C总线,可以使各种设备的通信标准同一,对于厂家来说,使用成熟的方案可以缩短芯片设计周期、提高稳定性、对于应用者来说,使用通用的协议可以避免学习各种各样的自定义协议,降低了学习和应用的难度。
    在这里插入图片描述

I2C电路规范

  • 所有I2C设备的SCL连接在一起,SDA链接在一起
  • 设备的SCL和SDA均要配置成开漏输出模式
  • SCL和SDA各添加一个上拉电阻,阻值一般为4.7KΩ左右
  • 开漏输出和上位电阻的共同作用实现了”线与“的功能,此设计主要是为了解决多机通信互相干扰的问题
    在这里插入图片描述
    在这里插入图片描述

I2C时序结构

  • 起始条件:SCL高电平期间,SDA从高电平切换到低电平

  • 终止条件:SCL高电平期间,SDA从低电平切换到高电平
    在这里插入图片描述

  • 发送一个字节:SCL低电平期间,主机将数据位依次放到SDA线上(高位在前),然后拉高SCL,从机将在SCL高电平期间读取数据位,所以SCL高电平期间SDA不允许有数据变化,依次循环上述过程8次,即可发送一个字节。
    在这里插入图片描述

  • 接收一个字节:SCL低电平期间,从机将数据位依次放到SDA线上(高位在前),然后拉高SCL,主机将在SCL高电平期间读取数据位,所以SCL高电平期间SDA不允许有数据变化,依次循环上述过程8次,即可接收一个字节(主机在接受之前,需要释放SDA)
    在这里插入图片描述
    如果主机不释放SDA,那么从机就没办法获得SDA的控制权,也就是没办法将数据放到SDA上。

  • 发送应答:在接收完一个字节之后,主机在下一个时钟发送一位数据,数据0表示应答,数据1表示非应答。

  • 接受应答:在发送完一个字节之后,主机在下一个时钟接受一位数据,判断从机是否应答,数据0表示应答,数据1表示非应答(主机在接收之前,需要释放SDA)
    -在这里插入图片描述
    ACK-Acknowledge character

I2C数据帧

在这里插入图片描述
发送数据给从机,从机接收到了就要返回应答给主机,所以主机是接收应答RA

  • 先发送再接收数据帧(复合格式)
    在这里插入图片描述

AT24C02数据帧

  • 字节写:在WORD ADDRESS处写入数据DATA
    在这里插入图片描述

  • 随机读:读出在WORD ADDRESS处的数据DATA
    在这里插入图片描述

  • AT24C02的固定地址为1010,可配置地址本开发板上位000
    所以SLAVE ADDRESS+W位0xA0,SLAVE ADDRESS+R为0xA1


每个设备也是有地址的,就跟电脑的外设一样知道地址才能找到外设,找到设备后再确定存储设备内部的地址。

  • 字节写:再”字地址“处写入”数据“
    在这里插入图片描述
    -随机读:读出再”字地址“出的”数据“
    在这里插入图片描述

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

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

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

相关文章

洛谷P1420最长练号

题目描述 输入长度为 n 的一个正整数序列,要求输出序列中最长连号的长度。 连号指在序列中,从小到大的连续自然数。 输入格式 第一行,一个整数 n。 第二行,n 个整数 ai​,之间用空格隔开。 输出格式 一个数&…

QT-地形3D

QT-地形3D 一、 演示效果二、关键程序三、下载链接 一、 演示效果 二、关键程序 #include "ShaderProgram.h"namespace t3d::core {void ShaderProgram::init() {initializeOpenGLFunctions();loadShaders(); }void ShaderProgram::addShader(const QString &fil…

Qt中的事件该如何学习?(附带案例)

概述: 事件是Qt中比较重要的一部分,在初期如果理解不当学习可能会比较困难,这里提一嘴当初教我的那位老师水平是真的高,让我很轻易的就理解了事件的概念。 在平时我们见到那些界面上的某些快捷键就有可能是事件做的,…

2024年华为OD机试真题-计算面积-Python-OD统一考试(C卷)

题目描述: 绘图机器的绘图笔初始位置在原点(0, 0),机器启动后其绘图笔按下面规则绘制直线: 1)尝试沿着横向坐标轴正向绘制直线,直到给定的终点值E。 2)期间可通过指令在纵坐标轴方向进行偏移,并同时绘制直线,偏移后按规则1 绘制直线;指令的格式为X offsetY,表示在横…

计算机二级C语言的注意事项及相应真题-5-程序修改

目录 41.累加链表结点数据域中的数据作为函数值返回42.根据整型形参m,计算如下公式的值43.删除数列中值为x的元素44.从N个字符串中找出最长的那个串,并将其地址作为函数值返回45.将两个长度相等的纯数字字符串当作两个加数,求其代表的数值之和…

欢迎来到IT时代----盘点曾经爆火全网的计算机电影

计算机专业必看的几部电影 计算机专业必看的几部电影,就像一场精彩的编程盛宴!《黑客帝国》让你穿越虚拟世界,感受高科技的魅力;《社交网络》揭示了互联网巨头的创业之路,《源代码》带你穿越时间解救世界,这…

【动态规划】【字符串】2167移除所有载有违禁货物车厢所需的最少时间

作者推荐 【深度优先搜索】【树】【有向图】【推荐】685. 冗余连接 II 本文涉及知识点 动态规划汇总 LeetCode2167移除所有载有违禁货物车厢所需的最少时间 给你一个下标从 0 开始的二进制字符串 s ,表示一个列车车厢序列。s[i] ‘0’ 表示第 i 节车厢 不 含违…

第五次作业(防御安全)

需求: 1.办公区设备可以通过电信链路和移动链路上网(多对多的NAT,并且需要保留一个公网IP 不能用来转换) 2.分公司设备可以通过总公司的移动链路和电信链路访问到DMZ区的http服务器 3.分公司内部的客户端可以通过公网地址访问到内部的服务…

Linux:grep进阶(11)

Linux:shell脚本:基础使用(4)《正则表达式-grep工具》_shell grep 全角字符串-CSDN博客https://blog.csdn.net/w14768855/article/details/132338954?ops_request_misc%257B%2522request%255Fid%2522%253A%252217083360171680022…

c#,dotnet, DataMatrix 类型二维码深度识别,OCR,(基于 Halcon)

代码中部分调用的 c 函数参数,具体说明自行研究~(我也是参考的其他资源,还没研究透彻) 例如:HOperatorSet.GenRectangle2() , 2000, 2000, 0, 2000, 2000 这些数字应该是选取的图片解析范围、尺寸&#xff…

binder是如何在java层和native层实现统一

前言 众所周知,对于binder通信来说,native层通信的基础架构是BpBinder/BBinder,Java层的基础通信架构是BinderProxy/Binder,这两者是如何统一起来的呢? 正文 在binder的跨进程传递数据实现中,数据是包裹在…

Linux环境变量配置文件--《一图胜千言》

这张图是一个关于Linux系统中shell启动时配置文件加载顺序的流程图。图中分为登录shell和非登录shell两种情况,来描述不同配置文件的读取过程。 登录shell: 当用户登录时,会首先检查是否存在/etc/profile文件,如果存在&#xff0c…

酷开科技 | 酷开系统壁纸模式,让过年更有氛围感!

在阵阵爆竹声中,家家户户都沉浸在浓浓的年味中。过年,是团圆,是温暖。团团圆圆的日子里,仪式感不可少,换上一张喜气洋洋的电视壁纸吧,寓意幸福一年又一年。打开酷开系统壁纸模式挑选一张年味十足的壁纸&…

spring boot 3.0如何优雅的使用s3协议连接minio

1.引入pom <dependency><groupId>io.awspring.cloud</groupId><artifactId>spring-cloud-aws-starter-s3</artifactId><version>3.0.3</version> </dependency>添加配置文件 spring:cloud:aws:credentials:access-key: xxxx…

【深度学习】神经网络的建立与推理

文章目录 神经网络&#xff08;neural network&#xff09;的结构神经元中常用的激活函数&#xff08;activation function&#xff09;神经网络的表示神经网络的代码实现使用已学习完毕的神经网络进行推理&#xff08;inference&#xff09; 源代码文件请点击此处&#xff01;…

毕设(二)——NB-IOT通信模块(nb卡通信测试)+gps定位

文章目录 一、关于接线2月1日记录2月4日记录 二、网络连接测试三、HTTP通信3.1 网络调试3.2 nb-lot的连接测试 一、关于接线 如果pico的供电能力不行&#xff0c;可能会直接用4.2V的锂电池对右下引脚进行供电 这个模块只支持nb卡&#xff0c;我哭死&#xff0c;20块钱&#xff…

01 Qt自定义风格控件的基本原则

目录 1.继承原生控件 2.组合原生控件 3.仿写原生控件 PS:后续将继续分享开发实践中各类自定义控件的方法、思路以及组件库 1.继承原生控件 关键字&#xff1a;继承、paintEvent 这里想说的是&#xff0c;Qt的Gui框架在封装原生控件的同时&#xff0c; 也为开发者提供了各…

建站用帝国CMS好还是WordPress好

随着互联网的迅猛发展&#xff0c;内容管理系统(CMS)在网站建设中扮演着越来越重要的角色。在众多CMS中&#xff0c;帝国CMS和WordPress因其强大的功能和广泛的用户基础而备受关注。本文将对这两种CMS进行详细比较&#xff0c;分析它们的优势与不足&#xff0c;以便用户能够根据…

每日一题——LeetCode1464.数组中两元素的最大乘积

这题就是找数组里的最大值和次大值 方法一 排序 var maxProduct function(nums) {nums.sort((a,b)>b-a)return (nums[0] - 1) * (nums[1] - 1); }; 消耗时间和内存情况&#xff1a; 方法二 一次遍历&#xff1a; var maxProduct function(nums) {let first-1,second-…

【Go】五、Grpc 的入门使用

grpc 与 protobuf grpc 使用的是 protobuf 协议&#xff0c;其是一个通用的 rpc 框架&#xff0c;基本支持主流的所有语言、其底层使用 http/2 进行网络通信&#xff0c;具有较高的效率 protobuf 是一种序列化格式&#xff0c;这种格式具有 序列化以及解码速度快&#xff08;…