Home > NFC communication module

Description of module scheme

SG-P2P_001 V1.0 NFC Communication module,

Module description: NFC communication module

Product model: sg-p2p_001 V1.0

Document version: V1.0


Module function introduction

1.1、Functional features:

● The module is small with a size of 15*15mm;

● 1.7-3.6v working, I2C, NFC communication interface;

● ISO14443A compliance;

● The capacity of 1 k byte.

1


1.2 Technical parameters:

PN

SG-P2P_001 V1.03

Conform to the agreement

ISO14443A

Communication interface

I2C、NFC

Working frequency

13.56MHz

Working voltage

DC 1.7-3.6V

Size

15*15mm

 

1.3

image006


Pin

symbol

describe

PIN1

NC


PIN2

VOUT

Voltage out (energy harvesting)

PIN3

VCC

VCC in connection (external power supply)

PIN4

SDA

Serial data I2C

PIN5

NC


PIN6

GND

GND

PIN7

SCL

Serial Clock I2C

PIN8

FD

Field detection

RF RECE

RF

Antenna connection

 

1.4、Package size(unit:mm)

image008


I2C Communication protocol

2.1、I2C communication protocol is adopted as the slave, with default address 0x55 and maximum communication rate of 400Kbps

2.2、I2C Interface memory structure

Each Block consists of 16 bytes, reading and writing 16 bytes at a time

2.3、I2C read

Start addr 0 blockNum stop  Start addr 1 d0 ... d15 stop

2.4、I2C Write

Start addr 0 blockNum d0 ... d15 Stop

The range of blockNum values:

0~56,EEPROM

248~251 SRAM(total 64Bytes)

2.5,I2C interface memory and NFC interface memory corresponding relationship:

I2C Bolck = 4 NFC Page,, I2C Bolck0, corresponding NFC Page0~3,I2C Bolck1, corresponding NFC Page4~7, And the rest of the way,

2.6、Refer to the NFC Forum Type 2 Tag specification for the control role of each byte in Tag memory.


2.7、The sample code:

uint8_t buf[16];

 

void I2c_ReadBlock(uint8_t blk)

{

    uint8_t i;

    I2C_START();

    I2C_write_byte(0xaa);

    I2C_write_byte(blk);

    I2C_STOP();

   

    I2C_START();

    I2C_write_byte(0xab);

    for(i = 0; i < 16; i++)

       buf[i] = I2C_read_byte(i == 15);

   

    I2C_STOP();

}

void I2c_WriteBlock(uint8_t blk)

{

    uint8_t i;

    I2C_START();

    I2C_write_byte(0xaa);

    I2C_write_byte(blk);

    for(i = 0; i < 16; i++)

       I2C_write_byte (buf[i]);

   

    I2C_STOP();

}