I2C和AT24C256的应用

纠结的第二个问题,也纠结了一个多礼拜,原因是在I2C写入从器件地址的时候没有响应,即返回的I2C总线状态为0x20!

  AT24C256,这一个256K位的EEPROM,说的通俗一点就是一个32KB的硬盘(可以这么理解),由于上面文章说的,新唐的M051只有4KB,而我的一个按键需要512B来存储,这就是需要对容量进行外来扩展:

我们可以看到这是一个8脚的芯片,A1A0就是从器件地址,NC悬空,WP是写保护,接低的时候可以正常读写,接高的时候只能读,SCL和SDA就是I2C的两个脚,连上就行了!

  但是笔者的错误在于往器件写入从地址的时候,(此时A1和A0接低,从器件地址为0x00),从器件没有反应,网上有很多说法,比如坏了,或者时序乱了,我用的是实例程序,所以时序不可能错了,笔者之所有没有得到反应原来是忘记接上拉电阻,在SCL和SDA两个脚接上各3K的上拉电阻,,那么程序就运行正确了,但是记住这个的读写速度非常慢,读写16页的时间可能需要几秒钟,所以要耐心等待,不要误认为是死在程序里面了,虽然这个问题听起来容易,但是实实在在是困惑了笔者一个多星期,希望有和笔者一样的,能够少走弯路!

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值