|
今天准备测试一下板上的EEPROM存贮器,突然发现原来硬件设计上出现了问题,分析如下:
板上焊接了两片24C16,16是2K的芯片,而我们都知道本来对于24C系列芯片是用片外的A0-A2来进行片选的,但是这种片选有个前提就是只有对256字节的才用三个片选,对于512字节,A0无效,对于1K字节A0和A1无效,对于这个2K的芯片,所有的外部片选无效,因为已经达到了这种寻址方式的上限了,所以板上在一条I2C总线上不能够同时挂超过一片的24C16,从电路图来看,设计人肯定连这个基本情况都没注意,竟然搞了两片16焊在同一个总线上!而且把A0两片分别接地和电源,他认为这样可以分开两个芯片,但实际根本就不是这么回事,也就是说,访问的时候,两个芯片其实是被同时访问到的!
也许我们在设计程序的时候感觉不出来,但是根本就无法分开使用!
在这里提两个方案来解决,一是去掉一片24C16,去那一片都行;第二个方案是换成24C32以上的芯片,因为从32开始改变了地址方式,由原来的11位地址变成了19位地址,所以24C32以上又可以使用这种方式寻址了。但必须两片都换掉!
在这里问一下阿莫,你邮购部里面能不能进一批24C32(当然最好是256或者是512),我们这些买过这东西的重新买一下存贮芯片来更换一下。当然不要超过512,呵呵,否则又出现原来的问题了(地址冲突了!) |
阿莫论坛20周年了!感谢大家的支持与爱护!!
一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
|