如何采用单片机访问EEPROM的地址

控制/MCU

1842人已加入

描述

我们知道,打电话的时候,当拨通电话,接听方捡起电话肯定要回一个“喂”,这就是告诉拨电话的人,这边有人了。同理,这个第九位 ACK 实际上起到的就是这样一个作用。当我们发送完了这7位地址和1位方向后,如果发送的这个地址确实存在,那么这个地址的器件应该回应一个 ACK(拉低 SDA 即输出“0”),如果不存在,就没“人”回应 ACK(SDA将保持高电平即“1”)。

那我们写一个简单的程序,访问一下我们板子上的 EEPROM 的地址,另外再写一个不存在的地址,看看它们是否能回一个 ACK,来了解和确认一下这个问题。

我们板子上的 EEPROM 器件型号是 24C02,在 24C02 的数据手册3.6节中可查到,24C02 的7位地址中,其中高4位是固定的 0b1010,而低3位的地址取决于具体电路的设计,由芯片上的 A2、A1、A0 这3个引脚的实际电平决定,来看一下我们的 24C02 的电路图,它和 24C01 的原理图完全一样,如图14-4所示。

单片机

图14-4 24C02 原理图

从图14-4可以看出来,我们的 A2、A1、A0 都是接的 GND,也就是说都是0,因此 24C02 的7位地址实际上是二进制的 0b1010000,也就是 0x50。我们用 I2C 的协议来寻址 0x50,另外再寻址一个不存在的地址 0x62,寻址完毕后,把返回的 ACK 显示到我们的 1602 液晶上,大家对比一下。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分