初级会员

- 积分
- 157
- 金钱
- 157
- 注册时间
- 2017-12-29
- 在线时间
- 50 小时
|
发表于 2018-2-5 20:35:30
|
显示全部楼层
(1)24C02、04、08、16的A2.A1.A0不一定就是器件地址,他们三个有可能被字地址占用了,比如说24C04它是4K的,包含512个字节,这样之前的8位字地址就不够了,占用了一个A0凑了9个位的地址来对512个字节进行寻址,对于2408,2416依次累加。
(2)没看过24WC02没看过,不过应该差不多,顶多是建立和保持时间不一样?
(3)看懂第一个基本这个就明白了,E2PROM的读写时序:起始位后跟的器件地址其实不一定是器件地址,对于2402是标准的器件地址,但对于2404它的A0位被字地址占用了,ReadAddr就是字地址,拿24C04打比方,ReadAddr/256就是把字地址的最高位提出来给A0了(凑成了器件地址),左移一位是给读写位留出位置。
(4)IIC_Wait_Ack()返不返回的没多大意思(我觉摸着返回值的作用就是为了退出那个while死循环。。。),但是不管是不是连续读写它都有存在的必要,因为AT24的时序要求有应答么。
关于24C32以上就去球的吧,估计我也用不上。 |
|