XDS到底是什么:XDS100各版本、XDS110、C2000烧录接线与CCS排错 问题背景刚接触TI C2000时很容易把XDS理解成普通“烧录器”也容易把JTAG、cJTAG、SWD、SCI Boot和虚拟串口混在一起。实际使用中下面几类问题经常同时出现Windows设备管理器已经出现XDS设备CCS却仍然连接失败手里是XDS100.ccxml却选择了XDS110随后出现Error -260自制板只引出了TMS和TCK却使用不支持两线cJTAG的XDS100v2看到CCS中有SWD选项就把TMS、TCK误命名为SWDIO、SWCLKTest Connections能够通过但RAM程序或Flash程序仍然下载失败把目标板的3.3V参考电压误认为XDS一定会给目标板供电只检查软件设置没有检查VDDIO、VDD、XRSn、时钟和JTAG走线。理解这些问题的关键是先把整条链路拆开CCS或UniFlash → XDS调试探针 → JTAG或cJTAG物理接口 → MCU片上调试模块 → RAM下载或Flash编程。XDS只负责其中“主机与目标芯片调试端口之间的桥接”。它不是USB转串口也不是某一种固定的烧录协议更不等于MCU的Bootloader。XDS到底是什么XDS是TI的eXtendedDevelopmentSystem调试探针体系。常见型号包括XDS100、XDS110、XDS200和XDS560等。它连接在电脑和目标板之间把CCS、UniFlash等软件发出的调试命令转换成目标芯片能够识别的JTAG、cJTAG或SWD时序。一套完整的调试链路包含五层层级典型对象主要作用上位机软件CCS、UniFlash选择芯片、加载程序、设置断点、查看内存仿真驱动TI Emulation Package、USCIF把上位机操作转换成XDS命令调试探针XDS100、XDS110、XDS200USB与目标调试接口之间的协议桥接物理接口JTAG、cJTAG、SWD在探针和目标芯片之间传输调试数据目标芯片C28x CPU、ICEPick、TAP、Flash API执行暂停、单步、存储器访问和Flash编程因此“电脑识别到了XDS”只证明电脑能够访问调试探针并不能证明探针已经能够访问MCU。排错时必须继续检查目标供电、VTREF、复位、接口模式和信号线。XDS不只是烧录器XDS通过片上调试逻辑可以完成以下工作连接目标CPU并暂停、运行或单步执行读取和修改寄存器、RAM及部分外设寄存器下载RAM工程进行快速在线调试调用器件对应的Flash编程算法把程序写入片内Flash设置软件断点或硬件断点观察变量、表达式和波形在部分芯片和探针组合上使用Trace、EnergyTrace或辅助UART。以Flash烧录为例XDS通常不是直接像SPI编程器那样操作Flash引脚。CCS会通过JTAG控制CPU把Flash编程算法和数据送入目标器件再由目标器件内部的Flash控制器执行擦除、编程和校验。这也解释了为什么同一个XDS既能下载RAM工程也能烧写Flash传输通道仍然是JTAG或cJTAG真正变化的是工程的链接地址、加载流程和目标存储器。先分清JTAG、cJTAG、SWD和SCI Boot1.标准JTAG (Joint Test Action Group)IEEE 1149.1标准JTAG常用四根核心信号信号方向以目标MCU为准含义TCK输入Test Clock测试时钟TMS输入Test Mode Select控制TAP状态机TDI输入Test Data In数据进入目标器件TDO输出Test Data Out数据从目标器件返回探针部分器件还使用TRSTn复位TAPTest Access Port即芯片上的一组物理引脚TCK、TMS、TDI、TDO但并不是所有C2000器件都具有TRSTn。目标板还需要GND和VTREF并可选连接系统复位XRSn。2.两线cJTAG (Compact JTAG 紧凑型JTAG)cJTAG对应IEEE 1149.7。F28P55x支持两线cJTAG只需要TCK和TMS两根调试信号其中TMS在两线模式下承担双向控制和数据功能也常被理解为TMSC。两线cJTAG节省了TDI和TDO因此F28P55x可以把原来的GPIO35/TDI和GPIO37/TDO用于普通GPIO。但是只有目标芯片和调试探针都支持cJTAG时才能这样使用。3.SWDSWD主要用于Arm内核核心信号为SWCLK和SWDIO。虽然XDS110的CCS界面中存在SWD选项但F28P55x的主核是C28x本例应使用JTAG或cJTAG不能因为SWD也是“两线”就选择SWD。我们在自制如F28P55x原理图时建议直接把网络命名为JTAG_TCK、JTAG_TMS或者在两线模式下标为CJTAG_TCK、CJTAG_TMSC。把它们标成/SWCLK、/SWDIO容易在后续调试时造成协议误判。4.SCI BootSCI Boot是芯片Boot ROM提供的串口引导下载方式需要SCIA的TX、RX和相应启动模式。它与XDS通过JTAG烧录是两条不同路径。因此通过XDS给F28P55x下载程序时不需要把USART或SCI的TX、RX接到XDS的JTAG引脚。XDS110附带的虚拟串口也只是辅助通信通道不是JTAG烧录的必需条件。XDS100各版本和XDS110的核心差别TI官方支持矩阵对XDS100v1、XDS100v2、XDS100v3和XDS110做了明确区分。对C2000自制板最容易踩坑的是“XDS100v2不支持cJTAG而XDS100v3和XDS110支持”调试探针IEEE 1149.1 JTAGIEEE 1149.7 cJTAGSWD/SWO辅助串口当前定位XDS100v1支持不支持不支持依具体实现早期版本DSP用途为主TI已停止支持XDS100v2支持不支持不支持依具体实现常见低成本FTDI方案只能按标准JTAG使用XDS100v3支持支持官方矩阵未列为支持依具体实现在v2基础上增加cJTAG转换能力XDS110支持支持支持支持全双工UART等辅助功能TI用于替代XDS100的入门级调试探针XDS200支持支持支持依型号更高性能适合更复杂或更高速的调试场景TI已经不再销售独立XDS100并建议新设计优先考虑XDS110。市面上有些商品会写“XDS110 V2”这通常是卖家对硬件批次或板卡修订版的称呼。CCS中的官方连接类型仍然是Texas Instruments XDS110 USB Debug Probe不能因为商品标题含有“V2”就选择XDS100v2。从CCS界面判断当前配置XDS100v2在Basic页中XDS100v2应选择Texas Instruments XDS100v2 USB Debug ProbeXDS100v2 Basic页连接选择Advanced页常见项目如下Board Data File通常保持auto generateDebug Probe Selection只接一个探针时选择Only one XDS100 installedJTAG nTRST Boot-Mode仅对支持相应EMU启动功能的器件有意义Power-On-Reset Boot-Mode同样与EMU启动模式有关JTAG TCLK Frequency自制板首次连接可从固定1MHz开始。XDS100v2 Advanced页参数XDS100v2没有cJTAG转换选项。使用它连接F28P55x时目标板必须保留TMS、TCK、TDI和TDO四线JTAG。若PCB只引出了TMS和TCK即使CCS能识别XDS100v2也无法建立两线cJTAG连接。XDS100v3XDS100v3的Advanced页比v2多出The Converter Usage等设置。XDS100v3 Advanced页参数The Converter Usage常见选择包括Its bypassed, use 1149.1, mimic XDS100v2 Generate 1149.7 4-pin standard mode Generate 1149.7 2-pin advanced modes第一项表示旁路cJTAG转换器按照XDS100v2的方式使用IEEE 1149.1标准JTAG最后一项才是两线cJTAG。XDS100v3 JTAG与cJTAG模式选择总之XDS100v3可以选择标准四线JTAG或两线cJTAGXDS100v2不支持cJTAG。XDS110XDS110在Advanced页中提供统一的JTAG / SWD / CJTAG Mode下拉框。XDS110 JTAG、SWD与cJTAG模式选择以F28P55x为例硬件实际接线CCS模式TMS、TCK、TDI、TDO四线均连接JTAG (1149.1), SWD and cJTAG are disabled只使用TMS和TCK两线cJTAGcJTAG (1149.7) 2-pin advanced modesArm芯片使用SWD根据目标芯片和辅助端口用途选择SWD项不适用于F28P55x C28x调试SWD Mode - Aux COM port is target UART port和SWD Mode - Aux COM port is target TDO pin描述的是XDS110内部复用关系并不代表F28P55x可以用SWD也不代表辅助COM口就是烧录口。TMS320F28P550SJ9PZ的调试引脚F28P55x数据手册的Table 5-5. Test, JTAG, and Reset和6.14.7 Emulation/JTAG给出了调试引脚及硬件要求。100PZ封装的关键引脚如下功能100PZ物理引脚芯片方向四线JTAG两线cJTAGTCK60输入必须必须TMS/TMSC62JTAG时输入cJTAG时双向必须必须TDI/GPIO3563输入必须不需要可作GPIO35TDO/GPIO3761输出必须不需要可作GPIO37XRSn2输入/开漏输出建议接出建议接出VTREF/PD连接目标板3.3V目标板输出给探针参考必须必须GND目标板地公共参考必须必须这里的3.3V是目标I/O电平参考。使用Target supplied power时目标板应由自身电源供电XDS只是通过VTREF检测目标板是否上电并确定电平转换器的逻辑电压不能把VTREF当成给整块控制板供电的电源输出。常见问题1.TMS为什么需要2.2kΩ上拉F28P55x没有TRSTn引脚。TI建议在TMS与VDDIO之间增加2.2kΩ上拉使没有调试器活动时TAP保持在Test Logic Reset状态避免噪声让JTAG状态机进入未知状态。这只是一只普通上拉电阻不是通信终端电阻也不需要反相器。TMS内部虽然有上拉但TI仍明确建议板上增加外部2.2kΩ上拉。2.TDI、TDO和TCK如何处理TCK带内部上拉按器件数据手册处理即可标准JTAG使用TDI时应启用内部上拉或增加外部上拉TI参考图给出了10kΩTDO在无JTAG活动时会进入高阻态也应启用内部上拉或增加外部10kΩ上拉避免悬空两线cJTAG不使用TDI和TDO可把GPIO35和GPIO37分配给其他功能如果希望同一块自制板兼容XDS100v2应仍然把TDI和TDO引到调试接口不能只留TMS和TCK。3.XRSn如何处理XRSn既是器件复位输入也是看门狗复位的开漏输出。TI要求XRSn通过2.2kΩ10kΩ上拉到VDDIO如果增加对地滤波电容应不大于100nF。外部器件驱动XRSn时也应使用开漏方式。基础JTAG通信可以不依赖探针控制XRSn但自制板建议把XRSn引到调试接口。这样在程序导致持续复位、错误时钟、低功耗或外设干扰时可以使用复位后连接、Wait Boot等恢复手段。4.是否需要串联电阻F28P55x数据手册指出目标MCU与JTAG接口距离小于15.24cm、链路中只有一个器件时通常不需要缓冲大多数约10MHz的调试操作也不需要串联电阻。如果计划在约35MHz等更高仿真速度下工作TI建议每根JTAG信号串联22Ω。自制板可以预留0Ω/22Ω可替换封装靠近信号驱动端放置。首次调试先使用低TCLK和短排线比盲目增大串联电阻更可靠。5. 14针与20针TI调试接口怎么接F28P55x数据手册Figure 6-20和Figure 6-21分别给出了TI 14针和20针接口连接方式。14针接口的重点是TMS接MCU的TMS并通过2.2kΩ上拉到3.3VTDI、TDO用于四线JTAG时分别按参考图上拉TCK从接口到MCU同时在接口端把TCK回环到RTCKPD/VTREF通过100Ω连接目标板3.3VTDIS和各GND脚接目标板地F28P55x没有TRSTn对应引脚不连接F28P55x不支持EMU0、EMU1接口侧按数据手册要求上拉。20针接口还提供RESET。该信号是探针输出的开漏复位可与目标板XRSn复位网络连接。F28P55x不使用的EMU2、EMU3、EMU4按参考图接地。CCS中如何正确配置1. 先识别探针再创建ccxml打开Windows设备管理器检查探针出现XDS100 Class Debug Port和XDS100 Class Auxiliary Port说明系统枚举到XDS100类设备出现XDS110相关调试设备或XDS110 Class Application/User UART说明系统枚举到XDS110的相应接口虚拟COM口存在只能证明USB复合设备的一部分已枚举不能证明目标MCU连接成功。XDS100在设备管理器中的通用名称不一定能可靠区分v2和v3。最终版本应结合探针外壳标识、厂商说明或硬件资料确认不能仅凭“XDS100 Class”四个字判断。2. Basic页必须同时匹配探针和芯片以F28P550SJ9为例应核对Connection 实际连接的XDS型号 Board or Device TMS320F28P550SJ9 Debuggable CPU C28xx_CPU1如果电脑插的是XDS100而Basic页选择XDS110CCS会尝试打开根本不存在的XDS110驱动实例后续检查TMS、TCK或启动脚都无法解决这一层错误。3. Advanced页必须匹配PCB实际接线不要根据“线越少越方便”选择模式而应根据原理图选择XDS100v2加F28P55x四线JTAGXDS100v3加四线接口旁路转换器使用1149.1XDS100v3加TMS/TCK两线接口生成1149.7两线高级模式XDS110加四线接口选择1149.1 JTAGXDS110加TMS/TCK两线接口选择1149.7两线cJTAGF28P55x不要选择SWD。Board Data File通常保持auto generate。如果只有一个同类探针Debug Probe Selection选择Only one多个探针同时连接时应按序列号指定。F28P55x不支持EMU0、EMU1因此界面中的JTAG nTRST Boot-Mode和Power-On-Reset Boot-Mode通常保持Disabled、EMU引脚高阻。它们不是GPIO24、GPIO32启动电阻的替代配置。4. 首次连接先降低TCLKLaunchPad等原厂短走线板可以先使用默认频率。自制板首次上电时建议从1MHz左右的固定TCLK开始连接稳定后再逐步提高。降低TCLK只能改善信号完整性裕量不能修复探针型号错误、协议错误、缺少TDO或目标未上电。5. 先运行Test ConnectionsTest Connections主要检查调试探针是否能打开以及JTAG扫描链能否正确循环数据。建议按照以下顺序判断设备管理器中是否能看到正确XDS.ccxml是否选择同一型号Test Connections是否通过能否手动Connect Target能否读取PARTID或器件寄存器能否加载RAM工程最后再测试Flash擦除、烧写和上电启动。这一顺序可以把“电脑到探针”“探针到芯片”“芯片内部Flash流程”三个层次分开。RAM下载、Flash烧录和在线调试1.RAM工程RAM工程把代码和数据链接到片内RAM。CCS连接后把程序下载到RAM即可运行速度快、适合频繁修改和单步调试但掉电后程序消失。2.Flash工程Flash工程需要使用对应的Flash链接命令文件和启动代码。CCS或UniFlash通过XDS连接目标芯片再调用器件Flash算法执行擦除、编程和校验。程序写入Flash后只有启动模式和入口地址正确断开调试器重新上电才会自动运行。3.在线调试RAM和Flash都可以在线调试。Flash中的软件断点能力可能受限CCS会使用器件提供的硬件断点资源RAM中的断点通常更灵活。对F28P55x默认启动模式GPIO24GPIO32启动方式00Parallel IO01SCI / Wait Boot10CAN11Flash默认Flash入口未编程时可能转USB Boot正常JTAG下载通常不要求拨动启动开关。需要断电后从Flash独立运行时GPIO24和GPIO32保持高电平如果已烧入的程序持续复位、修改时钟或影响调试连接可临时设为GPIO240、GPIO321利用SCI等待自动波特率字符形成Wait Boot再手动连接和重新烧写。这也是LaunchPad通常不需要每次拨开关就能下载的原因默认启动状态和板载XDS连接已经配置好CCS可以直接接管调试端口。启动脚使用上拉和切换开关即可不需要为了JTAG烧录额外增加反相器。常见错误和正确排查方向Error -260CCS打不开XDS110典型信息IcePick_C_0: Error initializing emulator: (Error -260 0x0) An attempt to connect to the XDS110 failed.这个错误发生在“电脑打开XDS110”阶段还没有进入目标MCU通信。优先检查.ccxml是否错误选择了XDS110设备管理器实际显示的是XDS100还是XDS110USB线是否支持数据、接口是否松动是否经过不兼容的USB Hub是否有另一个CCS、UniFlash或程序占用探针如果确实是XDS110再检查固件和序列号。如果设备管理器显示XDS100 Class Debug Port而CCS报“connect to the XDS110 failed”最直接的原因通常是目标配置选错了探针型号。此时应修改.ccxml不要对XDS100运行xdsdfu。只有确认硬件确实是XDS110时才在关闭CCS和UniFlash后使用同一套CCS安装目录内的工具查询cd CCS安装目录\ccs\ccs_base\common\uscif\xds110 xdsdfu -e手动升级需要让探针进入DFU模式并使用该CCS版本自带的固件文件xdsdfu -m xdsdfu -f firmware_具体版本.bin -r固件升级属于后续措施。探针型号选错、USB线损坏或设备根本没有枚举时不应一开始就刷固件。Error -151XDS100的FTDI接口打不开Error -151对应SC_ERR_FTDI_OPEN常见原因包括XDS100未连接、FTDI驱动缺失、序列号无效、EEPROM为空或USB线故障。检查顺序为确认CCS选择的是正确XDS100版本在设备管理器中检查XDS100 Debug Port和Auxiliary Port更换USB数据线和电脑USB口使用CCS安装目录ccs_base\common\uscif中的xds100serial检查探针最后才考虑FTDI EEPROM模板或探针硬件故障。Error -233JTAG扫描链断开Error -233对应SC_ERR_PATH_BROKEN。探针通常已经打开但IR、DR扫描数据无法正确循环。常见原因包括TMS、TCK、TDI、TDO接错、断路或短路XDS100v2连接到只有TMS、TCK的两线接口CCS选择四线JTAG但GPIO35/TDI和GPIO37/TDO已被当作普通GPIOVTREF没有连接、目标板未上电或共地不可靠XRSn一直为低电平MCU没有正常退出复位TCLK过高、排线过长、地回流差或串扰严重上拉、下拉过强与探针驱动产生冲突。若测试返回全1应检查信号是否短接到VCC返回全0时应检查目标掉电或信号短接到GND。Error -2131无法访问器件寄存器Error -2131表示CCS无法访问目标器件寄存器。它可能来自JTAG/cJTAG模式不匹配也可能来自供电、复位、时钟、错误器件型号或已经烧入的程序干扰。F28P55x LaunchPad使用两线cJTAG而.ccxml配置为普通四线JTAG时就可能出现此错误。正确顺序不是只降低TCLK而是先核对探针型号、芯片型号和JTAG/cJTAG模式再运行Test Connections。Error -267探针检测不到目标电压Error -267通常与VTREF有关。确认目标板已经上电VTREF连接到目标VDDIO对应的3.3VGND可靠共地并检查CCS中的Power Selection是否与硬件供电方式一致。Error -1137、Error -1015及其他目标侧问题Error -1137目标可能一直被保持在复位检查XRSn上拉、复位芯片和对地电容Error -1015目标无响应、被锁定或连接不稳定可尝试Wait Boot、降低TCLK和检查安全配置Error -230扫描链长度测量异常检查JTAG/cJTAG模式、目标型号和信号质量Test Connections通过但不能加载程序继续检查Flash密码、安全区、链接文件、Flash配置和已烧入代码。自制C2000控制板的推荐排查流程第一层电脑到调试探针设备管理器是否出现正确的XDS类别USB线是否为数据线是否直接连接电脑USB口CCS是否选择实际探针型号同一探针是否被其他程序占用。第二层调试探针到目标板目标板3.3V、1.2V或内部稳压输出是否正常VTREF是否连接目标板3.3V探针与目标板是否共地XRSn是否稳定为高而不是周期性或持续为低晶振或外部时钟是否正常TMS、TCK、TDI、TDO是否与所选模式一致。第三层CCS目标配置目标芯片完整型号和封装是否正确XDS100v2是否误选了两线思路XDS100v3的Converter Usage是否正确XDS110是否误选SWDTCLK是否过高修改后是否保存并激活了正确.ccxml。第四层启动模式和程序行为正常独立运行时是否选择Flash Boot已有程序是否频繁看门狗复位、进入低功耗或修改系统时钟必要时是否使用SCI/Wait Boot再连接器件是否启用了JTAGLOCK或其他安全功能RAM工程能否下载PARTID能否读取。第五层信号完整性调试接口到MCU是否短于15.24cm是否使用过长杜邦线或排线TCK是否有连续参考地和良好回流路径高dv/dt功率节点是否靠近JTAG走线是否需要把TCLK降至1MHz高速调试时是否按数据手册预留22Ω串联终端。对于逆变器、电源等高压功率板还要确认调试隔离。普通XDS110并不等同于隔离探针。高压系统调试应使用合适的隔离方案避免把目标功率地通过USB和电脑保护地直接连接。新手最容易混淆的结论XDS是调试探针不只是烧录器。它同时承担下载、在线调试、寄存器访问和Flash编程通道。JTAG和cJTAG是目标接口协议XDS100、XDS110是探针型号。两者不是同一层概念。XDS100v2不能使用两线cJTAG。XDS100v3和XDS110可以支持cJTAG。SWD的两线不等于cJTAG的两线。F28P55x应使用JTAG或cJTAG。VTREF是目标电压参考不一定是供电输出。自供电目标板仍需自身电源。虚拟COM口不是JTAG烧录口。它是XDS110的辅助UART等功能。RAM和Flash都能通过XDS下载。区别主要在链接地址、Flash算法和掉电保持能力。正常JTAG下载不需要SCI TX/RX也通常不需要拨动Boot开关。Wait Boot主要用于恢复异常程序造成的连接问题。探针被电脑识别不等于目标连接成功。还要通过Test Connections、Connect Target和PARTID读取逐层验证。Error -260先查探针型号和USB层Error -233先查扫描链Error -2131再查目标访问与模式。不同错误对应不同链路层级。总结XDS的本质是连接PC调试软件和目标芯片片上调试模块的桥梁。选择XDS时不能只看外壳或卖家名称而要确认它支持的物理协议、CCS中的连接类型以及目标板实际引出的信号。对于TMS320F28P550SJ9PZ自制板若需要同时兼容XDS100v2和XDS110最稳妥的做法是把TMS、TCK、TDI、TDO、VTREF、GND和XRSn完整引出并按数据手册配置TMS及复位上拉。使用XDS100v2时选择标准四线JTAG使用XDS100v3或XDS110且硬件只接TMS、TCK时才选择两线cJTAG。排错时应始终按照“电脑识别探针 →.ccxml型号 → 目标供电和VTREF → JTAG/cJTAG模式 → Test Connections → 手动连接 → RAM下载 → Flash烧写”的顺序推进。这样能够快速判断问题位于USB、探针、PCB、启动模式还是Flash流程而不是在所有设置之间盲目切换。具体内容可参考以下手册对应位置TMS320F28P55x数据手册5.3.4 Test, JTAG, and ResetTable 5-5TCK、TMS、XRSn引脚和上拉要求PDF页53附近6.14.7 Emulation/JTAG标准JTAG、两线cJTAG、走线长度、串联电阻和VTREF要求PDF页113附近Figure 6-20、Figure 6-21TI 14针和20针JTAG接口参考连接PDF页114附近7.10 Boot ROMTable 7-8GPIO24、GPIO32默认启动模式PDF页232附近。TI C2000 JTAG排错应用笔记2 Common JTAG Debug ProbesXDS100、XDS110、XDS200和XDS560v2定位PDF页24 Common Error CodesError -233、-151、-2131、-267等错误PDF页578 JTAG Connectivity Debug Flows整体排查流程和高压隔离检查PDF页13159 Detailed Flow Step Information设备管理器、供电、复位、目标配置和手动连接PDF页1619。参考资料TITMS320F28P55x Real-Time Microcontrollers Data SheetTIC2000 MCU JTAG Connectivity DebugTIXDS Target Connection GuideTIXDS100 Debug ProbeTIXDS110 Debug ProbeTITMDSEMU110-U XDS110产品页面TICode Composer Studio Common JTAG ErrorsTICode Composer Studio Target Configuration说明