How do I get the wake source for K344

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

How do I get the wake source for K344

跳至解决方案
1,413 次查看
ZDDL
Contributor III

I looked at the S32K3 Low Power Management AN and demos, but those demos uses DS3.4, which I couldn't open and compile. Is there a demo of DS3.5 available?

I have a problem with low power Management. After the MCU is awakened, the reset type obtained by using Power_Ip_GetResetReason() is MCU_WAKEUP_REASON, and this is correct. But when I used Wkpu Ip GetInputState() to get the wake source, I didn't get the correct result.  I don't know why.

ZDDL_2-1732804683081.png

 

ZDDL_1-1732804624327.png

This is my test project. I hope someone could help me.

Thanks!

0 项奖励
回复
1 解答
1,392 次查看
Julián_AragónM
NXP TechSupport
NXP TechSupport

Hi @ZDDL,

You can refer to the following examples: S32K3 Low Power Management AN and demos RTD 4.0.0 & 5.0.0 - NXP Community.

For the wakeup source, please try reading the registers directly:

uint32_t WISR_Value;
uint32_t WISR64_Value;

void WKPU_Handler(void)
{
	/*store the WISR value which indicate the wake up source.*/
	WISR_Value = IP_WKPU->WISR;
	WISR64_Value = IP_WKPU->WISR_64;
	if(MCU_WAKEUP_REASON == Power_Ip_GetResetReason())
	{
		printf("Reset reason = MCU_WAKEUP_REASON\r\n");
	}
	printf("WISR = %"PRIu32",", WISR_Value);
	printf("WISR64 = %"PRIu32".\n", WISR64_Value);
	/*Clear the flag by writing 1.*/
	IP_WKPU->WISR = 0xffffffff;
	IP_WKPU->WISR_64 = 0xffffffff;
	__asm("dsb");
	__asm("isb");
}

Best regards,
Julián

在原帖中查看解决方案

0 项奖励
回复
1 回复
1,393 次查看
Julián_AragónM
NXP TechSupport
NXP TechSupport

Hi @ZDDL,

You can refer to the following examples: S32K3 Low Power Management AN and demos RTD 4.0.0 & 5.0.0 - NXP Community.

For the wakeup source, please try reading the registers directly:

uint32_t WISR_Value;
uint32_t WISR64_Value;

void WKPU_Handler(void)
{
	/*store the WISR value which indicate the wake up source.*/
	WISR_Value = IP_WKPU->WISR;
	WISR64_Value = IP_WKPU->WISR_64;
	if(MCU_WAKEUP_REASON == Power_Ip_GetResetReason())
	{
		printf("Reset reason = MCU_WAKEUP_REASON\r\n");
	}
	printf("WISR = %"PRIu32",", WISR_Value);
	printf("WISR64 = %"PRIu32".\n", WISR64_Value);
	/*Clear the flag by writing 1.*/
	IP_WKPU->WISR = 0xffffffff;
	IP_WKPU->WISR_64 = 0xffffffff;
	__asm("dsb");
	__asm("isb");
}

Best regards,
Julián

0 项奖励
回复
%3CLINGO-SUB%20id%3D%22lingo-sub-2003827%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%E5%A6%82%E4%BD%95%E8%8E%B7%E5%8F%96%20K344%20%E7%9A%84%E5%94%A4%E9%86%92%E6%BA%90%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2003827%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%3CSPAN%3E%E6%88%91%E7%9C%8B%E4%BA%86%20S32K3%20%E4%BD%8E%E5%8A%9F%E8%80%97%E7%AE%A1%E7%90%86%20AN%20%E5%92%8C%E6%BC%94%E7%A4%BA%EF%BC%8C%E4%BD%86%E9%82%A3%E4%BA%9B%E6%BC%94%E7%A4%BA%E4%BD%BF%E7%94%A8%20DS3.4%EF%BC%8C%E6%88%91%E6%97%A0%E6%B3%95%E6%89%93%E5%BC%80%E5%92%8C%E7%BC%96%E8%AF%91%E3%80%82%E6%9C%89%20DS3.5%20%E7%9A%84%E6%BC%94%E7%A4%BA%E7%89%88%E5%90%97%EF%BC%9F%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%E6%88%91%E9%81%87%E5%88%B0%E4%BA%86%E4%BD%8E%E5%8A%9F%E8%80%97%E7%AE%A1%E7%90%86%E9%97%AE%E9%A2%98%E3%80%82MCU%E5%94%A4%E9%86%92%E5%90%8E%EF%BC%8C%E4%BD%BF%E7%94%A8Power_Ip_GetResetReason()%E8%8E%B7%E5%8F%96%E5%88%B0%E7%9A%84%E5%A4%8D%E4%BD%8D%E7%B1%BB%E5%9E%8B%E6%98%AFMCU_WAKEUP_REASON%EF%BC%8C%E8%BF%99%E6%98%AF%E6%AD%A3%E7%A1%AE%E7%9A%84%E3%80%82%E4%BD%86%E6%98%AF%E5%BD%93%E6%88%91%E4%BD%BF%E7%94%A8%20Wkpu%20Ip%20GetInputState()%20%E8%8E%B7%E5%8F%96%E5%94%A4%E9%86%92%E6%BA%90%E6%97%B6%EF%BC%8C%E6%88%91%E6%B2%A1%E6%9C%89%E5%BE%97%E5%88%B0%E6%AD%A3%E7%A1%AE%E7%9A%84%E7%BB%93%E6%9E%9C%E3%80%82%E6%88%91%E4%B8%8D%E7%9F%A5%E9%81%93%E4%B8%BA%E4%BB%80%E4%B9%88%E3%80%82%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22ZDDL_2-1732804683081.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22ZDDL_2-1732804683081.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F313166iCDE40D937314B581%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22ZDDL_2-1732804683081.png%22%20alt%3D%22ZDDL_2-1732804683081.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22ZDDL_1-1732804624327.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22ZDDL_1-1732804624327.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F313165i0595748CE9C8322A%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22ZDDL_1-1732804624327.png%22%20alt%3D%22ZDDL_1-1732804624327.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%E8%BF%99%E6%98%AF%E6%88%91%E7%9A%84%E6%B5%8B%E8%AF%95%E9%A1%B9%E7%9B%AE%E3%80%82%E6%88%91%E5%B8%8C%E6%9C%9B%E6%9C%89%E4%BA%BA%E8%83%BD%E5%B8%AE%E5%8A%A9%E6%88%91%E3%80%82%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%E8%B0%A2%E8%B0%A2%EF%BC%81%3C%2FSPAN%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2003927%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%E5%9B%9E%E5%A4%8D%EF%BC%9A%E5%A6%82%E4%BD%95%E8%8E%B7%E5%8F%96%20K344%20%E7%9A%84%E5%94%A4%E9%86%92%E6%BA%90%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2003927%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F232867%22%20target%3D%22_blank%22%3E%40ZDDL%3C%2FA%3E%2C%3C%2FP%3E%0A%3CP%3E%E6%82%A8%E5%8F%AF%E4%BB%A5%E5%8F%82%E8%80%83%E4%BB%A5%E4%B8%8B%E7%A4%BA%E4%BE%8B%EF%BC%9A%20%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2FS32K-Knowledge-Base%2FS32K3-Low-Power-Management-AN-and-demos-RTD-4-0-0-amp-5-0-0%2Fta-p%2F1993152%22%20target%3D%22_blank%22%3ES32K3%20%E4%BD%8E%E5%8A%9F%E8%80%97%E7%AE%A1%E7%90%86%20AN%20%E5%92%8C%E6%BC%94%E7%A4%BA%20RTD%204.0.0%20%E5%92%8C%205.0.0%20-%20NXP%20%E7%A4%BE%E5%8C%BA%3C%2FA%3E%E3%80%82%3C%2FP%3E%0A%3CP%3E%E5%AF%B9%E4%BA%8E%E5%94%A4%E9%86%92%E6%BA%90%EF%BC%8C%E8%AF%B7%E5%B0%9D%E8%AF%95%E7%9B%B4%E6%8E%A5%E8%AF%BB%E5%8F%96%E5%AF%84%E5%AD%98%E5%99%A8%EF%BC%9A%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-c%22%3E%3CCODE%20translate%3D%22no%22%3Euint32_t%20WISR_Value%3B%0Auint32_t%20WISR64_Value%3B%0A%0Avoid%20WKPU_Handler(void)%0A%7B%0A%09%2F*store%20the%20WISR%20value%20which%20indicate%20the%20wake%20up%20source.*%2F%0A%09WISR_Value%20%3D%20IP_WKPU-%26gt%3BWISR%3B%0A%09WISR64_Value%20%3D%20IP_WKPU-%26gt%3BWISR_64%3B%0A%09if(MCU_WAKEUP_REASON%20%3D%3D%20Power_Ip_GetResetReason())%0A%09%7B%0A%09%09printf(%22Reset%20reason%20%3D%20MCU_WAKEUP_REASON%5Cr%5Cn%22)%3B%0A%09%7D%0A%09printf(%22WISR%20%3D%20%25%22PRIu32%22%2C%22%2C%20WISR_Value)%3B%0A%09printf(%22WISR64%20%3D%20%25%22PRIu32%22.%5Cn%22%2C%20WISR64_Value)%3B%0A%09%2F*Clear%20the%20flag%20by%20writing%201.*%2F%0A%09IP_WKPU-%26gt%3BWISR%20%3D%200xffffffff%3B%0A%09IP_WKPU-%26gt%3BWISR_64%20%3D%200xffffffff%3B%0A%09__asm(%22dsb%22)%3B%0A%09__asm(%22isb%22)%3B%0A%7D%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3EBest%20regards%2C%3CBR%20%2F%3EJuli%C3%A1n%3C%2FP%3E%3C%2FLINGO-BODY%3E