본 자료는
1. RTC 배터리의 소진 및 분리에 따른 문제 설명
2. IEC-Series 제품별 RTC 배터리 수명 소진 시 발생 현상
3. IEC-Series 제품별 RTC 배터리 소모량 (전류)
순서로 진행합니다.
1. RTC 배터리의 소진 및 분리에 따른 문제 설명
IEC-Series 보드 안에는 RTC 배터리(CR2032)가 장착되어 있습니다. RTC 배터리 수명 기간은 (3년~5년) 정도이며 제품 사용에 따라 RTC 리튬 배터리 수명 주기가 단축되거나 달라질 수 있으며
RTC 배터리 수명이 소진되거나 배터리가 분리되었을 경우 다음과 같은 증상이 발생할 수 있습니다.
1. 프로그램 동작 시 DateTime 관련 기능 접근 시 ArgumentOutOfRangeException 예외 발생
2. IEC-Series 제품 느려짐 현상
3. Windows Mobile Device Center 장치 연결 문제
4. 시간 틀어짐 현상
2. IEC-Series 제품별 RTC 배터리 수명 소진 시 발생 현상
제품명 |
OS 빌드 버전 |
PC ↔ 장치 연결 |
IEC-Series 제품 OS에서
느려지는 현상 |
시간 틀어짐 현상 |
IEC266 |
Window CE 5.0
[B15] |
연결 안 됨 |
발생함 |
발생함 |
IEC667 |
Window CE 6.0
[B24] |
연결됨 (간헐적 연결 안 됨) |
발생 안 함 |
발생함 |
IEC1000 |
Window CE 6.0
[B10] |
연결됨 (간헐적 연결 안 됨) |
발생 안 함 |
발생함 |
제품명 |
OS 빌드 버전 |
PC ↔ 장치 연결 |
IEC-Series 제품 OS에서
느려지는 현상 |
시간 틀어짐 현상 |
IEC266 |
Window CE 5.0
[B15] |
연결 안 됨 |
발생함 |
발생함 |
IEC667 |
Window CE 6.0
[B24] |
연결됨 (간헐적 연결 안 됨) |
발생 안 함 |
발생함 |
IEC1000 |
Window CE 6.0
[B10] |
연결됨 (간헐적 연결 안 됨) |
발생 안 함 |
발생함 |
※ IEC266-Series를 제외한 IEC667/1000-Series는 배터리가 수명이 소진되거나 배터리가 분리되어도 사용상에 문제가 없습니다.
※ OS 빌드 버전 기준 (2025년 09월)
3. IEC-Series 제품별 RTC 배터리 소모량 (전류)
제품명 |
RTC 소모량(전류) |
오차 범위(1년 기준) |
IEC667 |
4.5µA |
± 10분 이내 ※ 온도 조건에 따라 오차가 증가할 수 있습니다. (기준 온도는 22 ~ 28℃ 입니다.) |
IEC1000 |
5µA |
RTC 배터리 총 용량 : 255mA/h |
제품명 |
RTC 소모량(전류) |
오차 범위(1년 기준) |
IEC667 |
4.5µA |
± 10분 이내 ※ 온도 조건에 따라 오차가 증가할 수 있습니다. (기준 온도는 22 ~ 28℃ 입니다.) |
IEC1000 |
5µA |
RTC 배터리 총 용량 : 255mA/h |
※ RTC 배터리는 대략적으로 최소 5년이상 사용 가능하지만, 사용 환경에 따라 수명이 달라질 수 있습니다.
-
IEC266 한정 문제 해결 방법 (IEC667/1000 미해당)
+
-
• RTC 배터리의 소진 및 분리에 따른 문제를 해결하는 방법
1. RTC 배터리를 새로 교체하는 방법
2. 코드 상에서 해결하는 방법(아래의 예제 코드를 적용하여 문제가 발생하지 않도록 처리)
• 예제 설명 (코드 상에서 해결하는 방법)
RTC 배터리의 소진에 따른 RTC 값의 문제를 해결하기 위해서 시스템 RTC의 값을 확인하고 문제가 있을 경우 설정된 일자로 강제 설정하여 시스템의 동작에 문제가 없도록 설정하는 기능의 코드입니다. 아래의 소스 코드를 참고하시어 적용하시기 바랍니다.
-
C# 예제코드
-
소스 코드는 참고 및 학습용으로 버그 및 여러 가지 문제가 있을 수 있습니다. |
private void Form1_Load(
object sender,
EventArgs e)
{
// 프로그램이 실행하기 전 가정 먼저 처리해야 합니다. 따라서 Form1_Load
// 이벤트 앞쪽에서 처리하시기 바랍니다.
// RTC 배터리 소진 시 시스템 일자를 설정할 값으로 생성 및 정의
DateTime default_Seting =
new DateTime(2020, 11, 07, 10, 00, 00);
// RTC 시스템값 확인
if (SystemRTC_Check(smartConfigs1, default_Seting) ==
false)
{
// RTC 배터리의 문제가 있으므로 사용자에게 알려준다.
SmartX.SmartMessageBox.Show("RTC Battery Change");
}
}
// RTC 시스템 값 확인 첫번째 인자는 폼 디자이너에서 SmartConfig를 추가하고 추가된 smartConfig1를 적용합니다.
// 두번째 인자값은 RTC 배터리 소진 시 시스템 일자를 설정할 기본 날짜/시간값 정의
// 리턴값 : true → RTC 정상 동작, false → RTC 배터리 소진
private bool SystemRTC_Check(SmartX.
SmartConfigs pSmartConfigs,
DateTime defaultDatetime)
{
DateTime nowDateTime;
int iDateTime;
// 시스템 날짜 적용 가능 범위
int iMinDateTime = 19800101;
int iMaxDateTime = 20791231;
nowDateTime = pSmartConfigs.ControlPanel.GetSystemDateTime();
iDateTime = (nowDateTime.Year * 10000) + (nowDateTime.Month * 100) + (nowDateTime.Day);
// 시스템 날짜 적용 가능일 확인
if ((iDateTime < iMinDateTime) || (iDateTime > iMaxDateTime))
{
// RTC 배터리 소진에 따른 시스템 일자를 기본 날짜/시간값으로 설정
pSmartConfigs.ControlPanel.SetSystemDateTime(defaultDatetime);
return false;
}
return true;
}
-
VB 예제코드
-
소스 코드는 참고 및 학습용으로 버그 및 여러 가지 문제가 있을 수 있습니다. |
Private Sub Form1_Load(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles MyBase.Load
' 프로그램이 실행하기 전 가정 먼저 처리해야 합니다. 따라서 Form1_Load
' 이벤트 앞쪽에서 처리하시기 바랍니다.
' RTC 배터리 소진 시 시스템 일자를 설정할 값으로 생성 및 정의
Dim default_Seting
As DateTime =
New DateTime(2020, 11, 7, 10, 0, 0)
' RTC 시스템값 확인
If (SystemRTC_Check(SmartConfigs1, default_Seting) =
False)
Then
' RTC 배터리의 문제가 있으므로 사용자에게 알려준다.
SmartX.SmartMessageBox.Show(
"RTC Battery Change")
End If
End Sub
' RTC 시스템 값 확인 첫번째 인자는 폼 디자이너에서 SmartConfig를 추가하고 추가된 smartConfig1를 적용합니다.
' 두번째 인자값은 RTC 배터리 소진 시 시스템 일자를 설정할 기본 날짜/시간값 정의
' 리턴값 : true → RTC 정상 동작, false → RTC 배터리 소진
Private Function SystemRTC_Check(
ByVal pSmartConfigs
As SmartX.SmartConfigs,
ByVal defaultDateTime
As DateTime)
As Boolean
Dim nowDateTime
As DateTime
Dim iDateTime
As Int32
' 시스템 날짜 적용 가능 범위
Dim iMinDateTime
As Int32 = 19800101
Dim iMaxDateTime
As Int32 = 20791231
nowDateTime = pSmartConfigs.ControlPanel.GetSystemDateTime()
iDateTime = (nowDateTime.Year * 10000) + (nowDateTime.Month * 100) + (nowDateTime.Day)
' 시스템 날짜 적용 가능일 확인
If ((iDateTime < iMinDateTime) Or (iDateTime > iMaxDateTime))
Then
' RTC 배터리 소진에 따른 시스템 일자를 기본 날짜/시간값으로 설정
pSmartConfigs.ControlPanel.SetSystemDateTime(defaultDateTime)
Return False
End If
Return True
End Function