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.

TMS320F280037C: Standalone boot problem

Part Number: TMS320F280037C
Other Parts Discussed in Thread: C2000WARE

Dear experts,

I am trying to run a program on a custom board in standalone mode without success.I am using the CCS v. 12.2 and a  USB 200 JTAG emulator. The board has two 48 pin F280037 chips and use the two pin JTAG header configuration, with the TMS inputs of the two chips selectable separately. Both chips are running ok with the debugger connected, but neither does not boot when the emulator is detached. The XRSN pins remain high. I am using the default flash boot configuration without any modifications to the OTP boot  mode configuration bits. The standard boot pins GPIO24 and GPIO32 are tied to the 3.3V VDDIO which should direct the boot to flash. I checked some earlier directions and thought it is necessary to incorporate the gel file initializations to be executed after main(), but before that I checked where the PC was stuck by connecting the emulator after power on. Due to some earlier problems with a daisy chain connection between the two chips, I now have a mechanical switch that allows connecting the TMS signal selectively to one or the other of the two chips when power is on, and I have only "halt when connecting" set in CCS, so assumably the code location stays where it is stuck on power on (?). It seems to stay in the wait boot mode program memory area, but is it forced there by the emulator connection action, even though the connection does not cause the device reset? If not, adding the gel code after main() would not help, because the PC does not ever reach the user flash code beginning address.

But if the emulator connection always forces the CPU to the wait boot mode, and in fact, standalone boot without the emulator connected would try to branch to the code start, then I have a question about the necessary gel functions needed. I am using the C2000Ware 4.03.00.00 examples' f28003x_sysctrl.c as the initialization code, and it seems to have some redundant functions with some of the gel functions, so which gel functions would be required in addition for successful boot?

An earlier thread had concerns that the flash memory code beginning locations in OTP were different in different versions of the F28003x, but it seemed only apply to the 280034, not to 280037, but are there differences in different pinout versions? Mine are 48 pin.

Best regards,

Jouko

  • Hi,

    but is it forced there by the emulator connection action, even though the connection does not cause the device reset?

    Yes, with emulation connected, wait boot is forced and user need to use the emulation boot to properly boot the device.

    it seems to have some redundant functions with some of the gel functions, so which gel functions would be required in addition for successful boot?

    In standalone boot, Gel functions are not needed. 

    An earlier thread had concerns that the flash memory code beginning locations in OTP were different in different versions of the F28003x, but it seemed only apply to the 280034, not to 280037, but are there differences in different pinout versions? Mine are 48 pin.

    This should not be the case. 

    After detaching the emulator are you power cycling the board to re-run it ? If not, please try that and see if it works.

    Regards,

    Vivek Singh

  • Thanks of the rapid reply!

    After some more testing, I found out that the problem was a side effect of my earlier problem on which I had correspondence with Benjamin Collier 3 months ago. I could not debug the two chip system in a daisy chain JTAG configuration, so I had to add a switch to selectively connect the TMS output of the JTAG header to the two chips in order to be able to debug the chips one by one. I also had then add one more pullup resistor so that both the TMS inputs had their own. However, the additional resistor now was behind the other switch branch, and when the JTAG header was disconnected, the chip that was on the open side of the switch was left without pullup, thus keeping the TMS input at zero and leaving the CPU in the wait boot state. This, of course, was not a problem when debugging with the JTAG header connected, only in the standalone boot case.

    So moving the pullup resistor to the correct location solves the problem. However, the problem in the daisy chain debug configuration still remains: I would not like to make a new PCB round just to add jumpers for the separate TMS activation for loading the code for the two chips. Therefore I am curious to know if you have had any verified cases of two or more F280037 chips connected in the daisy chain JTAG configuration?

    Best regards,

    Jouko

  • Hi Jouko.

    If you are using 4pin JTAG then you should be able to connect two F280037 device in daisy chain but if using two wire cJTAG then it would not be easy to connect two device in daisy chain.

    Regards,

    Vivek Singh

  • Hi,

    I used the 4 pin configuration (i.e. TDI,TDO,TCK and TMS) but it did not work. The same for both 1149.1 and 1149.7 4 pin. Therefore I had to change the HW to use separate JTAG connection to the two chips with switchable TMS signals. Therefore I wonder if anybody has had success with the daisy chain cfg?

    Best,

    Jouko

  • I need to check in my team if someone has used this specific device but I have used other devices with daisy chain and it works fine and JTAG logic is same on these devices. 

    You may want to refer this E2E post and see if it provides any help.

    Regards,

    Vivek Singh

  • Yes, I have also used other F28x devices in daisy chain with the same setup and same emulator (Blackhawk USB200) without any problems. However, the F280037 has many differences when compared to e.g. the f28375D that I have used previously that way: it  is the first I have used that also has the 1149.7 additions, it does not have the TRST signal, and it also multiplexes the JTAG pin signals, unlike the older device. Especially the 48 pin package has very heavy pin multiplexing, so maybe there are some timing related issues, when using slower emulators like the USB200?

    Cheers,

    Jouko

  • Jouko,

    Especially the 48 pin package has very heavy pin multiplexing, so maybe there are some timing related issues, when using slower emulators like the USB200?

    I would not expect that to be an issue. It may be better if you could send the schematic and we can get it reviewed by some of our expert. 

    Vivek Singh

  • Very good, please find attached a part of the schematic! It only includes the essential connections, i.e. JTAG, reset and boot. All the JTAG signal traces are less than 30mm in length, so they do not have series termination, External crystal oscillator of 12MHz is used for the chips. As I told, JTAG debugging works for the same circuit when the TMS signals are separately connected to the corresponding devices, and the 2 signal JTAG protocol is used, but the daisy chain circuit in the figure not in the four signal JTAG protocol.

    (schematics in a separate e-mail)

    Thanks,

    Jouko

  • Sorry, I don't see the schematics attached to the post.

  • Schematic look ok to me. I don't see TCK connection to header but I think that is just not shown here. If you have some faster debug probe, please try that.

  • Hi,

    Yes, the TCK is also connected. The circuit is identical to the one I have used for the F2837x processors, save the missing TRST signal. Now I am wondering what would be the best way to alleviate the problem. The datasheet refers to the improved JTAG standard 1149.7, and the standard specifies an alternative multiprocessor connection, the star topology, so should I try to implement that instead? 

    About the emulators: I have just the Blackhawk XDS200 and similar Spectrum Digital XDS200 emulators, and older USB100V2 emulators. I noticed that there is also a new XDS110 debug probe available that seems to have improved support for the new protocols. Its manual also reports about 5x improvement in code download speed over the older XDS100 which is promising: the download speed in the older USB100V2 was very disappointing, compared to the XDS200.  However, then it has a disclaimer that the improvement  will not be seen in some families, including C2000. Have you tested the download speed of the XDS110 for F28x families?

    Best,

    Jouko

  • However, then it has a disclaimer that the improvement  will not be seen in some families, including C2000. Have you tested the download speed of the XDS110 for F28x families?

    Best,

    I have not tested the download speed but I know it is faster compare to XDS100 emulators so you can give a try. 

    Regards,

    Vivek Singh

  • Thanks, I may try that for our next PCB batch. I mark this problem so far solved, but I will set up an follow-up alert if there comes more information on the daisy chain topics.

    Regards

    Jouko