1. Introduction
This article mainly introduces the basic information and features of NXP PCF7991, introduces the communication commands and communication timing between MCU and PCF7991, and verifies the successful communication between MCU and PCF7991 by writing data through write commands and reading the configured parameter set through read commands.
1. Basic Introduction
1. Overview
The PCF7991AT is a fully integrated Advanced Basestation IC (ABIC) designed for automotive engine immobilizer systems, providing read and write access to ID transponders. The device is designed to work with transponders operating at 125kHz and using ASK write and AM/PM read operations, and can be optimized according to system and transponder requirements for amplifier gain, filter cutoff frequency, etc.
The PCF7991AT is designed for easy integration into the read-write or read-only system of the engine immobilizer, featuring high integration and very few external components. The device integrates a powerful antenna driver/modulator, a low-noise adaptive sampling time demodulator, a programmable filter/amplifier and a digital converter, suitable for base stations that need to design high performance. The PCF7991AT can communicate bidirectionally with the transponder, and the three-wire interface can be configured as a two-wire interface operation by connecting DIN and DOUT.
2. Features and applications
2.1 Features
-
Fully integrated single-chip base station
-
Integrated powerful programmable antenna driver/modulator
-
On-chip clock oscillator and divider for external clock reference
-
Antenna open and short circuit detection
-
Low power consumption and ultra-low power standby mode
-
Few external components and small package
2.2 Application
The advancement of semiconductor technology has provided automobile manufacturers with intelligent, safer and more convenient automobile technology. PCF7991 is suitable for read and write operations and has a stable frequency. This chip is used as the RFID front-end circuit to successfully apply RFID electronic tag technology to automobile electronic locks, and electronic identity recognition is achieved through 125kHz wireless communication between the car and the key.
3. Introduction of main function pins


4. Minimum application circuit

The figure shows the minimum application circuit of PCF7991AT. The antenna coil La and capacitor Ca form a series resonant LC circuit (f = 125kHz). The capacitors at QGND and CEXT provide internal bias and decoupling for the device.
2. PCF7991AT Communication
1. PCF7991AT Communication Overview
The communication between PCF7991AT and MCU is completed by a three-wire digital interface. This interface is used in transparent mode (READ_TAG, WRITE_TAG/WRITE_TAG_N) to read and write the configuration data of the device. The serial interface needs to be initialized before sending commands for PCF7991AT to communicate with MCU. The initialization condition is: when SCLK is high, the DIN signal needs a jump from low to high. All commands transmitted to the serial interface of PCF7991AT are transmitted starting with the most significant bit. When SCLK is high, DIN is latched and DOUT is valid. The digital filter is based on the sampling SCLK and DIN input provided by 1/fTX (8 μs standard value) rate, and the DIN input state changes are delayed by 16~24 μs until they are recognized by the internal circuit.

-
PCF7991AT communication sending command set
2.1 GET_SAMPLING_TIME command
This command is used to read back the setting of sampling time TS.
2.2 GET_CONFIG_PAGE command
This command is used to read back the parameter set configured in PAGE 0, PAGE 1, PAGE 2, PAGE 3, and read back the programmed transmitter pulse width.
2.3 READ_PHASE command
This command is used to read the antenna phase TANT (binary bit0 ~ bit5), which is measured in each carrier cycle.
2.4 READ_TAG command
This command is used to read the demodulated bit stream from the transponder. After the three command bits are asserted, the PCF7991 immediately switches to READ_TAG mode, which is terminated by a low-to-high transition of SCLK.
2.5 WRITE_TAG_N command
This command is used to write data to the transponder and set the parameters of modulator blanking.
If N3-N0 is set to 0, the signal on DIN will be switched to the driver in a transparent manner. If N3-N0 is set to 1 to 1111, the time interval for the driver to be turned off is equal to N * T0 (T0 = 8 μs)
The WRITE_TAG mode is terminated by a low-to-high transition of SCLK, so the drivers will restart to their initial state regardless of the active state of the modulation pulse timer.
A high level on DIN is equivalent to the antenna driver being turned off, and a low level is equivalent to the antenna driver being turned on.
2.6 WRITE_TAG Command
This is a simple 3-bit format for the WRITE_TAG_N command. It allows switching to WRITE_TAG mode with minimal communication time. WRITE_TAG mode is also terminated by a low-to-high transition of SCLK, so the drivers will restart their initial state regardless of the active state of the modulation pulse timer.
2.7 SET_SAMPLING_TIME command
This command specifies the sampling time TS of the modulator. The sampling time is coded in binary.
2.8 SET_CONFIG_PAGE command
This command is used to configure the receiver parameter table (cutoff frequency, gain factor) and different operation modes.
3. PCF7991AT communication debugging
-
Serial port communication and timing are simulated through IO port and delay. After the initialization condition SCLK is pulled high and maintained at a high level, DIN is pulled low from a high level and then starts to jump from a low level to a high level. The stable period of SCLK is 16 μs (maintaining 8 μs low level and 8 μs high level).
-
SCLK is sampled by the rising edge, and the first edge is held after initialization to maintain the high level. Data is sent by changing the DIN level + a delay + SCLK jumps from low to high level to collect DIN data + a delay + an empty instruction + a delay + SCLK jumps from high to low level + a delay and so on.
-
Reading response also obtains response data by periodically reading the level of DOUT IO port through SCLK. Write data to PAGE 0 through SET_CONFIG_PAGE command, and read the data written to PAGE 0 through GET_CONFIG_PAGE command. Verify the communication is successful through comparison, and write the data to PCF7991.
Comment
Willy
July 7, 2022
--End of comment list--