有个关于24C16的用法和大家求教
24C16和02除了地址片选的区别之外,最主要的就是读写方式的不同,但是始终没法理解。
24C16是页写的,比方说一页是16个字,就是说每写一次必须是16个字一起写进去。
而24C02是8个字的写,就是这个区别么?
16配合页地址操作是什么意思?
我的理解是bit0是读写指令,bit4-7是固定格式1010,bit1-3是页面地址,这个页面地址是什么意思?在存储器中0-15算是第一页,16-31是第二页,32-47是第三页。一次类推?
可否给我个语句,体现是配合操作的。
24c16不同于24c02之处在于,24c16是分页的,24c02的A0~A2脚是器件地址
24c16这3个脚没有意义 24c16的器件地址由 页地址的高三位代替了
你可以不要复制么!
既然这个能看的懂,那问题就解决了啊!
复制难道有问题吗?
没问题,对于哥这种一字不差的复制粘贴,俺也是醉了......
那人说的是精华,不复制就太浪费了!
呵呵 属本人愚钝 我说了很多 但是可能没有表达清楚,如果24C02和24C16都用字节写(byte write)功能,那么它俩的字节写时序是不是一样的?谢谢大哥
时序都是IIC通信,肯定是一样的,24C16有8个页,地址是16位
恩?那为啥24C16的手册上写得是128 pages of 16bytes,这不是说16K的有128页,每页16个字节么?
还有,哥有QQ没有,加个好友呗!
一页里面有128个小页,一小页的数据宽度为16
那你说的16k的里面有8个页,这又是怎么理解的,手册上貌似没有提到过
反正有8个页,16位地址的高三位为页的地址,3个位相当于8个地址,分配给8个页,再不明白的话不想啰嗦了!
哥,别这样啊!
你的座右铭也是“不要轻言放弃!”
就是因为3个为只能有8个地址,所以我不明白了
有8个地址就相当于有8个24C02,不说了!
这个是我的24C16的写数据程序:
void write_add(uint address,uchar date)
{
start(); //开始信号
write_byte(0xa0); //设备地址,高四位为1010,后三位为A2,A1和A0的硬件值,最低位为W(0)或R(L)
respons(); //响应函数
write_byte(address); //写数据地址,写到地址为address的地方去
respons();//响应函数
write_byte(date);//写数据
respons();//响应函数
stop();//结束信号
}
器件地址都是000(当然是没用的)
我在给256的地址写数据的时候,程序会自动写到地址0和地址256中,这是为什么啊?
哥们我跟你遇到的问题一模一样 也是感觉只能为访问到256而且会周期覆盖后面的 请问您解决这个问题没啊 求教!
