개요: DS1340 직렬 액세스 실시간 클록(RTC)은 애플리케이션에서 크리스털 및 온도 편차를 보상할 수 있는 소프트웨어 클록 캘리브레이션 기능을 제공한다. 이 애플리케이션 노트에서는 이러한 기능을 사용하여 타임키핑 정확도를 증가시키는 방법에 대해 설명한다.
레지스터 맵
DS1340의 제어 레지스터(어드레스 07h)는 FT/OUT 핀의 동작을 제어하고 원하는 클록 캘리브레이션을 프로그래밍하는 데 사용된다. DS1340의 레지스터 맵은 아래에 자세히 나와 있다.
표 1. 레지스터 맵
어드레스
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
기능
범위
00H
active-low EOSC
10 Seconds
Seconds
Seconds
00-59
01H
R/W
10 Minutes
Minutes
Minutes
00-59
02H
CEB
CB
10 Hours
Hours
Century/ Hours
0-1; 00-23
03H
R/W
R/W
R/W
R/W
R/W
Day
Day
01-07
04H
R/W
R/W
10 Date
Date
Date
00-31
05H
R/W
R/W
R/W
10 Month
Month
Month
01-12
06H
10 Year
Year
Year
00-99
07H
OUT
FT
S
CAL4
CAL3
CAL2
CAL1
CAL0
Control
08H
TCS3
TCS2
TCS1
TCS0
DS1
DS0
ROUT1
ROUT0
Trickle Charger
09H
OSF
0
0
0
0
0
0
0
Flag
출력 제어(OUT): 이 비트는 FT 비트를 제로로 설정할 때 FT/OUT 핀의 출력 레벨을 제어한다. FT = 0일 경우 OUT = 1이면 FT/OUT 핀의 로직 레벨은 1이고, OUT = 0이면 로직 레벨은 0이다.
주파수 테스트(FT): 이 비트가 1이면 FT/OUT 핀은 512Hz 레이트에서 토글한다. FT가 제로이면 OUT 비트는 FT/OUT 핀의 상태를 제어한다.
캘리브레이션 부호 비트(S): 이 비트의 로직 1은 RTC에 대한 포지티브 캘리브레이션을 나타낸다. 로직 0은 클록에 대한 네거티브 캘리브레이션을 나타낸다. 이들 비트의 동작에 대한 자세한 설명은 크리스털 캘리브레이션부분을 참조한다.
캘리브레이션 비트(CAL4 to CAL0): 이 비트들은 2진 형식으로 0 ~ 31 사이의 임의 값으로 설정할 수 있다. 이들 비트의 동작에 대한 자세한 설명은 크리스털 캘리브레이션부분을 참조한다.
일반적인 크리스털 동작
크리스털 발진기는 고정 주파수를 제공하는 가장 정교한 회로의 하나이다. RTC의 정확도는 주로 크리스털의 정확도에 의해 결정된다. 그림 1에서 보듯이 튜닝 포크 크리스털은 전체 온도에 걸쳐 포물선 모양의 주파수를 갖는다.
그림 1. 일반적인 튜닝 포크 크리스털 동작
크리스털 캘리브레이션
캘리브레이션 회로의 목적은 이 곡선을 위 또는 아래로 이동시켜 선택된 온도에서 제로 ppm (parts per million) 정확도를 달성하는 것이다. 이는 발진기 분배기 체인으로부터 카운트를 더하거나 빼는 방식으로 수행된다. 블랭킹되거나 (네거티브 캘리브레이션의 경우 빼거나) 삽입되는 (포지티브 캘리브레이션의 경우 더해지는) 펄스의 수는 제어 레지스터의 캘리브레이션 비트(CAL4:CAL0)로 로드되는 5비트 값에 의해 설정된다. 카운트를 더하면 클록 속도가 증가하고 (크리스털 곡선 위로 이동) 카운트를 빼면 클록 속도는 감소한다(크리스털 곡선 아래로 이동). 다음 그림은 포지티브 및 네거티브 캘리브레이션을 위해 클록이 어떻게 조정되는지 보여준다.
캘리브레이션 비트는 2진 형식으로 0 ~ 31 사이의 임의 값으로 설정할 수 있다. 제어 레지스터의 비트 5(S)는 부호 비트이다. S 비트의 1의 값은 포지티브 캘리브레이션을 나타내며 0의 값은 네거티브 캘리브레이션을 나타낸다. 각 캘리브레이션 스텝은 매 125,829,120 실제 32,768Hz 발진기 사이클(64분)에 대해 512 발진기 사이클을 더하거나 256 사이클을 뺀다. 이것은 캘리브레이션 스텝당 +4.068ppm 또는 -2.034ppm을 조정하는 것과 같다. 발진기가 정확히 32,768Hz에서 실행된다면 캘리브레이션 비트를 31씩 증가시키는 것은 매월 +10.7 또는 -5.35초(매월 +5.5 또는 -2.75분)를 나타낸다. 표 2는 캘리브레이션 레지스터에서 각 값에 대한 조정 크기를 나타낸다.
표 2. 캘리브레이션 조정 값
부호
캘리브레이션
조정
부호
캘리브레이션
조정
정확도 (ppm)
시간 (초/월)
정확도 (ppm)
시간 (초/월)
0
00000
0
0
1
00000
0
0
0
00001
-2
-5
1
00001
4
11
0
00010
-4
-11
1
00010
8
21
0
00011
-6
-16
1
00011
12
32
0
00100
-8
-21
1
00100
16
43
0
00101
-10
-27
1
00101
20
54
0
00110
-12
-32
1
00110
24
64
0
00111
-14
-37
1
00111
28
75
0
01000
-16
-43
1
01000
33
86
0
01001
-18
-48
1
01001
37
96
0
01010
-20
-54
1
01010
41
107
0
01011
-22
-59
1
01011
45
118
0
01100
-24
-64
1
01100
49
128
0
01101
-26
-70
1
01101
53
139
0
01110
-28
-75
1
01110
57
150
0
01111
-31
-80
1
01111
61
161
0
10000
-33
-86
1
10000
65
171
0
10001
-35
-91
1
10001
69
182
0
10010
-37
-96
1
10010
73
193
0
10011
-39
-102
1
10011
77
203
0
10100
-41
-107
1
10100
81
214
0
10101
-43
-112
1
10101
85
225
0
10110
-45
-118
1
10110
89
235
0
10111
-47
-123
1
10111
94
246
0
11000
-49
-128
1
11000
98
257
0
11001
-51
-134
1
11001
102
268
0
11010
-53
-139
1
11010
106
278
0
11011
-55
-144
1
11011
110
289
0
11100
-57
-150
1
11100
114
300
0
11101
-59
-155
1
11101
118
310
0
11110
-61
-161
1
11110
122
321
0
11111
-63
-166
1
11111
126
332
클록 오차 결정
캘리브레이션 값을 설정하기 전에 필요한 캘리브레이션 크기를 결정해야 한다. 제어 레지스터의 FT 비트(비트 6)가 설정되면 캘리브레이션되지 않은 512Hz 클록이 FT/OUT 핀(핀 번호 7)에 제공된다. 이 주파수는 애플리케이션에서 크리스털 발진기에 대한 주파수 오차의 크기를 결정할 수 있도록 한다.
예를 들어 FT 함수를 사용할 때 512.01024Hz를 읽었다면 이는 +20ppm 발진기 주파수 오차를 나타내며 -10(00 1010)의 값이 S 비트 및 5개 캘리브레이션 비트에 로드되어야 한다. 제어 레지스터에 값을 쓰면 프리스케일러가 삭제되고 이는 일시적으로 512Hz 출력에 영향을 미친다(FT/OUT 핀이 로우로 구동). 캘리브레이션 비트를 설정 또는 변경하더라도 FT/OUT 출력 핀의 주파수에는 영향을 미치지 않는다.
요약
DS1340의 새로운 캘리브레이션 기능을 사용하면 크리스털 발진기에 의해 제공되는 타임키핑 정확도를 향상시킬 수 있다. 이 기능은 온도 변화에 따른 자동 조정은 불가능하지만 정확도의 단계별 향상을 제공한다.