Freerunner RFID Board
NOTE: This is work in progress and quite incomplete
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:
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.
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.
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.
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).
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/.
- FIXME ***
- VCC: +3.3V, available at the AUX-Switch
- VIO: +1.8 V - +3.3V, available at the AUX-Switch
- GND: Ground, available from the (big) decoupling capacitor next to the accelerometer
- SCL, SDA: Serial clock and data, get it from testpoints at the debug connector
- OE: Output enable from the frequency generator. Pull this pin high to enable the CLK output
- CLK: Clock output from the frequency generator.
- LED controller 0-3: LED current sinks. Connect LEDs in series with current limiting resistors from VCC to these pads.
- 12-Bit A/D 0-3: Analog to digital converter inputs. They can operate single ended or differencial. The reference voltage is VCC.
- Touch electrodes 0-6: Connect these pads to a larger conducting area to use it as touch sensor. The inputs 0-3 can also be used to drive LEDs. Refer to the datasheet for more information.
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.
- TRF7960: http://focus.ti.com/lit/ds/slou186f/slou186f.pdf
- M24LR64: http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00217247.pdf
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.
Here is a very raw Idea for an interface from user space:
Set power mode
echo "5" >/sys/.../rfid/power
echo "2" >/sys/.../rfid/protocol
Trigger scanning for tags
Get list of found tags
ls -l /sys/.../rfid/tags/
Get signal strenght of specific tag
Read data from tag EEPROM
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.
Please write to the discussion page.