Table of Contents
RFID booster pack
The aim of this project is to design and build a breakout board for TI RFID transceiver chip TRF7970a compatible with Stellaris Launchpad.
TRF7970a supports following radio standards:
ISO14443A/B | ISO15693 ISO18000-3 (Mode 1) | FeliCa | NFC | |||
106 [kbps] | 212 [kbps] | 424 [kbps] | 848 [kbps] | 213 [kbps] 424 [kbps] | Type 1-4 |
Additional project considerations:
- Simple layout
- Low cost (2 layer board)
- Focus on parallel interface and ISO 15693
This is a research project without deadline. I have created the board to explore RFID technology, NOT develop a full product. Do not use for commercial applications. Please visit GitHub for most recent software.
Currently supported technology:
- ISO15693 single slot anticollision and block read.
Schematics
Hardware
- Operating voltage 3.3 [V] (Remember to set Chip Status Control Register)
- Device was designed for use with Launchpad's emulator serial connection. Please do not use DEVICE USB. Pin PD7 is used to sense DEVICE USB bus voltage. If you need to use DEVICE USB please remove resistor R15.
- Clock output is unused as Stellaris Launchpad does have it's own clocking source.
- TRF7970a EN2 is permanently pulled high (sleep mode)
RFID Booster pinout
Left header | |||
---|---|---|---|
Desc | Pin A | Pin B | Desc |
3V3 VCC | 1 | 1 | |
ASK/OOK | 2 | 2 | GND |
3 | 3 | ||
4 | 4 | ||
IRQ | 5 | 5 | |
6 | 6 | ||
7 | 7 | ||
Led1 | 8 | 8 | |
Led2 | 9 | 9 | |
10 | 10 |
Right header | |||
---|---|---|---|
Desc | Pin A | Pin B | Desc |
EN1 | 1 | 1 | GND |
T1 | 2 | 2 | MOD |
T2 | 3 | 3 | DATA_CLK |
T3 | 4 | 4 | |
T4 | 5 | 5 | |
T5 | 6 | 6 | |
T6 | 7 | 7 | |
T7 | 8 | 8 | |
T8 | 9 | 9 | |
10 | 10 |
Please take note that naming is a bit misleading. T8 is the least significant bit and T1 most significant bit.
Pin MUX
BP Pin | MCU Pin | LP Pin | Parallel | SPI SS | SPI | LP Pin 2 |
---|---|---|---|---|---|---|
ASK/OOK | PB5 | A2 | - | - | - | |
IRQ | PE4 | A5 | Interrupt request | |||
LED1 | PA5 | A8 | User LED 1 | |||
LED2 | PA6 | A9 | User LED 2 | |||
EN1 | PF2 | D1 | Chip enable | |||
MOD | PB2 | B2 | - | - | - | |
DATACLK | PE0 | A3 | CLK | C3 (PD0) | ||
T1 | PF3 | D2 | I/O 7 | MOSI | C6 (PD3) | |
T2 | PB3 | D3 | I/O 6 | MISO | C5 (PD2) | |
T3 | PC4 | D4 | I/O 5 | - | - | |
T4 | PC5 | D5 | I/O 4 | SS | - | C4 (PD1) |
T5 | PC6 | D6 | I/O 3 | - | - | |
T6 | PC7 | D7 | I/O 2 | VDD | VDD | |
T7 | PD6 | D8 | I/O 1 | VDD | VSS | |
T8 | PD7 | D9 | I/O 0 | VSS | VSS | |
======= | ======= | ======= | ======= | ======= | ======= | ======= |
Additionally:
MCU Pin | Function |
---|---|
PA0 | UART RX |
PA1 | UART TX |
Current revision of the board requires SPI and interface select pins to be connected externally. Code uses SSI1 peripheral for SPI control.
BP - boosterpack; LP - launchpad
Software
All necessary software is located in the MCU. The PC communicates with the kit trough USB UART.
<html> <?xml version=“1.0” encoding=“UTF-8” standalone=“no”?> <!– Created with Inkscape (http://www.inkscape.org/) –>
</html>
Software stack consists of 4 layers:
- Hardware abstraction layer
- Chip support layer
- RF protocol layer
- User layer
* Project github repository
Booster pack in action
The sample application is a simple playback control device. Stellaris Launchpad acts as HID USB device sending “Consumer” commands (see USB documentation) to host. Resistor R15 was removed therefore device can be powered without debug USB connection.
Three different tags have different values written in memory. Device is looking for tags in range around every second. If it finds tag, memory content readout is performed. One byte defines tag function (play pause, next track, previous track). If tag remains in the field for more than one read cycle, it is ignored. To use tag function second time in a row just move tag out of range, so device can detect “no tag” condition. After that tag will not be ignored.
This will also work with Linux and Android!
Next board revision notes
- SPI only? SS switch?
- SPI Buffer for tristate line?
- EN2 pull down for poweroff
- Fully compatible with small Launchpad
- Bigger antenna to fit components “inside”