PN532 driver. More...
PN532 driver.
Definition in file pn532.h.
#include "kernel_defines.h"#include "mutex.h"#include "periph/i2c.h"#include "periph/spi.h"#include "periph/gpio.h"#include <stdint.h> Include dependency graph for pn532.h:
 Include dependency graph for pn532.h:Go to the source code of this file.
| Data Structures | |
| struct | pn532_params_t | 
| Data structure with the configuration parameters.  More... | |
| struct | pn532_t | 
| Device descriptor for the PN532.  More... | |
| struct | nfc_iso14443a_t | 
| ISO14443A tag description.  More... | |
| Macros | |
| #define | CONFIG_PN532_BUFFER_LEN (64) | 
| Internal buffer size. | |
| #define | PN532_ISO14443A_4_LEN_FROM_BUFFER(b) | 
| Obtain Tag 4 data length from buffer. | |
| Enumerations | |
| enum | pn532_mode_t { PN532_I2C , PN532_SPI } | 
| Working mode of the PN532.  More... | |
| enum | pn532_sam_conf_mode_t { PN532_SAM_NORMAL = 1 , PN532_SAM_VIRTUAL , PN532_SAM_WIRED , PN532_SAM_DUAL } | 
| Possible SAM configurations.  More... | |
| enum | pn532_target_t { PN532_BR_106_ISO_14443_A = 0 , PN532_BR_212_FELICA , PN532_BR_424_FELICA , PN532_BR_106_ISO_14443_B , PN532_BR_106_JEWEL } | 
| PN532 supported targets.  More... | |
| enum | nfc_iso14443a_type_t { ISO14443A_UNKNOWN , ISO14443A_MIFARE , ISO14443A_TYPE4 } | 
| ISO14443A Card types.  More... | |
| enum | pn532_mifare_key_t { PN532_MIFARE_KEY_A = 0x60 , PN532_MIFARE_KEY_B = 0x61 } | 
| Mifare keys.  More... | |
| Functions | |
| void | pn532_reset (const pn532_t *dev) | 
| Hard reset the chipset. | |
| int | pn532_init (pn532_t *dev, const pn532_params_t *params, pn532_mode_t mode) | 
| Initialize the module and peripherals. | |
| static int | pn532_init_i2c (pn532_t *dev, const pn532_params_t *params) | 
| Initialization of PN532 using i2c. | |
| static int | pn532_init_spi (pn532_t *dev, const pn532_params_t *params) | 
| Initialization of PN532 using spi. | |
| int | pn532_fw_version (pn532_t *dev, uint32_t *fw_ver) | 
| Get the firmware version of the pn532. | |
| int | pn532_read_reg (pn532_t *dev, char *out, unsigned addr) | 
| Read register of the pn532. | |
| int | pn532_write_reg (pn532_t *dev, unsigned addr, char val) | 
| Write register of the pn532. | |
| int | pn532_sam_configuration (pn532_t *dev, pn532_sam_conf_mode_t mode, unsigned timeout) | 
| Set new settings for the Security Access Module. | |
| int | pn532_get_passive_iso14443a (pn532_t *dev, nfc_iso14443a_t *out, unsigned max_retries) | 
| Get one ISO14443-A passive target. | |
| 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. | |
| 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_mifareclassic_write (pn532_t *dev, char *idata, nfc_iso14443a_t *card, unsigned block) | 
| Write a block of a Mifare classic card. | |
| int | pn532_mifareulight_read (pn532_t *dev, char *odata, nfc_iso14443a_t *card, unsigned page) | 
| Read a block of a Mifare Ultralight card. | |
| int | pn532_iso14443a_4_activate (pn532_t *dev, nfc_iso14443a_t *card) | 
| Activate the NDEF file of a ISO14443-A Type 4 tag. | |
| 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. | |
| void | pn532_deselect_passive (pn532_t *dev, unsigned target_id) | 
| Deselect a previously selected passive card. | |
| void | pn532_release_passive (pn532_t *dev, unsigned target_id) | 
| Release an active passive card. | |
| Helpers to extract firmware information from word | |
| #define | PN532_IC_VERSION(fwver) | 
| #define | PN532_FW_VERSION(fwver) | 
| #define | PN532_FW_REVISION(fwver) | 
| #define | PN532_FW_FEATURES(fwver) |