AppNearMe µNFC stack for the NXP PN532 chip License: You can use the stack free of charge to prototype with mbed; if you want to use the stack with your commercial product, get in touch!

Dependents:   IOT_sensor_nfc AppNearMe_MuNFC_PN532_Test p2p_nfc_test NFCMoodLamp ... more

License

You can use the stack free of charge to prototype with mbed; if you want to use the stack with your commercial product, get in touch!

Committer:
AppNearMe
Date:
Wed Nov 07 18:18:52 2012 +0000
Revision:
10:2af578c635cd
Updated library

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AppNearMe 10:2af578c635cd 1 /*
AppNearMe 10:2af578c635cd 2 pn532_cmd.h
AppNearMe 10:2af578c635cd 3 Copyright (c) Donatien Garnier 2012
AppNearMe 10:2af578c635cd 4 donatien.garnier@appnearme.com
AppNearMe 10:2af578c635cd 5 http://www.appnearme.com/
AppNearMe 10:2af578c635cd 6 */
AppNearMe 10:2af578c635cd 7
AppNearMe 10:2af578c635cd 8
AppNearMe 10:2af578c635cd 9 #ifndef PN532_CMD_H_
AppNearMe 10:2af578c635cd 10 #define PN532_CMD_H_
AppNearMe 10:2af578c635cd 11
AppNearMe 10:2af578c635cd 12 #ifdef __cplusplus
AppNearMe 10:2af578c635cd 13 extern "C" {
AppNearMe 10:2af578c635cd 14 #endif
AppNearMe 10:2af578c635cd 15
AppNearMe 10:2af578c635cd 16 #include "core/fwk.h"
AppNearMe 10:2af578c635cd 17
AppNearMe 10:2af578c635cd 18 // Commands
AppNearMe 10:2af578c635cd 19 int pn532_cmd_get_firmware_version( uint8_t* pIc, uint16_t* pVersion, int timeout );
AppNearMe 10:2af578c635cd 20
AppNearMe 10:2af578c635cd 21 #define PN532_PARAMETERS_NONE 0x00
AppNearMe 10:2af578c635cd 22 #define PN532_PARAMETERS_NAD_USED 0x01
AppNearMe 10:2af578c635cd 23 #define PN532_PARAMETERS_DID_USED 0x02
AppNearMe 10:2af578c635cd 24 #define PN532_PARAMETERS_AUTO_ATR_RES 0x04
AppNearMe 10:2af578c635cd 25 #define PN532_PARAMETERS_AUTO_RATS 0x10
AppNearMe 10:2af578c635cd 26 #define PN532_PARAMETERS_ISO_14443_4_EMU 0x20
AppNearMe 10:2af578c635cd 27 #define PN532_PARAMETERS_NO_PRE_POSTAMBLE 0x40
AppNearMe 10:2af578c635cd 28
AppNearMe 10:2af578c635cd 29 int pn532_cmd_set_parameters( uint8_t flags, int timeout );
AppNearMe 10:2af578c635cd 30
AppNearMe 10:2af578c635cd 31 int pn532_cmd_sam_configuration( uint8_t mode, int timeout );
AppNearMe 10:2af578c635cd 32
AppNearMe 10:2af578c635cd 33 //Target mode selection
AppNearMe 10:2af578c635cd 34 #define PN532_TARGET_PASSIVE_ONLY 0x01
AppNearMe 10:2af578c635cd 35 #define PN532_TARGET_DEP_ONLY 0x02
AppNearMe 10:2af578c635cd 36 #define PN532_TARGET_PICC_ONLY 0x04
AppNearMe 10:2af578c635cd 37
AppNearMe 10:2af578c635cd 38 //Target mode
AppNearMe 10:2af578c635cd 39 #define PN532_TARGET_BAUDRATE_MASK 0x70
AppNearMe 10:2af578c635cd 40 #define PN532_TARGET_BAUDRATE_106K 0x00
AppNearMe 10:2af578c635cd 41 #define PN532_TARGET_BAUDRATE_212K 0x01
AppNearMe 10:2af578c635cd 42 #define PN532_TARGET_BAUDRATE_414K 0x02
AppNearMe 10:2af578c635cd 43 #define PN532_TARGET_ISO_14443_4_PICC 0x08
AppNearMe 10:2af578c635cd 44 #define PN532_TARGET_DEP 0x04
AppNearMe 10:2af578c635cd 45 #define PN532_TARGET_FRAMING_MASK 0x03
AppNearMe 10:2af578c635cd 46 #define PN532_TARGET_FRAMING_MIFARE 0x00
AppNearMe 10:2af578c635cd 47 #define PN532_TARGET_FRAMING_ACTIVE 0x01
AppNearMe 10:2af578c635cd 48 #define PN532_TARGET_FRAMING_FELICA 0x02
AppNearMe 10:2af578c635cd 49
AppNearMe 10:2af578c635cd 50 //Initiator mode
AppNearMe 10:2af578c635cd 51 #define PN532_READER_MODE_ISO14443A_106K 0x00
AppNearMe 10:2af578c635cd 52 #define PN532_READER_MODE_FELICA_212K 0x01
AppNearMe 10:2af578c635cd 53 #define PN532_READER_MODE_FELICA_424K 0x02
AppNearMe 10:2af578c635cd 54 #define PN532_READER_MODE_ISO14443B_106K 0x03
AppNearMe 10:2af578c635cd 55 #define PN532_READER_MODE_JEWEL_106K 0x04
AppNearMe 10:2af578c635cd 56
AppNearMe 10:2af578c635cd 57 // pMifareParams : 6 bytes long, pFelicaParams : 18, pNfcId3 : 10
AppNearMe 10:2af578c635cd 58 int pn532_cmd_target_init( uint8_t outMode, buffer* pMifareParams, buffer* pFelicaParams,
AppNearMe 10:2af578c635cd 59 buffer* pNfcId3, buffer* pAtrG, buffer* pAtrT, uint8_t* pInMode, buffer* pData, int timeout);
AppNearMe 10:2af578c635cd 60
AppNearMe 10:2af578c635cd 61 int pn532_cmd_target_get( buffer* pData, uint8_t* pStatus, int timeout );
AppNearMe 10:2af578c635cd 62
AppNearMe 10:2af578c635cd 63 int pn532_cmd_target_respond( buffer* pData, uint8_t* pStatus, int timeout );
AppNearMe 10:2af578c635cd 64
AppNearMe 10:2af578c635cd 65 //PN532 handles framing
AppNearMe 10:2af578c635cd 66 int pn532_cmd_target_data_get( buffer* pData, uint8_t* pStatus, int timeout );
AppNearMe 10:2af578c635cd 67
AppNearMe 10:2af578c635cd 68 int pn532_cmd_target_data_respond( buffer* pData, uint8_t* pStatus, int timeout );
AppNearMe 10:2af578c635cd 69
AppNearMe 10:2af578c635cd 70 int pn532_cmd_target_status( uint8_t* pState, uint8_t* pBaudrate, int timeout );
AppNearMe 10:2af578c635cd 71
AppNearMe 10:2af578c635cd 72 int pn532_cmd_reader_poll( uint8_t mode, uint8_t* pTargetDetected, buffer* pInitiatorData, int timeout );
AppNearMe 10:2af578c635cd 73
AppNearMe 10:2af578c635cd 74 //PN532 handles framing
AppNearMe 10:2af578c635cd 75 int pn532_cmd_reader_data_transceive( buffer* pDataOut, buffer* pDataIn, uint8_t* pStatus, int timeout );
AppNearMe 10:2af578c635cd 76
AppNearMe 10:2af578c635cd 77 int pn532_cmd_register_read( uint16_t address, uint8_t* pData, int timeout );
AppNearMe 10:2af578c635cd 78
AppNearMe 10:2af578c635cd 79 int pn532_cmd_register_write( uint16_t address, uint8_t data, int timeout );
AppNearMe 10:2af578c635cd 80
AppNearMe 10:2af578c635cd 81 int pn532_cmd_set_rf_field( bool on, int timeout );
AppNearMe 10:2af578c635cd 82
AppNearMe 10:2af578c635cd 83 int pn532_cmd_set_rf_iso14443a_params( buffer* pData, int timeout );
AppNearMe 10:2af578c635cd 84
AppNearMe 10:2af578c635cd 85 int pn532_cmd_get_status( uint8_t* pErr, uint8_t* pField, int timeout );
AppNearMe 10:2af578c635cd 86
AppNearMe 10:2af578c635cd 87 // Low-level command
AppNearMe 10:2af578c635cd 88 int pn532_cmd_exec( buffer* pDataOut, buffer* pDataIn, int timeout );
AppNearMe 10:2af578c635cd 89
AppNearMe 10:2af578c635cd 90 #ifdef __cplusplus
AppNearMe 10:2af578c635cd 91 }
AppNearMe 10:2af578c635cd 92 #endif
AppNearMe 10:2af578c635cd 93
AppNearMe 10:2af578c635cd 94 #endif /* PN532_CMD_H_ */