프로그램&회로

32768Hz 시간보정

엠칩 2025. 8. 19. 12:25

32768 Hz 의 클럭용 크리스탈을 많이 사용하게 되는데 이를 직접 측정하면 측정용 프로브의 기생 캐패시턴스로 인해 클럭이 틀어진다...

따라서 간접 측정을 해야 합니다.
MCU나 RTC칩에서 0.5Hz또는 1Hz로 클럭을 발생시키고..
이를 고정밀도 Frequency Counter를 이용해서 측정해서 오차를 구해야 합니다.

물론 Frequency Counter또한  캘리브레이션이 되어 있어야 하며,
상온에서 10일 이상 측정하여 오차를 기록해서 측정값에 반영해야 합니다.

 

⏱️ 대표적인 자체 보정 RTC IC

DS3231 Maxim
(구. Dallas)
TCXO(온도 보상형 크리스탈 오실레이터) 내장으로 ±2ppm의 고정밀도.
자동 온도 보정 기능 포함.
Aging Offset Register : 0.1ppm단위 보정 가능
ISL1208
ISL12022
Renesas
(구. Intersil)
온도 보정 기능 및 EEPROM 내장. 저전력 설계.
±20/40/60ppm digital trimming
RV-8803-C7 Micro Crystal built-in “Tuning Fork” crystal, 
초저전력(240nA),  온도 보정 기능 포함.
±1.5 ppm 0 to +50°C / ±3.0 ppm -40 to +85°C / ±7.0 ppm +85 to +105°C
X1226 / X1243 Xicor
(Intersil 계열)
EEPROM 내장, 온도 보정 기능 포함.
±10/20/30ppm digital trimming

여기서 특이한점은 ISL1208은 20ppm, X226은 10ppm단위로 아주 거친 트리밍을 하는데...
10ppm일 경우 하루 ±0.86초, 20ppm일 경우 하루 ±1.73초로 너무 큰 수치입니다.

 

📏 DS3231 정확도 및 오차

사용 온도범위 정확도 (ppm) 하루오차 연간오차
0°C ~ +40°C ±2 ppm 약 ±0.17초 약 ±1분
-40°C ~ +85°C ±3.5 ppm 약 ±0.3초 약 ±2분
  • 2 ppm은 1백만 분의 2의 오차를 의미하며, 하루 86,400초 기준으로 약 0.17초의 오차가 발생합니다.
  • 연간으로 환산하면 약 1분 이내의 오차이며, 실제 사용 환경에서는 수 초 수준의 오차만 발생하는 경우도 많습니다.

 

1ppm은 1초 오차가 1,000,000초 중 1초일 때를 의미합니다.
제경우 MCU를 사용할 경우 하루 0.6초를 목표로 보정하는 경우가 대부분인데... 6.94ppm으로 연간 약 3분입니다.
참고로 1/32768 만큼 오차가 발생한다면  0.000030517   30.52ppm이 됩니다.

 

DS3231은 **aging offset register (0x10)**를 통해 보정이 가능합니다.

1. Aging Offset Register 사용

  • 이 레지스터는 ±127 범위의 signed 값으로, 1단위당 약 0.1ppm 보정 효과가 있습니다.
  • 예: 7ppm 오차를 보정하려면 aging offset = ±70 정도로 설정.

// 예시: I2C로 aging offset 설정
Wire.beginTransmission(0x68); // DS3231 주소
Wire.write(0x10);             // Aging offset 레지스터 주소
Wire.write(70);               // 보정값 (예: +70)
Wire.endTransmission();

2. 소프트웨어 보정

  • 만약 aging offset으로 충분한 보정이 어렵다면, MCU에서 주기적으로 시간을 보정하는 방식도 고려할 수 있습니다.
  • 하루에 0.6초 느리면, 매일 +0.6초를 추가하는 방식으로   0.6초를 추가하면 초단위로 틀어지는게 느껴질수 있기 때문에..
    이경우 한시간에 0.025초만큼 연산을 추가하는것이 좋습니다.

3. 환경 요인 확인

  • DS3231은 온도 보정 기능이 있지만, 극한 온도나 전원 불안정이 있을 경우 오차가 커질 수 있습니다.
  • 전원 안정성, 주변 온도 등을 점검해보는 것도 중요합니다.

 

그외 시간을 정확하게 보정하기 위한 방법으로...

1. GPS수신기 이용... 뭐 두말 할 필요없이 아주 정밀하게 조정됩니다. 루비듐 또는 세슘을 사용한 원자시계가 내장되어 있으며, 수십 나노초 단위 오차를 갖습니다.  이 또한 일정 주기로 보정되는 것으로 알고 있습니다.

2. 60Hz 상용전원 주파수를 측정하는 방법.. 순간순간 측정하는 위상오차가 발생하지만, 수초 이내 마다 자동조정되어 전국의 전력 그리드 망의 전력 주파수를 동기화 하고 있어서 매우 작은 오차만을 갖습니다.  하루에 수초 이내의 오차로 오래된 시계에서 많이 사용하던 방식인데.. 일반적으로 10ppm이하로 관리 되고 있다고 합니다.

    • 표준 주파수 : 60Hz이며,    허용 오차: ±0.05Hz 

  • 이론적 최대 오차: 주파수 편차가 ±0.05Hz로 지속적으로 한 방향으로 발생한다고 가정하면, 1일 동안의 누적 오차는 약 833ppm 또는 **0.0833%**입니다.

  • 실제 예상 오차: 전력망의 실시간 보정으로 인해 실제 누적 오차는 훨씬 작아, 10ppm 이하 (또는 0.001% 이하) 수준으로 추정됩니다.

 

 

 

반응형

'프로그램&회로' 카테고리의 다른 글

통신을 위한 hex 계산기  (0) 2025.09.19
VScode Copilot  (1) 2025.09.01
인공지능도 미칠 수 있다.  (2) 2025.08.13
생성형 Ai 비교  (1) 2025.08.11
시계  (0) 2025.07.25