MK22 is not executing the code after powered on, Code only execute after we perform hard reset.

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

MK22 is not executing the code after powered on, Code only execute after we perform hard reset.

跳至解决方案
1,572 次查看
Karthikpr
Contributor I

Hello,

We are currently using the MK22FN512VLH12 MCU in one of our IoT products. Our system involves an MK22FN512VLH12 MCU and an EG-25 4G Module. However, we have encountered an issue where the microcontroller does not run the code after powering on and only runs after we perform an MCU reset. We communicate with the EG-25 via the UART protocol.

We connected the EG-25 STATUS pin to the GPIO PTA4 of the microcontroller and added a 10k pull-up resistor to the STATUS pin. Unfortunately, we discovered that after connecting the STATUS pin to the MCU, the code no longer runs after powering on, and only runs after we perform an MCU reset. We were only able to successfully run the code after physically disconnecting (Track Cut) the EG-25 STATUS pin from the MCU GPIO pin. We are only facing the issue after connecting the STATUS pin to the MCU.

What could be the problem with that GPIO PTA4?

Thanks and Regards,

Karthik P R

0 项奖励
回复
1 解答
1,533 次查看
ErichStyger
Specialist I

Hi @Karthikpr ,

The NMI pin and functionality is really a hardware feature and has nothing to do with any RTOS, including the mbed OS. Think about NMI like a reset, where (as with reset) you can have a pin muxed to it or not. With the exception that NMI raises its own exception handler. If you are not using the NMI pin for the NMI interrupt, you can disable the NMI function and mux it as a normal GPIO pin instead, as shown in my article.

I hope this helps,

Erich

在原帖中查看解决方案

3 回复数
1,535 次查看
Karthikpr
Contributor I

Hi Erich Styger,

I wanted to thank you for your valuable suggestion. We have followed your advice and left the pin unconnected. Instead, we used another GPIO for the STATUS pin of the EG25, which has resolved our issue. I also wanted to ask if disabling the NMI would cause any other issues for our application. Just to give you some context, we are using Mbed RTOS in our application.

Thanks and Regards

Karthik P R

 

0 项奖励
回复
1,534 次查看
ErichStyger
Specialist I

Hi @Karthikpr ,

The NMI pin and functionality is really a hardware feature and has nothing to do with any RTOS, including the mbed OS. Think about NMI like a reset, where (as with reset) you can have a pin muxed to it or not. With the exception that NMI raises its own exception handler. If you are not using the NMI pin for the NMI interrupt, you can disable the NMI function and mux it as a normal GPIO pin instead, as shown in my article.

I hope this helps,

Erich

1,565 次查看
ErichStyger
Specialist I

The PTA4 pin is the NMI pin. Your pull-up seems not to pull it up fast enough, so the CPU enters the NMI interrupt. I wrote an article about this here:

https://mcuoneclipse.com/2020/06/09/disabling-nmi-non-maskable-interrupt-pin/

 

Otherwise: check the EzPort too: https://mcuoneclipse.com/2016/12/22/disabling-ezport-on-nxp-kinetis-to-solve-power-on-issues/

 

I hope this helps,

Erich