2024/4/5 AT24C02 总线(I²C总线)

存储器的介绍:

一、易失性存储器RAM:存储速度快,掉电丢失

  • SRAM(静态RAM):极快
  • DRAM(动态RAM):需要配一个扫描电路,进行“补电”(动态刷新)

二、非易失性存储器ROM:掉电不丢失,存储较慢

  • Mask ROM(掩膜ROM):只能读不能写
  • PROM(可编程ROM):只能写一次
  • EPROM(可擦除可编程ROM):要用紫外线照射30分钟才能擦除
  • E2PROM(电可擦除可编程ROM):用程序即可擦除
  • Flash(闪存)
  • 硬盘,软盘,光盘等

I²C总线介绍:

两根通信线:SCL,SDA(半双工就是一条线可以双向传输数据但是一个时间只能一个方向传)

好处:可以使各种设备通信标准统一

I²C电路规范:

所有SCL连一起,SDA连一起

SCL和SDA均要配置成开漏输出模式。在下面每个设备引出的两条线都设一个开关,开漏输出模式输出1意思就是开关全部断开,也就是电阻无限大,又称高阻态,毫无驱动能力。

由于总线是弱上拉,设备写0的时候线会自动被拉为1;当设备写1时,设备与总线断开,但由于总线配置弱上拉,所以总线自动置1;然后不用的设备两条线全部置1 要用的设备就不断写零写一。如果cpu控制的base基级是0,那么out口会被拉低,电压因而为零,即使外界有接的vcc,vcc的电流也会被导通到ground,out端口输出仍然是0。SDA,SCL是半双工,1想象成下面开关断了,SDA,SCL靠VDD拉。当SDA,SCL为0的时候,想象成下面开关连接了,选择被控IC。

上拉电阻:【上拉电阻的通俗解释,你真正知道吗?-哔哩哔哩】【上拉电阻的通俗解释,你真正知道吗?-哔哩哔哩】icon-default.png?t=N7T8https://b23.tv/fEzm3J2

弱上拉:高电平驱动能力弱,低电平驱动能力强。上拉电阻增强了驱动能力。

开漏输出,推挽输出:开漏的线与特性:当多个开漏输出链接到一起,当它们全部都输出高电平时,总线上才是高电平,但凡有一个开漏输出引脚上是低电平,总线就会被拉低。

【推挽 开漏 高阻 这都是谁想出来的词??-哔哩哔哩】icon-default.png?t=N7T8https://b23.tv/VDIqAgm

http://t.csdnimg.cn/HVG43icon-default.png?t=N7T8http://t.csdnimg.cn/HVG43

当有空闲设备部通信时,可能会影响到正在通信的设备,所以需要加上拉电阻,使其空闲设备处于一个高阻态(不是高电频也不是低电平)的情况下,这样空闲设备就会断路

I²C时序结构:

起始条件:SCL高电平期间,SDA从高电平变成低电平

终止条件:SCL高电平期间,SDA从低电平变成高电平

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

下面不是两根线只是两种情况根据前面SDA是处于高电平还是低电平来确定的。

接收一个字节:SCL低电平期间,从机将数据位依次放到SDA线上(高位在前),然后拉高SCL,主机将在SCL高电平期间读取数据位,所以SCL高电平期间SDA不允许有数据变化,依次循环上述过程8次,即可接收一个字节(主机在接收之前,需要释放SDA,也就是置1)

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

接收应答:在发送完一个字节之后,主机在下一个时钟接收一位数据,判断从机是否应答,数据0表示应答,数据1表示非应答(主机在接收之前,需要释放SDA)

都是对主机而言的,发送应答指的是主机接收从机数据,然后主机给从机发送应答。1表示非应答是因为默认为1,如果从机根本不存在是1,从机不应答也是1,只有从机应答才是0。

SLAVE ADDRESS 是AT24C02的地址,WORD ADDRESS是AT24C02这个设备要写入数据的地址。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

02 _ 分布式系统的指标:啥是分布式的三围

你好,我是聂鹏程。 在上一篇文章中,通过对分布式发展历程的学习,我们对分布式技术有了一个整体印象。接下来,我们就再来看看可以用哪些指标去具体地衡量一个分布式系统。如果你已经对分布式系统的指标了解得很清楚了,…

刷题之Leetcode34题(超级详细)

34. 在排序数组中查找元素的第一个和最后一个位置 力扣链接(opens new window)https://leetcode.cn/problems/find-first-and-last-position-of-element-in-sorted-array/ 给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始…

Jenkins 安装部署

1、安装下载 官网地址:Jenkins 下载 war 包 1、前置环境 JDK 环境(根据 Jenkins 版本不同,需要的 JDK 版本不同,目前需要 JDK11 的版本来支持)Maven maven 官网下载压缩包 ,并将其传输到服务器&#xf…

【Python】免费的图片/图标网站

专栏文章索引:Python 有问题可私聊:QQ:3375119339 这里是我收集的几个免费的图片/图标网站: iconfont-阿里巴巴矢量图标库icon(.ico)INCONFINDER(.ico)

clickhouse MPPDB数据库--新特性使用示例

clickhouse 新特性: 从clickhouse 22.3至最新的版本24.3.2.23,clickhouse在快速发展中,每个版本都增加了一些新的特性,在数据写入、查询方面都有性能加速。 本文根据clickhouse blog中的clickhouse release blog中,学…

【C++入门】关键字、命名空间以及输入输出

💞💞 前言 hello hello~ ,这里是大耳朵土土垚~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 💥个人主页&#x…

基于Python近红外光谱分析与机器学、深度学习方法融合技术应用

郁磊副教授,主要从事MATLAB 编程、机器学习与数据挖掘、数据可视化和软件开发、人工智能近红外光谱分析、生物医学系统建模与仿真,具有丰富的实战应用经验,主编《MATLAB智能算法30个案例分析》、《MATLAB神经网络43个案例分析》相关著作。已发…

6:算法基础--6.1:线性结构 ,6.2:查找算法

转上一节: http://t.csdnimg.cn/ql5Cdhttp://t.csdnimg.cn/ql5Cd 课程内容提要: 6:知识点考点详解 6.1:线性结构 通常分析时间复杂度的方法是从算法中选取-种对于所研究的问题来说是基本运算的操作,以 该操作重…

51单片机入门:认识开发板

认识开发板 板载资源: 数码管模块 说明: 2个四位一体共阴数码管 详细: 2个四位一体:两个独立的四位数码管,每个四位数码管都是“一体”的设计,也就是说,每个数码管内部集成了四个独立的七段LE…

【Linux】Ubuntu 磁盘管理

准备一个U盘或者SD卡(含读卡器),并将其格式化成 FAT32 格式,不要使用NTFS格式(这是微软的专利,大部分Linux系统不支持)和exFAT格式(有的Linux系统也不支持)。 如果Ubun…

Lafida多目数据集实测

Lafida 数据集 paper:J. Imaging | Free Full-Text | LaFiDa—A Laserscanner Multi-Fisheye Camera Dataset 官网数据:https://www.ipf.kit.edu/english/projekt_cv_szenen.php 官网:KIT-IPF-Software and Datasets - LaFiDa 标定数据下载&…

【蓝桥杯嵌入式】9届程序题刷题记录及反思

一、题目内容分析 二、LCD单字符高亮显示实现 本次要求显示两个字符&#xff0c;此函数高亮pos及它后面一个字符 void highlight(uint8_t *str,uint8_t pos) {int i 0;for(i 0; i < 20; i){if(i ! pos && i! (pos1))LCD_DisplayChar(Line3,(320 - (16 * i)),st…

Python输出不了中文怎么解决

在文件头加上#encoding&#xff1a;utf-8即可。 # encoding: utf-8 print helloworld print u"学习" print (unicode("学习", encoding"utf-8")) shell输出&#xff1a; helloworld 学习 学习 还可以用#-*- coding: UTF-8 -*- 来指定。

LangChain学习笔记—RAG(检索增强生成)

LangChain LangChain是一个软件开发框架&#xff0c;可以更轻松地使用大型语言模型&#xff08;LLM&#xff09;创建应用程序。它是一个具有 Python 和 JavaScript 代码库的开源工具。LangChain 允许开发人员将 GPT-4 等 LLM 与外部数据相结合&#xff0c;为聊天机器人、代码理…

C++ | Leetcode C++题解之第10题正则表达式匹配

题目&#xff1a; 题解&#xff1a; class Solution { public:bool isMatch(string s, string p) {int m s.size();int n p.size();auto matches [&](int i, int j) {if (i 0) {return false;}if (p[j - 1] .) {return true;}return s[i - 1] p[j - 1];};vector<…

WGCAT工单系统使用指南 - 工单有哪几种状态

WGCAT工单管理系统设计的工单生命周期比较简单易懂 1、待接收 2、处理中 3、已拒绝 4、已完成 5、已关闭

CYP450综述-20年-地表最强系列-文献精读-4

Discovery and modification of cytochrome P450 for plant natural products biosynthesis 发现与改造细胞色素P450以合成植物天然产品 一篇关于植物CYP450的综述&#xff0c;地表最强&#xff0c;总结的最全面的版本之一&#xff0c;各位看官有推荐请留言评论区~ Discovery…

App.vue触发axios报错及解决方案

App.vue触发axios报错及解决方案 修改根目录下vue.config.js文件 module.exports {publicPath: ./,assetsDir: assets,configureWebpack: {devServer: {client: {overlay: false}}} }重新npm run dev 搞定

python作业

1.找出10000以内能被5或6整除&#xff0c;但不能被两者同时整除的数(函数) 2.写一个方法&#xff0c;计算列表所有偶数下标元素的和(注意返回值) 3.根据完整的路径从路径中分离文件路径、文件名及扩展名。 4.根据标点符号对字符串进行分行 5.去掉字符串数组中每个字符串的空格 …

波奇学Linux:

面向数据报&#xff1a;udp没有发送缓冲区&#xff0c;发送几次数据报&#xff0c;读取几次数据报&#xff0c;write和read一一对应 tcp通信时只管识别数据&#xff0c;在应用层才对字节进行拼接分析&#xff0c;得到完整请求 简单来说&#xff1a;udp之间传递的是报文&#x…