发表于:2006-11-23 11:51:00
楼主
时钟芯片是我刚开始接触硬件研发的时候就开始接触的。以前觉得单片机内部有定时器,用它来模拟时间不就好了,干嘛还搞的这么麻烦,但后来发现自己对时钟芯片的依赖性逐渐养成了。
51系列的单片机用过的人都有感觉,定时器是做不准的,除了定持常数会带来误差之外,它本身的硬件在执行的时候也是会带来一定误差的,也就是说,是芯片技术上的缺陷,那么用这种单片机来定时,定个几秒就得校准一次,那样一来,可有的好浪费时间和浪费脑细胞了。有了时钟芯片,程序执行时就有了时基,你可以读出时间,然后比较,完成自己要执行的程序,程序执行非常有秩序,浪费的资源也不多。何乐而不为?
时钟芯片用的最多的时Dallas公司的,不过似乎这个公司已经跟MAXIM合并了。搞不清楚。PHLIPS和其他几家公司也有,但都没有DS的名气大。
时钟芯片有串行和并行两种,DS公司的串行时钟芯片是DS1302为代表的,并行的是DS12887。众所周知,并行的浪费IO口,但速度快。我用过的时钟芯片有DS1302,DS1307。
既然没有用过并行时钟芯片,我就只对串行做以介绍。DS1302和DS1307是比较像的。但DS1307中的非易失性存储器比较大,有56Byte.DS1302中只有32Byte。同时1307中有一个可编程波形输出口,这个东西可以用来驱动LED小灯,也可以作为中断触发某些事件。非常好用。两种时钟芯片都是采用SPI串行接口进行时间的读取的,这种串行方式个人比较推崇,但PHLIPS的时钟芯片是采用I2C串行方式进行数据传输的,比起SPI,I2C还是有些搞人的,本人当初研究了一段时间,才把它搞透,不过似乎从标准来看,I2C可靠,不过我还没见过SPI出错,所以大家可以不要有任何的顾虑。
基本的东西网上都搜的到,我想讲的是自己在调试时发现的一些问题。首先是DS1302在使用双供电方式的时候常常会发热,这个原因不是硬件上的,而是软件上你没有使它内部的开关导通,所以电流不通,把芯片憋热了。所以在设置配置寄存器的时候你一定要使开关导通。
DS1307的可编程输出口是比较脆弱的,用它去带一些大功率的东西要小心,我有一次试图用它加三极管带蜂鸣器,结果直接性的这个口就被打坏了,不知道它是否是怕拉电流或灌电流。同时,我要提醒的是1307的非易失性存储器在断电的时候是会将信息丢失的,而按照非易失性存储器的概念,它应该是在断电后继续保留信息的,所以也许这个寄存器不能称为非易失性存储器吧。所以提醒哪位仁兄想用它来保存持久信息的,要小心了。
其实我也用过其他一些芯片,但总体觉得比较简单,所以不一一赘述,希望大家跟时钟芯片相处融洽,我反正是曾经被他们折磨的要死。