找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

帖子
查看: 5312|回復(fù): 15
打印 上一主題 下一主題
收起左側(cè)

日差1秒之內(nèi)的單片機(jī)時(shí)間鐘方案

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:123289 發(fā)表于 2021-3-31 10:25 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
理論上只要是用晶振作為時(shí)基的單片機(jī)時(shí)間鐘,在常溫下做到日差1秒之內(nèi),甚至更精準(zhǔn)是應(yīng)該極易達(dá)成的。
只是許多人并不知道如何達(dá)成這個(gè)目標(biāo)的方案。
而且市面很多帶單片機(jī)的產(chǎn)品中,時(shí)間都做不準(zhǔn),這絕對(duì)是設(shè)計(jì)問(wèn)題。例如:我的車子上的時(shí)鐘日差有10秒多。
一般大多數(shù)人所設(shè)計(jì)的定時(shí)器時(shí)常是根據(jù)晶振標(biāo)出的數(shù)據(jù)(如12M)計(jì)算而成的,固定不變,設(shè)計(jì)呆板。但普通晶振的實(shí)際振蕩頻率是不可能與標(biāo)出的數(shù)據(jù)完全相同的,例如:12.00043M,11.99985……,這個(gè)誤差必然積累,所以時(shí)鐘就不準(zhǔn)了。另外也絕大多數(shù)設(shè)計(jì)沒(méi)有考慮微調(diào)方案,對(duì)于日差幾秒無(wú)法控制。
日差1秒要求的精準(zhǔn)是:1秒/(24小時(shí)*60分*60秒),對(duì)應(yīng)12M晶振,當(dāng)頻率是12.000014M或11.999986M,日差就有1.2秒,可見用普通晶振做的時(shí)間鐘,會(huì)因精度不夠,如果不采取修正措施,時(shí)鐘日差10多秒是很普遍的。
在我設(shè)計(jì)的有單片機(jī)時(shí)間產(chǎn)品中,隨機(jī)取10個(gè),同時(shí)上電,3天后再看時(shí)鐘,它們之間的最大時(shí)間誤差,一般都不會(huì)超出1秒(普通晶振,不聯(lián)網(wǎng))。許多產(chǎn)品月差在1秒之內(nèi)。
如何做到的呢:
1、將時(shí)間的定時(shí)中斷時(shí)常數(shù)做成可修正的,且加入微調(diào)常數(shù),定時(shí)時(shí)常數(shù)與微調(diào)時(shí)常數(shù)在FLASH中取得。微調(diào)時(shí)常數(shù)用于修正時(shí)常數(shù)的小數(shù)點(diǎn)之后的部分。
2、程序可以對(duì)某端口輸入的秒脈沖再進(jìn)行計(jì)算,并據(jù)之修正定時(shí)器的時(shí)常數(shù),以及微調(diào)常數(shù),并存入FLASH中。達(dá)成利用外部精準(zhǔn)脈沖源對(duì)時(shí)鐘進(jìn)行校準(zhǔn)的目的,說(shuō)白了,就是用外校消除普通晶振的個(gè)體差異。同時(shí)程序也可以輸出自己的秒脈沖,這樣就可以達(dá)成產(chǎn)品之間的互校。
3、選擇一個(gè)產(chǎn)品,對(duì)其時(shí)鐘進(jìn)行精確校準(zhǔn)(這需要外部精準(zhǔn)的時(shí)鐘源。如果手中沒(méi)有,可以多花點(diǎn)時(shí)間,用手機(jī)、電視、廣播上的報(bào)時(shí)進(jìn)行校準(zhǔn)),這樣就可以將它做成一個(gè)自己的【標(biāo)準(zhǔn)秒脈沖時(shí)鐘源】。
4、產(chǎn)品出貨前,用自己的【標(biāo)準(zhǔn)秒脈沖時(shí)鐘源】校一下(將輸出的標(biāo)準(zhǔn)秒脈沖送入其它產(chǎn)品的校準(zhǔn)端口,讓其它產(chǎn)品自動(dòng)完成定時(shí)器時(shí)常數(shù)及微調(diào)常數(shù)的修正。)
如此處理,時(shí)間鐘的精度就取決于晶振的穩(wěn)定度,而不是精度。而晶振的穩(wěn)定度普遍可以達(dá)到PPM級(jí),當(dāng)環(huán)境溫度變化不大時(shí),極易保證<11.57PPM,這就達(dá)成了日差小于1秒的目的。
產(chǎn)品相關(guān)時(shí)間基準(zhǔn)的程序:(只提方案,不提程序代碼。)
1、將端口輸入的秒脈沖與本體的晶振頻率進(jìn)行比對(duì),計(jì)算出定時(shí)器的時(shí)常數(shù)與微調(diào)時(shí)常數(shù)。(只做一次即可,計(jì)算結(jié)果保存到FLASH了,其最初值是按晶振的標(biāo)稱值計(jì)算確定的)
2、時(shí)間微調(diào)補(bǔ)償
3、秒脈沖輸出(用于互校,可以放棄不寫)
要點(diǎn):定時(shí)器的時(shí)常數(shù)不是程序直接賦值,而是從FLASH中調(diào)取的。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏5 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:22266 發(fā)表于 2021-4-1 03:30 | 只看該作者
我以前也是自制過(guò)好幾個(gè)時(shí)鐘,一開始是用定時(shí)器的特別不精確一天差了數(shù)分鐘,程序怎么補(bǔ)償效果都不佳,我一直以為是電容或者晶振的溫飄導(dǎo)致的,而溫度補(bǔ)償?shù)脑捥^(guò)麻煩,后來(lái)就放棄研究了改用了DS3231,過(guò)了準(zhǔn)了很多,不過(guò)還是太理想一天誤差也有小幾秒,不知道是芯片來(lái)路不正還是什么原因,反正幾塊錢的那種.后來(lái)偶得一片被弄掉了一個(gè)角的殘缺ds12c887,于是到論壇里面找程序,這貨居然是好的,盡管外表破舊不堪,神奇的這個(gè)有瑕疵的ds12c887居然非常精確連續(xù)幾天都不差一秒.
看了樓主的文章,突然茅塞頓開,有時(shí)間也去測(cè)試下,畢竟你這個(gè)方法是最省的.
回復(fù)

使用道具 舉報(bào)

板凳
ID:433029 發(fā)表于 2021-4-1 07:51 | 只看該作者
以前用內(nèi)部RTC做了一個(gè)時(shí)鐘,校正了,拿回老家就不準(zhǔn)了,老家溫度很低0度左右,后面改用GPS定時(shí)校正。
回復(fù)

使用道具 舉報(bào)

地板
ID:824490 發(fā)表于 2021-4-1 09:18 | 只看該作者
高穩(wěn)時(shí)鐘,溫補(bǔ)晶體了解一下,并不是很貴,
此款為溫補(bǔ)貼片晶振 TCXO 3.2x2.5mm 4腳 DSB321SDN 1XTW24000MDA 24.0000MHZ 1.8V-3.3V 供電 寬溫 -40-85 ℃ 高穩(wěn)定性 高精度 +-0.5ppm 是您通訊設(shè)計(jì) 移動(dòng)設(shè)備 藍(lán)牙 GPS 等接收信號(hào)的 好選擇。KDS 進(jìn)口品牌 DSB321SDN 正弦波輸出 振幅 0.8VPP-1.0VPP

回復(fù)

使用道具 舉報(bào)

5#
ID:746422 發(fā)表于 2021-4-1 15:45 | 只看該作者
日差1秒,這個(gè)誤差已經(jīng)是很恐怖的了,一個(gè)月就30秒,2個(gè)月1分鐘,半年3分鐘,一年6分鐘。
回復(fù)

使用道具 舉報(bào)

6#
ID:155507 發(fā)表于 2021-4-1 18:12 | 只看該作者
影響晶振精準(zhǔn)度的各種因素
晶振的精度是采購(gòu)選購(gòu)晶振時(shí)候最重要的一個(gè)參數(shù),單位是PPM,精度不僅決定了晶振的價(jià)格,也決定了是否符合你產(chǎn)品的技術(shù)參數(shù),一般常用的精度值為20PPM。那么,哪些因素會(huì)影響晶振精度頻率誤差?松季電子具體介紹如下。
  盡管一個(gè)石英晶體振蕩器的頻率精度是±20ppm,但可能會(huì)因?yàn)殡妷鹤儎?dòng)有±1ppm的影響,焊接溫度有±5ppm的影響,機(jī)械震動(dòng)與沖擊有±3ppm的影響,溫度范圍可能有±5-20ppm的影響等等。這些都是十分常見的影響精度的因素,必須考慮進(jìn)去,但石英晶體振蕩器廠商卻只告訴客戶產(chǎn)品的精度是±20ppm,事實(shí)上,實(shí)際應(yīng)用環(huán)境中精度可能只能達(dá)到50ppm。因此,客戶需要50ppm精度的時(shí)候,選擇了20ppm的石英晶體振蕩器是正確的。
  晶振的精度對(duì)于產(chǎn)品的選型是至關(guān)重要的,找準(zhǔn)你要的精度,松季電子提醒各位采購(gòu)商選型的時(shí)候盡量和供應(yīng)商提出你們做什么產(chǎn)品的,這樣供應(yīng)商可方便的為您找出適合您產(chǎn)品的精度。

回復(fù)

使用道具 舉報(bào)

7#
ID:47286 發(fā)表于 2021-4-1 20:21 | 只看該作者
直接上GPS信號(hào)讀吧 反正哪天要是沒(méi)GPS信號(hào)肯定是出大事了 咱這小百姓也沒(méi)工夫弄片子 得先忙活活著吧

不過(guò)樓主這技術(shù)顯然是很牛的 佩服
回復(fù)

使用道具 舉報(bào)

8#
ID:517951 發(fā)表于 2021-4-4 08:15 | 只看該作者
DS12887基本可以達(dá)到這一要求,我做了5個(gè)單片機(jī)時(shí)鐘都是這個(gè)IC,精度還不錯(cuò)。
回復(fù)

使用道具 舉報(bào)

9#
ID:469589 發(fā)表于 2021-4-4 13:25 | 只看該作者
不錯(cuò)的思路,如果再加點(diǎn)溫度補(bǔ)償,就很容易作成“高精度”時(shí)鐘源了,例如高速采集的時(shí)標(biāo)、校時(shí)等用途。
回復(fù)

使用道具 舉報(bào)

10#
ID:469589 發(fā)表于 2021-4-4 13:27 | 只看該作者
很好的思路,如果再加上點(diǎn)溫度補(bǔ)償,就可以很輕松成為“時(shí)鐘標(biāo)準(zhǔn)”了,
可以廣泛用到高速采集時(shí)標(biāo)或同步控制等方面。
回復(fù)

使用道具 舉報(bào)

11#
ID:746422 發(fā)表于 2021-4-4 19:52 | 只看該作者
rayin 發(fā)表于 2021-4-4 08:15
DS12887基本可以達(dá)到這一要求,我做了5個(gè)單片機(jī)時(shí)鐘都是這個(gè)IC,精度還不錯(cuò)。

似乎這個(gè)芯片很貴,用DS3231它不香嗎?
回復(fù)

使用道具 舉報(bào)

12#
ID:420836 發(fā)表于 2021-4-5 04:06 | 只看該作者
要制作準(zhǔn)確的實(shí)時(shí)時(shí)鐘,不僅需要精確的實(shí)時(shí)時(shí)鐘芯片(例如DS3231),還需要具有溫度補(bǔ)償功能的精確晶體。 +/- 20ppm的晶體每小時(shí)可能漂移高達(dá)72mS,或者每天漂移1.7秒。 如果系統(tǒng)具有通過(guò)Internet或GPS進(jìn)行自動(dòng)時(shí)間調(diào)整的功能,則可能會(huì)獲得優(yōu)于每天1秒的精度。
回復(fù)

使用道具 舉報(bào)

13#
ID:883242 發(fā)表于 2021-4-5 14:13 | 只看該作者
用JJY60或者BPC68.5自動(dòng)校準(zhǔn)好了。GPS室內(nèi)無(wú)信號(hào),室外天線又怕被雷劈。
回復(fù)

使用道具 舉報(bào)

14#
ID:3212 發(fā)表于 2021-4-5 15:39 | 只看該作者
rayin 發(fā)表于 2021-4-4 08:15
DS12887基本可以達(dá)到這一要求,我做了5個(gè)單片機(jī)時(shí)鐘都是這個(gè)IC,精度還不錯(cuò)。

887的精度是不錯(cuò)!就是體積太大了……
回復(fù)

使用道具 舉報(bào)

15#
ID:3212 發(fā)表于 2021-4-5 15:44 | 只看該作者
一生最愛(ài) 發(fā)表于 2021-4-4 19:52
似乎這個(gè)芯片很貴,用DS3231它不香嗎?

是的!887精度可以,就是太貴了,還是并行接口,耗費(fèi)I/O口,都不如3231,RX8025
回復(fù)

使用道具 舉報(bào)

16#
ID:344848 發(fā)表于 2024-4-25 18:10 | 只看該作者
時(shí)鐘芯片DS12C887可以解決上述問(wèn)題
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表