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页的时间可能需要几秒钟,所以要耐心等待,不要误认为是死在程序里面了,虽然这个问题听起来容易,但是实实在在是困惑了笔者一个多星期,希望有和笔者一样的,能够少走弯路!

你可能感兴趣的:(I2C和AT24C256的应用)