PN7150 library under FreeRTOS

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

PN7150 library under FreeRTOS

跳至解决方案
2,243 次查看
naga
Contributor III

Hi,

Using the latest version of the software library for NFC / PN7150 integrated in FreeRTOS I found the following deficiency: When the only task that is active is task_nfc () everything works correctly and after reading the card I receive the following message:

WAITING FOR DEVICE DISCOVERY
  - POLL MODE: Remote T2T enabled
         SENS_RES = 0x44 0x0
         NFCID = 4 60 74 12 and 57 81
         SEL_RES = 0x0
--- NDEF record received:
    Record URI: http://identiv.com/nfc-kit

CARD REMOVED

When I create a new task under RTOS, running in parallel with task_nfc (), the NDEF information is no longer read. In this case the message is as follows:

WAITING FOR DEVICE DISCOVERY
  - POLL MODE: Remote T2T enabled
         SENS_RES = 0x44 0x0
         NFCID = 4 60 74 12 and 57 81
         SEL_RES = 0x0

CARD REMOVED

Is it possible to be a timing failure when it comes to interpreting the interrupt signal NXPNCI_IRQ_PIN or the IrqSem semaphore?

Using the NCI_DEBUG precompilation directive you can get the following record:

In case of success:

WAITING FOR DEVICE DISCOVERY
NCI << 60 07 01 a1
NCI << 60 07 01 a1
NCI << 60 07 01 a1
NCI << 60 07 01 a1
NCI << 60 07 01 a1
NCI << 60 07 01 a1
NCI << 61 05 17 01 01 02 00 ff 01 0c 44 00 07 04 60 74 12 0e 57 81 01 00 00 00 00 00
- POLL MODE: Remote T2T activated
SENS_RES = 0x44 0x0
NFCID = 4 60 74 12 e 57 81
SEL_RES = 0x0
NCI >> 00 00 02 30 03
NCI << 60 06 03 01 00 01
NCI << 00 00 11 e1 10 6d 00 03 18 d1 01 14 55 03 69 64 65 6e 74 00
NCI >> 00 00 02 30 04
NCI << 60 06 03 01 00 01
NCI << 00 00 11 03 18 d1 01 14 55 03 69 64 65 6e 74 69 76 2e 63 00
NCI >> 00 00 02 30 08
NCI << 60 06 03 01 00 01
NCI << 00 00 11 6f 6d 2f 6e 66 63 2d 6b 69 74 fe 00 00 00 00 00 00
--- NDEF record received:
URI record: http://identiv.com/nfc-kit

NCI >> 00 00 02 30 00
NCI << 60 06 03 01 00 01
NCI << 00 00 01 02
CARD REMOVED
NCI >> 21 06 01 00
NCI << 41 06 01 00
NCI << 61 06 02 00 00
NCI >> 21 03 15 0a 00 01 02 01 01 01 06 01 03 01 80 01 81 01 82 01 83 01 85 01
NCI << 41 03 01 00

WAITING FOR DEVICE DISCOVERY
NCI << 60 07 01 a1
NCI << 60 07 01 a1

In case of failure:

WAITING FOR DEVICE DISCOVERY
NCI << 60 07 01 a1
NCI << 60 07 01 a1
NCI << 61 05 17 01 01 02 00 ff 01 0c 44 00 07 04 60 74 12 0e 57 81 01 00 00 00 00 00
- POLL MODE: Remote T2T activated
SENS_RES = 0x44 0x0
NFCID = 4 60 74 12 e 57 81
SEL_RES = 0x0
NCI >> 00 00 02 30 03
NCI << 60 06 03 01 00 01
NCI << 00 00 11 e1 10 6d 00 03 18 d1 01 14 55 03 69 64 65 6e 74 00
NCI >> 00 00 02 30 04
NCI << 60 06 03 01 00 01
NCI << 00 00 11 03 18 d1 01 14 55 03 69 64 65 6e 74 69 76 2e 63 00
NCI >> 00 00 02 30 08
NCI << 60 06 03 01 00 01
NCI << 00 00 01 02
NCI >> 00 00 02 30 00
NCI << 60 06 03 01 00 01
NCI << 00 00 02 07 00
CARD REMOVED
NCI >> 21 06 01 00
NCI << 41 06 01 00
NCI << 61 06 02 00 00
NCI >> 21 03 15 0a 00 01 02 01 01 01 06 01 03 01 80 01 81 01 82 01 83 01 85 01
NCI << 41 03 01 00

Regards,

Neculai Agavriloaie

标签 (2)
0 项奖励
1 解答
2,027 次查看
naga
Contributor III

Hello,

The program runs on the development board of the iMX RT1064 microcontroller.

In the meantime I solved the problem.

It is necessary to increase the space allocated for the memory stack for the NFC task.

The value declared in this library (#define TASK_NFC_STACK_SIZE 1024) is insufficient.

Regards,

Neculai

在原帖中查看解决方案

0 项奖励
3 回复数
2,028 次查看
naga
Contributor III

Hello,

The program runs on the development board of the iMX RT1064 microcontroller.

In the meantime I solved the problem.

It is necessary to increase the space allocated for the memory stack for the NFC task.

The value declared in this library (#define TASK_NFC_STACK_SIZE 1024) is insufficient.

Regards,

Neculai

0 项奖励
2,027 次查看
estephania_mart
NXP TechSupport
NXP TechSupport

Hello,

It is good that it works now.


Regards,
Estephania

0 项奖励
2,027 次查看
estephania_mart
NXP TechSupport
NXP TechSupport

Hello,

Which host are you using ? Unless your device includes more than one core to perform the task you can't really have two tasks working at the same time, you will need to make sure to release the necessary resources in order to let the device work correctly and make sure that the transmission is not being interrupted. 

Regards,
Estephania

0 项奖励