Micro Board: EK-TM4C1294XL (Rev D) (later switched to DK-TM4C129X with similar results)
Booster Pack: DLP-7970ABP (v4.5)
Compiler: IAR Embedded Workbench 7.60
Example Code: TivaWare 2.1.2.11 (both "ek-tm4c1294xl-boost-dlptrf7970abp" and "dk-tm4c129x-boost-dlp7970abp" example "nfc_p2p_demo" projects)
OS: Windows 7
tldr; NFC for example code for DLP-7970ABP hangs / locks-up during call to NFCP2P_proccessStateMachine() when running. Tried several different boards / configurations, and unable to get it to work. What am I missing?
Longer version:
I'm trying to experiment with NFC using TM4C launchpad / dev boards, but the code is hanging when I attempt to run the actual example.
Perhaps someone can tell me if I'm going in the correct direction?
I started out by using the EK-TM4C1294XL (Rev D) Launchpad, and we added a DLP-7970ABP booster pack as an NFC / RFID transceiver.
I downloaded IAR Embedded Workbench for ARM 7.60, though I also have 7.40 installed -- I hope a conflict isn't the source of my issue.
I downloaded TivaWare 2.1.2.111, and followed this guide here to attempt to run the example code:
austinblackstoneengineering.com/.../
The example code appeared to compile and run, but it would hang in the main loop when attempting to communicate with the booster pack. It hangs during the call to NFCP2P_proccessStateMachine(). I noticed that the first time through the program loop, it "ticks" through quickly, but it hangs during the second call to this function. If I let it sit there, it appears to eventually finish waiting after several minutes (10 or more), but it takes a long time to run, and in the meantime the GUI locks up and no amount of passing NFC chips near it will "unlock" it.
I'm using the example code from:
TivaWare_C_Series-2.1.2.111\examples\boards\ek-tm4c1294xl-boost-dlptrf7970abp\nfc_p2p_demo
If I disconnect the DLP-7970ABP booster pack and just run the code on the "bare" Launchpad, the code runs just fine and ticks through NFCP2P_proccessStateMachine() and the on-board LED blinks at the expected rate. However, because no booster pack is connected, it of course can't read anything. :) The software doesn't give any indication that it doesn't "see" the NFC booster pack.
If I plug the booster pack in backwards, it fails to power up. If I plug the booster pack in the other Booster Pack slot, it behaves the same way as if it's not connected at all. Only when I plug the booster pack in correctly does the LED hang and the program not respond.
I also tried all of the above with TivaWare 2.1.0.12573, but I witnessed no change in behavior.
We ordered an extra Launchpad and three extra NFC booster packs to see if it was a problem with hardware, but every combination of boards produced the same results.
After this, I switched to the larger DK-TM4C129X development board. TivaWare had example code for this board + DLP-7970ABP as well. Once compiled, it appeared to load just fine onto the development board. The app presents a very nice GUI that can be swiped through with gestures and whatnot -- provided that the Booster Pack isn't connected. Whenever I plug in the DLP-7970ABP booster pack, the code hangs during the same call to NFCP2P_proccessStateMachine() and the GUI locks up as well and is unresponsive.
I tried searching around, but my normally strong Google-fu was unhelpful in locating anyone else with a similar problem. I might have just been missing something simple -- it felt very odd to me that I wasn't able to find anything about this. I feel like it must be something simple that I'm missing.