本帖最后由 leebai_001 于 2011-11-15 09:02 编辑
1.你的DS1302是那个批次的。是1108或者1046吗?上面两个批次的某些芯片,在60度老化室,直接加电,无任何操作时序,不超过2小时,芯片会直接损坏。
2.DS1302的控制时序不是I2C,也不是典型的SPI。需要特别注意,连续读操作(地址不连续)时,I/O和CE的时序。简述一下连续读取操作时序步骤:相对于MCU而言,IO先配置为输出态,向DS1302写配置位,然后,转换为输入态,MCU获取数据,当所有位读取完毕后,注意此时DS1302处于输出态(高低电平不确定),一定要先让DS1302恢复到输入态后,才能重新置MCU为输出态,继续读取下一个地址的数据。结束段的时序不满足要求的话,两个IO口同时在输出态。通常情况下,会在I/O和MCU之间串一个电阻(I/O内部有对地的40K下拉,阻值不能太大)。
3.3棵控制线不应该接上拉,都应该为下拉,为什么?
I/O,SCLK 内部都集成了下拉电阻,不需要外接,CE需要外接下拉。我觉得DS1302只所以这么做,就是为了避免出现IO口都处于输出态的一种保护机制。 |