NHS3152 loading buffer cap when NFC powered

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

NHS3152 loading buffer cap when NFC powered

Jump to solution
362 Views
CyrilBZH
Contributor I

Hello,

I’m using the NHS3152 chip.

The application requires the chip to be NFC powered.

I read several contribution and answers from the community.

I first tried to have the blinck program working when the dev board is NFC power.

So program the chip vian LCP link, then disconnect and apply the NFC filed.

 The program runs well.

Here is an image of the NFC received field on the dev board (yellow), below signal on PIO0_2.

CyrilBZH_0-1700669426518.jpeg

 

Since in my application, the NHS3152 will have to light 3 red LEDs (with voltage bias at 1.6V and each with a current varying from 0 up to 1mA), I need to use a capacitor to store voltage.

Basically I want to reproduce image below from post

NHS3152 power only from NFC field and load Capacit... - NXP Community

 

CyrilBZH_1-1700669426582.png

 

 

So according to one post and the datasheet I use a 330nF cap with a pull-up resistor of 3.3kOhms to slowly charge the cap.

Here is a schematic of my circuit :

 

CyrilBZH_2-1700669426591.png

 

I used the following program

#include "board.h"

int main(void)

{

    Board_Init();

    Chip_IOCON_Init(NSS_IOCON);

    Chip_GPIO_Init(NSS_GPIO);

    // TODO: insert code here

 

 

    Chip_IOCON_SetPinConfig(NSS_IOCON, IOCON_PIO0_7 , IOCON_FUNC_0 | IOCON_RMODE_PULLUP | IOCON_LPF_DISABLE);

    Chip_IOCON_SetPinConfig(NSS_IOCON, IOCON_PIO0_2, IOCON_FUNC_0 | IOCON_RMODE_PULLUP | IOCON_LPF_DISABLE);

 

    while(1){

               //Charge up Capacitor

                     Chip_GPIO_SetPinDIRInput(NSS_GPIO, 0,IOCON_PIO0_7);

               // Wait to charge

                     Chip_Clock_System_BusyWait_ms(300);

 

               //Reconfigure PIO_7 as output

               Chip_GPIO_SetPinDIROutput(NSS_GPIO, 0, IOCON_PIO0_7);

               //Set PIO_7 at logic 1

               Chip_GPIO_SetPinOutHigh(NSS_GPIO, 0, IOCON_PIO0_7);

 

               //Check VDD value on PIO_2

               //Chip_GPIO_SetPinDIROutput(NSS_GPIO, 0, IOCON_PIO0_2);

               //Set PIO_2 at logic 1

               //Chip_GPIO_SetPinOutHigh(NSS_GPIO, 0, IOCON_PIO0_2);

    }

    return 0;

}

 

This is not working, I basically dont’ see any change on the voltage cap value.

Is the program not working ?

Thanks

0 Kudos
1 Solution
335 Views
patrickgeens
NXP Apps Support
NXP Apps Support

Hi CyrilBZH,

 

The cap needs a low ohmic connection to the pad, so no external series resistor. It can be slowly charged via the internal pull-up in the same pad (but this has a fixed 70k+ resistance).


For more flexibility an extra pad + external resistor can be used, as shown in the drawing below.

patrickgeens_0-1700828056668.png

The pad transistors have a non negligible impedance, so the buffering performance of the external cap may be impaired.

 

Kind regards,

Patrick

View solution in original post

2 Replies
311 Views
CyrilBZH
Contributor I

Hello Patrick,

ok it works! The problem came from my oscilloscope probe.

All the best

Cyril

0 Kudos
336 Views
patrickgeens
NXP Apps Support
NXP Apps Support

Hi CyrilBZH,

 

The cap needs a low ohmic connection to the pad, so no external series resistor. It can be slowly charged via the internal pull-up in the same pad (but this has a fixed 70k+ resistance).


For more flexibility an extra pad + external resistor can be used, as shown in the drawing below.

patrickgeens_0-1700828056668.png

The pad transistors have a non negligible impedance, so the buffering performance of the external cap may be impaired.

 

Kind regards,

Patrick