VR5510: I2C watchdog refresh blocks in ISR even with async mode enabled – is true non-blocking suppoHello NXP team,
I'm currently debugging the VR5510 PMIC and have run into a real-time scheduling issue related to the watchdog refresh.
The MCAL I2C watchdog refresh (feeding the VR5510 watchdog over I2C) is implemented as a synchronous operation. Because we call it from within an interrupt context, the synchronous wait blocks the CPU and degrades the real-time scheduling of other tasks.
I noticed there is an asynchronous option in the driver configuration/code. However, in practice it still performs a synchronous busy-wait (it blocks and polls until the I2C transfer completes), so it does not actually decouple the transfer from the caller.
My questions:
- Is there an officially supported way to make the VR5510 watchdog refresh truly non-blocking (e.g. interrupt-driven or DMA-driven I2C), so that it does not stall other tasks?
- If the asynchronous option is expected to be non-blocking, is the current synchronous busy-wait behavior a known limitation or a configuration issue on my side?
Any guidance, reference configuration, or example code would be greatly appreciated.
Thank you.
Re: VR5510: I2C watchdog refresh blocks in ISR even with async mode enabled – is true non-blocking sHello, @Jerry_cao
Thanks for the post.
May I know if you are referring to the following API used "
Std_ReturnType I2c_AsyncTransmit (uint8 Channel, const I2c_RequestType ∗ RequestPtr ) "?
Which version RTD is used?
BR
Chenyin
Re: VR5510: I2C watchdog refresh blocks in ISR even with async mode enabled – is true non-blocking sHello:
my version is:
* Project : RTD AUTOSAR 4.4
* Platform : CORTEXM
* Peripheral : VR5510
* Dependencies : none
*
* Autosar Version : 4.4.0
* Autosar Revision : ASR_REL_4_4_REV_0000
* Autosar Conf.Variant :
* SW Version : 4.0.2
* Build Version : S32_RTD_4_0_2_HF02_D2311_ASR_REL_4_4_REV_0000_20231103
*
* (c) Copyright 2020-2023 NXP Semiconductors
* All Rights Reserved.
*
use this function Pmic_VR55XX_TriggerWatchdog
Re: VR5510: I2C watchdog refresh blocks in ISR even with async mode enabled – is true non-blocking sHello, @Jerry_cao
Thanks for your confirmation.
By checking with the corresponding code, the VR5510 Solution for I2C asynchronous communication is implemented in RTD5.0.0QLP04
You may check the related code in this version RTD for details.
BR
Chenyin
Re: VR5510: I2C watchdog refresh blocks in ISR even with async mode enabled – is true non-blocking sHello:
my version is:
* Project : RTD AUTOSAR 4.4
* Platform : CORTEXM
* Peripheral : VR5510
* Dependencies : none
*
* Autosar Version : 4.4.0
* Autosar Revision : ASR_REL_4_4_REV_0000
* Autosar Conf.Variant :
* SW Version : 4.0.2
* Build Version : S32_RTD_4_0_2_HF02_D2311_ASR_REL_4_4_REV_0000_20231103
*
* (c) Copyright 2020-2023 NXP Semiconductors
* All Rights Reserved.
*
use this function Pmic_VR55XX_TriggerWatchdog