PN532: ISO14443 Type B (14443B)

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

PN532: ISO14443 Type B (14443B)

1,927 Views
DominikKlein
Contributor I

I am trying to get a PN532 working with ISO 14443-B cards.
My current setup is an Arduino / NFC shield that interfaces
with the PN532 via SPI. SPI is working, and I am able to
read 14443-A cards, i.e. JCOP cards, German eID cards
in the 14443-A variant and others. However I am _unable_
to read 14443-B cards. Simply, such cards are not found
in the RF field.

List of commands that I use:

---------

1.) getFirmwareVersion()

D4 02

response is

D5 03 32 01 06 07

i.e. Firmware version 1.6
07 -> bits mean that the ISO1443-B support bit is set, so this firmware should support 14443B


2.) RFConfiguration()

I'm setting the number of max. retries to 50

D4 32 05 FF 01 50


3.) SamConfiguration()

D4 14 01 14 01

-> normal mode, timeout 1 sec, IRQ driven py PN532

4.) inListPassiveTarget()

for type B cards:
4A 01 03 00

-> 4B 00 E0 0 AA AA i.e. no card found

for type A cards it works, i.e.:

4A 01 00

-> 4B 01 01 00 08 20

I tried different 14443-B cards, none worked.

There is a thread where Kan Li posted a configuration:
https://community.nxp.com/t5/NFC/PN532-and-PicoPass-ISO14443B-card/m-p/501310

However he used WriteRegister() exclusively for working with the chip, i.e.
not the high level API documented in the user guide. WriteRegister
is used to overwrite the content of one or several internal registers of the
PN532. That's quite unusable in practice to drive a 14443-B card,
and I was unable to get his example working.

Note that the user guide includes this warning:
The behavior of the PN532 may be altered by this (WriteRegister) command.
This command is only recommended for debug purposes.

However his example seems to set various RF parameters. I suspect that
14443B cards are not found due to bad RF parameters of the default
setup. Does anybody have found a way to work with 14443-B cards, and/or
suitable parameters for RFConfiguration() that would make 14443B work?

0 Kudos
1 Reply

1,898 Views
DominikKlein
Contributor I

Can be marked as solved.

 

Tried a Japanese passport (type B), worked fine with the above mentioned (high-level) command sequence using inReadPassiveTarget().

Other, above mentioned cards don't work.

Therefore it seems it is an issue with antenna design/amplifier design of the Adafruit NFC shield. Chip (PN532) seems to work fine.

0 Kudos