RTC_CLKOUTピンの構成方法と、 KW40Z ボードで得られるさまざまな出力について説明します。まず、次のコンフィグレーションがKW40Z_Connectivity_Software_1.0.1のデモを使用すること、およびIAR Embedded Workbenchを使用することに基づいていることを明確にする必要があります。
すべてのソフトウェアがインストールされたので、次の手順に従ってください。
ピンを構成する
リファレンスマニュアルでは、各ピンには異なる設定方法があり、この場合、使用するピンはMUX = 7のPTB3であることがわかります。マルチプレクサ7はRTC_CLKOUTです。
図 1. PTB3 マルチプレクサ構成
KSDKには、ポートとさまざまな周辺機器を初期化する多くの機能があります。 configure_rtc_pins() 関数は RTC_CLKOUT ピンを初期化し、pin_mux.h ファイルにあります。hardware_init.c ファイルで宣言されている hardware_init() 関数に 2 つの関数を追加する必要があります。 hardware_init() 関数は show next のようでなければなりません。void hardware_init(void) {...
...
NV_ReadHWParameters(&gHardwareParameters);
configure_rtc_pins(0);
}
RTC モジュールを有効にします。
ピンがすでに構成されているので、RTCモジュールと32KHz発振器を初期化する必要があります。
RTCモジュールは、さまざまなクロックソース(LPO、EXTAL_32K、およびOSC32KCLK)と連携でき、RTC_CLKOUTピンを介して反射できることを理解する必要があります。クロックソースを変更するレジスタは SIM_SOPT1 で、 OSC32KOUT(17-16) と OSC32KSEL(19-18) はレジスタビットの名前です。
OSC32KOUT(17-16)は、選択したピンのERCLK32Kの出力を有効/無効にします。この場合、PTB3です。2 つのオプションで構成できます。
00 ERCLK32Kは出力されません。
01 ERCLK32KはPTB3に出力されます。
OSC32KSEL(19-18)は出力クロックを選択し、次の画像のショーのように3つのオプションがあります。
図 2. レジスタSIM_SOPT1の多重化
次の表は、RTC_CLKOUTピンで取得できるさまざまな出力を示しており、レジスタSIM_SOPT1のOSC32KOUTとOSC32KSELを変更するだけで済みます。
図 3. RTC_CLKOUTピンの出力。
KSDKには、ピンの構成と同様に、RTCモジュールと32KHz発振器を初期化する機能があります。
RTC_DRV_Init(0) 関数は RTC モジュールを初期化し、fsl_rtc_driver.h で宣言されますファイルの場合、 BOARD_InitRtcOsc() 関数は RTC 発振器を有効にし、 board.h にあります。ファイルでは、RTC_HAL_EnableCounter() は fsl_rtc_hal.h にある TCE(Timer Counter Enable) を有効にしますファイルを作成し、最後に SIM_SOPT1_OSC32KOUT() で RTC_CLKOUT (PTB3) のERCLK32Kを有効/無効にし、 SIM_SOPT1_OSC32KSEL() で出力クロックを選択します。
RTC モジュールを有効にするには、次のコードをコピーします。
RTC_Type *rtcBase = g_rtcBase[0];//RTCベースアドレス
BOARD_InitRtcOsc();
RTC_DRV_Init(0);
RTC_HAL_EnableCounter(rtcBase, true);
SIM_SOPT1 = SIM_SOPT1_OSC32KOUT(0)|SIM_SOPT1_OSC32KSEL(0);
この構成では、RTC_CLKOUTは1Hzです
注: 使用しているファイルに必要なヘッダーを追加することを忘れないでください。
お楽しみください!:smileygrin:
K64でもRTCクロックを出力する必要がありますが、APIを直接使用することはできません。K64 は SDK が異なるため、関数名が異なります。