This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Unable to run example code for NFC BoosterPack (DLP-7970ABP) from TivaWare with TM4C Launchpad / Dev board

Other Parts Discussed in Thread: EK-TM4C1294XL, DLP-7970ABP

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.

  • Hello Clint,

    I have a boosterpack v4.3, that came installed with a 3 pin jumper. If I connect the center pin to pin2, the application works fine, but if I don't connect the middle pin to anything, then the application gets stuck.

    This might be the issue that you are seeing. What version of the boosterpack do you have?

    Thanks,
    Sai
  • Hi Sai, thanks for checking on this!  It's encouraging to me that you were able to reproduce this behavior.

    I have version 4.5 of the DLP-7970ABP.  This PDF seems to show the differences:

    However, it wasn't clear to me from reading that documentation what I would need to do.  Perhaps to resolve the jumper switch that you're talking about, I should solder a wire between pins 2 and 3 on that "IRQ SEL" area?  

  • Huh. The documentation talks about using 0-ohm resistors -- I'm not entirely sure what it means? Looking at it again, the two pads soldered together labeled "1" might need to be desoldered and I solder a jumper between the two pads on the area labeled "2"? It feels odd that I would need to solder this board in order to get the basic example code to work? I guess I'll try that next.
  • Your understanding appears correct to me. Let me know if this does not work and I can try at my end the new boosterpack.

    I am not aware of the reason the new version was done this way but the document explains some of the reasons.

    Thanks,
    Sai
  • I was able to desolder the connection between the two pads labeled "1" and solder a connection between the two pads labeled "2" and this worked to establish NFC communication with my phone.  Awesome!  I really appreciate your help in figuring this out!

    It still doesn't yet talk to the small example tag that came with my NFC board, but at least it talks to my phone and the code is no longer hanging in the same place.  I will try some different tags and see if it isn't a problem with the physical tag itself.  

    Overall this was extremely helpful, thanks!  If this requirement to get the example code was mentioned somewhere in the documentation, I missed it -- otherwise this requirement to desolder / resolder feels like an oversight that should be mentioned in the docs.  Either that, or the example code should be updated to work with an IRQ of 1?  It's very disconcerting when the example code doesn't work "out of the box".

    Thanks so much for your help!  This was extremely helpful.

  • Hello Clint,

    I am glad that I could be of help.

    I am not sure if this application configures the NFC on the BoosterPack to be able to talk to an NFC tag. The documentation does not say anything about it.

    I absolutely agree with you that the hardware set-up for an out of box demo should be well document and minimal. I will file a bug on this so that we can fix it in future releases.

    Thanks,
    Sai