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