Part Number: CCSTUDIO-MSP
By default, CCS will detect the JTAG interface automatically based on the device and the debugger. However, you may want to manually change the interface type to 2-wire SBW or 4-wire JTAG. Currently, CCS does not allow you to change the JTAG interface without making some manual changes to the drivers. Here are instructions on how to do that using CCS v10.
Step 1. Make sure CCS is closed, and open the following file in a text editor (assuming default installation location).
C:\ti\ccs<version here>\ccs\ccs_base\common\targetdb\drivers\msp430_emu.xml
Step 2. Update 'msp430_emu.xml' for your specific device based on its family. You will see several "isa" sections for each family, so make the changes in the appropriate section per your device.
Original 'msp430_emu.xml'
<?xml version="1.0"?> <drivers id="MSP430"> <isa Type="MSP430" ProcID="0x6b800000"> <driver file="../../DebugServer/drivers/msp430_emu.dvr"> <connectionType Type="MSP430"/> <property Type="hiddenfield" Value="msp430.dll" id="dllName" /> <property Type="hiddenfield" Value="MSP430" id="interface" /> <property Name="JTAG/SBW Speed" desc="JTAG/SBW Speed" Type="choicelist" id="interfaceSpeed" Value="1"> <choice Name="Fast" value="0"/> <choice Name="Medium" value="1"/> <choice Name="Slow" value="2"/> </property> </driver> </isa> <isa Type="MSP430L092" ProcID="0x6b800000"> <driver file="../../DebugServer/drivers/msp430_emu.dvr"> <connectionType Type="MSP430"/> <property Type="hiddenfield" Value="msp430.dll" id="dllName" /> <property Type="hiddenfield" Value="MSP430" id="interface" /> <property Name="Emulation Type" desc="Emulation Types" Type="choicelist" id="emuType" Value="0"> <choice value="Normal"/> <choice value="ROM"/> </property> <property Type="hiddenfield" id="NormalActivationCode" Value="0xA55AA55A"></property> <property Type="hiddenfield" id="ROMActivationCode" Value="0x5AA55AA5"></property> <property Type="hiddenfield" id="supportExtMemDL" Value="true"></property> <property Name="JTAG/SBW Speed" desc="JTAG/SBW Speed" Type="choicelist" id="interfaceSpeed" Value="0"> <choice Name="Slow" value="2"/> </property> </driver> </isa> <isa Type="MSP430C09x" ProcID="0x6b800000"> <driver file="../../DebugServer/drivers/msp430_emu.dvr"> <connectionType Type="MSP430"/> <property Type="hiddenfield" Value="msp430.dll" id="dllName" /> <property Type="hiddenfield" Value="MSP430" id="interface" /> <property Type="stringfield" id="password" Name="Password: (HEX format)"></property> <property Type="hiddenfield" id="passwordMinLength" Value="8"></property> <property Type="hiddenfield" id="passwordMaxLength" Value="8"></property> <property Name="JTAG/SBW Speed" desc="JTAG/SBW Speed" Type="choicelist" id="interfaceSpeed" Value="0"> <choice Name="Slow" value="2"/> </property> </driver> </isa> <isa Type="MSP430FR57xx" ProcID="0x6b800000"> <driver file="../../DebugServer/drivers/msp430_emu.dvr"> <connectionType Type="MSP430"/> <property Type="hiddenfield" Value="msp430.dll" id="dllName" /> <property Type="hiddenfield" id="supportLPMx5" Value="true"></property> <property Type="stringfield" id="password" Name="Password: (HEX format)"></property> <property Type="hiddenfield" id="passwordMinLength" Value="0"></property> <property Type="hiddenfield" id="passwordMaxLength" Value="120"></property> <property Name="JTAG/SBW Speed" desc="JTAG/SBW Speed" Type="choicelist" id="interfaceSpeed" Value="1"> <choice Name="Fast" value="0"/> <choice Name="Medium" value="1"/> <choice Name="Slow" value="2"/> </property> </driver> </isa> <isa Type="MSP430FR59xx" ProcID="0x6b800000"> <driver file="../../DebugServer/drivers/msp430_emu.dvr"> <connectionType Type="MSP430"/> <property Type="hiddenfield" Value="msp430.dll" id="dllName" /> <property Type="hiddenfield" id="supportLPMx5" Value="true"></property> <property Type="stringfield" id="password" Name="Password: (HEX format)"></property> <property Type="hiddenfield" id="passwordMinLength" Value="0"></property> <property Type="hiddenfield" id="passwordMaxLength" Value="120"></property> <property Name="JTAG/SBW Speed" desc="JTAG/SBW Speed" Type="choicelist" id="interfaceSpeed" Value="1"> <choice Name="Fast" value="0"/> <choice Name="Medium" value="1"/> <choice Name="Slow" value="2"/> </property> </driver> </isa> <isa Type="MSP430F1xx_SLOW" ProcID="0x6b800000"> <driver file="../../DebugServer/drivers/msp430_emu.dvr"> <connectionType Type="MSP430"/> <property Type="hiddenfield" Value="msp430.dll" id="dllName" /> <property Type="hiddenfield" Value="MSP430" id="interface" /> <property Name="JTAG/SBW Speed" desc="JTAG/SBW Speed" Type="choicelist" id="interfaceSpeed" Value="0"> <choice Name="Slow" value="2"/> </property> </driver> </isa> <isa Type="RF430FRL15X" ProcID="0x6b800000"> <driver file="../../DebugServer/drivers/msp430_emu.dvr"> <connectionType Type="MSP430"/> <property Type="hiddenfield" Value="msp430.dll" id="dllName" /> <property Type="hiddenfield" Value="MSP430" id="interface" /> <property Name="Emulation Type" desc="Emulation Types" Type="choicelist" id="emuType" Value="0"> <choice value="Normal"/> <choice value="ROM"/> </property> <property Type="hiddenfield" id="NormalActivationCode" Value="0xA55AA55A"></property> <property Type="hiddenfield" id="ROMActivationCode" Value="0x5AA55AA5"></property> <property Type="hiddenfield" id="supportExtMemDL" Value="true"></property> <property Name="JTAG/SBW Speed" desc="JTAG/SBW Speed" Type="choicelist" id="interfaceSpeed" Value="0"> <choice Name="Slow" value="2"/> </property> </driver> </isa> <isa Type="CORTEX_M4_432" ProcID="0x75803800"> <driver file="../../DebugServer/drivers/msp430_emu.dvr"> <connectionType Type="MSP430"/> <property Type="hiddenfield" Value="msp430.dll" id="dllName" /> <property Type="hiddenfield" Value="MSP430" id="interface" /> <property Type="hiddenfield" Value="true" id="haltOnConnectByDefault" /> <property Type="hiddenfield" Value="true" id="supportsNonIntrusiveConnect" /> <property Type="hiddenfield" Value="true" id="disableInternalFlashManager" /> <property Type="hiddenfield" Value="true" id="disableArmAdvancedFeatures" /> <property Type="hiddenfield" Value="true" id="disableSoftwareBreakpoint" /> <property Type="hiddenfield" Value="true" id="disableSoftLaunch" /> <property Type="hiddenfield" Value="true" id="msp432fet" /> <property Name="JTAG/SWD (Auto-detect)" desc="JTAG/SWD (Auto-detect)" Type="choicelist" id="interfaceSpeed" Value="1"> <choice Name="Fast" value="0"/> <choice Name="Medium" value="1"/> <choice Name="Slow" value="2"/> </property> <property Type="hiddenfield" Value="true" id="Make Device Secure" /> </driver> </isa> <isa Type="CS_DAP" ProcID="0x38000405"> <driver file="NONE"> <connectionType Type="MSP430"/> </driver> </isa> </drivers>
Interface Type Property Added
<property Name="Interface Type" desc="Interface Type" Type="choicelist" id="interfaceType" Value="3"> <choice Name="4 Wire JTAG protocol used" value="0"/> <choice Name="2 Wire (Spy-bi-wire) JTAG protocol used" value="1"/> <choice Name="2 Wire Devices accessed by 4wire JTAG protocol" value="2"/> <choice Name="Protocol will be detected automatically" value="3"/> </property>
Modified 'msp430_emu.xml'
<?xml version="1.0"?> <drivers id="MSP430"> <isa Type="MSP430" ProcID="0x6b800000"> <driver file="../../DebugServer/drivers/msp430_emu.dvr"> <connectionType Type="MSP430"/> <property Type="hiddenfield" Value="msp430.dll" id="dllName" /> <property Name="Interface Type" desc="Interface Type" Type="choicelist" id="interfaceType" Value="3"> <choice Name="4 Wire JTAG protocol used" value="0"/> <choice Name="2 Wire (Spy-bi-wire) JTAG protocol used" value="1"/> <choice Name="2 Wire Devices accessed by 4wire JTAG protocol" value="2"/> <choice Name="Protocol will be detected automatically" value="3"/> </property> <property Name="JTAG/SBW Speed" desc="JTAG/SBW Speed" Type="choicelist" id="interfaceSpeed" Value="1"> <choice Name="Fast" value="0"/> <choice Name="Medium" value="1"/> <choice Name="Slow" value="2"/> </property> </driver> </isa> <isa Type="MSP430L092" ProcID="0x6b800000"> <driver file="../../DebugServer/drivers/msp430_emu.dvr"> <connectionType Type="MSP430"/> <property Type="hiddenfield" Value="msp430.dll" id="dllName" /> <property Type="hiddenfield" Value="MSP430" id="interface" /> <property Name="Emulation Type" desc="Emulation Types" Type="choicelist" id="emuType" Value="0"> <choice value="Normal"/> <choice value="ROM"/> </property> <property Type="hiddenfield" id="NormalActivationCode" Value="0xA55AA55A"></property> <property Type="hiddenfield" id="ROMActivationCode" Value="0x5AA55AA5"></property> <property Type="hiddenfield" id="supportExtMemDL" Value="true"></property> <property Name="JTAG/SBW Speed" desc="JTAG/SBW Speed" Type="choicelist" id="interfaceSpeed" Value="0"> <choice Name="Slow" value="2"/> </property> </driver> </isa> <isa Type="MSP430C09x" ProcID="0x6b800000"> <driver file="../../DebugServer/drivers/msp430_emu.dvr"> <connectionType Type="MSP430"/> <property Type="hiddenfield" Value="msp430.dll" id="dllName" /> <property Type="hiddenfield" Value="MSP430" id="interface" /> <property Type="stringfield" id="password" Name="Password: (HEX format)"></property> <property Type="hiddenfield" id="passwordMinLength" Value="8"></property> <property Type="hiddenfield" id="passwordMaxLength" Value="8"></property> <property Name="JTAG/SBW Speed" desc="JTAG/SBW Speed" Type="choicelist" id="interfaceSpeed" Value="0"> <choice Name="Slow" value="2"/> </property> </driver> </isa> <isa Type="MSP430FR57xx" ProcID="0x6b800000"> <driver file="../../DebugServer/drivers/msp430_emu.dvr"> <connectionType Type="MSP430"/> <property Type="hiddenfield" Value="msp430.dll" id="dllName" /> <property Type="hiddenfield" id="supportLPMx5" Value="true"></property> <property Type="stringfield" id="password" Name="Password: (HEX format)"></property> <property Type="hiddenfield" id="passwordMinLength" Value="0"></property> <property Type="hiddenfield" id="passwordMaxLength" Value="120"></property> <property Name="JTAG/SBW Speed" desc="JTAG/SBW Speed" Type="choicelist" id="interfaceSpeed" Value="1"> <choice Name="Fast" value="0"/> <choice Name="Medium" value="1"/> <choice Name="Slow" value="2"/> </property> </driver> </isa> <isa Type="MSP430FR59xx" ProcID="0x6b800000"> <driver file="../../DebugServer/drivers/msp430_emu.dvr"> <connectionType Type="MSP430"/> <property Type="hiddenfield" Value="msp430.dll" id="dllName" /> <property Type="hiddenfield" id="supportLPMx5" Value="true"></property> <property Type="stringfield" id="password" Name="Password: (HEX format)"></property> <property Type="hiddenfield" id="passwordMinLength" Value="0"></property> <property Type="hiddenfield" id="passwordMaxLength" Value="120"></property> <property Name="Interface Type" desc="Interface Type" Type="choicelist" id="interfaceType" Value="3"> <choice Name="4 Wire JTAG protocol used" value="0"/> <choice Name="2 Wire (Spy-bi-wire) JTAG protocol used" value="1"/> <choice Name="2 Wire Devices accessed by 4wire JTAG protocol" value="2"/> <choice Name="Protocol will be detected automatically" value="3"/> </property> <property Name="JTAG/SBW Speed" desc="JTAG/SBW Speed" Type="choicelist" id="interfaceSpeed" Value="1"> <choice Name="Fast" value="0"/> <choice Name="Medium" value="1"/> <choice Name="Slow" value="2"/> </property> </driver> </isa> <isa Type="MSP430F1xx_SLOW" ProcID="0x6b800000"> <driver file="../../DebugServer/drivers/msp430_emu.dvr"> <connectionType Type="MSP430"/> <property Type="hiddenfield" Value="msp430.dll" id="dllName" /> <property Type="hiddenfield" Value="MSP430" id="interface" /> <property Name="JTAG/SBW Speed" desc="JTAG/SBW Speed" Type="choicelist" id="interfaceSpeed" Value="0"> <choice Name="Slow" value="2"/> </property> </driver> </isa> <isa Type="RF430FRL15X" ProcID="0x6b800000"> <driver file="../../DebugServer/drivers/msp430_emu.dvr"> <connectionType Type="MSP430"/> <property Type="hiddenfield" Value="msp430.dll" id="dllName" /> <property Type="hiddenfield" Value="MSP430" id="interface" /> <property Name="Emulation Type" desc="Emulation Types" Type="choicelist" id="emuType" Value="0"> <choice value="Normal"/> <choice value="ROM"/> </property> <property Type="hiddenfield" id="NormalActivationCode" Value="0xA55AA55A"></property> <property Type="hiddenfield" id="ROMActivationCode" Value="0x5AA55AA5"></property> <property Type="hiddenfield" id="supportExtMemDL" Value="true"></property> <property Name="JTAG/SBW Speed" desc="JTAG/SBW Speed" Type="choicelist" id="interfaceSpeed" Value="0"> <choice Name="Slow" value="2"/> </property> </driver> </isa> <isa Type="CORTEX_M4_432" ProcID="0x75803800"> <driver file="../../DebugServer/drivers/msp430_emu.dvr"> <connectionType Type="MSP430"/> <property Type="hiddenfield" Value="msp430.dll" id="dllName" /> <property Type="hiddenfield" Value="MSP430" id="interface" /> <property Type="hiddenfield" Value="true" id="haltOnConnectByDefault" /> <property Type="hiddenfield" Value="true" id="supportsNonIntrusiveConnect" /> <property Type="hiddenfield" Value="true" id="disableInternalFlashManager" /> <property Type="hiddenfield" Value="true" id="disableArmAdvancedFeatures" /> <property Type="hiddenfield" Value="true" id="disableSoftwareBreakpoint" /> <property Type="hiddenfield" Value="true" id="disableSoftLaunch" /> <property Type="hiddenfield" Value="true" id="msp432fet" /> <property Name="JTAG/SWD (Auto-detect)" desc="JTAG/SWD (Auto-detect)" Type="choicelist" id="interfaceSpeed" Value="1"> <choice Name="Fast" value="0"/> <choice Name="Medium" value="1"/> <choice Name="Slow" value="2"/> </property> <property Type="hiddenfield" Value="true" id="Make Device Secure" /> </driver> </isa> <isa Type="CS_DAP" ProcID="0x38000405"> <driver file="NONE"> <connectionType Type="MSP430"/> </driver> </isa> </drivers>
Step 3. Save the file, and re-open CCS.
Step 4. Select and expand your CCS project in CCS Project Explorer by double-clicking the project folder.
Step 5. Expand the "targetConfigs" folder by double-clicking it.
Step 6. Open the target configuration file ending in '.ccxml' by double-clicking it, and then click the "Advanced" tab.
Step 7. Click the "MSP430" CPU.
Step 8: Under "CPU Properties", change the "Interface Type" to something other than "Protocol will be detected automatically". Note that some options may vary depending on your device.
Step 9 (optional): Adjust the communication speed if necessary to ensure reliable communication.
Step 10: Click "Save" to save the changes to the target configuration.
Now, you can program or debug your device using the specified interface assuming the hardware connections and JTAG circuitry are all correct.
NOTE: The same change should be possible for UniFlash by modifying its driver at this location.
C:\ti\uniflash_<version here>\deskdb\content\TICloudAgent\win\ccs_base\common\targetdb\drivers\msp430_emu.xml
If any of these steps are unclear or if you run into any issues, please click the "+Ask a related question" button above to create a new post.
P.S. - Thanks for your input, @Chester Gillon.