你这个问题 要看具体的数据容量 如果数据容量在芯片容量范围内 应该是可行的
但要注意的是 每一页的存储容量 是否一样 例如 24C16 与 24C32 每一页的存储容量 正好差一倍
IIC总线上有时会挂几个IC。
没有选中的器件SCL,SDA一定要释放掉,不能拉低(内部MOS管,或三极管)截止,否则会影响别的器件工作。
当总线为闲时为高电平。用万用表量5V,或3.3V 或0V,可确定总线没有工作。
工作电压不同的IC,IIC不直接连在一起,要加电平转换电路。
本想上传图片解说的,但是没法操作,谁能告诉我,为什么我发不了任何附件、图片,发帖页面上的菜单栏没有一项按钮是有作用的,我只能发纯文字内容。是我的等级不够高?还是我被限制了权限?希望懂的能告诉我一下
是的 我是这样理解的
24C32说明书里 是这样介绍的
DESCRIPTION
The Microchip Technology Inc. 24C32A is a 4K x 8 (32K
bit) Serial Electrically Erasable PROM.
中文理解是
描述
微芯科技公司的24c32a是一个4K×8(32K
bit)的串行电可擦除PROM。
在他的ADDRESS SEQUENCE BIT ASSIGNMENTS(地址序列位分配)里 如图中所表示的
本帖最后由 hankaifeng 于 2016-7-11 16:08 编辑
按照你的理解和说法 硬件设计应该如图中这样
然后寻址 程序应该是这样写
for(i=0;i<8;i++)//写8*8Mbytes
{
for(j=0;j<4096;j++)
{
write_byte_24C32a(0xa0|i);
write_byte_24C32a(j/256);
write_byte_24C32a(j%256);
write_byte_24C32a(data);
}
}
for(i=0;i<8;i++)//读8*8Mbytes
{
for(j=0;j<4096;j++)
{
write_byte_24C32a(0xa1|i);
write_byte_24C32a(j/256);
write_byte_24C32a(j%256);
write_byte_24C32a(data);
}
}
我只懂皮毛,不怎么懂。我的理解是像你画了8个24C32这电路图,为了能让单片机准确找到需要读写的芯片,就要在123脚用不同的电平来区分。8个芯片123脚电压分别是000,001,010,011,100,101,110,111。发送完器件地址后,再发送2个字节页面寻址,再发收或接收数据。是不是这样?
本帖最后由 wangji 于 2016-7-12 23:48 编辑
我的理解与您的理解不同。
4KX8 4K是寻址范围,8是8位bit 有4x8=32K存储单元
规格书中第8页
6.3 Contiguous Addressing Across Multiple Devices。
The device select bits A2, A1, A0 can be used to expand the contiguous address space for up to 256K bits by adding up to eight 24C32's on the same bus. In this case, software can use A0 of the control byte as address bit A12, A1 as address bit A13, and A2 as address bit A14.
引脚A0,A1,A2 只是片选端,8个24C32 连在总线上地址可以连续扩展到256K bits,在这种种情况下,软体可以使用控制字中的A0作为地址位A12,A1作为地址位A13,A3作为地址位A14。
atmel 缓存只有32byte,微芯的24c32 有8页 64byte,有较的写入速度。
页写入方法说明.一条写入指令可以输入8页 64byte的数据.