PN7160 got spurious interrupt all the time

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

PN7160 got spurious interrupt all the time

2,597 Views
jiafangguo
Contributor III

[ +0.154288] i2c_read: reading 2 bytes.
[ +0.000100] i2c_read: spurious interrupt detected
[ +0.000050] i2c_read: spurious interrupt detected
[ +0.000461] i2c_geni 990000.i2c: i2c error :-107
[ +0.005041] i2c_read: returned -107
[ +0.062324] pps pps0: PPS event at 1714010370.649144910
[ +0.000007] pps pps0: capture assert seq #659
[ +0.092540] i2c_read: reading 2 bytes.
[ +0.000598] i2c_geni 990000.i2c: i2c error :-107
[ +0.004821] i2c_read: returned -107
[ +0.154223] i2c_read: reading 2 bytes.
[ +0.000149] i2c_read: spurious interrupt detected
[ +0.000108] i2c_read: spurious interrupt detected
[ +0.000514] i2c_geni 990000.i2c: i2c error :-107
[ +0.004921] i2c_read: returned -107
[ +0.154498] i2c_read: reading 2 bytes.
[ +0.000807] i2c_geni 990000.i2c: i2c error :-107
[ +0.004958] i2c_read: returned -107
[ +0.154390] i2c_read: reading 2 bytes.
[ +0.000844] i2c_geni 990000.i2c: i2c error :-107
[ +0.004941] i2c_read: returned -107
[ +0.154256] i2c_read: reading 2 bytes.
[ +0.000822] i2c_geni 990000.i2c: i2c error :-107
[ +0.004982] i2c_read: returned -107
[ +0.154619] i2c_read: reading 2 bytes.
[ +0.000127] i2c_read: spurious interrupt detected
[ +0.000028] i2c_read: spurious interrupt detected
[ +0.000165] i2c_read: spurious interrupt detected
[ +0.000110] i2c_read: spurious interrupt detected

 

Got these warning all the time. and tag discovery is not stable.

Any suggestions?

0 Kudos
Reply
16 Replies

2,469 Views
jiafangguo
Contributor III

Hi Tomas,

Thanks for your support. The attachment is our setup.

VDD(PAD) 1V8 (J1-4) ====> host board 1v8

VDD(UP/VBAT)3V3(J1_5) ====> host board 3v3

SDA(J2_2)   ====> host SDA

SCL(J2_1)    ====> host SCL

IRQ(J2_10)   ====> host gpio

VEN(J4_1)    =====> host gpio

DWL_REQ(J4_2)   =====> host gpio

0 Kudos
Reply

2,456 Views
Tomas_Parizek
NXP Employee
NXP Employee

Hello jiafangguo, 

Can you try to change the position of the wires? As they are below the antenna, It could create some interference. You can also try to make a twisted pair from I2C wires. You could also try to make the wires as short as possible. 

Do you have a logic analyzer? It would be nice to check the I2C lines and see what´s going on. 

What I2C mode are you using ? 

Tomas_Parizek_0-1714472588211.png

BR

Tomas 

0 Kudos
Reply

2,485 Views
Tomas_Parizek
NXP Employee
NXP Employee

Hello jiafangguo, 

I would say that the I2C communication/line is disturbed by the RF signal. 

Option number 5 is just a reading of the data without any RF Field action. While number 2 is a functional mode using RF signal which might interfere with the I2C. 

You said you are using our eva. board, right? How do you have it connection it with your host controller board? Are you also using our adapter board? Can you share a photo of your setup, please? 

 

BR

Tomas 

 

0 Kudos
Reply

2,439 Views
jiafangguo
Contributor III
Hi Tomas,
We get rid of carrier board, connect pn7160 directly to our HOST board. The connection seems much stable. Right now, we can't get any tag detection at all. So I dump RF settings. And the values of registers are almost the same. Is there any quick way to write RF setting back to its default? except NfcFactoryTestApp: 6 Set RF settings.
Thanks
0 Kudos
Reply

2,438 Views
jiafangguo
Contributor III
some RF dump

>> 2f 14 02 09 2f
<< 4f 14 06 00 04 00 00 00 01
transition 0x09, register 0x2F = 04 00 00 00 01
>> 2f 14 02 09 30
<< 4f 14 06 00 04 00 00 00 00
transition 0x09, register 0x30 = 04 00 00 00 00
>> 2f 14 02 09 31
<< 4f 14 01 09
>> 2f 14 02 09 32
<< 4f 14 01 09
>> 2f 14 02 09 33
<< 4f 14 01 09
>> 2f 14 02 09 34
<< 4f 14 01 09
>> 2f 14 02 09 35
<< 4f 14 01 09
>> 2f 14 02 09 36
<< 4f 14 01 09
>> 2f 14 02 09 37
<< 4f 14 06 00 04 00 00 00 00
transition 0x09, register 0x37 = 04 00 00 00 00
>> 2f 14 02 09 38
<< 4f 14 01 09
>> 2f 14 02 09 39
<< 4f 14 01 09
>> 2f 14 02 09 3a
<< 4f 14 01 09
>> 2f 14 02 09 3b
<< 4f 14 01 09
>> 2f 14 02 09 3c
<< 4f 14 01 09
>> 2f 14 02 09 3d
<< 4f 14 01 09
>> 2f 14 02 09 3e
<< 4f 14 01 09
>> 2f 14 02 09 3f
<< 4f 14 03 00 01 08
transition 0x09, register 0x3F = 01 08
>> 2f 14 02 09 40
<< 4f 14 01 09
>> 2f 14 02 09 41
<< 4f 14 03 00 01 03
transition 0x09, register 0x41 = 01 03
>> 2f 14 02 09 42
<< 4f 14 06 00 04 01 10 ff ff
transition 0x09, register 0x42 = 04 01 10 FF FF
>> 2f 14 02 09 43
<< 4f 14 01 09
>> 2f 14 02 09 44
0 Kudos
Reply

2,421 Views
jiafangguo
Contributor III
We dumped the whole RF settings. These values are the same as default value. So no need to re-write.
But we test RF continuous on mode. There is no RF transmission. How can I turn it on?
Thanks
0 Kudos
Reply

2,410 Views
Tomas_Parizek
NXP Employee
NXP Employee

Hello jiafangguo, 

I see you are using 3.3V for TXLDO supply. 

VDD(UP/VBAT)3V3(J1_5) ====> host board 3v3

I think you are facing this issue -> https://www.nxp.com/docs/en/application-note/AN13892.pdf -> 9 TXLDO check  

Can you try to disable the TXLDO check? 

BR

Tomas 

0 Kudos
Reply

2,403 Views
jiafangguo
Contributor III

I tried to set DPC according to CFG1, 3.3v, target current 212mA, as following:

20 02 5B 01 A0 0B 57 E3 03 90 70 0F 4E 00 40 95 B7 AA 40 9F A7 99 53 9F 97 99 5C 9F 97 99 5E 1F 97 00 67 1F 07 00 69 1F 07 00 73 1F 07 00 76 1F 07 00 7E 1F 07 00 80 1F 07 00 89 1F 04 00 8B 1F 04 00 95 1F 04 00 96 1F 04 00 A0 1F 02 00 A7 1F 00 00 AD 1F 00 00 B7 1F 00 00 C0 1F 00 00

 

After get current:

Select the test to run:
1. Continuous RF ON mode
2. Functional mode
3. PRBS mode
4. Standby mode
5. Dump RF settings
6. Set RF setting
7. Get NCI parameter value
8. Set NCI parameter value
9. Get proprietary parameter value
10. Set proprietary parameter value
11. Get current value
12. DPC Check
enter 0 to leave the application
Your choice: 11
Get current value (enter 'ff' during tag ID selection step to leave):

- enter 80 to get current value (hexadecimal): 80
>> 2f 3d 02 01 80
<< 4f 3d 05 00 1a 03 00 00

Current raw value= 1Ah
Range (00h->20 mA / 01h->60 mA / 02h->120 mA / 03h->160 mA)= 03

=====> 160mA + 26(0x1A) = 186mA ======> which is not 212mA???

plus: DPC check:

Select the test to run:
1. Continuous RF ON mode
2. Functional mode
3. PRBS mode
4. Standby mode
5. Dump RF settings
6. Set RF setting
7. Get NCI parameter value
8. Set NCI parameter value
9. Get proprietary parameter value
10. Set proprietary parameter value
11. Get current value
12. DPC Check
enter 0 to leave the application
Your choice: 12
DPC Check (enter 'ff' during tag ID selection step to leave):

- Enter 00 for DPC Check (hexadecimal): 00
>> 2f 3f 03 03 00 00
<< 4f 3f fb 00 50 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01 3e 01
DPC check parameters=
byte0 4Fh
byte1 3Fh
Lenght FBh
Status(00h OK) 00h
B1 50h
B2 01h
B3 3Eh
B4 01h
B5 3Eh
B6 01h
B7 3Eh
B8 01h

All errors on DPC helper sheet(from PN7160_DPC_configuration_table.xlsx)

Any clue?

Thanks

0 Kudos
Reply

2,405 Views
jiafangguo
Contributor III
Hi Tomas,

We tried NXP_EXT_TVDD_CFG_1={20, 02, 0F, 01, A0, 0E, 0B, 11, 01, 01, 01, 00, 00, 00, 00, 00, 10, 0C}, without any luck.
0 Kudos
Reply

2,386 Views
Tomas_Parizek
NXP Employee
NXP Employee

Hello jiafangguo, 

 

Just for my understanding, can you see some RF fields or not? 

BR

Tomas 

 

 

0 Kudos
Reply

2,379 Views
jiafangguo
Contributor III
No. We tried to measure RF transmission, nothing. We have another pn1760 for another project QW. Compare with it, QW RF on test is fine, can see RF transmission. But not for ours. 
0 Kudos
Reply

2,350 Views
Tomas_Parizek
NXP Employee
NXP Employee

Hello jiafangguo, 

 

Ok, understood. Do you have some different Host device e.g., LPC5569 or Raspberry Pi where you can try the PN7160 functionality? 

Could you also share the logs for the current scenario, please? Ideally for the case when you want to start polling. 

BR

Tomas 

 

 

0 Kudos
Reply

2,528 Views
jiafangguo
Contributor III

Select the test to run:
1. Continuous RF ON mode
2. Functional mode
3. PRBS mode
4. Standby mode
5. Dump RF settings
6. Set RF setting
7. Get NCI parameter value
8. Set NCI parameter value
9. Get proprietary parameter value
10. Set proprietary parameter value
enter 0 to leave the application

 

If I chose 5, dump RF settings, it runs perfectly. got all the value. No wait on write, no spurious interrupts.

As soon as I chose 2, functional mode:

[ +0.000381] i2c_write: writing 5 bytes.
[ +0.000724] i2c_read: reading 3 bytes.
[ +0.000695] i2c_read: reading 1 bytes.
[ +0.000324] i2c_write: writing 5 bytes.
[ +0.000752] i2c_read: reading 3 bytes.
[ +0.000694] i2c_read: reading 1 bytes.
[ +0.319541] sd 0:0:0:0: [sda] Synchronizing SCSI cache
[ +6.067390] sd 0:0:0:0: [sda] Synchronizing SCSI cache
[ +5.468309] i2c_write: writing 12 bytes.
[ +0.002469] i2c_read: reading 3 bytes.
[ +0.001950] i2c_geni 990000.i2c: i2c error :-107
[ +0.004840] i2c_read: returned -107
[ +0.221459] sd 0:0:0:0: [sda] Synchronizing SCSI cache
[ +9.302378] sd 0:0:0:0: [sda] Synchronizing SCSI cache
[ +9.014644] sd 0:0:0:0: [sda] Synchronizing SCSI cache
[Apr27 00:26] i2c_write: writing 5 bytes.
[ +0.000025] i2c_write: irq high during write, wait
[ +0.004470] i2c_geni 990000.i2c: i2c error :-107
[ +0.005117] i2c_write: write failed ret(-107), maybe in standby
[ +0.003671] i2c_write: writing 5 bytes.
[ +0.000168] i2c_geni 990000.i2c: Bus arbitration lost, clock line undriveable
[ +0.007710] i2c_geni 990000.i2c: Bus proto err, noisy/unepxected start/stop
[ +0.007427] i2c_geni 990000.i2c: i2c error :-71
[ +0.004748] i2c_write: write failed ret(-71), maybe in standby

0 Kudos
Reply

2,529 Views
jiafangguo
Contributor III

[ +0.003073] i2c_read: reading 3 bytes.
[ +0.002017] i2c_write: writing 26 bytes.
[ +0.009602] i2c_read: reading 2 bytes.
[ +0.002914] i2c_read: reading 3 bytes.
[ +0.000535] i2c_write: writing 19 bytes.
[ +0.015742] i2c_read: reading 2 bytes.
[ +0.003735] i2c_read: reading 3 bytes.
[ +0.000614] i2c_write: writing 8 bytes.
[ +0.004996] i2c_read: reading 2 bytes.
[ +0.002922] i2c_read: reading 3 bytes.
[ +0.001359] i2c_write: writing 18 bytes.
[ +0.004583] i2c_geni 990000.i2c: i2c error :-107
[ +0.004951] i2c_read: returned -107
[ +0.034144] i2c_read: reading 3 bytes.
[ +0.000043] i2c_read: spurious interrupt detected
[ +0.000025] i2c_read: spurious interrupt detected
[ +0.000017] irq 347, desc: 00000000a43522b9, depth: 0, count: 0, unhandled: 0
[ +0.000008] i2c_read: spurious interrupt detected
[ +0.000020] ->handle_irq(): 0000000023d73ec4, msm_gpio_irq_handler+0x0/0x178
[ +0.000015] ->irq_data.chip(): 0000000099243b86, gic_chip+0x0/0x120
[ +0.000006] ->action(): 00000000c754d3e6
[ +0.000003] i2c_read: spurious interrupt detected
[ +0.000014] ->action->handler(): 00000000b3a25f57, bad_chained_irq+0x0/0x48      <<===== this is from other GICv3 347 Level arm-smmu-context-fault, maybe map to our i2c irq, not sure how to verify it.
[ +0.000006] IRQ_LEVEL set
[ +0.000005] IRQ_NOPROBE set
[ +0.000005] IRQ_NOREQUEST set
[ +0.000004] IRQ_NOTHREAD set
[ +0.000454] i2c_geni 990000.i2c: i2c error :-107
[ +0.004907] i2c_read: returned -107
[ +0.064184] i2c_read: reading 3 bytes.
[ +0.000535] i2c_geni 990000.i2c: i2c error :-107
[ +0.004929] i2c_read: returned -107
[ +0.094523] i2c_read: reading 3 bytes.
[ +0.000380] i2c_geni 990000.i2c: i2c error :-107
[ +0.004950] i2c_read: returned -107
[ +0.124386] i2c_read: reading 3 bytes.
[ +0.000803] i2c_geni 990000.i2c: i2c error :-107
[ +0.004954] i2c_read: returned -107
[ +0.154294] i2c_read: reading 3 bytes.
[ +0.000405] i2c_geni 990000.i2c: i2c error :-107
[ +0.004939] i2c_read: returned -107

0 Kudos
Reply

2,536 Views
jiafangguo
Contributor III

https://community.nxp.com/t5/NFC/PN7160-can-t-reset/m-p/1854411/emcs_t/S2h8ZW1haWx8dG9waWNfc3Vic2Nya...

we use your Evaluation kit

And even I test with NfcFactoryTestApp, it happens.

Thanks for your response.

0 Kudos
Reply

2,560 Views
Fabian_R
NXP TechSupport
NXP TechSupport

This is Fabian,

Thank you for your interest in our products.

I'm sorry but I will need a little more information, are you testing this with our Evaluation kit? Preferably following our application note.

I would greatly appreciate it if you could please share your antenna configurations. This is explained in section 6.5 of AN13288 also.

Best Regards,
Fabian
0 Kudos
Reply