PN7160 low power RF Discovery mode

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

PN7160 low power RF Discovery mode

ソリューションへジャンプ
618件の閲覧回数
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 件の賞賛
1 解決策
389件の閲覧回数
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

 

 

元の投稿で解決策を見る

6 返答(返信)
579件の閲覧回数
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 件の賞賛
543件の閲覧回数
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 件の賞賛
493件の閲覧回数
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 件の賞賛
457件の閲覧回数
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 件の賞賛
410件の閲覧回数
danielchen
NXP TechSupport
NXP TechSupport

Hi @skarabozzo 

I copied this command to my board,  it seems OK

danielchen_0-1710243943616.png

Regards

Daniel

タグ(1)
0 件の賞賛
390件の閲覧回数
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