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.

Connecting two TMS320C6457LE boards to a single PC running CCS v5.1?

Other Parts Discussed in Thread: TMS320C6678

Is it possible to connect CCS 5.1 simultaniously to two EVM6457 boards?

In out test setup, we have 2 EVM 6457 boards with the SRIO connected between them. We are developing the srio SW. and desire to drive both boards from a single PC.

We have created 2 instances of the Blackhawk XDS560v2-USB Trace Emulator as targets. Using the test conection button it appears both can have a connection to the same board, which they find on USB. Is there a was to specify the USB port to be used by the Blackhawn Emularor?

 

Thanks in advance

Bob Coburn

  • Bob,

    This is a question that needs to be in the Code Composer Forum instead of this C64x device-related forum. A Moderator will move it there for your convenience. They may have an exact answer for you, but in any case that is where the right experts will be watching.

    Spectrum Digital makes a JTAG spreader that turns a single emulator header into 4 or 5 headers that are connected in series. This is a pretty old product, so it may not support the lower I/O voltages or speeds of the XDS560v2. It might be worth your while to look into it, though, and see if they have any suggestions. Another vendor might have one, also. The spreader only had 14-pin connectors, which might make a difference for your case.

    We built a 5 processor board a few years ago. It had 4 DSPs on a single JTAG scan chain and then a 5th DSP on a separate scan chain. In that case, we found that we could only get it to work by using two detectably different emulators. I think back then I used a BlackHawk and a Signum. Then the "Target Configuration" was created with the two scan chains appearing on the screen at the same time.

    This was done using CCS 3.3, which has a different configuration method than CCSv5. The CCSv5 Target Configuration creates a .ccxml file that you can view with the Source tab in the Target Configurations window. There is an implication there that you can create multiple configurations, because there is a group named "configurations", but it seems obvious that our GUI tool does not support this from anything I can find.

    My recommendation, before you hear from the experts at the CCS Forum, is to get another emulator that is electrically identifiable as another emulator. If BlackHawk makes an Ethernet version of the same emulator, that could work. Or get a Spectrum Digital or other brand of XDS560v2 and try it. My guess is that you can combine the "configuration" text from two different .ccxml files into a single one, with appropriate label changes, and then be able to connect two different emulators. Or you might be able to use your current emulators if they have two different connections; my SD XDS560v2 STM has both a USB and an Ethernet connection, so your BH might also.

    I have never tried this in CCSv5, but it seems like a feasible path. If you try it and have any results, good or bad, please post a reply back here.

    Regards,
    RandyP

     

  • Hi,

    RandyP said:

    Spectrum Digital makes a JTAG spreader that turns a single emulator header into 4 or 5 headers that are connected in series. This is a pretty old product, so it may not support the lower I/O voltages or speeds of the XDS560v2. It might be worth your while to look into it, though, and see if they have any suggestions. Another vendor might have one, also. The spreader only had 14-pin connectors, which might make a difference for your case.

    Nowadays I would stay away of the JTAG spreader, especially because the XDS560v2 has a high-density connector that has more critical signaling.

    RandyP said:

    My recommendation, before you hear from the experts at the CCS Forum, is to get another emulator that is electrically identifiable as another emulator. If BlackHawk makes an Ethernet version of the same emulator, that could work. Or get a Spectrum Digital or other brand of XDS560v2 and try it. My guess is that you can combine the "configuration" text from two different .ccxml files into a single one, with appropriate label changes, and then be able to connect two different emulators. Or you might be able to use your current emulators if they have two different connections; my SD XDS560v2 STM has both a USB and an Ethernet connection, so your BH might also.

    Randy is correct: two emulators should be used in this regard. To help connecting them, you can either use Ethernet (using different IP addresses) or USB (by specifying different ports).

    The reference below talks about how to configure the emulator in a LAN:

    http://processors.wiki.ti.com/index.php/XDS560v2_LAN_Configuration

    If using two USB emulators, please check the Bh560v2Config utility user's guide to find out each emulator port. This guide is typically installed at:

    C:\ti\ccsv5\ccs_base\emulation\Blackhawk\Docs

    To set the correct USB port for each emulator in your target configuration file, check the short clip Changing the Target Configuration Properties at the Quick tips page:

    http://processors.wiki.ti.com/index.php/Quick_Tips

    Hope this helps,

    Rafael

  • Rafael,

    Thanks for the pointer to the BlackHawk documentation.

    Let me see if I got this right. Since I have 2 XDS560v2 Emulators,  one on each of my eval boards, each connected to a USB port on my PC, I sould be able to set the USB port in the target configuration (Emulator I/O Port), the composer should be able to distinguish between the 2. Is that correct?

    This is the configuration I was attempting to set up before I started this thread.  I have one target connection setup and it behaves as expected. by changing the IO port from 0 to 1, the "Test Connection"  fails. pluging the USB cable for the sencond EVM board into the PC allows the "Test Connection" to pass. Again as expected.

    However, to gat to both boards at the same I belives I need a second target configuration. When I setup that second target configuration, It seems to ignore the IO port setting. With only one XDS560 connected to the PC, the second target connection passes "Test Connection", regardless of the IO port selected

    Is there anything obvious that I am doing wrong?

    Robert Coburn 

  • Robert,

    Robert Coburn said:

    However, to gat to both boards at the same I belives I need a second target configuration. When I setup that second target configuration, It seems to ignore the IO port setting. With only one XDS560 connected to the PC, the second target connection passes "Test Connection", regardless of the IO port selected

    I had the impression that CCS was not able to launch the debugger with a single instance of JTAG emulators, but since I was able to create the attached configuration, could you give it a try? Unfortunately I don't have two BH560v2 emulators with me to try it myself.

    If that does not work, I would then run two instances of CCS each with its own workspace, and launch the debugger on both.

    Please give that a try and let me know if you succeeded, ok?

    Hope this helps,

    Rafael

    Dual_560v2_C6457.zip
  • This did not work either. Creating the configuration file is not the issue. The issue is that CCS is not using the port Id from the configuration. The Blackhawk Configuration utilitiy is able to differentiate between the USB ports but not CCS v5. When I tried to do this, both instances of CCS thought they were connected but they were connected to the same board based on the Connectivity led on the XDS560 Mezanine. 

  • Robert,

    In the thread Connecting several EVM6678L to one PC, the user there figured out a way to control the USB ports through a Virtual Machine. It could be a possibility for you, although it is not as nice as having both boards in the same CCS window. I added some comments at the end of that thread about building a network for an external JTAG chain, or using different models of JTAG emulators so they will be recognizable.

    In your case, since you have the LE version of the EVM with the mezzanine XDS560v2, you could try removing that mezzanine emulator board from one board and connect to that board using the L version XDS100. I am not sure which XDS100 (v1, v2, or v3) is on the C6457L, but that should be documented somewhere in your support CD or Getting Started Guide. If not, let me know. On a recent board I got with no documentation, I just went through all three until the Test Connection test passed in the Target Configuration.

    Regards,
    RandyP

  • Robert,

    Working with Rafael this morning, we were able to get two identical EVMs running on my CCSv5.2.0.00069 installation. My BlackHawk emulator drivers are updated, and I noticed the version number on the BH560v2 Config Utility is 1.0.0.9. I am not sure what the version number for the BH drivers is.

    In my case, I was using two EVM6678-LE boards, so both have the BH 560v2 Mezzanine emulator on-board. There should be no difference in terms of getting this to work with your system even though your EVM has a different device. The emulation issues will be identical.

    A convenience step (I do not believe it is required) is to use the BH 560v2 Config Utility to put a dtc name on each emulator board so it can be easily identified for figuring out the order of the boards in the CCS configuration. If you plug in the USB and apply power to only the first board, open the BH 560v2 Config Utility and let it find the board. Select that board in the Devices pane at the top, then click Edit Device Parameters in the Device Configurations Options pane in the lower right. Click on the dtcName parameter and type in a string in the edit box blow the list; click Set. Then you can unplug that EVM, then plug in the USB and apply power to only the second board, repeating the process to give a different name to the second board. I would use a name that does not end in _0 and _1 because that could get confusing with the automatic naming that will occur later; I used _0 and _b, but would use _a and _b now.

    With both boards disconnected and powered off, plug in the USB and apply power to the first board. Open the BH 560v2 Config Utility or click Search if it is already open. Confirm the name and notice the Connection column to see if it is USB:0 or USB:1. Now plug in the USB and apply power to the second board also. click Search in the BH 560v2 Config Utility, look for the second board's name and notice the Connection column to see if it is USB:1 or USB:0.

    As a test, I connected board BH560v2_0, which showed up as USB:0, then added board BH560v2_b, which showed up as USB:1. I then disconnected BH560v2_0 and clicked Search to find that BH560v2_b switched to USB:0. When I had plugged board BH560v2_0 back in, it showed up at USB:0 and BH560v2_b switched back to USB:1. This tells me that the USB Connection order is not based on the sequence when they are connected but the order of the physical USB ports of the PC. If that is true, then you will be able to have the boards in the same order each time as long as you have them plugged into the same USB ports on your PC.

    If both boards show up in the list, then you have the requirements for making this work. If only one board shows up, then you have issues with your USB connections and it will not work. In the beginning, I kept having only one board show up at a time. When I would power up the second board, the first one would go away. That problem ended when I quit trying to use a USB hub for either board, and instead just connected directly from both boards to my laptop. Be aware that some PCs may implement USB hubs for multiple ports, and this may not work with those. Some docking stations also implement hubs, and this may not work with those.

    An early clue that the USB ports are separated is to watch the Device Manager window to see if there are two items under the Blackhawk (for example) item. The picture below shows two emulators are active.

    Once you get to this point, all you have to do is create a new Target Configuration and start your debug session in CCSv5. Here are the steps to create a Target Configuration with both emulators.

    1. Create a New Target Configuration for a single EVM. For my case, I selected the Blackhawk XDS560v2-USB Mezzanine Emulator and the TMS320C6678.

    2. After clicking save and then clicking on the Advanced tab in the bottom left, you will see the correct Target Configuration for a single EVM. I like to move slowly, so I tried this with one board to make sure the connection works and I can connect to the board in the debugger. If you do that, Terminate the session before coming back for the next step.

    3. To add the second EVM, go back to the Target Configuration you just made for the single EVM and go to the Advanced tab again. Click the New button and find the same BH Mezzanine Emulator in the Connections list. Double-click on it or select it and click Finish.

    4. Select the new Emulator_1 line and set the I/O Port to 1 on the right side.

    5. With  the new Emulator_1 line still selected, click the Add button, change the "Filter selection" to your ISA (TMS320C66xx for my board, TMS320C64xx for the C6457, and so on), go to the Devices tab and select the device you want.

    6. Your Target Configuration will now look like this. Some of the tree has been collapsed to make this fit on the forum better.

    7. Click Save, then Launch this Target Configuration. For my confirmation, I Connected to Core0 of both Emulator_0 and Emulator_1. With one of those selected, I used a Memory Browser Window to go to local L2 at 0x00800000. I changed a value there to 123, then selected the other Core0 and went to 0x00800000, observed that the 123 was not there and changed the same offset value to 654, then went back to the first Core0 to make sure the two were unique so I was really working on two different boards.

    This should all work for the XDS100 on-board emulators, too, except that there may not be a way to label and mark the boards through a config tool like the BH Config Utility, or to detect which USB port is connected to which board. So you may have to count on writing a simple test routine to toggle an LED on the board, then see which is which. My assumption is that the USB I/O port number will follow the physical connection to the PC.

    Please let us know if this works for your case or what results you get along the way.

    Regards,
    RandyP

  • I lost you at #7 how do I save and then launch? Everthinhg on the Blackhawk screens looks just like my setup. I would have been nice to see a screenshot of #6. Here are my screenshots

     

    Bob Coburn

     

    DualEmulators.docx
  • Bob,

    I ran into some forum limit on images or post length. Here is my picture for #6. You can tell that I meant for there to be a picture there, but my re-edit did not catch up.

    6. Your Target Configuration will now look like this. Some of the tree has been collapsed to make this fit on the forum better.

    7. Once you have saved the Target Configuration, you can go to the Target Configurations window where this Target Configuration is listed, then right-click on it and click on the Launch Selected Configuration. This will open the Debug Perspective and for my EVMs I got the second picture below.

    Debug Perspective / Debug Window:

    Since you already have something looking close to what I showed above, I think you are very close to this working. Your pictures show both emulators in the BH Config Utility, which is key.

    You definitely only want one instance of CCS running at a time for this method we are discussing here.

    Please let us know.

    Regards,
    RandyP

  • Bob,

    Were you able to get this to work?

    Regards,
    RandyP

  • Blackhawk duplicated the issue ans spllied me a utility that changed the sn on the Emulator. I got it to work properly once, but could not recreate it. My initialization problem has highest prioity. Once I understyand the tool from BlackHawk I will post it here