加载中…
个人资料
NixieClock
NixieClock 新浪个人认证
  • 博客等级:
  • 博客积分:0
  • 博客访问:139,253
  • 关注人气:149
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

[DIY]DIY一块DS3231的高精度时钟模块,让时钟DS3231/DS1302自动识别

(2011-10-21 23:43:22)
标签:

辉光钟

荧光钟

辉光管

荧光管

电子钟

分类: IV-11荧光管电子时钟

水晶城堡在设计之初,采用全直插设计理念,保证玩家在自行DIY的过程中,不会因为焊接贴片元器件而烦恼。所以水晶城堡电路板上使用的所有原器件都是直插封装所有IC都是DIP封装
其中RTC模块采用的是达拉斯DS1302,配合5PPM的石英晶体
虽然水晶城堡的走时精度已经能满足一般需要,但对于追求高精度的用户来讲,DS3231SN才是最佳选择
DS3231SN最大的特点是:
1. 内部集成温度补偿晶体(TCXO);
2. 采用高速(400KHz)IIC通讯总线;
3. 工业级标准,工作温度-40℃至85摄氏度;
并且在0℃至+40℃的温度范围内,能够提供最大1分钟每年的计时精度。
所以DIY了一块使用了DS3231SN作为主要器件的高精度RTC模块。

其实在我的其他时钟上,用得都是DS3231SN这颗RTC芯片(比如我的QS18-12辉光钟YS13-3荧光钟LED点阵动画时钟等等),经过大量实践证明,温补晶振的准却度确实高。
虽然官方数据是±1分钟每年,但是实际我感觉在室内温度变化不大的情况下,能够做到20秒/年。

 

模块上集成了3.3V LDO模块,为DS3231提供工作电压。并且集成了稳压和上拉电阻。
该模块专门为IV-11荧光管电子钟【水晶城堡】设计,直接将DS1302摘下,将该模块装入即可。
装入后,MCU会自动识别当前的RTC模块是DS1302还是DS3231,并采用不同方式进行通讯并正确运行。

当然,这需要程序上做好相应的检测功能及相应的功能函数。

SHOW一下该模块的实物图片以及安装到水晶城堡电路板上以后的效果:

[DIY]DIY一块DS3231的高精度时钟模块,让时钟DS3231/DS1302自动识别

[DIY]DIY一块DS3231的高精度时钟模块,让时钟DS3231/DS1302自动识别

[DIY]DIY一块DS3231的高精度时钟模块,让时钟DS3231/DS1302自动识别

[DIY]DIY一块DS3231的高精度时钟模块,让时钟DS3231/DS1302自动识别

[DIY]DIY一块DS3231的高精度时钟模块,让时钟DS3231/DS1302自动识别


其实在自动识别方面,做起来也不难,需要在开机的时候检测一下是DS1302还是DS3231芯片

 

大致思路是这样:

1、需要一个全局变量,用于开机时存储检测结果,以便以后的操作识别是DS3231还是DS1302;

2、硬件上DS1302需要3跟I/O口,DS3231只需要两根;

3、开机瞬间,首先默认为DS1302,因为DS1302内部有RAM,所以可以选择2-3个字节进行写操作。写完以后立即读取内容,如果内容与写入的内容一致,则表示当前安装的是DS1302,否则即认为是DS3231。

 

经过反复测试,这个检测方法很好用。

 

其次是程序读写这两种芯片:

对于主函数来讲,对于获取时间和日期以及设定时间和日期,统统交给同一个函数来处理,在这个函数里面,再分别针对不同的芯片进行相应操作。

下面我贴出来我的获取时间日期和设定时间日期的函数。

鸡鸣狗盗而已,欢迎拍砖!

 

[DIY]DIY一块DS3231的高精度时钟模块,让时钟DS3231/DS1302自动识别

[DIY]DIY一块DS3231的高精度时钟模块,让时钟DS3231/DS1302自动识别

DIY是一种享受,享受的是过程,更是结果......

 

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

软硬件设计:严泽远

QQ:6626209

Mobile:18602007878

WebSite:http://www.nixieclock.org

E-mail:yanzeyuan@163.com


 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有