Freerunner RFID Board

From Openmoko

(Difference between revisions)
Jump to: navigation, search
(Features)
(fixed link to U-Boot source file)
 
Line 1: Line 1:
 
[[Image:FRIDBTopBottom.JPG|Freerunner RFID Board|thumb]]
 
[[Image:FRIDBTopBottom.JPG|Freerunner RFID Board|thumb]]
  
NOTE: This is work in progress and quite incomplete
+
NOTE: This page is work in progress and quite incomplete. If you want to improve, please volunteer.
  
 
=Features=
 
=Features=
Line 111: Line 111:
 
on a BeagleBoard and supports "SPI without SS" by using GPIO mode.
 
on a BeagleBoard and supports "SPI without SS" by using GPIO mode.
  
Link: http://projects.goldelico.com/p/fridb/source/tree/master/u-boot
+
Link: http://projects.goldelico.com/p/gta04-uboot/source/tree/gta04e/board/goldelico/beagle-expander/trf7960.c
  
 
===Kernel drivers===
 
===Kernel drivers===

Latest revision as of 11:35, 19 May 2011

Freerunner RFID Board

NOTE: This page is work in progress and quite incomplete. If you want to improve, please volunteer.

Contents

[edit] Features

The FRIDB realizes an experimental platform for RFID (13.56 MHz). It consists of an Antenna, a ST Micro M24LR64 RFID-Tag Chip with 64kbit EEPROM and I2C port and a Texas Instruments TRF7960 RFID reader chip with SPI interface.

So you can make the Freerunner either a RFID tag (e.g. to open doors) or a RFID reader (to read/write standard tags e.g. in credit card format).

The FRIDB can also connected to other Microcontrollers and SoC (e.g BeagleBoard) since it has splitted I/O and power supply.

The board comes with three parts that can/must be separated:

[edit] Antenna

The antenna is a printed loop designed for a typical center frequency of 13 MHz with a capacitor of 56pF.

It can be fixed by tape instead of the battery cover or mounted externaly.

[edit] RFID-Tag

By connecting the I2C EEPROM (ST Micro M24LR64) to the antenna and to the main CPU by I2C, the unit can be used as a dual-port RFID Tag. I.e. the tag can either be read or written through RFID (even if the main device has no power) or through the CPU. A typical scenario could be to personalize the device or to receive online-purchased tickets and store them in the tag so that they can be read out through RFID - even if the battery of the device is down.

The Tag module fits into the area above the SIM/SD card reader of the Openmoko Freerunner. It is up to you to wire the board to the Freerunner main board in a way that you can still swap SD cards and/or SIM cards.

The tag is compatible to readers that support:

  • ISO 15693
  • ISO 18000-3 mode 1

[edit] RFID-Reader

By connecting the Reader through the SPI interface (TI TRF7960) it is possible to use the Freerunner as a RFID reader.

The Reader module fits into the area above the SIM/SD card reader of the Openmoko Freerunner. It is up to you to wire the board to the Freerunner main board in a way that you can still swap SD cards and/or SIM cards.

The Reader chip supports these standards:

  • ISO 14443A (Mifare)
  • ISO 14443B
  • ISO 15693
  • ISO 18000-3

[edit] both

Note: you can't use reader and tag in parallel. At least we have not tried. The protocols should be able to handle this case since there is a collision detection mechanism to separate multiple tags. What is not known is how to connect both devices to a single antenna. Maybe through a high-ohm resistor (to attenuate the TX signal from the RFID reader and two capacitors (to separate the DC components).

[edit] Documentation

The project home is http://projects.goldelico.com/p/fridb/. There, you can find background information, instructions, software etc.

Schematic and board layout files are available in CadSoft EAGLE 5.x format from http://projects.goldelico.com/p/fridb/downloads/.

[edit] Pinout

File:FRIDB-Pinout.jpg
Pinout: Bottom side, Top side
I2C testpoints

[edit] RFID Tag

The locations where to connect the I2C wires in a Freerunner are shown on the photo on the right side

  • ANT1, ANT2 (TP27, TP28): solder two wires to connect the antenna
  • VCC (TP8): +1.8V - +3.3V, available at the AUX-Switch
  • SCL, SDA (TP18, TP9): Serial clock and data, get it from testpoints at the debug connector
  • GND (TP19): Ground, available from the (big) decoupling capacitor next to the accelerometer
  • EN0, EN1 (TP24, TP23): select address; usually connect to GND (I2C address 0x50)

[edit] RFID Reader

[edit] mandatory

  • ANT, VSS (TP26, TP25): solder two wires to connect the antenna
  • VIN (TP22): +2.7 - +5.5V, main power available at the AUX-Switch
  • VIO (TP21): +1.8 V - VIN, IO power available at the AUX-Switch
  • SCLK (TP14): SPI clock input (mandatory)
  • SOMI (TP16): SPI data from reader to CPU (mandatory)
  • SIMO (TP17): SPI data from CPU to reader (mandatory)
  • IRQ (TP7): positive interrupt impulse (should be connected to a GPIO)

[edit] optional

  • SS (TP14): SPI chip select (only used in SPI with SS mode)
  • EN (TP15): chip enable (optional to power down chip)
  • EN2 (TP4): second chip enable (optional to power down chip)

[edit] extended

  • CLK (TP3): optional 60kHz / 13 MHz clock output to drive an external MCU
  • MOD (TP1): external TX modulation input
  • ASK (TP2): external RX demodulator output

[edit] interface mode selection

NOTE: R4, R5, R7, R8 choose the interface mode:

  • R4, R5, R8 soldered: SPI without SS mode (default)
  • R4, R7, R8 soldered: SPI with SS mode - also connect TP14, TP16, TP17
  • none soldered: parallel mode - also connect TP10, TP11, TP12, TP13, TP14, TP15, TP16, TP17
File:FRIDB-top.JPG
Top side with the M24LR64 and the TRF7960
Installation location
potential Antenna position

[edit] Installation

[edit] Hardware installation

The best way to connect the FRIDB to your Freerunner is to solder four wires to...

Here is a PDF with an overview of the Installation.

[edit] Software installation

[edit] Data Sheets

[edit] Software

[edit] U-Boot driver

some C-code for a U-Boot API is available to do some preliminary SPI communication (e.g. read/write registers). It is tested on a BeagleBoard and supports "SPI without SS" by using GPIO mode.

Link: http://projects.goldelico.com/p/gta04-uboot/source/tree/gta04e/board/goldelico/beagle-expander/trf7960.c

[edit] Kernel drivers

Upcoming.

Here is a very raw Idea for an interface from user space:

Set power mode

 echo "5" >/sys/.../rfid/power

Set protocol

 echo "2" >/sys/.../rfid/protocol

Trigger scanning for tags

 echo >/sys/.../rfid/scan

Get list of found tags

 ls -l /sys/.../rfid/tags/

Get signal strenght of specific tag

 cat /sys/.../rfid/tags/uid/rssi

Read data from tag EEPROM

 cat /sys/.../rfid/tags/uid/data


[edit] Userspace software

n/a yet. Volunteers welcome!

What we most likely need is a Card scanner application (i.e. one that lists when tags come to vicinity). And it would be nice to read/write content (which is unfortunately not quite standardized).

And we should have a keyboard driver that pressing the AUX button "types" the ID of the current card plus a Newline. This would allow to use the card scanner like a barcode scanner.

[edit] Availability

The handheld-linux.com team kindly offered to retail the FRIDB. You can find it here.


[edit] User Reports

Please write to the discussion page.

Personal tools