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
解決済! 解決策の投稿を見る。
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
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
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.
Hi @skarabozzo
Please see the format of control packets
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
Since this command is wrong, then it still in standard mode, not low power mode.
Please correct it and try it again.
Regards
Daniel
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?
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