DS1302调试心得.docx
《DS1302调试心得.docx》由会员分享,可在线阅读,更多相关《DS1302调试心得.docx(2页珍藏版)》请在第一文库网上搜索。
1、DS1302作为目前广泛使用的实时时钟芯片,在很多场合都得到了应用。所以在我开发的这套电池管理系统中,同样采用了DS1302实时时钟芯片来作为整个管理系统的时钟参考。我的管理系统的主控制芯片选用的是F2812o下面就DS13O2的性能指标结合我在调试中遇到的问题和解决方案做一个综合:1、首先是DS13O2的规格,有八个管脚,VCC1作为后备电源,VCC2作为主电源。一般情况下,只有VCC2VCC1+O.2V的时候主电源才开始工作。在主电源掉电的情况下,后备电源一马当先。三个控制端口,分别是SC1K(时钟)、IO(数据)、RST(复位)。关于在三个控制端口,有人说需要加上拉,有人说不需要。我认为
2、在要考虑你所采用的控制器的端口是否有拉电阻。如果有拉电阻,可以不加。比如我采用的F2812的IO口,内部有上拉,所以我没有加入上拉电阻。但是如果条件允许,加上拉电阻(一般10K)会更保险一些。还有晶振X1和X2,一般情况下采用32768Hz的晶振,晶振的精度和时钟的精确程序是有很大关系的。所以尽量选用好一些的晶振。另外关于是否串入电容的问题上,我认为不加电容的精度会稍微差一些,在搭电路的时候,可以尝试采用1pF10pF的电容,看看时间是不是更准确一些。2、DS1302内部有31*8b的数据RAM和10*8b的时钟数据位。前面31*8b的RAM空间,我认为可以储存一些需要暂存数据,比如说在调试D
3、S1302的时候,为了防止每次启动系统的时候,时钟都进行初始化,这有时候是我们不希望的(毕竟我们想看到当前的时钟信息)。所以我们可以在RAM里面植入标志位,每次启动系统的时候就去识别这个标识位来判断是否进行初始化(当然标志位不丢失的前提是后备电池依然在工作,不然RAM就不能保存数据了)。3、另外在2中所提到的初始化的问题,除了2中的解决方法外,还有一种方法。就是通过读秒寄存器的最高位CH,如果最高位为HIGH,那么说明需要初始化,否则禁止初始化。4、另外在每次进行初始化或者要往RAM中写数据的时候,必须关闭写保护,即置CONTRO1寄存器的最高位WP为0,写完后要记得关闭WP,禁止写入。5、另外我觉得DS1302的时序是导致调试成功与否的关键,这里我不多说了,引用一位哥们的关于时序的总结:Write时,master先准备好数据,然后上升沿锁存进1302。read时,先下降沿通知1302准备好数据,然后再读I。(提示一下,DS1302有一些时钟芯片是国产的,所以时序有可能跟英文的datasheet不一样之处)。6、另外写入时钟初始值时最好从秒开始写入。读当前时钟信息是则从年、天等开始读,最后读秒。以上是自己的一些理解,有不当之处还望各位同仁不吝赐教,另外遇到什么问题可以共同学习,QQ:316138771最后给出一幅图,希望大家调试过程中不管遇到什么问题,都不要放弃,一定可以成功的。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DS1302 调试 心得