(十一)IIC总线-AT24C02-EEPROM

news2024/9/24 15:21:27

文章目录

  • IIC总线篇
  • AT24C02-EEPROM篇
    • 主要特性
    • 引脚说明
    • AT24Cxx用几位数据地址随机寻址的(存储器组织)
    • AT24C02设备操作
    • AT24CXX设备寻址
    • EEPROM写操作的种类
    • EEPROM读操作的种类
    • 实现单字节写
    • 实现任意读
    • 读写应用


IIC总线篇

前面介绍过了,请参考
(十)IIC总线-PCF8591-ADC/DAC

AT24C02-EEPROM篇

内容依然是来自芯片数据手册以及自己总结理解

主要特性

在这里插入图片描述
说人话:
1.有双线串行接口(IIC总线通讯)
2.保存时间周期最多需要5ms,因此连续写最好加个5ms延时
3.高可靠性:读写次数:1,000,000 次 – 数据保存:100 年

引脚说明

在这里插入图片描述

在这里插入图片描述

这里原理图大家注意一下A3A2应该是标错了

最主要就是:
SDA数据线
SCL时钟线
A2,A1,A0地址线,其中:

24C01和24C02 使用A2,A1,A0作为硬件连接的器件地址输入引脚
24C04仅使用 A2、A1 作为硬件连接的器件地址输入引脚
24C08 仅使用 A2 作为硬件连接的器件地址输入引脚
24C16 未使用作为硬件连接的器件地址输入引脚,

WP写保护位:1-禁止读写,0-允许读写(如图默认允许所以WP接GND

AT24Cxx用几位数据地址随机寻址的(存储器组织)

数据要放到哪个地址里面(数据存放的地址)

在这里插入图片描述
说人话:AT24C02里面那么多内存地址,需要一个8位的数据字地址来进行随机字寻址
AT24C02是一个2k的设备—用8位的数据字地址随机寻址(0x00-0xff)
AT24C04是一个4k的设备—用9位的数据字地址随机寻址
AT24C08是一个8k的设备—用10位的数据字地址随机寻址
AT24C16A是一个16k的设备–用11位的数据字地址随机寻址

AT24C02设备操作

在这里插入图片描述
说人话:就是一些起始信号,终止信号,应答信号,复位信号等
起始信号:必须先于任何一个指令
应答信号:在第九个时钟脉冲发送,0-应答 1-非应答

AT24CXX设备寻址

AT24CXX设备的地址(器件/设备的地址)
在这里插入图片描述
在这里插入图片描述
结合上面原理图
地址指令:0xA1
地址指令:0xA0

说明():
1k/2k的EEPROM(AT24C02) 使用 A2,A1,A0作为设备地址
4k的EEPROM(AT24C02) 使用 A2,A1作为设备地址
8k的EEPROM(AT24C02) 使用 A2作为设备地址
16k的EEPROM(AT24C02) 不使用设备地址

EEPROM写操作的种类

比赛用单字节就行,多字节采取分割的形式储存
在这里插入图片描述
俩种:一个是单字节写入,一个是页写入
这里不关心,比赛就用单字节写入,即使连续写,也可以多次单字节写入

EEPROM读操作的种类

比赛用任意地址读取(因为一般比赛都不指定地址储存数据),另外random read 处理简单

在这里插入图片描述

三种:
1.当前地址读:最后一次读或写操作期间访问的最后一个地址(不指定地址),增加1,然后一直读
2.任意地址读 :指定地址,读取
3.顺序读:由当前地址或任意地址读取来启动,然后只要EEPROM收到确认,它将继续增加数据字地址,并连续钟出顺序数据字。

实现单字节写

在这里插入图片描述

void WriteEeprom(u8 add, u8 dat)
{
	I2CStart();
	I2CSendByte(0xA0);
	I2CWaitAck();
	I2CSendByte(add);
	I2CWaitAck();
	I2CSendByte(dat);
	I2CWaitAck();
	I2CStop();
	Delay5ms();//延迟5ms		
}

实现任意读

在这里插入图片描述

u8 ReadEeprom(u8 add)
{
	u8 tmp;
	
	I2CStart();
	I2CSendByte(0xA0);
	I2CWaitAck();
	I2CSendByte(add);
	I2CWaitAck();
	
	I2CStart();
	I2CSendByte(0xA1);
	I2CWaitAck();
	tmp = I2CReceiveByte();
	I2CSendAck(1);
	I2CStop();
	
	return tmp;		
}

读写应用

功能:用eeprom记录开机次数,S7短按键清除开机次数
小方法:这里用到了 一个标记法,解决了第一次开机检测问题

void EepromTask()
{
	if(ReadEeprom(0x7f)!= 213){
		WriteEeprom(0x7f,213);
		WriteEeprom(0x03,1);
		open_num = 1;
	}else{	
		open_num = ReadEeprom(0x03);
		WriteEeprom(0x03,++open_num);		
	}
}


----- 如有错误欢迎大家批评指正!!!

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

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

相关文章

高度自适应scroll-view,uniapp项目

中间粉红的区域高度自适应,不管换什么机型&#xff0c;高度都自适应 <template><!-- 合同-待确认 --><view class"viewport"><!-- 上 --><view class"top-box"><!-- tab --><view class"tabs"><te…

Compose中的一些机制验证与总结——remember

最近在搞一个基于 Compose 实现的低代码跨平台项目&#xff0c;涉及到一些 Compose 运行时的一些机制问题&#xff0c;周末写了个 demo 验证总结一下&#xff0c;总体是与过往经验相符的&#xff0c;也发现了一些小的细节是以前不太清楚的&#xff0c;可以一起学习研究一下&…

js动态设置关键侦@keyframes

js动态设置关键侦keyframes 1.前置知识 关键侦keyframes规则通过在动画序列中定义关键侦的样式来控制CSS动画序列的中间步骤 keyframes slidein {from {transform: translateX(0%);}to {transform: translateX(100%);} } // from 等价于 0%&#xff1b;to 等价与 100% // 或…

Nacos下载与安装【windows】

&#x1f95a;今日鸡汤&#x1f95a; 我不知将去何方&#xff0c;但我已经在路上。 ——宫崎骏《千与千寻》 目录 &#x1f95e;1.Nacosdi地址 &#x1f32d;2.GitHub下载 &#x1f37f;3.目录结构 &#x1f953;4.启动nacos &#x1f9c2;5.客户端登陆 &#x1f9c8…

利用docker的LNMP

服务器环境 容器 操作系统 IP地址 主要软件 nginx CentOS 7 172.20.0.10 Docker-Nginx mysql CentOS 7 172.20.0.20 Docker-Mysql php CentOS 7 172.20.0.30 Docker-php 任务需求 使用 Docker 构建 LNMP 环境并运行 Wordpress 网站平台…

ES-极客学习第二部分ES 入门

基本概念 索引、文档、节点、分片和API json 文档 文档的元数据 需要通过Kibana导入Sample Data的电商数据。具体参考“2.2节-Kibana的安装与界面快速浏览” 索引 kibana 管理ES索引 在系统中找到kibana配置文件&#xff08;我这里是etc/kibana/kibana.yml&#xff09; vim /…

LabVIEW编码器自动校准系统

简介 在工作中&#xff0c;精确的角度测量和校准对于保持设备精度至关重要。开发了一套自动化角度编码器校准系统&#xff0c;利用了LabVIEW的强大功能。该系统以全圆连续角度标准装置为基础&#xff0c;配合二维导轨装夹系统&#xff0c;实现了空心轴角度编码器的高效自动校…

[易语言]使用易语言部署工业级人脸检测模型

【框架地址】 https://github.com/ShiqiYu/libfacedetection 【算法介绍】 Libfacedetection是一个开源的计算机视觉库&#xff0c;主要用于实时的人脸检测。它利用深度学习技术&#xff0c;特别是卷积神经网络&#xff08;CNN&#xff09;&#xff0c;实现了高精度的脸部定位…

Excel学习

文章目录 学习链接Excel1. Excel的两种形式2. 常见excel操作工具3.POI1. POI的概述2. POI的应用场景3. 使用1.使用POI创建excel2.创建单元格写入内容3.单元格样式处理4.插入图片5.读取excel并解析图解POI 4. 基于模板输出POI报表5. 自定义POI导出工具类ExcelAttributeExcelExpo…

RibbonGroup添加QCheckBox

RibbonGroup添加 QCheckBox&#xff1a; QCheckBox* pCheck new QCheckBox(tr("Check")); pCheck->setToolTip(tr("Check")); groupClipboard->addWidget(pCheck); connect(pCheck, SIGNAL(stateChanged(int)), this, SLOT(checkClick(int))); …

章鱼网络 2023 年全回顾|暨12月进展报告

2023年&#xff0c;章鱼网络轻装上阵&#xff0c;身处加密行业的低谷中砥砺前行。 12月17日&#xff0c;经过整整1年时间的开发和打磨&#xff0c;章鱼网络在重磅上线 Octopus 2.0&#xff0c;即 $NEAR Restaking 和 NEAR-IBC&#xff0c;获得了社区和市场的一致认可&#xff…

供排水管网管理信息化的必要性

供排水管网是城市供水系统的大动脉&#xff0c;它负担者将优质水源输送到最终用户的重要职责&#xff0c;对供水系统有着极其重要的作用。城市供排水管网埋设在地下&#xff0c;规模庞大&#xff0c;仅靠人工难以管理。同时&#xff0c;由于城市的发展&#xff0c;管网连接结构…

Camtasia2024屏幕录像和视频编辑软件

做网络教学视频&#xff0c;开发微课程&#xff0c;用得最多的就是录屏视频编辑&#xff0c;而在这类软件中我只推荐Camtasia Studio。随着Camtasia Studio的更新&#xff0c;其功能越来越完善&#xff0c;用户界面越来越友好&#xff0c;除了安装更加简单&#xff0c;汉化只需…

设置了uni.chooseLocation,小程序中打不开

设置了uni.chooseLocation&#xff0c;在小程序打不开&#xff0c;点击没反应&#xff0c;地图显现不出来&#xff1b; 解决方案&#xff1a; 1.Hbuilder——微信开发者工具路径没有配置 打开工具——>设置 2.微信小程序服务端口没有开 解决方法&#xff1a;打开微信开发…

苹果手机怎么还原删除的照片?这3个方法教你快速还原!

苹果手机用户在误删照片后&#xff0c;可能会感到非常焦虑。并且手机照片丢失对我们生活和工作都可能带来诸多不便。 但是&#xff0c;大家不必过于担心&#xff0c;仍有一些方法可以帮助我们找回这些误删的照片。苹果手机怎么还原删除的照片&#xff1f;本文将为大家介绍3种简…

九州金榜|临近春节,孩子要做什么更有意义?

元旦刚过&#xff0c;奔向除夕的脚步便越走越快了&#xff0c;转眼间&#xff0c;又来到了一年的末尾。 孩子们也都开始了新一轮的寒假&#xff0c;但是大街小巷中还是冷冷清清。 在和朋友们聊天时&#xff0c;他们也纷纷感叹&#xff1a;现在的孩子&#xff0c;不像我们这一…

python 计数器

这个Python脚本定义了一个名为new_counter()的函数&#xff0c;它读取系统时间并将其与存储在文件中的时间进行比较。然后根据比较结果更新存储在另一个文件中的计数器值。如果系统时间与存储的时间匹配&#xff0c;则计数器值增加1。如果系统时间与存储的时间不匹配&#xff0…

QMenuBar和QACtion的使用

1. 主界面&#xff1a;QMainWindow 包含了菜单栏、工具栏、状态栏以及工作区等功能 菜单栏&#xff1a;使用QMenuBar类管理&#xff0c;管理菜单栏中的菜单或者执行动作 执行动作&#xff1a;QAction类管理 工具栏&#xff1a;使用QToolBar类管理 状态栏&#xff1a;使用QStatu…

电脑扩容升级硬盘选1T还是2T

SSD固态有必要升级2TB吗&#xff1f;----------吴中函 某大二学生用的一台笔记本电脑&#xff0c;512GB的硬盘空间已经严重不够用了&#xff0c;想给笔记本扩容升级一下硬盘&#xff1b; 这位学生是学设计专业的、平时也喜欢摄影、电脑里面也装了一些游戏&#xff0c;经常整理、…

vue v-for循环拖拽排序,实现数组选中的数据拖拽后对应的子数据也进行重新排序

如下图所有&#xff0c;有个需求更新&#xff0c; 实现拖拽。 1&#xff0c;当新增了测点类型的时候每个对应的回路子数据都会新增对应的测点类型。 2&#xff0c;当拖动测点类型结束的时候对应的回路里面的内容也会跟着测点类型的排序自动排序 其实很简单&#xff0c;只要会了…