Part Number:TMS320F28027FOther Parts Discussed in Thread:UNIFLASH, MSP432E401Y, MSP-EXP432E401Y, TMS320F28027
Hi,TI!
我使用MSP432E401开发板板载的XDS110仿真器,通过JTAG口连接到一块F28027F开发板上,CCS中连接测试始终失败。
介绍一下我的开发环境:WIN10_64bit + CCS10.2.0.00009,MSP432E401开发板板载XDS110固件已更新到3.0.0.15。
目前已做如下交叉验证:
1、使用该板载XDS110仿真器的JTAG连接到一块F28035开发板连接,测试通过并能够正常仿真;
2、使用XDS100V2仿真器通过JTAG与上述F28027F开发板连接,测试通过并能够正常仿真;
以上交叉验证,说明MSP432E401开发板板载XDS110是能够正常使用的,同时F28027开发板也是正常的,但唯独此板载XDS110与F28027F开发板无法建立连接,CCS中进行连接测试打印的错误信息如下:
—–[An error has occurred and this utility has aborted]——————–
This error is generated by TI's USCIF driver or utilities.
The value is '-233' (0xffffff17).
The title is 'SC_ERR_PATH_BROKEN'.
The explanation is:
The JTAG IR and DR scan-paths cannot circulate bits, they may be broken.
An attempt to scan the JTAG scan-path has failed.
The target's JTAG scan-path appears to be broken
with a stuck-at-ones or stuck-at-zero fault.
这种错误,我已在http://software-dl.ti.com/ccs/esd/documents/ccsv7_debugging_jtag_connectivity_issues.html网站中仔细查询,未查到类似的错误类型,实在没有解决的思路了。
故请教TI的工程师:
1、为何会出现这种错误?原因是什么?
2、像这种问题,该如何解决?
anxing wang:
这里补充一下,贴上完整的CCS Test Connection Log
[Start: Texas Instruments XDS110 USB Debug Probe]
Execute the command:
%ccs_base%/common/uscif/dbgjtag -f %boarddatafile% -rv -o -S integrity
[Result]
—–[Print the board config pathname(s)]————————————
C:\Users\ADMINI~1\AppData\Local\TEXASI~1\ CCS\ccs1011\0\0\BrdDat\testBoard.dat
—–[Print the reset-command software log-file]—————————–
This utility has selected a 100- or 510-class product.This utility will load the adapter 'jioxds110.dll'.The library build date was 'May 7 2020'.The library build time was '21:10:18'.The library package version is '9.2.0.00002'.The library component version is '35.35.0.0'.The controller does not use a programmable FPGA.The controller has a version number of '5' (0x00000005).The controller has an insertion length of '0' (0x00000000).This utility will attempt to reset the controller.This utility has successfully reset the controller.
—–[Print the reset-command hardware log-file]—————————–
The scan-path will be reset by toggling the JTAG TRST signal.The controller is the XDS110 with USB interface.The link from controller to target is direct (without cable).The software is configured for XDS110 features.The controller cannot monitor the value on the EMU[0] pin.The controller cannot monitor the value on the EMU[1] pin.The controller cannot control the timing on output pins.The controller cannot control the timing on input pins.The scan-path link-delay has been set to exactly '0' (0x0000).
—–[An error has occurred and this utility has aborted]——————–
This error is generated by TI's USCIF driver or utilities.
The value is '-233' (0xffffff17).The title is 'SC_ERR_PATH_BROKEN'.
The explanation is:The JTAG IR and DR scan-paths cannot circulate bits, they may be broken.An attempt to scan the JTAG scan-path has failed.The target's JTAG scan-path appears to be brokenwith a stuck-at-ones or stuck-at-zero fault.
[End: Texas Instruments XDS110 USB Debug Probe]
,
anxing wang:
刚刚使用UniFlash进行擦除FLASH测试(MSP432E401Y板载XDS110连接F28027开发板),报错代码为1135,如下图所示
使用CCS Test Connect进行测试,报错信息依旧未变,如下图所示
仿真配置信息如下图所示
尝试过将TCLK频率进行调低,100kHz、500kHz、1MHz、2MHz、3MHz,报错信息依旧未曾改变
,
anxing wang:
继续补充:使用独立的XDS100V2仿真器对F28027开发板进行连接测试(测试通过并可正常DEBUG),用示波器观察JTAG波形,其波形如下:
使用MSP-EXP432E401Y开发板板载XDS110同一块F28027开发板进行连接测试(测试失败,错误代码如之前一样),用示波器观察JTAG波形,其波形如下:
可以很明显看出,XDS110的JTAG波形明显不正确,其TRST并未出现低电平的波形,使用万用表量测XDS110的TRST引脚对3.3V的阻抗为3.3kΩ,TRST引脚和其相邻的引脚之间并未有短接(目视及万用表已量测过),且TM4C129的TRST引脚到引出排针连接良好(万用表已量测过)。
随后,我将XDS110与F28027开发板的TRST连接线断开(保留其他JTAG连接线),再次用示波器观察XDS110的TRST波形,也并未观察到TRST引脚有变为低电平,从始至终TRST波形一直保持着3.3V高电平。
随后,我将XDS110与F28035开发板连接测试,并用示波器抓取JTAG波形,发现TRST引脚波形也未曾有低电平,但连接测试却是通过的。
根据TI官方的说明,XDS110是支持C2000系列的仿真的,但在我这里似乎并不支持,我想知道:
1、MSP-EXP432E401Y板载的XDS110仿真器难道和独立的XDS110仿真器使用的不是同一个方案?固件也不通用?
2、MSP-EXP432E401Y板载的XDS110仿真器不支持C2000系列的MCU?
3、如果MSP-EXP432E401Y板载的XDS110仿真器支持C2000系列MCU的仿真,但为何无法与F28027开发板建立连接?
4、使用同样的杜邦线,分别将MSP-EXP432E401Y板载的XDS110仿真器与F28027开发板和F28035开发板连接,连接测试结果为何大相径庭?
5、MSP-EXP432E401Y板载的XDS110仿真器与F28035开发板连接测试,示波器抓取的波形也并未发现TRST有低电平的波形,但为何测试能够通过?
6、最后,请TI工程师确认当前3.0.0.15版本的XDS110固件是否存在这方面的漏洞,如果存在还请及时修复并告知预期更新固件时间,如果不存在此方面漏洞,还请帮忙提供一下出现以上这些问题的原因及解决方案,谢谢!(不接受更换独立的XDS110仿真器方案,如果非要使用独立的XDS110仿真器才能正常仿真,那是不是可以间接说明MSP-EXP432E401Y板载XDS110仿真器是存在漏洞的?或者板载XDS110存在硬件设计漏洞?又或者是板载的XDS110就是个摆设?)
,
Susan Yang:
anxing wang 说:2、MSP-EXP432E401Y板载的XDS110仿真器不支持C2000系列的MCU?
理论上是可以支持的,之前在E2E也有类似的讨论
https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/744511/tms320f28027-cc1310-launchpad-xds110?tisearch=e2e-sitesearch&keymatch=TMS320F28027%2525252520%2525252520XDS110#
关于MSP-EXP432E401Y板载的XDS110仿真器
anxing wang 说:3、如果MSP-EXP432E401Y板载的XDS110仿真器支持C2000系列MCU的仿真,但为何无法与F28027开发板建立连接?
您需要对照一下板载XDS110和28027的连线是否正确
,
anxing wang:
Hi Susan.
我使用的时候就是已经将J101的短路帽取下,然后使用排线一端连接F28027,另一端接J101上半部分(XDS110那一侧),接线顺序已经反复检查过,包括排线的连通也都检查过,为了排查问题,已经将排线长度降低到仅8cm(XDS100V2的排线有15cm),但问题依旧无法解决。
还请告诉其他解决方法
,
Susan Yang:
抱歉,我这边没有MSP-EXP432E401Y的板子。请问您是否有尝试使用其他板子的板载仿真器烧录F28027?
若还是不行的话,请给出您的接线,我咨询下相关的专家
,
anxing wang:
Hi Susan.
我手头上没有其他板子的板载仿真器了,手头上有独立的XDS100V2和XDS110仿真器,使用独立的仿真器连接F28027均连接测试通过。
下面是我的接线方式:
转换到原理图层面如下:
,
Susan Yang:
anxing wang 说:F28027F开发板
谢谢您的详细反馈。您的接线并没有什么问题。
您使用的是launchpad?使用该28027launchpad上的XDS100V2是否可以成功烧录?
,
anxing wang:
Hi Susan.
使用的不是Launchpad,是自己画的一个F28027的开发板。
今天发现一个更奇怪的事,MSP-EXP432E401Y板载的XDS110可以对它自己的板上MSP432E401Y正常烧录且无报错。
另外,今天已经将CCS升级至10.4版本(目前最新的版本),同时CCS也自动对MSP-EXP432E401Y板载的XDS110固件升级至3.0.0.16,但问题依旧,还是没有任何变化。
,
Susan Yang:
anxing wang 说:今天发现一个更奇怪的事,MSP-EXP432E401Y板载的XDS110可以对它自己的板上MSP432E401Y正常烧录且无报错。
这个是正常的。该开发板是可以直接使用板载的XDS110来烧录的
anxing wang 说: 另外,今天已经将CCS升级至10.4版本(目前最新的版本),同时CCS也自动对MSP-EXP432E401Y板载的XDS110固件升级至3.0.0.16,但问题依旧,还是没有任何变化。
确实是手边没有该开发板以及较老的28027开发板,所以不太方便测试。您可以看一下下面文档的建议
4.2 JTAG Debug Flow
https://www.ti.com/lit/an/spracf0/spracf0.pdf
,
anxing wang:
Hi Susan.
4.2 JTAG Debug Flow
https://www.ti.com/lit/an/spracf0/spracf0.pdf
这份文档我看过很多遍了,也有做对应项目的检测,但这份文档并未能解决我的问题。
我感到很奇怪的是,F28027板子是好的(因为独立的XDS100V2和XDS110仿真器可以对它Debug),MSP-EXP432E401Y板载XDS110仿真器看来也没什么问题(因为它可以对MSP-EXP432E401Y板上的MSP432E401Y仿真)。
但为何,MSP-EXP432E401Y板载的XDS110仿真器无法对F28027仿真,连接测试无法通过,很是奇怪的一个问题。
,
Susan Yang:
anxing wang 说:但为何,MSP-EXP432E401Y板载的XDS110仿真器无法对F28027仿真,连接测试无法通过,很是奇怪的一个问题。
确实很奇怪,我会在咨询同事后给您回复
,
anxing wang:
Hi Susan.
刚刚又做了一下对比,分别使用独立的XDS110仿真器和MSP-EXP432E401Y板载仿真器对F28027进行连接测试,使用的是dbgjtag -f @xds110 -S integrity -r 命令,使用示波器抓取JTAG接口波形,两个仿真器的JTAG波形如下所示:
,
anxing wang:
图片怎么发不出来了?粘贴进来过一会自动消失了
,
Susan Yang:
您可以以附件形式上传。我会在总结后问一下美国的同事
,
anxing wang:
Hi Susan.
中午已经把那两张JTAG测试的波形补充到上面的回复中了。
,
Susan Yang:
已经将您的问题发至英文论坛,请您查看一下是否需要补充
https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1030052/tms320f28027-onboard-xds110-and-tms320f28027
,
anxing wang:
Hi Susan.
感谢帮忙在英文论坛发帖。我刚看了你发的帖子,没有图片
,
Susan Yang:
谢谢提醒,我已经重新添加图片了
,
anxing wang:
Hi Susan.
我刚刚看了英文论坛的帖子,你的同事提醒了我,我把F28027的TRST直接接至3.3V,奇迹出现了,测试通过了,没有报任何错误。
我查阅了F28027的手册,建议的TRST下拉电阻为2.2K,而我的板子上已经下拉到10K了,而板载XDS110的TRST是上拉3.3K,所以,按照官方的推荐值来用的话TRST无法保证稳定的高电平,也就造成了一直报错 The value is '-233' (0xffffff17)。
为了验证我的想法,我把F28027板上TRST下拉电阻从10K换成51K(F28027 TRST引脚分压电压=51/(51+3.3)*3.3=3.099V),再次测试,测试结果依然全部通过。
但TRST下拉电阻更换为51K以后,存在一个风险,就是TRST变成了弱下拉,跟手册推荐的需要强下拉增强抗干扰相悖。
结论:MSP-EXP432E401Y板载XDS110仿真器使用JTAG对F28027仿真时,F28027 TRST引脚需要直接接至3.3V电平。换句话说,MSP-EXP432E401Y板载XDS110硬件设计是存在缺陷的,应该增加一个Buffer作为缓冲,否则上下拉电阻很难取舍(我看了F280049C的参考设计板载XDS110的TRST接口也是上拉3.3K,所以这个也是存在此种缺陷的,只是用F280049C板子的大多直接用cJTAG不需要TRST所以应该没爆出来这个问题)。
F28027连接MSP-EXP432E401Y板载XDS110测试通过后,我再次将板载XDS110连接至F28035,同样的套路将F28035 TRST直接接至3.3V,但测试结果却并不像F28027那样,爆出了JTAG IR扫描失败,错误代码如下所示:
[Start: Texas Instruments XDS110 USB Debug Probe_0]Execute the command:%ccs_base%/common/uscif/dbgjtag -f %boarddatafile% -rv -o -S integrity[Result]-----[Print the board config pathname(s)]------------------------------------C:\Users\ADMINI~1\AppData\Local\TEXASI~1\CCS\ccs1011\0\0\BrdDat\testBoard.dat-----[Print the reset-command software log-file]-----------------------------This utility has selected a 100- or 510-class product. This utility will load the adapter 'jioxds110.dll'. The library build date was 'Jun 25 2021'. The library build time was '11:45:30'. The library package version is '9.4.0.00129'. The library component version is '35.35.0.0'. The controller does not use a programmable FPGA. The controller has a version number of '5' (0x00000005). The controller has an insertion length of '0' (0x00000000). This utility will attempt to reset the controller. This utility has successfully reset the controller.-----[Print the reset-command hardware log-file]-----------------------------The scan-path will be reset by toggling the JTAG TRST signal. The controller is the XDS110 with USB interface. The link from controller to target is direct (without cable). The software is configured for XDS110 features. The controller cannot monitor the value on the EMU[0] pin. The controller cannot monitor the value on the EMU[1] pin. The controller cannot control the timing on output pins. The controller cannot control the timing on input pins. The scan-path link-delay has been set to exactly '0' (0x0000).-----[Perform the Integrity scan-test on the JTAG IR]------------------------This test will use blocks of 64 32-bit words. This test will be applied just once.Do a test using 0xFFFFFFFF. Scan tests: 1, skipped: 0, failed: 0 Do a test using 0x00000000. Scan tests: 2, skipped: 0, failed: 0 Do a test using 0xFE03E0E2. Test 3 Word 0: scanned out 0xFE03E0E2 and scanned in 0x7F80F071. Test 3 Word 1: scanned out 0xFE03E0E2 and scanned in 0x7F01F071. Test 3 Word 2: scanned out 0xFE03E0E2 and scanned in 0x7F01F071. Test 3 Word 3: scanned out 0xFE03E0E2 and scanned in 0x7F01F071. Test 3 Word 4: scanned out 0xFE03E0E2 and scanned in 0x7F01F071. Test 3 Word 5: scanned out 0xFE03E0E2 and scanned in 0x7F01F071. Test 3 Word 6: scanned out 0xFE03E0E2 and scanned in 0x7F01F071. Test 3 Word 7: scanned out 0xFE03E0E2 and scanned in 0x7F01F071. The details of the first 8 errors have been provided. The utility will now report only the count of failed tests. Scan tests: 3, skipped: 0, failed: 1 Do a test using 0x01FC1F1D. Scan tests: 4, skipped: 0, failed: 1 Do a test using 0x5533CCAA. Scan tests: 5, skipped: 0, failed: 2 Do a test using 0xAACC3355. Scan tests: 6, skipped: 0, failed: 3 Some of the values were corrupted - 49.2 percent.The JTAG IR Integrity scan-test has failed.-----[Perform the Integrity scan-test on the JTAG DR]------------------------This test will use blocks of 64 32-bit words. This test will be applied just once.Do a test using 0xFFFFFFFF. Scan tests: 1, skipped: 0, failed: 0 Do a test using 0x00000000. Scan tests: 2, skipped: 0, failed: 0 Do a test using 0xFE03E0E2. Scan tests: 3, skipped: 0, failed: 0 Do a test using 0x01FC1F1D. Scan tests: 4, skipped: 0, failed: 0 Do a test using 0x5533CCAA. Scan tests: 5, skipped: 0, failed: 0 Do a test using 0xAACC3355. Scan tests: 6, skipped: 0, failed: 0 All of the values were scanned correctly.The JTAG DR Integrity scan-test has succeeded.[End: Texas Instruments XDS110 USB Debug Probe_0]可以明显看到有 The JTAG IR Integrity scan-test has failed.
搞了这么久,都不记得刚开始用MSP-EXP432E401Y板载XDS110连接测试F28035板子时的测试Log了。
所以,这又是咋回事?
,
Susan Yang:
anxing wang 说: 结论:MSP-EXP432E401Y板载XDS110仿真器使用JTAG对F28027仿真时,F28027 TRST引脚需要直接接至3.3V电平。换句话说,MSP-EXP432E401Y板载XDS110硬件设计是存在缺陷的,应该增加一个Buffer作为缓冲,否则上下拉电阻很难取舍(我看了F280049C的参考设计板载XDS110的TRST接口也是上拉3.3K,所以这个也是存在此种缺陷的,只是用F280049C板子的大多直接用cJTAG不需要TRST所以应该没爆出来这个问题)。
谢谢您的详细反馈。
anxing wang 说:同样的套路将F28035 TRST直接接至3.3V,但测试结果却并不像F28027那样,爆出了JTAG IR扫描失败
所以现在是28035又不能正常连接了?我记得您之前是可以的
那您可以按照之前给出的波形图那样,重新抓一下波形,我再去咨询一下
,
anxing wang:
Hi Susan.
对,之前连接F28035是可以的,我还特意找个程序仿真了,现在不行了。我仔细看了看那个回读的数据,既不是0x00000000也不是0xFFFFFFFF,而是乱七八糟的,刚刚我又重新测试,回读数据又变成下面这样了
Do a test using 0xFE03E0E2.Test 3 Word 0: scanned out 0xFE03E0E2 and scanned in 0x5FE03E07.Test 3 Word 1: scanned out 0xFE03E0E2 and scanned in 0x0FE03E0C.Test 3 Word 2: scanned out 0xFE03E0E2 and scanned in 0x0FE03E0E.Test 3 Word 3: scanned out 0xFE03E0E2 and scanned in 0x0FE03E0E.Test 3 Word 4: scanned out 0xFE03E0E2 and scanned in 0x0FE03E0E.Test 3 Word 5: scanned out 0xFE03E0E2 and scanned in 0x0FE03E0E.Test 3 Word 6: scanned out 0xFE03E0E2 and scanned in 0x0FE03E0E.Test 3 Word 7: scanned out 0xFE03E0E2 and scanned in 0x0FE03E0E.
The details of the first 8 errors have been provided.The utility will now report only the count of failed tests.Scan tests: 3, skipped: 0, failed: 1Do a test using 0x01FC1F1D.Scan tests: 4, skipped: 0, failed: 2Do a test using 0x5533CCAA.Scan tests: 5, skipped: 0, failed: 3Do a test using 0xAACC3355.Scan tests: 6, skipped: 0, failed: 4Some of the values were corrupted – 65.6 percent.
The JTAG IR Integrity scan-test has failed.
仔细分析一下这个发出的数据和回读的数据,是出现了右移一位的感觉(Test 3 Word 2到Test 3 Word 7都是如此),个别还会夹杂乱码(Test 3 Word 0和Test 3 Word 1)。我把TCLK时钟降低到1M、500kHz、100kHz连接测试出现的错误都是如此。
我再用示波器抓一下JTAG波形吧
,
Susan Yang:
好的,期待您的反馈
另外
http://software-dl.ti.com/ccs/esd/documents/ccsv7_debugging_jtag_connectivity_issues.html#invalid-data-read-back
If the data read is garbage such as in the example below, probably reflections on the JTAG line, loose target cables or connectors or problems on the PCB routing are most probably the root causes. Also, invalid configurations such as cJTAG/JTAG or a very high TCLK speed can cause garbled data to be read back.
,
anxing wang:
Hi Susan.
对同一块F28035板子,使用独立的XDS110和MSP-EXP432E401Y板载XDS110测试的JTAG波形如下:
,
Susan Yang:
我已经更新了英文回复,您可以看一下
,
Susan Yang:
请查看最新的回复
https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1030052/tms320f28027-onboard-xds110-and-tms320f28027/3810190#3810190
,
anxing wang:
Hi Susan.
昨天有事没来得及看,不好意思。我刚刚看了你在英文论坛更新的内容及你的同事做的回复,里面也提到了TRST引脚下拉电阻阻值的问题,所以我觉得还是板载XDS110硬件设计的问题,针对此问题,我还有个建议,应该可以从软件层面解决,就是XDS110的控制器对应的输出TRST引脚配置为推挽输出模式应该是可以解决的,这一点你可以反馈给美国的同事。
另外,说一下你在英文论坛更新的内容,并未提到该板载XDS110连接F28035测试所遇到的问题(The JTAG IR Integrity scan-test has failed.)所以,是不是应该补充上去?
,
Susan Yang:
所以您现在还是无法使用28035?
若是您账号可以的话,您可以直接在上面的链接内回复。我可能对您的问题理解的不是很全面,所以会在回复时有所遗漏
,
anxing wang:
Hi Susan.
是的,无法使用板载的XDS110连接F28035。我也想直接在那个英文论坛回复,弹出来消息搞得我无法回复。。。
,
Susan Yang:
anxing wang 说:弹出来消息搞得我无法回复。
您现在无法回复的具体错误提示是什么?我先把之前遗漏的回复一下
,
anxing wang:
Hi Susan.
提示我补充公司邮箱,但我们公司没有给研发人员申请邮箱。
,
Susan Yang:
好的,目前是需要公司邮箱的。我已经补充了相关的回复,您可以看一下