PN7150 RFID I2C no Acknowledge

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

PN7150 RFID I2C no Acknowledge

Jump to solution
1,930 Views
andreas_willig
Contributor II

Hello everyone, hello @IvanRuiz,

i got a customer board based on Toradex imx6ull SOM. There is a PN7150 RFID connected using I2C on default address (0x28).

When trying to come up with NCI Library i get strange No ACKs, which prohibit the device to be started correctly.

The PN7150 is connect with Configuration 1 (Only 3.3V) not like on OM eval board (where C2 is used with 5V and 3.3 V), but this should not cause I2C not to be acked isn't it?

What i did see during observation is, that the PN7150 has more data to send in case of error, which seems not to be received by NCI Lib.

To hit the error i currently use: nfcDemoApp poll

[ 148.777720] pn5xx-read: 00000000: 41 01 01 A..
[ 148.785725] i2c i2c-0: <i2c_imx_xfer>
[ 148.785735] i2c i2c-0: <i2c_imx_start>
[ 148.785949] i2c i2c-0: <i2c_imx_bus_busy>
[ 148.785965] i2c i2c-0: <i2c_imx_xfer> transfer message: 0
[ 148.785978] i2c i2c-0: <i2c_imx_xfer> CONTROL: IEN=1, IIEN=1, MSTA=1, MTX=1, TXAK=1, RSTA=0
[ 148.785990] i2c i2c-0: <i2c_imx_xfer> STATUS: ICF=1, IAAS=0, IBB=1, IAL=0, SRW=0, IIF=0, RXAK=1
[ 148.786000] i2c i2c-0: <i2c_imx_read> write slave address: addr=0x51
[ 148.786140] i2c i2c-0: <i2c_imx_trx_complete> TRX complete
[ 148.786150] i2c i2c-0: <i2c_imx_acked> ACK received
[ 148.786158] i2c i2c-0: <i2c_imx_read> setup bus
[ 148.786168] i2c i2c-0: <i2c_imx_read> read data
[ 148.786298] i2c i2c-0: <i2c_imx_trx_complete> TRX complete
[ 148.786309] i2c i2c-0: <i2c_imx_read> clear MSTA
[ 148.786318] i2c i2c-0: <i2c_imx_bus_busy>
[ 148.786335] i2c i2c-0: <i2c_imx_read> read byte: B0=0x0
[ 148.786350] i2c i2c-0: <i2c_imx_xfer> exit with: success msg: 1
[ 148.787370] pn5xx-read: 00000000: 00 .
[ 148.796170] i2c i2c-0: <i2c_imx_xfer>
[ 148.796185] i2c i2c-0: <i2c_imx_start>
[ 148.796600] i2c i2c-0: <i2c_imx_bus_busy>
[ 148.796620] i2c i2c-0: <i2c_imx_xfer> transfer message: 0
[ 148.796632] i2c i2c-0: <i2c_imx_xfer> CONTROL: IEN=1, IIEN=1, MSTA=1, MTX=1, TXAK=1, RSTA=0
[ 148.796645] i2c i2c-0: <i2c_imx_xfer> STATUS: ICF=1, IAAS=0, IBB=1, IAL=0, SRW=0, IIF=0, RXAK=1
[ 148.796656] i2c i2c-0: <i2c_imx_read> write slave address: addr=0x51
[ 148.796847] pn5xx-write: 00000000: 21 00 0d 04 04 03 02 05 03 03 80 01 80 03 02 01 !...............
[ 148.806145] i2c i2c-0: <i2c_imx_trx_complete> TRX complete
[ 148.806155] i2c i2c-0: <i2c_imx_acked> No ACK
[ 148.806164] i2c i2c-0: <i2c_imx_stop>
[ 148.806172] i2c i2c-0: <i2c_imx_bus_busy>
[ 148.806196] i2c i2c-0: <i2c_imx_xfer> exit with: error: -6
[ 148.807220] pn54x_dev_read: i2c_master_recv returned -6

NCI Log:

NxpTml: PN54X - I2C Read successful.....

NxpNciR: len = 6 > 400003001100
NxpTml: PN54X - Posting read message.....

NxpHal: read successful status = 0x0
NxpHal: Response timer stopped
NxpHal: Checking response
NxpTml: PN54X - Read requested.....

NxpTml: PN54X - Invoking I2C Read.....

NxpTml: PN54X - Write requested.....

NxpTml: PN54X - Invoking I2C Write.....

NxpTml: _i2c_read() [hdr] errno : 6
NxpTml: PN54X - Error in I2C Read.....

Any Help is very appreciated, things did work with PN7120, when switched to (production) PN7150 we faced this problem.

Thanks in advance

Andreas

 

0 Kudos
Reply
1 Solution
1,853 Views
andreas_willig
Contributor II

Seems to be a hardware fault on my customer's board. But pn7150 is an obsolete option by current master branch of linux_libnfc-nxp.

If someone else observes a similar problem: The GPIOs for Enable and IRQ have been exchanged in the connector, which did not fit the hardware schema. With i.MX6ULL Inputs (IRQ) do provide 3.3V over an internal pull-up, PN7150 draws it to 2.8V and it seems to drop to a PN reset when the I2C transfer is too long in my configuration.

Just to identify the point where thing went weird .....

Thanks anyway

 

View solution in original post

0 Kudos
Reply
4 Replies
1,854 Views
andreas_willig
Contributor II

Seems to be a hardware fault on my customer's board. But pn7150 is an obsolete option by current master branch of linux_libnfc-nxp.

If someone else observes a similar problem: The GPIOs for Enable and IRQ have been exchanged in the connector, which did not fit the hardware schema. With i.MX6ULL Inputs (IRQ) do provide 3.3V over an internal pull-up, PN7150 draws it to 2.8V and it seems to drop to a PN reset when the I2C transfer is too long in my configuration.

Just to identify the point where thing went weird .....

Thanks anyway

 

0 Kudos
Reply
1,911 Views
andreas_willig
Contributor II

Sorry guys seems to be not the apropriate Board i did choose, i did a repost on NFC board

0 Kudos
Reply
1,892 Views
IvanRuiz
NXP Employee
NXP Employee

Hello,

You may find it helpful to refer to the following document for the PN7120/PN7150 for the 6SX in order to check your implementation: https://community.nxp.com/t5/NFC-Knowledge-Base/PN7150-PN7120-NFC-Controller-SBC-Kit-for-Arduino-on-...

 

BR,

Ivan.

0 Kudos
Reply
1,877 Views
andreas_willig
Contributor II

@IvanRuiz Thanks for the Link.

I am using a Yocto based image on Toradex imx6ull Colibri board, and am building the linux_libnfc-nci from a Yocto recipe. The only difference i did have was not to issue --enable-pn7150 from the document you linked.

Doing so (adding --enable-pn7150) brings me to:

....
configure: LLCP1.3 support is disabled (no secure P2P)
configure: Selected TML is I2C
configure: creating ./config.status
config.status: creating Makefile
config.status: creating libnfc-nci.pc
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
configure: WARNING: unrecognized options: --enable-pn7150
DEBUG: Shell function do_configure finished

 

There seems to be no option --enable-pn7150, can you please give me a hint what could be wrong here?
I am using latest linux_libnfc-nci (2aff6448cf6a86897d3d1bacb0a0943a594aa9ce).

Thanks

0 Kudos
Reply