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>
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) ((b[0] << 8) | b[1]) |
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) ((fwver >> 24) & 0xff) |
#define | PN532_FW_VERSION(fwver) ((fwver >> 16) & 0xff) |
#define | PN532_FW_REVISION(fwver) ((fwver >> 8) & 0xff) |
#define | PN532_FW_FEATURES(fwver) ((fwver) & 0xff) |