hi all, hope you can help me due we are out of ideas...
We have a custom board with a PN5190B1HN/C121E (host: CC1352 MCU over SPI). A new production lot of ~100 units shows a ~75% failure rate: the device stops responding on SPI the moment the RF field is switched on for the first time, and only recovers after a VEN reset. Units from the previous lot (prototypes 5 pcs), same design and BOM, work correctly. We have ruled out antenna/matching, TX short, static supply, SYS3V brownout, chip FW and silicon lot with measurements. We are looking for the confirmed root cause, a possible silicon erratum, or an EEPROM/power configuration we may be missing.
| Antenna / matching / tuning | miniVNA on 4 good + 4 bad units → indistinguishable: resonance good 12.565 MHz / bad 12.593 MHz, RL ≈ −9 dB, |Z| ≈ 24.7 Ω, SWR ≈ 2.08 on both |
| TX short / overcurrent | DC resistance TX1–TX2 ≈ 1.2 kΩ, TX1–GND ≈ TX2–GND ≈ 1.15 kΩ, identical good vs bad |
| Static supply leak / decoupling | Current draw identical good vs bad until ~2.7 s |
| SYS3V brownout | Measured stable at 3.3 V; added 47 µF bulk on all 3.3 V rails → no change, still fails |
| Chip FW | Updated a unit to the latest PN5190 firmware → still fails, same behaviour. (Untouched good and bad units both report FW 0x0201.) |
| Silicon lot | DIEID good 00000000 0DD0945E 5B38BDDC 892C0810 vs bad 00000000 0DD095A6 6938BDDC 892C0E64 — same prefix/lot structure |
| TX driver amplitude | Reduced CLIF_SS_TX1/2_RMCFG CW amplitude before FieldOn → no change |
| TX_LDO overcurrent protection | Disabled it via TX_LDO_CONFIG bit 11 (0xAE → 0xA6) → no change |
| TX_LDO output capacitor | Removed VDDPA output caps (4.7 µF + 100 pF) → no change |
Thanks in advance ,
Ignacio
Hello sir,
There are no published known issues that can cause the RF Fiel ON command to hang the IC.
Could you please clarify whether the issue was resolved on all affected PN5190 devices after updating the firmware and cloning the EEPROM contents? This information would help us better understand the scope of the problem.
If the issue persists on some units, have you had the opportunity to perform an A/B comparison test between a working and a failing device? Such a test could help determine whether the root cause is related to the IC itself or to another element of the system.
Regarding the lot tracking, could you please check with your distributor whether they can provide additional information about the production lot and manufacturing history of the affected components?
The puzzling part: working and failing units have the same firmware version (v2.01), the same silicon revision (B1), the same hardware, the same antenna tuning, and — after cloning — the same EEPROM content. Yet some work and most do not.
Upgrading the PN5190 firmware to v2.0D fixes the failing units. We would like to understand why, and whether there is a known issue in v2.01.
1. Sympton:
On a failing unit:
Log from the NFC Cockpit on a failing unit:
INFO:RFProtocolTuningService_PN5190:Load protocol: RM_A_106
INFO:TypeACardViewModel:RM_A_106 Protocol loaded successfully.
INFO:RfFieldControlService:RF On
WARN:ABalDelegate:Waited for PIN_IRQ to go High. Timed out.
ERROR:RfFieldControlService:Error 240,IO_TIMEOUT while during field on.
Log from a working unit, same firmware, same setup:
INFO:RFProtocolTuningService_PN5190:Load protocol: RM_A_106
INFO:TypeACardViewModel:RM_A_106 Protocol loaded successfully.
INFO:RfFieldControlService:RF On
INFO:RfFieldControlService:RF Off
ATQA 04 00 / SAK 0x08 / UID 04 8D 12 33
2. TEST SETUP
To rule out our own host firmware, we connected the production boards directly to a PNEV5190BP used as a USB↔SPI bridge, following the NXP Knowledge Base article “How to connect external PN5190 to PNEV5190BP Evaluation Board” (R5/R7 placed, R6 open; R20 placed; VBAT/VBAT_PWR/VUP jumpers removed; SPI_CLK, SPI_MOSI, SPI_MISO, SPI_CS, NFC_IRQ, NFC_VEN, GND wired to the external board).
The failure reproduces identically with the NXP host and NXP software, so it is not caused by our host firmware.
3. What we ruled out (with measurements):
Hypothesis | How it was ruled out |
Supply collapse / brownout | 3.3 V rail measured stable throughout |
Short circuit on TX | DC resistance TX1-TX2, TX1-GND, TX2-GND identical on good and bad units (several kΩ) |
Leakage on PA decoupling | Identical current consumption good vs bad until the field-on moment |
Antenna detuning / matching | VNA measurement, 4 good + 4 bad units — see below |
Physical damage to the IC | The chip recovers with a hardware reset and fails again reproducibly |
Our host firmware | Reproduced with NFC Cockpit + PNEV5190BP |
PN5190 firmware version | Both good and bad units are on v2.01, Hw B1 |
User EEPROM content | Cloned the complete EEPROM of a good unit into a bad unit → still fails |
Difference: ~29 kHz (0.2%), within measurement noise. Confirmed on 8 boards. Antennas are indistinguishable.
4. THE EEPROM COMPARISION - one single byte
We dumped the complete user EEPROM of a good unit and a bad unit, both on FW v2.01, and diffed them.
Out of 648 parameters, exactly one differs:
Region: DPC_SETTINGS
Param: DPC_CONFIG
Offset: 0x76
GOOD unit: 0x77
BAD unit: 0x76
Everything else is byte-identical.
This looked like the answer, especially given the precautionary note in RN00003:
Do not disable the DPC and activate the RF field for ICs connected to antennas matched “Symmetric” (for example, customer development board antenna). Possible damage of the transmitter drivers due to overcurrent over a long period might occur.
Our antenna is symmetric (differential TX1/TX2), and the one-time ~600 mA event on first power-up is consistent with an overcurrent condition.
Test | Result |
Write DPC_CONFIG = 0x77 to a bad unit (v2.01), verify readback, power cycle | Still fails |
Load the complete EEPROM dump of a good unit into a bad unit (v2.01), power cycle | Still fails |
Good unit, unmodified, v2.01 | Works perfectly |
So DPC_CONFIG correlates with pass/fail but is not the cause. Whatever the real difference is, it is not in the user EEPROM area.
5. what does fix it: secure firmware upgrade to V2.0D
Performing a Secure Firmware Upgrade with PN5190Firmware_2.0D.esfwu (LEDL folder, legacy download for B0/B1) makes the failing units work:
Two units recovered this way so far, both fully functional.
After the upgrade, EEPROM offset 0x0000 (PwrConfig) changes from 0x21 to 0xE4. With 0xE4:
PwrConfig 0xE4 | PwrConfig 0x21 (restored) | |
Idle current | ~290 mA | ~33 mA |
Die temperature (PMU_TEMP_REG@0x5B) | 100 °C | 40 °C |
290 mA at idle with no RF field, and the internal temperature sensor reading 100 °C (Tj max is 125 °C). We restore PwrConfig to 0x21 after every upgrade.
Is 0xE4 the intended default for PwrConfig in v2.0D? This looks like it could be a problem for other users too.
Parameter | Offset | Before (v2.01) | After (v2.0D) |
PwrConfig | 0x00 | 0x21 | 0xE4 |
DPC_CONFIG | 0x76 | 0x76 | 0x77 |
DPC_GUARD_TIME | 0x87 | 0x64 | 0xFF |
DPLL_CONTROL | 0x2AE | 0x00000C03 | 0x00000C63 |
DpllPhaseRfON | 0x2D2 | 0x012C | 0x00A0 |
DpllPhaseCeA | 0x2D4 | 0x012C | 0x00A0 |
RssiCtrl_00_AB | 0x2DE | 0x09 | 0x0C |
rssi_no_samples | 0x4CA | 0x02 | 0x00 |
polarity | 0x4CC | 0x00 | 0x01 |
LpcdExtDcdcDelayToOn | 0xCE1 | 0x00 | 0x64 |
LpcdExtDcdcDelayToOff | 0xCE2 | 0x00 | 0x64 |
ClifRXFrameLen | 0xCE4 | 0x00000000 | 0x00EF0003 |
RxGuardTO_Multiple | 0xCE8 | 0x00 | 0x01 |
DigitalTBSignalIndex | 0xCE9 | 0x00 | 0x9B |
DigitalTBSignalBit | 0xCEA | 0x00 | 0x04 |
AnalogTBSignal | 0xCEB | 0x00 | 0x78 |
Since cloning a good unit’s complete EEPROM into a bad unit does not fix it, the fix cannot be in these 16 bytes alone — something in the firmware code itself must be involved.
All units are Hw B1, FW v2.01 as received:
BAD #1: 00 00 00 00 0D D0 94 5A 5F 38 BD DC 89 2C 04 22
BAD #2: 00 00 00 00 0D D0 95 A6 69 38 BD DC 89 2C 0E 64
BAD #3: 00 00 00 00 0D D0 95 62 5F 38 BD DC 89 2C 08 10
GOOD #1: 00 00 00 00 0D D0 95 0E 5D 38 BD DC 89 2C 08 10
Any guidance appreciated.