Hello E2E Community,
We have just released a new example firmware base for a simple and low resource RFID reader example.
The firmware uses our TRF7970A NFC Transceiver and is run on an MSP430G2553 MCU.
This example supports reading ISO14443A, ISO14443B, ISO15693, and FeliCa compliant RFID tags.
You can find the new firmware at the following link: http://www.ti.com/lit/zip/sloc297
To evaluate it, you only need an MSP-EXP430G2 LaunchPad and the DLP-7970ABP BoosterPack. You can purchase these items as a bundle on our TI eStore: https://www.ti.com/store/ti/en/addBundle2Cart?p=MSP-EXP430G2ET&p=DLP-7970ABP
This example firmware is designed to allow for quick and easy evaluation of the TRF79xx series of devices for RFID reader designs. The firmware can be loaded and modified with Code Composer Studio. After programming the MSP-EXP430G2 LaunchPad with the firmware, remove the jumper on P1.6 to enable SPI communication. This is important as the TRF7970A will not receive any commands until the jumper is removed.
If the UART is enabled and the LaunchPad is configured correctly then a UART terminal (such as DockLight, PuTTY, or Termite) can be used to receive data from the tags. Information will include the tag UID, relevant tag settings, and the tag data itself. Please see the picture at the very end of this post which illustrates how to configure the G2 LaunchPad for UART communication.
Please note that this firmware only handles very basic NDEF processing for Type 4A and Type 4B tags, and it is limited to small messages due to resource limitations of the device. If you are looking for a robust and fully featured NDEF NFC Reader/Writer solution, please check out our NFC Reader/Writer App Note and Reference Design.
Additionally, this RFID Reader example will not handle reading tags with special or proprietary protocols such as MIFARE Classic.
The firmware has been designed in a way that makes it easily configurable, so you can turn off the polling for specific technologies by going to the nfc.h file and commenting out the #define for unwanted technologies.
If UART communication is not desired, it can also be disabled by going to uart.h and commenting out the #define ENABLE_HOST line there. This would also speed up the rate at which tags are read as the UART communication currently takes up a bit of time to output data.
MSP-EXP430G2 Hardware Configuration
As mentioned above, to enable SPI Communication for the TRF7970A, the Jumper on P1.6 must be removed as seen on the yellow box in the below picture. No tags can be read until this jumper is removed!
To use UART on the MSP-EXP430G2 LaunchPad, the TXD and RXD jumpers have to be switched to a horizontal position on the G2 LaunchPad board as seen in the light blue box on the below picture. This will allow for terminal programs such as DockLight, PuTTY, and Termite to be used in order to receive the outputted UART data.
This firmware base has received another update which provides support for the TRF7960A as well.
Other updates included in this release are:
- Reworked TX and RX timeout handling
- Adjustments to startup sequence and error recovery sequences to ensure correct flow of commands are being sent
- Increased delay for ISO15693 Write Blocks when using Option flag to match datasheet specifications for TI Tag-It HF-I transponders
- Removed heartbeat LED which was disrupting debug capabilities (as reported below)
- Streamlined certain TRF79xx driver API's and removed unnecessary API's
- Added VLO Calibration to handle VLO drift over time which could disrupt NFC timing over long enough periods
- Added recursion counter for ISO15693 Anticollision to prevent stack overflow issues
This functionality is now available as all TRF7960A projects are over 5+ years in age. Internal usage and testing with the TRF7960A has been handled using a modified version of this code base. Therefore it made sense to provide all users of the TRF7960A the option to move towards this latest firmware.
However, from a hardware standpoint, there is no purchasable tool which will allow for a very quick out-of-box experience. There are ways to modify either hardware or software to leverage this with TI EVM's which will be discussed below.
This release is primarily about offering an updated firmware base that will work for the TRF7960A that will serve as a superior starting point for any project development compared to what currently exists on the web.
In order to switch the firmware over to support the TRF7960A, the #define for the TRF79xxA_VERSION needs to be changed from "70" to "60". This change can be made within the trf79xxa.h file on line 66.
Changing the #define will automatically handle the following:
- Changing FIFO size to reflect the TRF7960A FIFO size
- Handling of all SPI related requirements (dummy clocks, polarity change etc) for the TRF7960A
- Configuring the correct registers with proper initial values and removing reads/writes to registers which only exist for the TRF7970A
- Handling for reception of data and timeouts based on testing with both 60A and 70A devices
In order to evaluate a TRF7960A device on TI EVM hardware with this example firmware, the following options are possible at this time:
- Chip swap the TRF7960A onto a TRF7970A BoosterPack (Requires soldering station with a heat gun due to ground pad and QFN package)
- Get the TRF7970A BoosterPack (discussed above)
- Get a TRF7960A sample from TI eStore
- Remove the tin cover for DLP Design to access the TRF7970A IC. The cover is soldered on the top left and bottom right corners. It is possible to lift one corner at a time to remove the cover.
- Remove the TRF7970A using a heat gun to evenly heat up the solder for the ground pad of the QFN package.
- Solder the TRF7960A chip to the LaunchPad in the correct orientation. Guides for how to solder QFN packages can be found online if required.
- Purchase the TRF7960AEVM and port the Reader software example to the MSP430F2370. Considerations to keep in mind when porting are:
- Change the MCU file functions to configure the F2370 Clock, Timers, and ISR's
- Change the SPI and UART files to use the F2370's peripheral modules
- Change the device pinout to match the TRF7960AEVM pinout
- Add in firmware to enable pull down resistors for MOD, ASK/OOK, and EN2