hi all,
hope you can help me. We are using PN5190B and we are trying to measure the consumption at ULPCD. Unfortunatly we are in a 2mA value so we are trying to find were is the mistake. We are not sure yet if it is hardware or firmware.
But what we are seeing is that GPIO3 , that is managed by an expander (pin set as input) , is when we set ULPCD in high but with each polling it goes a bit low (goes to around 2volts...). Looks that PN5190 is pushing it to low in each polling, Is that normal?
thanks!
ignacio
Hello @ignacioS
Hope you are doing well.
Are you performing this test with the PN5190 Development Board, or is it with your custom board? Where is the current being measured?
Are you using NFC Cockpit to configure ULPCD mode? What is the procedure you are following?
Also, please test ULPCD with GPIO3 disconnected from the expander and left as a clean signal and let me know your findings.
Regards,
Eduardo.
hi, sorry, intructions were not paste on previous post:
Initialize the chip
pn5190_ulpcd_calibrate(&g_lpcdRefValue);
phhalHw_FieldOff(&hal);
pn5190_ulpcd_wait_for_card(g_lpcdRefValue, 200);
static phStatus_t pn5190_ulpcd_calibrate(uint32_t *pRefVal)
{
phStatus_t status;
status = phhalHw_Pn5190_Instr_LPCD_SetConfig(&hal,
PHHAL_HW_CONFIG_SET_LPCD_WAKEUPTIME_MS,
330U);
if ((status & PH_ERR_MASK) != PH_ERR_SUCCESS) return status;
status = phhalHw_Pn5190_Instr_LPCD_SetConfig(&hal,
PHHAL_HW_CONFIG_LPCD_MODE,
PHHAL_HW_PN5190_LPCD_MODE_DEFAULT);
if ((status & PH_ERR_MASK) != PH_ERR_SUCCESS) return status;
status = phhalHw_Pn5190_Instr_LPCD_SetConfig(&hal,
PHHAL_HW_CONFIG_LPCD_CONFIG,
PHHAL_HW_PN5190_LPCD_CTRL_ULPCD_CALIB);
if ((status & PH_ERR_MASK) != PH_ERR_SUCCESS) return status;
status = phhalHw_Lpcd(&hal);
if ((status & PH_ERR_MASK) != PH_ERR_SUCCESS) return status;
return phhalHw_Pn5190_Instr_LPCD_GetConfig(&hal,
PHHAL_HW_CONFIG_LPCD_REF_VAL,
pRefVal);
}
static phStatus_t pn5190_ulpcd_wait_for_card(uint32_t refVal, uint16_t wakeupMs)
{
phStatus_t status;
status = phhalHw_Pn5190_Instr_LPCD_SetConfig(&hal,
PHHAL_HW_CONFIG_SET_LPCD_WAKEUPTIME_MS,
wakeupMs);
if ((status & PH_ERR_MASK) != PH_ERR_SUCCESS) return status;
status = phhalHw_Pn5190_Instr_LPCD_SetConfig(&hal,
PHHAL_HW_CONFIG_LPCD_MODE,
PHHAL_HW_PN5190_LPCD_MODE_POWERDOWN);
if ((status & PH_ERR_MASK) != PH_ERR_SUCCESS) return status;
status = phhalHw_Pn5190_Instr_LPCD_SetConfig(&hal,
PHHAL_HW_CONFIG_LPCD_CONFIG,
PHHAL_HW_PN5190_LPCD_CTRL_ULPCD);
if ((status & PH_ERR_MASK) != PH_ERR_SUCCESS) return status;
status = phhalHw_Pn5190_Instr_LPCD_SetConfig(&hal,
PHHAL_HW_CONFIG_LPCD_REF_VAL,
refVal);
if ((status & PH_ERR_MASK) != PH_ERR_SUCCESS) return status;
return phhalHw_Lpcd(&hal);
}
Hello Eduardo,
Thank you for your reply, and apologies for my delayed response as we are currently quite busy with this topic.
The testing is being done directly on the final product. I already received the prototypes, and all development and validation is now being carried out on them.
The initial setup consists of a host directly controlling the SPI of the PN5190B and an I/O expander handling the VEN and GPIO3 lines. This approach comes from the fact that this is a modification of an already existing product, and I no longer had free GPIOs available on the microcontroller, so I was forced to use two GPIOs from an expander.
The issue is that we are unable to achieve the very low current consumption specified for ULPCD mode. This is the schematic I currently have around the PN5190B:
Tests I have performed:
These are the instructions we are using to enter ULPCD mode, which, based on what I see on the evaluation board, should be correct unless I am mistaken.
Do you have any idea what I could be doing wrong? Any help would be greatly appreciated, as I cannot proceed with manufacturing the first pre-series until this issue is resolved.
Thank you very much in advance.
Best regards,
Ignacio
Hi,
Could you please confirm that you have configured the corresponding EEPROM settings (DCDC and ULPCD) properly? Please refer to PN5190 design-in recommendations, Section 4.3; and PN5190 Data Sheet, Section 9.15.3.
Regards,
Eduardo.