PN7160 low power RF Discovery mode

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

PN7160 low power RF Discovery mode

Jump to solution
616 Views
skarabozzo
Contributor II

Hi all,
I'm starting to work on a project that icludes reading nfc cards with a PN7160 and I'm trying to achieve the lowest consumption possible.
So I want to use the RF Discovery mode but I'm unable to do it.

I have a LPCXpresso824-MAX and I'm tryng to modify the examples in the "NXP-NCI2.0_MCUXpresso_examples" archive.


Based on this documentation:

- UM11495 (user manual)

- AN12990 (PN7160 low-power mode configuration)

- AN13218 (PN7160 RF settings guide)

I modified the "NxpNci_CORE_CONF_EXTN" buffer in the "Nfc_settings.h" file to send instead of NXP_CORE_CONF buffer.
So this is what i'm sending to the controller:


NxpNci_CORE_CONF_EXTN[]={0x20, 0x02, 0x05, 0x01, /* CORE_SET_CONFIG_CMD */
0xA0, 0x40, 0x01, 0x01, /* TAG_DETECTOR_CFG */
0xA0, 0x41, 0x01, 0x04,
0xA0, 0x42, 0x01, 0xFF,
0xA0, 0x43, 0x01, 0x00,
0xA0, 0x61, 0x01, 0x00,

};

But it doesn't work.
First of all, there is no indication of what the answer should be, so I tried to disable the answer check and the controller goes like nothing happened and it works in standard mode.

I don't understand how should I do this, in the manual there is a long list of commands to send for the RF Discovery mode. But in the low-power application note only a few are used, so I tried those.
And what about the answers? I can't find any documentation about how the answers to the commands should be.

If anyone can help me that would be great, thank you

0 Kudos
1 Solution
387 Views
skarabozzo
Contributor II

Yess I finally found the problem.
First of all the buffer to edit for the controller to not show the error is:
NxpNci_CORE_CONF and not NxpNci_CORE_CONF_EXTN

this is how I configured it:

NxpNci_CORE_CONF[]={0x20, 0x02, 0x19, 0x06, /* CORE_SET_CONFIG_CMD */

0x00, 0x02, 0xFE, 0x01,

0xA0, 0x40, 0x01, 0x01, 

0xA0, 0x41, 0x01, 0x04,

0xA0, 0x42, 0x01, 0x0F,

0xA0, 0x43, 0x01, 0x00,

0xA0, 0x61, 0x01, 0x00, 

};



Then, if you want to see it work you have to explicity allow the controller to make it go in standby mode.
For this you have to edit this buffer like this:

NxpNci_CORE_STANDBY[]={0x2F, 0x00, 0x01, 0x01};

Thanks for the support

 

 

View solution in original post

6 Replies
577 Views
danielchen
NXP TechSupport
NXP TechSupport

Hi 

I would suggest you refer to AN12990: PN7160 low power mode configuration.  This application note depicts how to use and tune this feature.   how to configure low power mode.

https://www.nxp.com.cn/docs/en/application-note/AN12990.pdf

 

Regards

Daniel

0 Kudos
541 Views
skarabozzo
Contributor II

Yes, as I said in my original post I tried reading that documentation and I think that it doesnt really explain how to configure it.

0 Kudos
491 Views
danielchen
NXP TechSupport
NXP TechSupport

Hi @skarabozzo 

 

Please see the format of control packets

danielchen_0-1708569001400.png

 

Octet 2 is payload length,   but for your command, the payload length is 0x05,  that is wrong,  it should be 0x16 =21

Octet 3 is the number of parameters  , in your case,  Octet 3 should be 0x5. not 0x01

danielchen_1-1708569116532.png

Since this command is wrong,  then it still in standard mode, not low power mode.

Please correct it  and try it again.

 

Regards

Daniel

 

 

0 Kudos
455 Views
skarabozzo
Contributor II

Hi thank you for the support,

It still doesn't work, the controller returns error becasue the answer to that command is not "0x40, 0x02, 0x00, 0x00" as it expects but it is "0x40, 0x03, 0x25, 0x00".
Maybe the solution is in the error code?

0 Kudos
408 Views
danielchen
NXP TechSupport
NXP TechSupport

Hi @skarabozzo 

I copied this command to my board,  it seems OK

danielchen_0-1710243943616.png

Regards

Daniel

Tags (1)
0 Kudos
388 Views
skarabozzo
Contributor II

Yess I finally found the problem.
First of all the buffer to edit for the controller to not show the error is:
NxpNci_CORE_CONF and not NxpNci_CORE_CONF_EXTN

this is how I configured it:

NxpNci_CORE_CONF[]={0x20, 0x02, 0x19, 0x06, /* CORE_SET_CONFIG_CMD */

0x00, 0x02, 0xFE, 0x01,

0xA0, 0x40, 0x01, 0x01, 

0xA0, 0x41, 0x01, 0x04,

0xA0, 0x42, 0x01, 0x0F,

0xA0, 0x43, 0x01, 0x00,

0xA0, 0x61, 0x01, 0x00, 

};



Then, if you want to see it work you have to explicity allow the controller to make it go in standby mode.
For this you have to edit this buffer like this:

NxpNci_CORE_STANDBY[]={0x2F, 0x00, 0x01, 0x01};

Thanks for the support