导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→初学者:双CPU怎样安全共用EEPROM?[djrwww]

 *第5843篇: 初学者:双CPU怎样安全共用EEPROM?

  
楼 主:djrwww 2002年10月31日00:15
 初学者:双CPU怎样安全共用EEPROM?
系统的一部分电路是这样:两片89C52共接一片ATMEL 24C01A,即89C52A的P1.5和89C52B的
P2.7接到ATMEL24C01A的SCL上,89C52A的P1.4和89C52B的P2.6接到ATMEL24C01A的SDA上,
89C52A的P1.3接到89C52B的P2.3 . 
    该部分电路工作原理:89C52A大约每40秒把一字节数据存到24C01的00H地址,然后通过
P1.3产生一负脉冲送到89C52B,89c52B的P2.3检测到信号后读取24C01的00H地址的数据显示。
    测试出现的问题是:偶尔会出现89C52A写不进24C01,而且机率约10%,请问各大侠我该
如何才能消掉这错误?
  
2楼:hyhmh 2002年10月31日08:34
 注意24Cxx读写寿命有次数限制,当然你眼前的问题应该是软件配合不完善
  
3楼:chessman 2002年10月31日11:53
 硬件可能有错误
按照以下步骤试一下?
   1.单独用89c52A独立对ATMEL 24C01A进行操作,应保证没有错误,对89c52B也
     须进行独立的测试.应保证测试无错误.
   2.89C52A的P1.5和89C52B的P2.7接到ATMEL24C01A的SCL上,这样的连接可能有
     问题.因为当89C52A的P1.5对24C01A的SCL操作时,如何保证89C52B的P2.7的
     电平状态不会影响SCL的状态? 所以,彻底的解决方法是89C52A的P1.5和89C52B
     的P2.7都经过三态门控制器连接到SCL,对SDA的连接也一样.这样的话,当
     8952A对24C01A的SCL操作时,8952B放弃该控制线(使它成为高阻状态).
     
  
4楼:djrwww 2002年11月1日00:28
 chessman你好!请进.
   1, 按步骤1对ATMEL 24C01A进行连续写入,读出,校验操作,在IC不动的情况下两片CPU分别操
作都是完全正确.(不下千次)
   2. 至于步骤2,由于硬件资源不足只能请教解决的软件办法.
  
5楼:chessman 2002年11月4日10:20
 这样试一下
   可以试一下,不知道行不行:
    
      当CPU-A对24CXX进行访问时,控制CPU-B对应的控制脚,使它为输出脚,并
  且为高电平。结果是:当两个CPU输出同时为高电平时,24CXX引脚为高电平;
  当CPU-A为低电平时,24CXX引脚为底电平。反之亦然。
      这样做,实际上相当一个二输入的与门。不占用CPU资源情况下,硬件上,
  加一与门(或者有富裕的与门),可能是比较好的解决方法。
   
  
6楼:1aogu 2003年1月30日12:50
 我的观点!
两个单片机只要保证在对24C01操作完后处于空闲(高电平)状态,就不可能互相影响!所
以,我怀疑这位老兄的程序中可能忽略了这一点!
  
7楼:wandercloud 2002年11月4日11:09
 ATC24XX应注意的一个很关键的问题
当对AT24CXX系列进行一次写操作后,对第二次写入中间必须延时大约10ms,每一次写入可
以对应答信号进行检测
  
8楼:a12345678 2003年1月30日18:36
 总线冲突,可以在两个CPU之间增加一根联络线,用软件判断解决

>>>>>>对该主题发表你的看法

本主题贴数8,分页: [第1页]


[上一篇主题]:C51编程:为何keil7.01中的C51的VER是5.01???

[下一篇主题]:硬件:mcs51的I/O口的电流流向