PN7462 Low Power Mode Current Consumption Issue

cancel
Showing results for 
Search instead for 
Did you mean: 

PN7462 Low Power Mode Current Consumption Issue

1,345 Views
amolborase
Contributor II

Hello NXP support Team,

We are using PN7462 in our product and have custom board. We are trying to implement Low power mode

1. We are getting 650uA with VBUS - 5V DC and 193uA with VBUS - 3.3 V DC. Below attached PN7462 pin information file for our custom board
2. Below is the logic we have implemented for Low power using HSUART as wake up source and all other wake up sources are disabled
3. With below code HSUART work fine and current consumption get reduced to some extend but not as mentioned in datasheet
4. But after wake up detection of tag not working

Code :

phhalPcr_RfLdtParams_t sRfLdParams ={0, 0, 0, 0};
phhalPcr_WakeUpConfig_t WakeUpConfigs= {0,1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};


void BSP_Init(void)
{
phStatus_t status = PH_ERR_INTERNAL_ERROR;
phNfcLib_Status_t dwStatus;

/* Perform Controller specific initialization. */
phApp_CPU_Init();

// dwStatus = phExMainClif_TestBus();
/* Perform OSAL Initialization. */
(void)phOsal_Init();

/* Initialize library */
dwStatus = phNfcLib_Init();

CHECK_NFCLIB_STATUS(dwStatus);

// if(dwStatus != PH_NFCLIB_STATUS_SUCCESS) break;

gphExHif_Hw_HifEvents = phRtos_EventGroupCreate();

/* Set the generic pointer */

pHal = phNfcLib_GetDataParams(PH_COMP_HAL);

pDiscLoop = phNfcLib_GetDataParams(PH_COMP_AC_DISCLOOP);

psKeyStore = phNfcLib_GetDataParams(PH_COMP_KEYSTORE);

MFC = phNfcLib_GetDataParams(PH_COMP_AL_MFC);

Mifare = phNfcLib_GetDataParams(PH_COMP_PAL_MIFARE);

MFUL = phNfcLib_GetDataParams(PH_COMP_AL_MFUL);

SLI15693 = phNfcLib_GetDataParams(PH_COMP_PAL_SLI15693);

ICODE = phNfcLib_GetDataParams(PH_COMP_AL_ICODE);

/* Initialize other components that are not initialized by NFCLIB and configure Discovery Loop. */
status = phApp_Comp_Init(pDiscLoop);

CHECK_STATUS(status);

// if(status != PH_ERR_SUCCESS) break;

PH_REG_SET_FIELD(PCR_SYS_REG,HIF_SELECTION,0x03);

Interface_Configs();

GPIO_Init();

POWER_LED_ON;

ISO_Protocol_Selected_Is=0;

if(ISO_Protocol_Selected_Is==0)
{
ISO15K_Custom_Init(pDiscLoop);
ISO_Protocol_Selected_Is = ISO15K_COMMANDS;
}

status = phhalRf_FieldOn();
status = phhalEeprom_ReadBuffer(Auto_Inventory, AutoInv_ISO14K_Stat_ReadAdd,2);

// NoRTOS_TxLdoMonitorEnable();
}

int main(void)
{
while(1)
{

ProcessCommand();

// Module Deinitialization

phhalRf_FieldOff();
phhalPmu_TxLdoStart(E_LOW_POWER);
(void)phhalTimer_DeInit();
phNfcLib_DeInit();
phhalRf_DeInit();
phhalRng_DeInit();
phhalClkGen_DeInit();
phhalWdt_DeInit();

phUser_Wait(300000);
phUser_Wait(300000);

eBootReason = phFlashBoot_GetBtRns();

PH_FLASHBOOT_BTRNS_CLR_BOOT_REASON();

if(Command==0x1F01)
{
while(1)
{
ISO15K_LED_ON;
// phLED_SetPattern(gkphLED_StandBy);
/* Set the wakeup configurations */
phhalPcr_EnterLowPowerMode(&sRfLdParams, &WakeUpConfigs, &sStandbyPrevReason);

/* It is not expected to reach here, if so then Standby prevention has occured,
* wait for a while, perform operation and try Standby. */
phUser_Wait(300000);
}
Command=0xFFFF;
}

BSP_Init();
phUser_Wait(300000);
phUser_Wait(300000);

}
}


We also go through the different threads related to low power mode but not able to reduce current below 650uA with VBUS (5V).
Please help us in this regards as soon as possible

Regards,
Amol

Tags (2)
0 Kudos
14 Replies

1,252 Views
amolborase
Contributor II

Hello Kan,

This condition if(phhalRf_GetExtFieldStatus() != PH_ERR_SUCCESS) is always going false as given in phExRf.C file and directly goes for Low power but current consumption is 20 mA  and normally it is about 50mA.

So actually it is not going for polling, that's why we make some change as per requirement in the same code provide by you but current is still same i.e 20mA. 

We want to know the significance of function  phhalRf_GetExtFieldStatus().

If you need we can provide some more details regarding flow of our custom code.

 

Thank you 

0 Kudos

1,249 Views
Kan_Li
NXP TechSupport
NXP TechSupport

Hi @amolborase ,

 

phhalRf_GetExtFieldStatus() just tells if external field is present, if the condition of if(phhalRf_GetExtFieldStatus() != PH_ERR_SUCCESS) is always going false it means there is external field available during the test, please kindly refer to the following for details.

/**
* RF HAL External RF Field On Status Function
*
* @return External RF Field Status
* @retval #PH_ERR_SUCCESS External field is present
* @maskedret #PH_ERR_EXT_RF_ERROR The external field is off
* @retval Other Depends on the underlying components
*
*/
phStatus_t phhalRf_GetExtFieldStatus(void);

 

Have you tested my code on PNEV7462B? The current in low power mode should not be so high in mA range.

 

BTW, I noticed your code turns on several LEDs before entering low power mode, would it affect the result?

 

Have a great day,
Kan


-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!
- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

0 Kudos

1,236 Views
amolborase
Contributor II

Hello Kan,

As we are testing your code if standby mode is disabled, then RF External Field status condition, works as per logic, but when we enable standby mode. It did not enter into either of the conditions after clearing boot reason. We are not able to understand why controller not entering into else condition and it goes to low power loop. If it is not going to the polling and enters into low power, then why current is still in mA ?

 

Thank you,

 

 

 

0 Kudos

1,242 Views
amolborase
Contributor II

Hello Kan,

Actually, we are getting WatchDog Timer as a boot reason that's why it is neither going to enter into if condition not into else. Sometimes we get boot reason 0x17 which didn't exist  This is tested while debugging in release mode with the same configurations provided by you earlier (in phExRf.c) . 

We have also checked the status of function phhalRf_GetExtFieldStatus () and it gives an error PH_ERR_EXT_RF_ERROR.

->We have tried your code but due to above problem not entering into polling and it goes directly into low power mode.

->LED we are using just to know that whether the controller is going into low power or not and other LEDs are  just for indications 

 

0 Kudos

1,214 Views
Kan_Li
NXP TechSupport
NXP TechSupport

Hi @amolborase ,

 

Did you ever modify the source code of library? If you run the origin example of "/PN7462AU_ex_phExRf" , you should not have the boot reason from watch dog timer. and is it possible to check if turning off the LEDs during the test would make some difference?

 

Thanks for your patience!

 

Have a great day,
Kan


-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!
- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

0 Kudos

1,197 Views
amolborase
Contributor II

Hi Kan,

We did not modify the source code of the library. What should have the boot reason while debug ?

We have already checked that by turing off LED's there is no measure difference in current.

We want to tell you that what code you have given actually we using it in NfcrdlibEx1_BasicDiscoveryLoop example because we have done customization in the same, So We hope that there is not much difference except standby mode. 

 

Thank  you,

 

0 Kudos

1,193 Views
amolborase
Contributor II

We have make one change in hardwre that PVDD_OUT is connected to ground and PVDD_IN and PVDD_M_IN is connected with 3.3V externally.

0 Kudos

1,141 Views
Kan_Li
NXP TechSupport
NXP TechSupport

Hi @amolborase ,

 

Thanks for the information! I just got the feedback from the expert, and he recommend adding the following code in phhalPcr.c to have an improvement for standby mode.

PN7462 standby settings.png

and with the attached sample code, you may have 17uA in the standby mode. I have tried it on my side with the same hardware modification as you mentioned before. It can take place of "NfcrdlibEx1_BasicDiscoveryLoop/NfcrdlibEx1_BasicDiscoveryLoop.c" of course.  Please also add the following definition in "workspace\PN7462AU-FW_v05.22.01_Full\NfcrdlibEx1_BasicDiscoveryLoop\intfs\ph_NxpBuild_App.h" before compiling.

#define NXPBUILD__PHHAL_LED

 

Hope that helps,

 

Have a great day,
Kan


-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!
- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

 

 

 

 

0 Kudos

1,134 Views
amolborase
Contributor II

Thank you Kan,

We really appreciate your support.

We have tested with above given code with 

1. Board connected with PVDD_OUT to ground and PVDD_IN and PVDD_M_IN to external 3.3V  

Observation -  Current consumption is still 20mA in Standby 

2. Board connected with PVDD_OUT directly to PVDD_IN and PVDD_M_IN 

Observation -  Current consumption is still 5.78mA in Standby 

These testings are on our custom boards. We will test above in PN7462 Development Board and will update you soon. 

 

Thank you 

0 Kudos

1,076 Views
Kan_Li
NXP TechSupport
NXP TechSupport

Hi @amolborase ,

 

It is really strange, anyway the results from my side are always in uA range, and I am wondering if it is due to some board issue or soldering issue on your side. Do you have another custom board to compare the result?  and if you test with the board of PNEV7462B, you may easily apply the same power supply configuration on JP42,R177 and R180. Please kindly refer to the following for details.

PN7462 power supply settings.png

Have a great day,
Kan


-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!
- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

0 Kudos

1,261 Views
amolborase
Contributor II

Thank you Kan,

We were on Diwali holidays so not go through the file you sent. So we try to implement with our custom board and get back to you soon. Thank you once again. 

 

 

0 Kudos

1,324 Views
amolborase
Contributor II

Dear NXP Team,

Please Help us in this regards because we are going for production after solving these problems.

If anyone who has faced these type of issues and successfully done low power mode , We request you to kindly help us.

Thanks in advance 

regards,

Amol

0 Kudos

1,286 Views
Kan_Li
NXP TechSupport
NXP TechSupport

Hello @amolborase ,

 

I just checked your configuration based on the demo of "phExRf" with PNEV7462B, the result is no greater than 133 uA, please kindly refer to the following for details. I also attached the test code for your reference. The NFC reader lib used in this test is PN7462AU-FW_v05.22.01_Full.

low pwer test pn7462.png

Hope that helps,

Have a great day,
Kan


-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!
- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

 

0 Kudos

431 Views
amolborase
Contributor II

Hello Kan Li,

We have tried the code you have provided above with the PN7462 Development Board but the current  we are getting is 22 mA.

 

Thank you,

Regards,

Amol

0 Kudos