Current draw when NFCT is active

Hello DevZone,

I have a project where I want to use NFCT for communicating and charging. I have used the NRFX_NFCT library to read and write to my transmitter because my transmitter does not support using NDEF messages.

When the NFC field is on and my microcontroller indicates that it is selected I see a very large current drain using the power profiler.

I cannot explain or find out where all this current go to. In normal situations this current draw is no issue except for when the system is starting up.

I have tried using the profiler on the writable NDEF example project to compare the current draw but that was even worst.

Can anyone explain where all the current is flowing to and maybe help to optimize (if that is possible at all)?

Reading the electrical specifications in the datasheet I would have assumed that the current drain would be something like 500uA.

Kind regards,

Tom

  • Hi, I did some measurements here, and after changing the timer period from 100 us to 10000 us it drops from about 3 mA to 1.8 mA. This is when powering VDD with 3V and enabling the DCDC.

    I tried to set up a very simple SENSE test example just to see the minimum achievable current, and just calling TASKS_SENSE makes the NFC peripheral consume about 500 uA, when the tag is in the NFC field, according to spec. Then after starting the HFXO and the TIMER that is needed for the workaround, I get to a base current of 1 mA, when the tag is in the field. I see that if I call TASKS_STARTTX after EVENTS_FIELDDETECTED the current jumps up to 1.8mA, same as when using the NFCT library. But I believe this should go down to 1 mA after the TX/RX is finished. So there might be some issues here. I will continue investigate and let you know.

    Maybe you can try the following code just to see if you get 1 mA as well?

        NRF_CLOCK->TASKS_HFCLKSTART = 1;
        while(!NRF_CLOCK->EVENTS_HFCLKSTARTED){}
        NRF_CLOCK->EVENTS_HFCLKSTARTED = 0;
        NRF_TIMER1->TASKS_START = 1;
        NRF_NFCT->TASKS_SENSE = 1;
        NRF_NFCT->SHORTS = 3;
Related