2355434_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2355434_ja-JP

2355434_ja-JP

MCXN236VNLTカスタムボード - クロック有効時にRTC0ペリフェラルのハングアップコードが発生する

私は現在、MCXN236VNLTというカスタム基板を開発中です。RTC0ペリフェラルを有効にすると、クロックを有効にしてからRTC0のレジスタにアクセスすると、MCUがハングアップし、Cycloneとの接続が失われます。clock_config.c以下のことを行います。

CLOCK_SetPLL0Freq(&pll0Setup); /*!< PLL0 を目的の値に設定します */

CLOCK_SetPll0MonitorMode( kSCG_Pll0MonitorDisable ); /* Pll0 モニターが無効になります */

CLOCK_SetupOsc32KClocking( kCLOCK_Osc32kToVbat ); /* OSC_32 kHz 出力クロックをVbat有効にする */

vbat_osc_config_t g_vbatOscConfig_BOARD_BootClockPLL150M = {

.coarseAdjustment = kVBAT_OscCoarseAdjustment05

.enableInternalCapBank = true、

.enableCrystalOscillatorBypass = true、

.xtalCap = kVBAT_OscXtal12pFCap

.extalCap = kVBAT_OscExtal12pFCap

};

VBAT_SetOscConfig(VBAT0, &g_vbatOscConfig_BOARD_BootClockPLL150M);

SYSCON-> CLOCK_CTRL |= SYSCON_CLOCK_CTRL_FRO1MHZ_CLK_ENA_MASK; /*!< FRO_1M を有効にする */

CLOCK_EnableClock( kCLOCK_Rtc0 );
RTC0->CTRL |= RTC_CTRL_CLK_SEL_MASK; (ここでハングアップします!)


デバッガでその行をスキップすると、他のコードがRTC0上のレジスタにアクセスしようとするまで、MCUの起動が続行されます。
思いつく限りのことはすべて試してみました。SystickとMRTも優先度の高い割り込みで動作していますが、無効にしても、RTC0のクロックの問題だけのようです。

不思議なことに、MCUxpressoが接続を停止すると、「ADC0_IRQHandler() at 0x0」のタブが開き、「ADC0_IRQHandler() at 0x0 のソースが利用できません」と表示されます。

外部の32768水晶発振子を使用していますが、クロックを内部の16kに変更すると、コードの実行が少し進み、次のようになります。


status_t IRTC_Init ( RTC_Type *base, const irtc_config_t *config)

{

assert(NULL != config);


そして「主張」に失敗する。「config」は設定ファイルであって、NULLではないのに、どういうことでしょうか?うわぁ!


新鮮な視点やアイデアがあれば、ぜひお聞かせください!



MCX NRe: MCXN236VNLT custom board - RTC0 Peripheral hanging code when clock enabled

こんにちは、 @jmullen_condose さん

投稿ありがとうございます。ご指摘のとおり、 MCXN947で32kオシレータを使用してiRTCの初期化に失敗しました。この問題は、RTCの初期化とRTCレジスタへのアクセス前にクロックソースを提供する必要があることが原因です。

デフォルトでは、RTC CTRL[CLK_SEL]ビットフィールドはFRO16Kクロックソースを選択します。したがって、RTC CTRL[CLK_SEL]がOSC32Kクロックソースに切り替わるまで、FRO16Kクロックは有効のままにしておく必要があります。これが、RTCCLKSELクロックセレクタを正しく初期化する唯一の方法です。

さらに、MCXN236に関する内部チケットも作成します。恒久的な修正プログラムが利用可能になるまでは、その投稿に記載されている回避策をご参照ください。

お役に立てば幸いです。

BR

セレステ

Re: MCXN236VNLT custom board - RTC0 Peripheral hanging code when clock enabled

こんにちは、 @jmullen_condose さん

MCXN947に関する問題は、 @Celeste_Liuさんが指摘したように、既に報告されています。この問題は、Config Toolsの最新バージョン26.03において、MCXN236 MCUについても修正されています。FRO16Kが無効化され、 RTC0->CTRLレジスタにアクセスされた際に提供される以下のコードを参照してください。

marek_neuzil_0-1778668840742.png


このユースケースに適した初期化コードを提供する、最新バージョンのConfig Tools 26.03を使用してください。

よろしくお願いいたします。

マレク・ノイジル

Tags (1)
No ratings
Version history
Last update:
‎05-14-2026 02:38 AM
Updated by: