- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验十六EEPROM实验
实验目的:
掌握IIC总线的使用;
掌握EEPROM的读写。
实验原理:
1.IIC简介
IIC(Inter—Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总 线,用于连接微控制器及其外围设备。它是由数据线SDA和时钟SCL构成的串行 总线,可发送和接收数据。在CPU与被控ICZ间、IC与ICZ间进行双向传送,高 速IIC总线一般可达400kbps以上。
I2C总线在传送数据过程屮共有三种类型信号,它们分别是:开始信号、结 束信号和应答信号。
开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。 结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。
应答信号:接收数拯的IIC在接收到8bit数拯后,向发送数据的IIC发出特定 的低电平脉冲,表示已收到数据。CPU向受控单元发出一个信号后,等待受控单 元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递 信号的判断。若未收到应答信号,由判断为受控单元出现故障。
12C总线协议定义如下:
只有在总线空闲时才允许启动数据传送。
在数据传送过程屮当时钟线为高电平时数据线必须保持稳定状态不 允许冇跳变吋钟线为高电平时数据线的任何电平变化将被看作总线的起始或停 止信号。
口这些信号中,起始信号是必需的,结束信号和应答信号,都可以不要。IIC 总线时序图如下所示: 总线时序:
图1.IIC总线时序图
2. CAT24WC02 简介:
CAT24WC01/02/04/08/16 是一个 1K/2K/4K/8K/16K 位串行 CMOS E2PR0M 内部含有 128/256/512/1024/2048个8位字节CATALYST公司的先进CMOS技术实质上减少了器件的 功耗CAT24WC01有一个8字节贝写缓冲器CAT24WC02/04/08/16有一个16字节页写缓冲器
该器件通过I2C总线接口进行操作有一个专门的写保护功能。 管脚配置:
24C02VCC3.3rR19A0VCCA1WPA3
24C02
VCC3.3
r
R19
A0
VCC
A1
WP
A3
SCL
GNDSDA
■ GND
4.7k
IIC SCL
R20
4.7k J
IIC SDA
U5
Ao匚
□
A[匚
2
7
□
?2匚
3
6
VSS匚
4
5
□
VCC
WP
SCL SDA
图2. CAT24WC02管脚图
管脚描述:
管脚名称
功能
AO、 Al、 A2
器件地址选择
SDA
串行数据/地址
SCL
串行时钟
WP
写保护
Vcc
+ 1?8V~6. 0V工作电压
Vss
地
本开发板IIC-EEPROM硬件原理图:
GND
图3.开发板IIC-EEPROM硬件原理图
图2中,Pl.2、P1.3对应地连接到EERPOM (型号:AT24C02)的SCL和S DA线。
三、程序设计:选择读时序:BUS ACTIVITY: MASTERSDALINESLAVEADDRESSBYTEADDRESS (n)STARTSLAVEADDRESS
三、程序设计:
选择读时序:
BUS ACTIVITY: MASTER
SDALINE
SLAVEADDRESS
BYTEADDRESS (n)
START
SLAVEADDRESS
m n o. m n rrm r
A 気 r DATAn
re
‘N
O
图4. AT24C02读时序示意图
uchar Read_ 1 Byte_Randomaddress(uchar dataaddress)
〃这是选择读时序,不懂的话请看选择读时序图
{
uchar temp;
start(); 〃开始I2C总线
write 1 byte(deviceaddress);//写AT24C02的设备地址A0.A1.A2都接地所以为OXaO,a为芯片规定的 if(check()) 〃检査应答信号
write 1 byte(dataaddress); // 写数据地址
else return 0;
if(check()) 〃检査应答信号
{〃起始信号后必须发送一个从机地址,第八位为数据的传送方向位,0表示主机发送数据,1表示主 机接收数据
stcirtO; 〃器件寻址发送启动信号
write 1 byte((deviceaddress|OxO 1));//从器件8位地址的最低位作为读写控制位1表示对从器件进行 读操作0表示对从器件进行写操作
}
else
return 0;
if(check()) 〃检査应答信号
temp = readlbyte(); 〃读出数据 8 位
else
return 0;
mnack(); 〃完成1IC的主机无应答操作
stop();
文档评论(0)