做了不少时钟了,
液晶的、LED点阵的、辉光管的,越做 越感觉想把时钟做好真难。
液晶的...算了,做得人太多太多,玩不出什么花样了...
LED的...算了,审美疲劳了...
辉光管的...管子越来越难找,玩不长了...
............................................................
前阵子弄了几块
VFD的屏(三星的原装点阵屏168*18分辨率),想了想,还是折腾时钟吧,发挥一下点阵的优势,又汇集了一下做辉光钟的时候一些朋友的建议和这段时间的一些想法,
DIY了一个精准的VFD点阵动态日历时钟,并且集成了GPS模块用于校对时间,内置±2ppm的带温度补偿晶体的RTC模块,一年校对一次的情况下误差小于2分钟/每年。 视频在这里: (视频说明:时钟开机时的时间是不准确的,然后放在窗边GPS校时了以后,跟标准的北京时间做比较。一共进行两次) (土豆的)
http://www.tudou.com/programs/view/Z9rv0-fLBR4/ flash: http://www.tudou.com/v/Z9rv0-fLBR4/&rpid=82079050/v.swf 还是先SHOW一下照片:
时钟最重要的也是最基本的功能我认为是准确度。如果一个时钟不准,误差大,那么外表再漂亮也仅仅是一个装饰物,不具有太大的使用价值。有很多朋友应该都有DIY时钟的经验,时钟准不准靠的是我们常说的晶振,也就是石英晶体谐振器,标准应该是
32.768KHz。(当然,最准的是铯原子或铷原子钟,那个准确度是小数点后几十个零,它不是用的石英晶体,也不是我们民用用的了的精度,当然也不是我们民用能接受的价位,我们在这儿就不讨论了。) 但是为什么有些精度很高的晶振(我以前用过日本CITIZEN的精度为±5PPM的晶振),做出来的时钟,还是不那么准确呢,甚至一个星期就差了10秒钟?这就有一个大家容易忽略的问题在里面,我简单说说:
一般32.768KHz的石英晶体常见的体积有3x8mm\2x6mm两种大小,圆柱形,两个脚,所谓的精度ppm是一个相对变化的量,
1ppm指的是百万分之一,也就是相对于标称频率的变化量。晶体其实在电子时钟系统里面就是一个时钟源,它有两个重要指标,一个是稳定度,一个是准确度。准确度指的是与标称值的偏差,稳定度值得是随着外部因素的变化而产生的变化量。
所以ppm越小越好。
有点绕,呵呵。简单点儿吧,一般晶振的标称频率是在25℃±5℃的取值,也就是说如果我们做的时钟能够时刻工作在25℃的温度环境内,用一只准确度高的晶振,那么时钟会是非常准的。但是我们的时钟放在室内,室内温度又经常发生变化,所以温度变化以后,晶体的准确度也会发生变化,这叫温飘,有了温飘,自然时钟就会要么快,要么慢了。
估计有兄弟会问了,那用晶振就没法准吗?这倒不是,有几个办法:
1、
让晶振工作在接近准确值的温度范围内(比如我们常见的石英表,它内部的晶振都校正在35℃准确值,也就是说我们只要把它戴在手腕上,它的工作温度几乎都维持在35℃,相对会很准确。当然,有些很牛的石英表不戴在手腕上也会准
)。
2、
用外围电路去根据环境温度去补偿温度偏差给晶振带来的误差(这就叫温度补偿,我们常说的温补)。
所以我这次设计的VFD点阵时钟用了一颗达拉斯的内置温补晶振的RTC时钟芯片-DS3231,官方数据是
±两分钟/每年的误差。对于我们民用来说,已经很准了,起码比DS1302+32.768KHz的晶振要准确很多。
看一下设计的电路板,有个宽的16脚的IC,那就是DS3231。当然,旁边还是有一颗用于维持掉电走时的锂电池:
这次的PCB电路板是完全根据VFD屏的宽度来设计匹配的,而且4颗螺丝的孔位一一对应,这样方便连接。并且数据接口的位置,也跟VFD屏的数据接口位置毫厘不差。
整个时钟采用5v供电,有两个电源接口。
1、MINI USB接口,可以直接用常用的MINI USB数据线给时钟充电或供电。 2、DC3.5/1.7的常见直流接口,可以给时钟充电或供电。 再SHOW一下空板全貌:
PCB上所有的器件都是自己多年来积攒下来的自己比量着绘制的元器件封装库,精度不用说了,呵呵,准确度的确很好,毫厘不差。
记得上次有个兄弟说我的时钟还要用个遥控器控制,画蛇添足,呵呵,这次我就保留那只足,但是也把按键给做上。
再看一下全部焊好元器件的全貌,可能有朋友要问,怎么这么多器件?看完图我再介绍功能模块:
上面这张图是板子的全貌,其实如果只是一个简单的时钟的话,洞洞板+89s,足够用。
那么主要考虑到这几点,所以增加了很多电路部分:
1、锂电池保护电路。由于设计这个时钟打算在没电的时候采用锂电池供电,所以锂电池必须要有硬件的充放电保护,也就是我们常说的锂电池保护板,虽然锂电池保护板跟白菜一样,但是对于一般市售的锂电池保护板或者劣质手机电池里面带的保护板不放心,还是自己折腾一个,用的精工的锂电池保护芯片+台湾的MOS管两颗,保证100%可靠过充过放保护。
2、锂电池充电管理电路。因为用了锂电池,所以锂电池充电要搞好,锂电池充电我就不罗嗦了,与镍氢镍镉电池不同,不是随便加上个电压就能充电。锂电池要想寿命长,充电管理一定要做好,具体的我就不罗嗦了,专用的锂电池充电管理电路,会根据锂电池当前的状态(预充、恒流、恒压)调整充电过程,而且会跟MCU通讯,系统会时刻了解当前的电池的电量状态,以及充电时是否充满。(等会儿视频上会有充电的时候VFD点阵屏显示的状态变化)。
3、高效率DC-DC升压电路。为什么要这个电路呢?因为VFD屏以及一些其他IC需要5v的工作电压,所以锂电池的电压3.6-4.2v要随时输出稳定的5v。有些朋友可能会讲,简单,用MC34063等等就行啦,呵呵,效率,我觉得升压最重要的就是效率,一个好的升压电路和差的升压电路可能差几倍的价钱,当然,效率也会差好几倍。效率高了,电池用的时间会很长,效率低了,用再大容量的锂电池,一会儿也就放干了。这里做移动电源的朋友想必很多很多,我就不班门弄斧了,不过在高效率升压方面,在下的一个小公司做的很好,有空朋友们可以去支持一下(
http://www.mps-home.com)。这里也用的是其中的一个高效率方案,4.2v锂电池升5v,效率能达到90%。
4、DS3231时钟电路。内置了晶振,所以找不到外置的32.768khz了,与MCU通过IIC总线通讯,很可靠。
5、降压电路。主要是为了给MCU提供3.3v的工作电压,因为压差不大,所以效率不会低很多,直接用了一个小电流的LDO芯片搞定。
6、声音提示。蜂鸣器+三极管驱动,很简单。
7、红外线接收电路。红外线接收头+外围器件,直接与MCU通讯,很简单。
8、GPS模块接口电路。通过UART串口与MCU通讯。 9、温湿度传感器接口电路。红 剩下的就是一些按键、VFD屏数据接口、指示灯等等,忽略之... SHOW一下组装完成的样子(上次激光切割辉光钟亚克力板的时候连这个的背板一起做了一套,呵呵): 这是调试程序的时候的样子:
可能有兄弟要纳闷儿了,2分钟每年...也不是很准嘛。还要对时的,比较麻烦。
我们去哪儿看准确的时间呢?
一般我们就去
www.bjtime.com,或者简单点儿,直接在百度上搜“北京时间”,地址在这里
http://open.baidu.com/static/time/beijingtime.html,就会出现
国家授时中心的标准时间。 还有一个地方可以获取标准时间,那就是GPS卫星。
所以这次设计的VFD点阵时钟,就背了一个内嵌三代芯片的GPS模块。
想对时?很简单,把时钟放在窗户边上,3秒钟内,搜星、对时,全部搞定。
SHOW一下GPS模块,其实很小:
用
带双面胶的尼龙粘扣直接背在背板上,以后DIY别的东西想摘下来用在其他地方也很容易。
SHOW一下:
程序部分其实不难,主要分为几个部分:
1、I2C通讯部分。其实就是与DS3231通讯,获取时钟。这个不难,I2C通讯的时序也很经典,弄懂了也就写出来了这部分程序。
2、电池管理。包括充电管理与电池电量检测。电池电量要显示在VFD屏上,跟手机似的,电池充电状态和充满以后,在VFD屏上应该有相应提示。
3、声音提示。各种操作应该有相应的声音提示。
4、VFD屏驱动。这个部分是最繁琐的最难做的好的,因为我实现的是动态滚屏界面,而且最让人懊恼的是VFD屏这个模块不带字库,所有的东西都要自己写,所以很累。所有的滚屏都是自己写的算法实现的,并不是每幅滚屏界面都用字库去做。当然,这个也是锻炼C语言基本功的机会。
5、GPS通讯。GPS模块以前在开发工业项目的时候用过很多,标准的NMEA制定的协议,我们这里只取出来$GPRMC............命令就行了。在GPS对时的时候,我会显示出来GPS模块发来的所有数据,搜星完毕以后获取了正确的卫星时间,将锁定改时间并校准时钟。
具体详细操作请看视频。 这里先看一下相应的一些界面吧: 启动GPS... 搜星中... 在19点35分02秒600毫秒时,获取了正确的时间,并校准了本地时钟... 手动设置时钟界面...(本来不想做手动设置时钟功能了,有了GPS对时,还要它干啥?后来soso说万一哪天GPS卫星都掉下来了,起码还能调时间
)
既然做了漂亮的滚屏动态界面,当然少不了好看的字体。
这里一共做了
6种主要时钟的字体,在滚屏显示的时候效果各有千秋,有空朋友们可以去看看视频。
SHOW一下6种字体效果:
开机及关机画面... DIY是一种享受,享受的是过程,更是结果...... =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 软硬件设计:严泽远 QQ:6626209 WebSite:http://www.nixieclock.org E-mail:yanzeyuan@163.com 2011-01-30