Part Number: CS014X01
Other Parts Discussed in Thread: TRF7960A, MSP430F5419A, TRF7960, MSP430F2370, CC430F5137, MSP430F5419
Hello,
I have a project with MSP430F5419A, and am trying to port the TRF7960A code over to communicate with 14443A tags. I have a 7960A EVM, and by poking around it, reading source code and looking at the response to reset, I conclude the code in it is from the sloc203 TRF7960 Firmware Source Code for CCS example project. Can someone please confirm what code is actually loaded into the EVM, and also provide a image/hex file which I can reload as I have blown away working code in several units.
So a few things are not working for me.
1. I have the sloc134 TRF7960EVM GUI Software installed, and connected over the USB. To start with this is a very irritating piece of software as the communications port enumerator does not work, and it comes up with a dumb dialog box when it is started that says: "Invalid Entry". After reading and debugging the source code I worked out that the auto COM port open is actually commented out, and the dumb dialog box will always occur, since the code path always fails and ends up at the dumb dialog. I read through further, and it has some Slovenian comments, and is very hard to follow but that is another story. I eventually worked out that the COM port can be manually selected by typing in the edit box next to the Select Port button.
2. So I go to the 14443A tab, and click Set Protocol. I logged the communications on the GUI, and also connected the TX, RX lines between the MSP430F2370 and the USB chip to my Salea logic analyser to log the comms independently.
14443A Set Protocol
12:30:50.500 --> 01 0900 0304 0A FF 0000
GUI only transmits 01 0900 but not 03040AFF000, so EVM replies 01 9000, and hence screws up the command.
12:30:50.500 --> 01 0C00 0304 10 00210109 0000
12:30:50.500 \\.\COM7
12:30:50.625 <-- 01 0C00 0304 10
Unknown command.
AGC OFF
12:30:50.625 --> 01 0900 0304 F0 00 0000
12:30:50.750 <-- 01 0900 0304 F0 00 0000
SET RECEIVER MODE AM
12:30:50.750 --> 01 0900 0304 F1 FF 0000
12:30:50.875 <-- 01 0900 0304 F1 FF 0000
As you can see there is an issue in the comms, and what I found between the MSP430 and usb chip is that only 01 0900 comes out of the USB chip, but not the following 03040AFF000. As a result, the following data is concatenated and screws up following Write Register command.
I tried this on two Dell machines, a desktop and a vostro laptop, and both had the same issue. The question is why is the GUI only sending a bit of the command data causing the EVM to screw up?
2. So I thought I would try the actual command using the test window, I copied 01090003040AFF0000 into the command line and clicked "send raw data", and again the TRF7960AEVM responded with "Unknown command". By this time I had loaded up the sloc203 TRF7960 Firmware Source Code for CCS example project onto my IAR compiler, and rebuilt it, as it seemed like the matching version of source code for what is actually delivered in the EVM. I then read through the code and noticed that the command 0x0A is actually not supported in this version of code. I then read through the following GUI code and as you can see the comment matching the 0x0A command is "configure temorary ASIC", which is extremely perplexing.
static int send()
{
char cmd[CMD_LEN], hex[4];
#if ! SETUP_7961 || SETUP_7960
strcpy(cmd, "0A"); // configure temporary ASIC
if (t14AiFullPower) strcat(cmd, "00");
else strcat(cmd, "FF");
if (portWrite(cmd, 1, 0))
return 1;
#endif
int reg01 = 0; // Kje ga dobim?
reg01 |= 0x09;
sprintf(hex, "%2.2X", reg01);
strcpy(cmd, "10"); // write to register
#if SETUP_7961
if (t14AiFullPower) strcat(cmd, "0031");
else strcat(cmd, "0021");
#endif
strcat(cmd, "01"); // register #
strcat(cmd, hex);
portWrite(cmd, 0, 0);
portRead(cmd, CMD_LEN);
selectedProtocol = 1;
newProtocol = 0;
if (topResetFlags())
return 1;
return 0;
}
In this case the question is what is this command still doing in the GUI if it is not implemented in the example code?; what is a temporary ASIC?; and what is the command supposed to do and why is it there?
3. Having the code configured and complied on the IAR compiler, with MSP430F2370 selected as the target device, I tried to load the code on the EVM board using the FETU430IF. When I did this the compiler download hung. It also default to set up for SpiBiWire, which I figured out how to change in the .mnu file for IAR to allow it to select the full jtag. I tried again and then it hung while trying to download. I then loaded up the FETPRO430 from elpotronic and tried to load a good image from another TRF7960 into it, but it failed. I built a hex file for the 2370 targed and tried FETPRO430, and discovered a flash erase error and some sectors will not erase from 0x00 and cannot load code. At this stage I basically said the chips are stuffed and ordered samples to replace the chips.
The question is "Does anyone know how to load the EVM code into the MSP430F2370 using the IAR compiler? Are the EVM chips locked for some reason?
Can someone intelligent from TI please assist? (I noticed harsha is now no longer in the TRF group, and it seems it is his code)
Regards
Simon Buchwald
Amatek Design
www.amatek.com




