IIC操作读写Eeprom程序(模拟IO操作AT24C02)

6 篇文章 9 订阅
订阅专栏
4 篇文章 1 订阅
订阅专栏

本文介绍调试Eeprom,需使用IIC协议。所以阅读本文的前提是已经了解IIC协议。

一、Eeprom介绍:

Eeprom,也就是Rom,简单理解为数据存储器件,数据在掉电时不会丢失。达到保存参数、记录等目的。

此次我所AT24C02芯片:容量大小2048Bit,也就是256个Byte;地址从0x00~0xFF;可支持100万次写入;24C02自己把数据从缓存写入到内存中最大不超过5Ms。

二、原理图绘制介绍:

A0-A2,共3个脚,对应IIC器件地址的3Bit。通过上、下拉可组合出8种状态,在IIC总线上最多可挂8个设备。

设备地址:高4位固定0xA,以上原理图A0~A2全接地。所以器件地址为:0b1010000x。x为IIC读/写位。读为1,写为0。

WP为写保护位,拉高保护(不能读写操作);拉低可读写操作。

三、软件操作

软件重启:

在IIC Start后;②SDA拉高,SCL送9个周期信号;③IIC Start;④IIC Stop。

void reset24C02(void)
{
	uint8_t cnt; 
	I2C_Start();

    I2cSclClr();
	I2cSdaSet();
    I2cDelay(0);
    for(cnt = 0; cnt < 9; cnt++)
    {   
        I2cSclSet(); 
        I2cDelay(0);
        I2cSclClr();
        I2cDelay(0);
    } 

	I2C_Start();
	I2C_Stop();
}

实际使用波形如下。

字节写入:

按照如下程序中备注的步骤操作

UINT8 write24C02_Byte(uint8_t addr, UINT8 data)
{	
    UINT8 Ack;
	I2C_Start();					//Step 1 IIC Start
	
	I2C_WriteByte(0xA0);			//Step 2 Write Device Addr and Write Flag
	Ack = IIC_Wait_Ack(100);		//Step 2.1 Wite Ack
	while(!Ack)
	{
		I2C_Stop();		
		return IICERR_NACK;
	}
	
	I2C_WriteByte(addr);			//Step 3 Write Title Write Addr
	Ack = IIC_Wait_Ack(100);		//Step 3.1 Wite Ack
	while(!Ack)
	{
		I2C_Stop();		
		return IICERR_NACK;
	}
	
	I2C_WriteByte(data);			//Step 4 Write Data
	Ack = IIC_Wait_Ack(100);		//Step 4.1 Wite Ack
	while(!Ack)
	{
		I2C_Stop();
		return IICERR_NACK;
	}
	I2C_Stop();						//Step 5 IIC Stop

	return 1;	
}

字节读出:

按照如下程序中备注的步骤操作


UINT8 read24C02_Byte(uint8_t addr)
{	
    UINT8 Ack;
	UINT8 readData; 
	I2C_Start();				//Step 1 IIC Start
	
	I2C_WriteByte(0xA0);		//Step 2 Write Device Addr and Write Flag
	
	Ack = IIC_Wait_Ack(100);	//Step 2.1 Wite Ack
	while(!Ack)
	{
		I2C_Stop();
		return IICERR_NACK;
	}
	
	I2C_WriteByte(addr);		//Step 3 Write Title Read Addr

	Ack = IIC_Wait_Ack(100);	//Step 3.1 Wite Ack
	while(!Ack)
	{
		I2C_Stop();
		return IICERR_NACK;
	}

	I2C_Start();				//Step 4 IIC Start
	
	I2C_WriteByte(0xA1);		//Step 5 Write Device Addr and Read Flag
	Ack = IIC_Wait_Ack(100);	//Step 5.1 Wite Ack
	while(!Ack)
	{
		I2C_Stop();		
		return IICERR_NACK;
	}
	readData = I2C_ReadByte(0);	//Step 6 read Data,and Send Nak

	I2C_Stop();					//Step 7 IIC Stop
	return readData;
}

四、注意事项:

1、操作速度不能过快

由于在写数据时,24C08都是先将数据写到缓存中,然后再写入内容中,所以如果操作过快,将会出现24C08出现IIC不应答情况。(按资料说的,最大的间隔时间是5Ms)

而且如果刚写完后继续进行读操作,也会出现IIC不应答现象。

2、在连续写操作时,需要注意地址只是会在低3Bit增加。

连续写操作,最多只能写8Byte。如果超过8Byte,写地址将会折回,并覆盖之前所写的内容。

比如说写的地址是0x0,那么连续写8字节数据地址将会是:0,1,2,3,4,5,6,7.

但是当写的地址是0x4,那么连续写8字节数据地址将会是:4,5,6,7,0,1,2,3。因为只增加低3Bit。所以遇到此情况,需分2次写,先写4,5,6,7的,再写8,9,10,11的。

以上完结。

本人新建了个QQ群,如想进一步沟通可添加:947187213。

51单片机 IIC 读写操作
weixin_45598597的博客
10-24 1784
51单片机 IIC 读写操作
iic读写程序
11-05
iic读写程序C语言类.读写时序,读写控制等
EEPROM读写驱动程序
weixin_43908815的博客
08-20 2138
支持AT24C02、AT24C04、AT24C08、AT24C016、AT24C32、AT24C64、AT24C128、AT24C256的EEPROM读写驱动程序。 支持单个字节写入读取,页写入,连续写入,顺序读操作
实现AT24C02的数据读写操作
weixin_34348111的博客
04-01 1253
源:实现AT24C02的数据读写操作 /*************************************************************** 功能:11:32 2008-6-27 作者:SG 时间:2004-03-15 版本:V1.0 *************************************************************...
I2C系列(三):软件模拟I2C读写24C02
最新发布
shijiyingjie的博客
03-23 1471
定义如下命令:①C——串口接收数据函数初始化②S——单片机将接收到的数据发送到串口调试终端显示,以确认单片机是否已正确接收数据③W——将接收缓冲区 wbuf 中的数据写入 EEPROM 中④r——将刚才写入 EEPROM 中的数据读出到缓冲区 rbuf 中,并发送到串口调试终端显示/*接收数据统计*//*串口调试软件终端发送的命令标识*/#define NOP_num 60/*延时函数中 NOP()指令的执行次数*/
24c02程序C语言详解,C语言编写的 24C02程序
weixin_42255060的博客
05-20 425
#define uchar unsigned char#define uint unsigned int#include reg52.h>#include stdio.h>#include absacc.h>sbit scl=P3^5; //24c02 SCLsbit sda=P3^4; //24c02 SDAsbit DOG=P1^7; //看门狗uchar x24c02_re...
E2PROM芯片24C02读写程序
weixin_30752699的博客
01-06 1426
一、实验目的: 给24C02的内部RAM写入一组数据0xb0,数据从24C02内部RAM的0x01开始存放。然后再把这组数据读出来,来点亮LED灯,检验写入和读出是否正确。 二、理论知识准备: 下面我们先介绍一下I2C总线的相关理论知识。 (一)、I2C总线概念 I2C总线是一种双向二线制总线,它的结构简单,可靠性和抗干扰性能好。目前很多公司都推出了基于I2C总线的外围器件,例如我们学...
IIC实现读写操作程序
12-02
程序是通过C8051F020单片机控制,向24C16里面写数据,再把写进去的数据读出来,通过串口打印出来,实现IIC读写操作
IIC读写EEPROM
qq_46689721的博客
07-11 4541
基于C4的FPGA开发板实现IIC读写EEPROM操作
IIC读写
热门推荐
weixin_40997830的博客
05-15 1万+
IIC通信中读的过程比较复杂,在从slave读出数据前,你必须先要告诉它哪个内部寄存器是你想要读取的,因此必须先对其进行写入(dummy write): 发送起始位; 发送slave地址+write bit set; 发送内部寄存器地址; 重新发送起始位,即restart; 重新发送slave地址+read bit set; 读取数据 主机接收器在接收到最后一个字节后,也不会发出ACK信号。于是,...
EEPROM读写程序
05-08
EEPROM读写程序(神舟王)stm32
IIC读写 EEPROM
09-13
主要是对stm8/STM32的IIC对不同缓存的at24cXX系列的芯片进行读写
iic总线读写eeprom的实验c语言程序
09-21
niosii 基础实验之 IIC总线操作
读写AT24c02程序
10-17
读写AT24C02程序,包含了IIC协议的使用,测试等程序
51单片机EEPROM读写程序
09-04
51单片机EEPROM程序,可实现EEPROM的读写程序已测试通过,请放心下载!
STM32-模拟IIC读写24C02程序代码
01-18
该文档提供了用stm32单片机进行AT24C02芯片的数据的读写代码。
软件模拟IIC总线读写24C02程序_软件模拟IIC总线读写24C02程序_
10-04
MSP430F149程序,软件模拟IIC总线读写24C02程序
AT24C02_IIC.rar_IIC_IIC 读写_at24c02
07-13
Quartus II 项目,AT24C02 IIC通信接口,可实现读写功能。
STM32的IIC模拟读写AT24c02
04-04
以下是STM32的IIC模拟读写AT24c02的代码: ``` #include "stm32f10x.h" #include "delay.h" #define IIC_SCL_H GPIOB->BSRR = GPIO_Pin_10 #define IIC_SCL_L GPIOB->BRR = GPIO_Pin_10 #define IIC_SDA_H ...

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 在MatLab中FFT和IFFT的互相转换 56153
  • MATLAB对逻辑分析仪抓取到的Spi传输数据处理分析 46757
  • 串口软件Vofa+,超好用。可用于高速采集数据直观化显示动态 39914
  • 使用VOFA+工具用于调试PID算法 16898
  • Matlab中FFT运算加窗函数的验证 15882

分类专栏

  • 嵌入式硬件应用 6篇
  • 嵌入式开发环境搭建 4篇
  • MATLAB FFT运算 2篇
  • 嵌入式外设IC的使用 4篇
  • MATLAB语音 5篇
  • Spi传输 1篇
  • C语言写法说明 3篇

最新评论

  • 串口软件Vofa+,超好用。可用于高速采集数据直观化显示动态

    一个学艺不精的工科女: 大哥,你解决了吗,我的也没看到通道

  • 串口软件Vofa+,超好用。可用于高速采集数据直观化显示动态

    一个学艺不精的工科女: 兄弟这个咋解决的,求请教,困扰我好久了

  • 串口软件Vofa+,超好用。可用于高速采集数据直观化显示动态

    yaoquan5201314: 您好!我用vofa置显示曲线,步进曲线显示不了,而且只能显示一个数据,能帮忙看一下吗?

  • 使用VOFA+工具用于调试PID算法

    lhj2750200891: 满员了满员了

  • 串口软件Vofa+,超好用。可用于高速采集数据直观化显示动态

    horizon_01: 大哥,群满了,俺也想进咋办表情包

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • 使用VOFA+工具用于调试PID算法
  • C8051F4x0仿真软件的安装
  • 串口软件Vofa+,超好用。可用于高速采集数据直观化显示动态
2021年4篇
2020年10篇
2019年3篇
2018年5篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司长沙网站搜索优化多少钱洛阳网页设计推荐淮南企业网站建设价格信阳网站优化软件价格深圳建站报价荆门优化常德网站优化按天收费报价宿州模板推广林芝百姓网标王公司昭通英文网站建设推荐横岗网站改版报价新乡高端网站设计多少钱舟山企业网站制作多少钱桐城网站定制福永外贸网站制作多少钱九江网站推广济宁百姓网标王推广哪家好大芬品牌网站设计推荐延安SEO按天计费公司光明seo优化报价龙岩百度竞价包年推广多少钱光明建网站广东如何制作网站哪家好滨州设计公司网站报价甘孜网页制作推荐吴忠网站优化价格北京百度爱采购哪家好吉祥网站推广醴陵网站搜索优化防城港SEO按天扣费哪家好歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化