기술나눔

Renesas RH850 RTC 타이밍 캐리 이상

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

RH850 MCU의 RTC(실시간 시계)는 BCD(이진 코드 십진수) 인코딩 형식을 채택하고 윤년 자동 식별을 지원하며 초, 분, 시간, 일, 주, 월, 연도에 대한 전달 기능을 갖습니다. 그 중 초는 60개의 캐리로 나누어 시는 12 또는 24로, 주는 7로, 월에 따라 일은 28, 29, 30, 31로, 달은 12로, 연도는 1로 나른다. 00~99 입니다.

최근에는 Renesas를 사용하고 있습니다.MCU RH850의 RTC에서 타이밍 전달 예외 문제가 발생했습니다. UART를 통해 시간 변수를 출력할 때 초, 분의 캐리가 예상 캐리 60이 아닌 90 캐리로 잘못 출력되는 것을 발견했습니다. 이 현상이 우리의 관심을 끌었습니다.

그러나 에뮬레이터를 사용하여 직접 모니터링실시간내부 SEC, MIN 및 기타 레지스터를 살펴보면 0x59에 도달한 후 정상적으로 수행되는 것으로 나타났으며 이는 RTC 자체의 타이밍 기능에 문제가 없음을 나타냅니다.

주의 깊게 관찰한 후 우리는 핵심 규칙을 발견했습니다. 초가 09를 초과하면 표시되는 값이 바로 16으로 점프한 다음 계속해서 증가합니다. 이 현상은 데이터 형식 변환에 문제가 있을 수 있음을 나타냅니다. RTC는 내부적으로 BCD 인코딩 형식을 사용하기 때문에 UART를 통해 직렬 포트 디버깅 도우미로 출력할 때 이를 10진수 데이터로 처리하므로 표시 편차가 발생합니다.

이 문제에 대응하여 UART 출력 처리 형식을 적절하게 수정했습니다. 조정 후 직렬 포트 디버깅 도우미에 표시된 시간이 마침내 정상으로 돌아왔으며 이를 통해 우리의 분석이 정확하다는 것을 확인했습니다.

요약하자면, RH850 MCU의 RTC 내부 레지스터는 고유한 BCD 인코딩 형식을 채택하므로 관련 데이터를 처리할 때 형식 변환에 특별한 주의를 기울여야 합니다. 그렇지 않으면 비슷한 오해와 문제가 생기기 쉽습니다.