技術共有

Renesas RH850 RTC タイミングキャリー異常

2024-07-12

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

RH850 MCU の RTC (リアルタイム クロック) は、BCD (2 進化 10 進数) エンコード形式を採用し、閏年の自動識別をサポートし、秒、分、時、日、週、月、年の桁上げ機能を備えています。このうち、秒は60桁に分けられ、時は12または24桁、週は7桁、日は月に応じて28、29、30、31桁、月は12桁、年は桁に応じて分割されます。は00~99です。

最近はルネサスを使っていますマイレージ RH850 の RTC でタイミング キャリー例外の問題が発生しました。 UART 経由で時間変数を出力すると、秒と分の桁上げが予想される 60 桁ではなく、誤って 90 桁として表示されることが判明しました。この現象は私たちの注目を集めました。

ただし、エミュレータを使用して直接監視する場合RTCC の内部のSEC、MINなどのレジスタを確認したところ、0x59以降​​は正常に推移しており、RTC自体のタイミング機能には問題がないことが分かりました。

注意深く観察した結果、重要なルールが見つかりました。秒が 09 を超えると、表示される値は 16 に直接ジャンプし、その後増加し続けます。この現象は、データ形式の変換に問題がある可能性があることを示しています。 RTC は内部で BCD エンコード形式を使用しているため、UART 経由でシリアル ポート デバッグ アシスタントに出力する際に​​ 10 進数データとして処理し、表示にずれが生じます。

この問題に対応して、UART の出力処理形式を適宜変更しました。調整後、シリアル ポート デバッグ アシスタントに表示される時間が最終的に正常に戻り、分析が正しかったことが確認されました。

要約すると、RH850 MCU の RTC 内部レジスタは独自の BCD エンコーディング形式を採用しているため、関連データを処理する際には形式変換に特別な注意を払う必要があります。そうしないと、同様の誤解や問題が発生しやすくなります。