Hello,
can you tell me what is the maximum current the high-drive current GPIO can deliver to the load when the chip is NFC powered?
Thanks
Cyril
Solved! Go to Solution.
Hi CyrilBZH,
Correct. However, with the fix, checking the voltage with an oscilloscope is highly advisable.
Kind regards,
Patrick
Hello Cyril,
The usable voltage and current from the GPIO pins is mainly limited by the following factors:
- the NFC power supply is like a 1.85V supply with an approximate 200 ohm impedance.
- during NFC reader to tag data communication, for 3 out of 4 bits (simplified), the NFC field is interrupted for 3us. During these 3us periods, there is no energy transfer and the tag has to survive on charge stored in internal capacitance (about 2.5nF). The internal voltage steadily decreases due to this capacitance being discharged by the total current (internal plus external). If the voltage at the end of the gap is too low for components to work, either the current has to be decreased (switching off unnecessary blocks, decreasing system clock frequency) or the capacitance increased. An option is to add extra buffering capacitance to GPIO pins set to output mode high. You need to pre-charge these caps via the internal pad pull-up before switching to output mode, otherwise the discharged cap acts like a short on the internal supply and the chip will reset. (Set the GPIO to input mode with pull-up, delay, read the pin to make sure it reports high, switch to output mode)
Check the internal supply rail voltage with an oscilloscope on an unused I/O pin (except PIO04/5) in GPIO output mode high. The measured voltage during communication from reader to tag will look similar to the following (yellow = pin voltage, pink = NFC field with wire loop). The drop depth depends on the current drawn.
Kind regards,
Patrick
@patrickgeens #nhs3152
I am working on ironing out a charge routine for supplementary capacitance. I have a couple of questions:
(1) You state: "You need to pre-charge these caps via the internal pad pull-up before switching to output mode, otherwise the discharged cap acts like a short on the internal supply and the chip will reset." Indeed, I have noticed this effective short. Why is this the case?
(2) Using the suggested charge routine gives an odd result:
Here, the controller is powered via VDDBAT (really a power supply). What's odd is that the pin / capacitor charge to a junction drop initially, rather than to the supplied voltage (2V). Any idea why that might be? As you can see, this is somewhat moot in the sense that it does jump to 2V when switched to output + high.
Unfortunately, this does not occur when powered with the RF field of a Sony RC-S380.
Here is the function call handling this:
void charge_cap(void){
Chip_IOCON_SetPinConfig(NSS_IOCON, IOCON_PIO0_3 , IOCON_FUNC_0 | IOCON_RMODE_PULLUP);
Chip_IOCON_SetPinConfig(NSS_IOCON, IOCON_PIO0_7 , IOCON_FUNC_0 | IOCON_RMODE_PULLUP);
Chip_GPIO_SetPinDIRInput(NSS_GPIO, 0, IOCON_PIO0_3);
Chip_GPIO_SetPinDIRInput(NSS_GPIO, 0, IOCON_PIO0_7);
Chip_Clock_System_BusyWait_ms(500); // charge 10 uF capacitor
Chip_GPIO_SetPinDIROutput(NSS_GPIO, 0, IOCON_PIO0_3);
Chip_GPIO_SetPinDIROutput(NSS_GPIO, 0, IOCON_PIO0_7);
Chip_GPIO_SetPinOutHigh(NSS_GPIO, 0, IOCON_PIO0_3);
Chip_GPIO_SetPinOutHigh(NSS_GPIO, 0, IOCON_PIO0_7);
}
A couple of other notes:
Do you have a suggestion for how to adjust the charge routine to work with RF power?
Thanks!
Hi CyrilBZH,
Correct. However, with the fix, checking the voltage with an oscilloscope is highly advisable.
Kind regards,
Patrick