- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 存储器件的
第三章 存储器件;一、存储器件概述;1.1存储器ROM;1.2 随机访问存储器RAM;二、EEPROM存储器件;1.1 CAT24WC16介绍;引脚说明;(注意:I2C是个漏极开路的接口,需要外接上拉电阻);1.2 CAT24WC16工作时序;设备选址;应答信号;写操作;在“页写”操作模式下,页写操作的启动和字节写一样,不同在于传送了一字节数据后并不产生停止信号,主器件被允许发送15个额外的字节。每发送1字节数据后,CAT24WC16产生一个应答位并将字节地址位加1,高位保持不变。
如果在发送停止信号之前主器件发送超过16个字节,地址计数器将自动翻转先前写入的数据被覆盖。
在发送最后一个字节后,主器件发送一个停止信号通知数据传输结束,如图所示。
应答查询:主器件发送一个起始信号和进行写操作的从器件地址来进行应答查询。;读操作;“随机地址读”操作允许主器件对存储器的任意字节进行读操作。
1、主器件首先通过发送起始信号、从器件地址并选择写操作。
2、等CAT24WC16应答之后主器件重新发送起始信号和从器件地址。
3、CAT24WC16响应并发送应答信号,然后输出该地址处的一个字节数据,最后主器件发送一个停止信号结束此次读操作。过程如图 :;“连续读”操作既可以是当前地址读,也可以是随机地址读,工作时序上大体相同。
不同的是:当主器件每接收到一个数据字后,会回应一个应答信号给CAT24WC16,而不是停止信号。CAT24WC16在接收到应答信号后会将地址加1。直到主器件发送停止位才结束此操作。
CAT24WC16输出的数据按顺序由地址N开始输出。读操作时地址计数器在CAT24WC16内部增加。如果上次读写地址为芯片末地址(0x7FF),则计数器将翻转到第一个字节地址(0x00)处。;1.3 实验目的与内容;1.4 实验原理分析;软件设计
为了方便编程与程序可读性,首先定义几个宏,这些宏分别对应I2C控制寄存器I2CONSET的某些控制位。
#define SI 0x08 //I2C中断标志位
#define STO 0x10 //I2C停止位
#define STA 0x20 //I2C起始位
#define AA 0x04 //I2C应答位
#define I2EN 0x40 //I2C使能位
根据实验内容我们设计了3个底层驱动函数,这三个底层驱动函数分别是:
CAT24WC16_Init() 初始化设置函数。
CAT24WC16_Write() CAT24WC16的写函数。
CAT24WC16_Read() CAT24WC16的读函数。;CAT24WC16_Init();CAT24WC16_Write(); //发送器件地址+W位
I2CONCLR = SI | STA; //清零:SI位,起标志位标志位
I2DAT = sla 0xFE;
while((I2CONSET SI) == 0) ; //等待SI置位
if(I2STAT !=0x18) //查看状态码
{
I2CONSET = STO; //结束数据传输结束
return(I2STAT); //返回错误状态码
}
//发送器件子地址
I2CONCLR = SI; //SI位清零
I2DAT = slaveAddr;
while((I2CONSET SI) == 0) ; //等待SI置位
if(I2STAT !=0x28) //查看状态码
{
I2CONSET = STO; //结束数据传输结束
return(I2STAT); //返回错误状态码
}
;//发送数据
for(i=num;i0;i--)
{
I2CONCLR = SI; //SI位清零
I2DAT = *pWriteData++;
while((I2CONSET SI) == 0) ; //等待SI置位
if(I2STAT !=0x28) //查看状态码
{
I2CONSET = STO; //结束数据传输结束
return(I2STAT); //返回错误状态码
}
}
I2CONCLR = SI; //SI位清零
I2CONSET = STO; //结束数据传输结束
return(1);
};CAT24WC16_Read(); if(I2STAT !=0x08) //查看状态码
{ I2CONSET = STO; //结束数据传输结束
return(I2STAT); //返回错误状态码
}
//发送器件地址+R位
I2CONCL
您可能关注的文档
最近下载
- 焊接机器人结构设计[六自由度工业机器人].docx
- 服装缝纫基础.doc VIP
- 西北师范大学《高等数学(D)》2025 - 2026学年第一学期期末试卷.docx VIP
- 新建保温材料生产线项目环评(2021年新版环评)环境影响报告表.docx VIP
- 西北师范大学《高等数学(II)》2025 - 2026学年第一学期期末试卷.docx VIP
- 2026人教版小学三年级下册数学期末综合试卷3套打印版(含答案解析).pdf
- 汽车车身设计课程设计-基于proe的引擎盖建模参考.doc VIP
- 面罩给氧及气管插管PPT课件.ppt
- 杜牧-过华清宫绝句三首(其一).ppt VIP
- 标准个人简历模板全套(完整版) .pdf VIP
原创力文档


文档评论(0)