当前位置: 首页 > news >正文

(十一)IIC总线-AT24C02-EEPROM

文章目录

  • 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);		}
}


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

相关文章:

(十一)IIC总线-AT24C02-EEPROM

文章目录 IIC总线篇AT24C02-EEPROM篇主要特性引脚说明AT24Cxx用几位数据地址随机寻址的(存储器组织)AT24C02设备操作AT24CXX设备寻址EEPROM写操作的种类EEPROM读操作的种类实现单字节写实现任意读读写应用 IIC总线篇 前面介绍过了,请参考 (十)IIC总线-PCF8591-ADC/…...

现在做电商还有发展空间吗?哪个平台的盈利比较大?

我是电商珠珠 对于部分人来说,实体店的投入太大,一上来就是十几w,有时候还看不到结果。 所以有的人就瞄准了电商这个圈子,做线上平台。 大家都知道,近年来直播电商很火,所以很多商家都会去找达人带货&am…...

多节点 docker 部署 elastic 集群

参考 Install Elasticsearch with Docker Images 环境 docker # docker version Client: Docker Engine - CommunityVersion: 24.0.7API version: 1.43Go version: go1.20.10Git commit: afdd53bBuilt: Thu Oct 26 09:08:01 202…...

2023年全国职业院校技能大赛软件测试赛题—单元测试卷⑨

单元测试 一、任务要求 题目1:根据下列流程图编写程序实现相应分析处理并显示结果。返回文字“xa*a*b的值:”和x的值;返回文字“xa-b的值:”和x的值;返回文字“xab的值:”和x的值。其中变量a、b均须为整型…...

C++核心编程——文件操作

本专栏记录C学习过程包括C基础以及数据结构和算法,其中第一部分计划时间一个月,主要跟着黑马视频教程,学习路线如下,不定时更新,欢迎关注。 当前章节处于: ---------第1阶段-C基础入门 ---------第2阶段实战…...

【REST2SQL】05 GO 操作 达梦 数据库

【REST2SQL】01RDB关系型数据库REST初设计 【REST2SQL】02 GO连接Oracle数据库 【REST2SQL】03 GO读取JSON文件 【REST2SQL】04 REST2SQL第一版Oracle版实现 信创要求用国产数据库,刚好有项目用的达梦,研究一下go如何操作达梦数据库 1 准备工作 1.1 安…...

GitLab 502 Whoops, GitLab is taking too much time to respond. 解决

1、先通过gitlab-ctl restart进行重启,2分钟后看是否可以正常访问,为什么要2分钟,因为gitlab启动会有很多配套的服务启动,包括postgresql等 2、如果上面不行,再看gitlab日志,通过gitlab-ctl tail命令查看&…...

vi ~/.bashrc 后如何编辑并退出

在使用 vi 编辑器打开 ~/.bashrc 文件后,可以按照以下步骤编辑并保存退出: vi ~/.bashrc 按 i 进入插入模式: 在 vi 编辑器中,按 i 键将进入插入模式。在插入模式中,您可以编辑文本。 编辑文件: 在插入模…...

KVM Vcpu概述

KVM Vcpu概述 Intel VTSMP系统CPU过载使用CPU模型CPU绑定和亲和性CPU优化 Intel VT Intel的硬件虚拟化技术大致分为3类: 1、VT-x技术:是指Intel处理器中的一些虚拟化技术支持,包括CPU中最基础的VMX技术,也包括内存虚拟化的硬件支…...

linux服务器ftp部署

1、ftp服务安装 # 检查是否安装 1、查询安装列表 sudo systemctl list-unit-files --typeservice | grep ftp 2、查询ftp服务状态 sudo service vsftpd status 或者 sudo systemctl status vsftpd # yum安装,一般yum仓库都有ftp安装包 sudo yum install vsftpd # 启…...

NSIS 安装windows 安装包(包括QT和MFC)

NSIS(Nullsoft Scriptable Install System)是一个开源的 Windows 系统下安装程序制作程序。它提供了安装、卸载、系统设置、文件解压缩等功能。 基本概念 区段 是对应某种安装/卸载选项的处理逻辑,该段代码仅当用户选择相应的选项才被执行…...

K8S----PVPVCSC

一、简介 1、PV(persistent volume)–持久卷 PV是集群中的一块存储,可以由管理员事先静态(static)制备, 也可以使用存储类(Storage Class)来动态(dynamic)制备。 持久卷是集群资源,就像节点也是集群资源一样。PV 持久卷和普通的 Volume 一样, 也是使用卷插件(volume p…...

RSIC-V“一芯”学习笔记(一)——概述

考研的文章和资料之后想写的时候再写怕趴 文章目录 一、阶段设计二、环境、开发语言和工具三、最重要的两个观念四、处理器芯片设计五、处理器芯片设计包含很多软件问题六、处理器芯片的评价指标七、复杂系统的构建和维护八、专业世界观九,提问的艺术(提问模板)十、…...

MATLAB读取图片并转换为二进制数据格式

文章目录 前言一、MATLAB 文件读取方法1、文本文件读取2、二进制文件读取3、 图像文件读取4、其他文件读取 二、常用的图像处理标准图片链接三、MATLAB读取图片并转换为二进制数据格式1、matlab 源码2、运行结果 前言 本文记录使用 MATLAB 读取图片并转换为二进制数据格式的方…...

时序数据库

SELECT *,max(lp_index) FROM lp.tdm_lp_original_data where ts > 2023-12-28 18:11:33.521 and ts < 2023-12-29 19:03:12.148 INTERVAL(2s) FILL(PREV) 在时间序列数据库TDengine中&#xff0c;FILL函数与GROUP BY子句结合使用&#xff0c;提供了对于在指定间隔内…...

【第一次使用finalshell连接虚拟机内的centos】小白处理方式

第一次使用finalshell连接centos7的时候&#xff0c;因为都是新环境什么都没有配置&#xff0c;所以就需要安装finalshell和对新的centos7 进行一些配置。 安装finalshel&#xff0c;默认不安装d盘&#xff0c;就需要对安装路径做一下调整&#xff0c;其余都是下一步默认安装的…...

Pinia 踩坑记录

1、子store中如何使用router 以user.ts 这个store为例 错误写法 // 说明&#xff1a;不能使用插件实例化router&#xff0c;否则获取不到router的函数 // 错误写法如下&#xff1a;import { useRouter } from "vue-router"actions:{login(){const router useRout…...

在ASP.NET MVC中使用JQuery提供的弹出窗口(模态窗口)

在ASP.NET MVC中使用JQuery提供的弹出窗口&#xff08;模态窗口&#xff09; 原理 使用<div>图层灵活显示在浏览器的任何位置。默认情况下指定<div>不可见 引用 样式表 在JQuery的官方网站可以下载对应的css样式表。打开官网的样例页。 找到样式表引用路径 …...

基本工具配置

github加速 github.ur1.fun java # ubuntu20.04 安装 openjdk-17-jdk sudo apt install openjdk-17-jdk java -version javac -version which java参考 openjdk gradle换源 修改gradle-wrapper.properties distributionBaseGRADLE_USER_HOME distributionPathwrapper/dis…...

计算机网络——应用层(3)

计算机网络——应用层&#xff08;3&#xff09; 小程一言专栏链接: [link](http://t.csdnimg.cn/ZUTXU) 点对点&#xff08;P2P&#xff09;P2P网络一般用途优点缺点总结 套接字编程基本步骤UDP套接字TCP套接字基本步骤 二者对比 小程一言 我的计算机网络专栏&#xff0c;是自…...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户&#xff0c;但你不希望用 root 权限运行 ns-3&#xff08;这是对的&#xff0c;ns3 工具会拒绝 root&#xff09;&#xff0c;你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案&#xff1a;创建非 roo…...

Keil 中设置 STM32 Flash 和 RAM 地址详解

文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现&#xff08;两者等价&#xff09;&#xff0c;用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例&#xff1a; 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

华硕a豆14 Air香氛版,美学与科技的馨香融合

在快节奏的现代生活中&#xff0c;我们渴望一个能激发创想、愉悦感官的工作与生活伙伴&#xff0c;它不仅是冰冷的科技工具&#xff0c;更能触动我们内心深处的细腻情感。正是在这样的期许下&#xff0c;华硕a豆14 Air香氛版翩然而至&#xff0c;它以一种前所未有的方式&#x…...

2025季度云服务器排行榜

在全球云服务器市场&#xff0c;各厂商的排名和地位并非一成不变&#xff0c;而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势&#xff0c;对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析&#xff1a; 一、全球“三巨头”…...

中医有效性探讨

文章目录 西医是如何发展到以生物化学为药理基础的现代医学&#xff1f;传统医学奠基期&#xff08;远古 - 17 世纪&#xff09;近代医学转型期&#xff08;17 世纪 - 19 世纪末&#xff09;​现代医学成熟期&#xff08;20世纪至今&#xff09; 中医的源远流长和一脉相承远古至…...

Web中间件--tomcat学习

Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机&#xff0c;它可以执行Java字节码。Java虚拟机是Java平台的一部分&#xff0c;Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...

LCTF液晶可调谐滤波器在多光谱相机捕捉无人机目标检测中的作用

中达瑞和自2005年成立以来&#xff0c;一直在光谱成像领域深度钻研和发展&#xff0c;始终致力于研发高性能、高可靠性的光谱成像相机&#xff0c;为科研院校提供更优的产品和服务。在《低空背景下无人机目标的光谱特征研究及目标检测应用》这篇论文中提到中达瑞和 LCTF 作为多…...

Unity VR/MR开发-VR开发与传统3D开发的差异

视频讲解链接&#xff1a;【XR马斯维】VR/MR开发与传统3D开发的差异【UnityVR/MR开发教程--入门】_哔哩哔哩_bilibili...

[USACO23FEB] Bakery S

题目描述 Bessie 开了一家面包店! 在她的面包店里&#xff0c;Bessie 有一个烤箱&#xff0c;可以在 t C t_C tC​ 的时间内生产一块饼干或在 t M t_M tM​ 单位时间内生产一块松糕。 ( 1 ≤ t C , t M ≤ 10 9 ) (1 \le t_C,t_M \le 10^9) (1≤tC​,tM​≤109)。由于空间…...