Go to the documentation of this file.
34 #if !defined(PN532_SUPPORT_I2C) && !defined(PN532_SUPPORT_SPI)
35 #error Please define PN532_SUPPORT_I2C and/or PN532_SUPPORT_SPI to enable \
36 the functionality on this device
44 #if defined(PN532_SUPPORT_I2C) || DOXYGEN
47 #if defined(PN532_SUPPORT_SPI) || DOXYGEN
53 #if defined(PN532_SUPPORT_SPI) || DOXYGEN
87 #ifndef CONFIG_PN532_BUFFER_LEN
88 #define CONFIG_PN532_BUFFER_LEN (64)
96 #define PN532_IC_VERSION(fwver) ((fwver >> 24) & 0xff)
97 #define PN532_FW_VERSION(fwver) ((fwver >> 16) & 0xff)
98 #define PN532_FW_REVISION(fwver) ((fwver >> 8) & 0xff)
99 #define PN532_FW_FEATURES(fwver) ((fwver) & 0xff)
106 PN532_SAM_NORMAL = 1,
116 PN532_BR_106_ISO_14443_A = 0,
119 PN532_BR_106_ISO_14443_B,
149 PN532_MIFARE_KEY_A = 0x60,
150 PN532_MIFARE_KEY_B = 0x61
159 #define PN532_ISO14443A_4_LEN_FROM_BUFFER(b) ((b[0] << 8) | b[1])
188 #if defined(PN532_SUPPORT_I2C) || DOXYGEN
200 #if defined(PN532_SUPPORT_SPI) || DOXYGEN
static int pn532_init_spi(pn532_t *dev, const pn532_params_t *params)
Initialization of PN532 using spi.
int pn532_sam_configuration(pn532_t *dev, pn532_sam_conf_mode_t mode, unsigned timeout)
Set new settings for the Security Access Module.
ISO14443A tag description.
mutex_t trap
Mutex to wait for chip response.
int pn532_mifareulight_read(pn532_t *dev, char *odata, nfc_iso14443a_t *card, unsigned page)
Read a block of a Mifare Ultralight card.
Low-level SPI peripheral driver interface definition.
nfc_iso14443a_type_t
ISO14443A Card types.
gpio_t nss
Chip Select pin (only SPI)
int pn532_write_reg(pn532_t *dev, unsigned addr, char val)
Write register of the pn532.
unsigned int i2c_t
Default i2c_t type definition.
void pn532_deselect_passive(pn532_t *dev, unsigned target_id)
Deselect a previously selected passive card.
nfc_iso14443a_type_t type
Type of ISO14443A card.
int pn532_read_reg(pn532_t *dev, char *out, unsigned addr)
Read register of the pn532.
Device descriptor for the PN532.
int pn532_iso14443a_4_read(pn532_t *dev, char *odata, nfc_iso14443a_t *card, unsigned offset, char len)
Read data from the NDEF file of a ISO14443-A Type 4 tag.
char auth
Card has been authenticated.
pn532_mifare_key_t
Mifare keys.
int pn532_init(pn532_t *dev, const pn532_params_t *params, pn532_mode_t mode)
Initialize the module and peripherals.
int pn532_mifareclassic_authenticate(pn532_t *dev, nfc_iso14443a_t *card, pn532_mifare_key_t keyid, char *key, unsigned block)
Authenticate a Mifare classic card.
char id_len
Length of the ID field.
pn532_mode_t
Working mode of the PN532.
static int pn532_init_i2c(pn532_t *dev, const pn532_params_t *params)
Initialization of PN532 using i2c.
void pn532_reset(const pn532_t *dev)
Hard reset the chipset.
int pn532_get_passive_iso14443a(pn532_t *dev, nfc_iso14443a_t *out, unsigned max_retries)
Get one ISO14443-A passive target.
int pn532_mifareclassic_write(pn532_t *dev, char *idata, nfc_iso14443a_t *card, unsigned block)
Write a block of a Mifare classic card.
void pn532_release_passive(pn532_t *dev, unsigned target_id)
Release an active passive card.
Mutex for thread synchronization.
Low-level GPIO peripheral driver interface definitions.
int pn532_mifareclassic_read(pn532_t *dev, char *odata, nfc_iso14443a_t *card, unsigned block)
Read a block of a Mifare classic card.
int pn532_iso14443a_4_activate(pn532_t *dev, nfc_iso14443a_t *card)
Activate the NDEF file of a ISO14443-A Type 4 tag.
pn532_target_t
PN532 supported targets.
Low-level I2C peripheral driver interface definition.
pn532_mode_t mode
Working mode (i2c, spi)
int pn532_fw_version(pn532_t *dev, uint32_t *fw_ver)
Get the firmware version of the pn532.
const pn532_params_t * conf
Configuration struct.
unsigned int spi_t
Default type for SPI devices.
pn532_sam_conf_mode_t
Possible SAM configurations.
Data structure with the configuration parameters.