[KW36] Which low power mode supports RTC_CLKOUT?

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

[KW36] Which low power mode supports RTC_CLKOUT?

ソリューションへジャンプ
892件の閲覧回数
ayden
Contributor II

Dear NXP support,

When I checked RTC_CLKOUT with FRDM-KW36 board, it did not work normally in low power mode.

The test environment and results are as follows.

Board : FRDM-KW36

Source : frdmkw36_wireless_examples_bluetooth_hrs_freertos + frdmkw36_driver_examples_rtc

Modified Source: 
#define mNoOfPinsDisabledInLowPower_c (15) //Modify

const gpioPinId_t maPinsDisabledInLowPower[mNoOfPinsDisabledInLowPower_c]={
{gpioPort_A_c, 16},
{gpioPort_A_c, 17},
{gpioPort_B_c, 1},
{gpioPort_B_c, 2},
//{gpioPort_B_c, 3}, //Modify
{gpioPort_C_c, 0},
{gpioPort_C_c, 1},
{gpioPort_C_c, 3},
{gpioPort_C_c, 6},
{gpioPort_C_c, 7},
{gpioPort_C_c, 16},
{gpioPort_C_c, 17},
{gpioPort_C_c, 18},
{gpioPort_C_c, 19},
{gpioPort_A_c, 0},
{gpioPort_A_c, 1}
};

 

void BOARD_InitPins(void) {
CLOCK_EnableClock(kCLOCK_PortB); /* Port B Clock Gate Control: Clock enabled */
PORT_SetPinMux(PORTB, PIN3_IDX, kPORT_MuxAlt7); /* PORTB3 (pin 19) is configured as PTB3 */
}


void BOARD_ReInitPins(void)
{
BOARD_InitPins();
}


void BOARD_WarmbootCb()
{
...
BOARD_ReInitPins();
}


void BOARD_RTCInit(void)
{
rtc_datetime_t date;
rtc_config_t rtcConfig;

BOARD_InitPins();
RTC_GetDefaultConfig(&rtcConfig);
RTC_Init(RTC, &rtcConfig);
#if (defined(EXAMPLE_CAP_LOAD_VALUE) && EXAMPLE_CAP_LOAD_VALUE)
#if (defined(FSL_FEATURE_RTC_HAS_OSC_SCXP) && FSL_FEATURE_RTC_HAS_OSC_SCXP)
/* Change the RTC oscillator capacity load value. */
RTC_SetOscCapLoad(RTC, EXAMPLE_CAP_LOAD_VALUE);
#endif /* FSL_FEATURE_RTC_HAS_OSC_SCXP */
#endif /* EXAMPLE_CAP_LOAD_VALUE */

/* Select RTC clock source */
RTC_SetClockSource(RTC);

/* Set a start date time and start RT */
date.year = 2014U;
date.month = 12U;
date.day = 25U;
date.hour = 19U;
date.minute = 0;
date.second = 0;

/* RTC time counter has to be stopped before setting the date & time in the TSR register */
RTC_StopTimer(RTC);

/* Set RTC time to default */
RTC_SetDatetime(RTC, &date);

/* Enable RTC alarm interrupt */
RTC_EnableInterrupts(RTC, kRTC_AlarmInterruptEnable);

/* Enable at the NVIC */
EnableIRQ(RTC_IRQn);

/* Start the RTC time counter */
RTC_StartTimer(RTC);
}

 

void main_task(uint32_t param)
{

...

LED_Init();

BOARD_RTCInit();

}

 

1) cPWR_DeepSleepMode 4/5/8 

=> Not working

2) cPWR_DeepSleepMode 3

 2-1) Idle state

=> 1Hz output

llvs_idle.PNG

 2-2) Advertising state

==> 1 Hz output, square wave not normal

llvs_advertising.PNG

 

Please check if 1Hz square wave can be used through RTC_CLKOUT in low power mode.

Best regards,

Ayden Hong

 

ラベル(1)
0 件の賞賛
返信
1 解決策
873件の閲覧回数
EduardoZamora
NXP TechSupport
NXP TechSupport

Hello @ayden

Hope you are doing well.

According to the Bluetooth Low Energy Demo Applications User Guide (inside KW36 SDK documentation folder > docs > wireless > Bluetooth), the application should switch between LLS and VLLS power modes by default.

KW38 Reference Manual, Section 8.5 Module Operation in Low Power Modes describes modules/clocks availability depending on the power mode.

EduardoZamora_0-1671221744174.png

In LLS and VLLS power modes, RTC should be fully functional with alternate clock source, provided the selected clock source remains enabled:

EduardoZamora_1-1671221744176.png

Could you please take a look at KW36 - Trimming adjust of 32kHz RTC external oscillator and confirm if this is helpful for your application? Also, please consult Kinetis MKW36 Power Consumption Analysis, here you can find how the hardware is designed and optimized for low-power operation and the expected behavior of BLE applications and the device under low-power modes (Section 4.2.2 shows a partial scenario using HRS demo and describes the main events and phases).

Regards,
Eduardo.

元の投稿で解決策を見る

0 件の賞賛
返信
3 返答(返信)
874件の閲覧回数
EduardoZamora
NXP TechSupport
NXP TechSupport

Hello @ayden

Hope you are doing well.

According to the Bluetooth Low Energy Demo Applications User Guide (inside KW36 SDK documentation folder > docs > wireless > Bluetooth), the application should switch between LLS and VLLS power modes by default.

KW38 Reference Manual, Section 8.5 Module Operation in Low Power Modes describes modules/clocks availability depending on the power mode.

EduardoZamora_0-1671221744174.png

In LLS and VLLS power modes, RTC should be fully functional with alternate clock source, provided the selected clock source remains enabled:

EduardoZamora_1-1671221744176.png

Could you please take a look at KW36 - Trimming adjust of 32kHz RTC external oscillator and confirm if this is helpful for your application? Also, please consult Kinetis MKW36 Power Consumption Analysis, here you can find how the hardware is designed and optimized for low-power operation and the expected behavior of BLE applications and the device under low-power modes (Section 4.2.2 shows a partial scenario using HRS demo and describes the main events and phases).

Regards,
Eduardo.

0 件の賞賛
返信
863件の閲覧回数
ayden
Contributor II

Hello Eduardo Zamora,

 

Thank you for your reply.

I've already read all the documents you told me.

What I want to know is whether RTC_CLKOUT is not available in VLLS[1/2/3] mode.

And is there a way to prevent the signal of RTC_CLKOUT from shaking when switching to the wake-up state?

 

Regards,

Ayden.

 

 

0 件の賞賛
返信
852件の閲覧回数
EduardoZamora
NXP TechSupport
NXP TechSupport

Hi,

RTC remains functional in all low power modes, but please consider that PTB3 is connected to LED3 and this LED is used by BLE demos as indicator for some application states. The code may be configuring PTB3 as GPIO for this purpose and continuously modifying the state of the pin.

Please, take a look at LED_Init() function, inside ApplMain.c, this function configures pin routing for LED pins.

Regards,
Eduardo.

0 件の賞賛
返信