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.

[参考译文] CCS/CC2640R2F:无法访问 DAP

Guru**** 2039500 points
Other Parts Discussed in Thread: CC2640R2F, CC2650, BOOSTXL-CC2650MA
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/808058/ccs-cc2640r2f-unable-to-access-the-dap

器件型号:CC2640R2F
主题中讨论的其他器件: CC2650BOOSTXL-CC2650MA

工具/软件:Code Composer Studio

您好!  

我正在使用 CC2640R2F 芯片构建定制板。 我正在尝试通过 LAUNCHCL-CC2640R2板对芯片进行编程。 我使用以下连接器:GND、3.3V、RESET、TMS、TCK、TDI 和 TDO。

遗憾的是、出现错误"Unable to access the DAP"(无法访问 DAP)。  

当我在 Code Composer Studio 内通过目标配置测试与芯片的通信时、它不会显示错误。

我有点迷路了、希望您能帮我。

谢谢你

Christian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这些是正确的连接。

    为了确认、我只需设置 CC2650 LaunchPad 并将其连接到 CC2640R2 LaunchPad 即可。

    我从 CCS 内部运行了测试连接工具、该工具通过了测试。

    然后、我尝试了 SDK 中的 pwmled 示例、该示例也运行良好:

    连接不良或有噪声。

    在 CCS 中、如果您在项目中拥有.ccxml 文件(可能在 targetConfigs 文件夹中)、则可以单击此处的按钮来测试连接、并查看它是否为您提供更多信息。

    此致、

    John

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 John:

    我对2个 Launchpad 进行了相同的测试、就像您所做的一样、测试效果很好。 但是、当我使用自己的定制电路板时、它仍然显示 DAP 错误。  

    在 CCS 中测试连接正常。

    Christian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是否需要为首次闪存设置任何标志或寄存器??

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Christian、

    我与一些人交谈、有几件事要你尝试。

    SmartRF

    1. 尝试使用 SmartRF 编程器擦除器件上的闪存: http://www.ti.com/tool/download/FLASH-PROGRAMR-2
    2. 如果能够连接并擦除器件、则尝试在 CCS 中进行连接。

    不同的 JTAG 设置

    1. 打开项目中的.ccxml 文件。  通常位于 targetConfigs 文件夹中。  
    2. 将连接更改为 JTAG 而不是 cJTAG、并将 TCK 更改为1.0MHz。

    保存更改并尝试连接。

    此致、

    John

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 John:

    感谢您的回答。 我尝试了您的建议:

    1. 使用 SmartRF 擦除闪存工作正常
    2. 我在 CSS 中进行了更改、但仍然遇到错误(请参阅下图)

    我构建了两个定制板、都有此错误。  

    看起来芯片的闪存工作正常、但 CPU 不启动。

    Christian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    有趣。

    您能否尝试以下操作:

    1. 从 CCS 中的 View 菜单打开 Target Configuration 视图
    2. 查找属于项目一部分的.ccxml 文件
    3. 右键单击它并选择"Launch Selected configuration"(启动选定的配置)。  这将在 CCS 中启动调试会话、但尚未连接到任何内容。
    4. 当调试视图打开时、单击树中的顶层节点(它将是.ccxml 文件的名称)。  选择"显示所有内核"。
    5. 在"不可调试器件"下、选择以 ICEPick_C 结尾的器件
    6. 单击工具栏上的连接按钮。  
    7. 打开"Registers"视图。
    8. 如果您展开内核寄存器。 TAP 寄存器是否有0或1以外的值?
    9. 接下来、选择"不可调试器件"下的 DAP、看看您是否可以连接到该器件。
    10. 如果可以、您可以打开一个存储器窗口、看看是否可以转至0x20000000

    此致、

    John

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    1. ICEPick_C 的 TAP 寄存器 inisde 的值不是0或1。 请参阅图片。
    2. 访问 DAP 地址0x20000000处的存储器也是有效的

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗯、这很好。  您实际上已连接到 DAP、没有错误。

    如果您返回 Debug 视图并选择 Cortex M 并进行连接、会发生什么情况?

    如果连接正常、那么您可以尝试单击加载程序按钮并从项目中选择.out。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    如果我连接到 Cortex M3、首先会说它"已暂停"。 从我的项目加载程序后、错误再次出现

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的、这次连接到 M3后、转到 Tools 菜单并选择 GEL files。

    选择所有 GEL 文件并将其删除。

    现在尝试加载程序。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    它仍然失败、出现相同的错误。  

    我的硬件设计中是否存在故障、或者您认为这是软件问题吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我不知道问题的位置。

    让我们再尝试几件事情。

    1:使用 SmartRF 加载程序

    运行 SmartRF 并执行批量擦除

    然后使用 SmartRF 加载程序映像

    它是否起作用?

    如果是这样、我们可以尝试在 CCS 中进行连接(使用启动具有.ccxml 的调试会话并手动连接的方法)、而不是加载程序、您可以选择使用加载.out 中的符号、并查看是否无错误。  

    #2我们可以从调试器生成一些日志、这些日志可能会提供一些更多信息

    在 CCS 中、您可以转到"帮助"菜单、选择"CCS 支持"。  在打开的对话框中、您可以启用调试服务器日志。

    然后尝试启动调试会话并加载程序。  收到错误后、退出调试会话、然后将日志添加到线程。

    此致、

    John

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    早上好、John、

    任务1工作正常、没有任何错误。 当我加载符号时、我在 CSS 中看不到任何响应;没有日志和错误。

    已附加任务2的日志

    Christiane2e.ti.com/.../7608.debug.log

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    只是想让您知道我确实将登录信息传递给了开发团队。  在我听到一些消息后、我会告诉您。

    此致、

    John

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 John:

    感谢您的更新。 我希望他们能找到一些东西。

    Christian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    John、

    这是为了让您知道、我按照此帖子中描述的所有过程来解决 BOOSTXL-CC2650MA  CC2540MA 电路板的问题、并且我会收到相同的错误。 升级到 ccsv9 (版本9.0.1.00004)后出现问题。 相同的设置适用于 ccsv7。

    在这个问题得到解决之前,我不能继续发展。

    编辑:我使用 SmartRF Flash Programmer 2再次擦除存储器。 这次、ccsv9成功刷写了 BOOSTXL-CC2650MA。 我更正了上面的器件型号排印错误。

    Dennis

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Christian、

    通过查看此主题、我还有一个想法来尝试找出此行为的根本原因。 是否可以从调试配置中禁用"Auto Run to main"选项?

    有关详细信息、请参阅以下调试用户指南的"自动运行和启动选项"部分:

    http://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html 

    这将导致程序在_c_int00 (或代码入口点所在的任何位置)加载并停止,而不运行到 main()。 这将有助于查看问题是发生在代码刷写到器件中期间还是刚刚发生,还是发生在入口点和 main()之间。  

    如果禁用后问题仍然存在、我很可能会将电源线范围限定在您的外部板上。 电流过大(与所用细线成正比)可能会使器件变陷、从而导致器件在闪烁期间变得不稳定。  

    如果问题没有发生、则问题在于代码本身-入口点之后会发生什么情况、导致 CPU 执行 haywire 操作。 此时、我将对加载的代码执行分步调试、以尝试跟踪可能触发问题的位置。 另一个详细信息是 JTAG 引脚 TDI 和 TDO 是否由您的代码重新配置-如果目标由4线 cJTAG 或 JTAG 配置、这会中断通信。 如果系统发生这种情况、那么如果您以2引脚 cJTAG 模式运行(TMS 和 TCK 的两个引脚不是多路复用的)、您应该有一个完全稳定的系统。  

    此外、如果您的 CC2650 Launchpad 为修订版1.3、请确保其引脚1-2 (XDS110电源)之间设置了跳线、以确保正确设置电压转换器。 如果您的 LaunchPad 是修订版1.1、则没有跳线。  

    您使用的是哪些 SDK 和 CCS 版本? 如果转到菜单 Help -> About --> Installation Details,TI Emulators 组件的版本是什么?

    希望这对您有所帮助、

    拉斐尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Rafael、

    我的 CCS 版本为 9.0.1.00004、TI 仿真器版本为8.1.0.000007、XDCTool 版本为3.55.00.11。

    我能够找到触发错误的线路。 它发生在  地址0x0000a278的函数 TrimAfterColdResetWakeupFromShutDown$27()内。 我只能读取汇编代码。 请参阅图片。

    我希望您对该功能有更好的了解。

    谢谢你

    Christian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、John 和 Rafael、

    您对此问题是否有任何更新?

    谢谢你

    Christian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Christian、

    感谢您发送更多详细信息。 我不太熟悉相关函数、因为它属于 CC26xx 器件驱动程序的核心函数、但连接和代码加载似乎很顺利。 我需要来自驱动程序库团队的人来评论此函数执行的更改类型-也许可以在器件本身上执行一些操作。  

    但是在执行此操作之前、我想介绍一下我今天从开发团队那里学到的一个重要细节、开发团队开发了更新的 XDS110仿真包软件(emupack)。  

    CCSv9.0.x 版本(8.1.0.00012)随附的 emupack 在以2.5MHz (此版本的最大速度(可能会导致与目标的随机通信错误)运行时、在时钟边沿上有一些抖动。 虽然紧凑型 Launchpad 不会经常出现错误、但设置的较长连接时间(例如、甚至使用隔离适配器)可能会导致此问题。  

    解决此问题的方法是将 TCK 速度降低至1.25Mhz。 这将减少抖动、并应保证连接可靠。  

    此问题将在下一个版本的 emupack 中修复、即将公开发布。  

    由此给您带来的不便、我深表歉意、请告诉我此变通办法是否有助于您使用的连接。  

    此致、

    拉斐尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Rafael、

    TCK 已设置为1.00MHz。 这是我首先要改变的事情之一。 我认为 JTAG 通信是可以的。 在芯片重新启动期间必须有一些事情发生。

    Christian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    查看 setup.c 和 setup_rom.c/h 文件(C:\ti\simplelink_cc2640r2_sdk_3_10_00_15\source\ti\devices\cc26x0r2\driverlib)可能会有所帮助。  您的设计中是否使用了内部直流/直流转换器、LDO 或外部稳压器?

    谢谢、

    Chris   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Chris:

    我使用的是内部直流/直流转换器。 您认为它没有运行吗?  在函数"TrimAfterColdResetWakeupFromShutDown"内、JTAG 电源被关闭。 这可能会导致错误。

    Christian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    可能一个快速测试是更改 ccfg.c 文件中的设置。

    //##############################
    //电源设置
    //##########################
    
    #ifndef SET_CCFG_MODE_CONF_VDDR_TRIM_SLEEP_Delta
    #define SET_CCFG_MODE_CONF_VDDR_TRIM_SLEEP_Delta 0xF //有符号增量值+1用于应用于 VDDR_TRIM_SLEEP 目标(0xF=-1=DEFAULT=NO 补偿)
    #endif
    
    #ifndef SET_CCFG_MODE_CONF_DCDC_RELEGE/#define
    SET_CCFG_MODE_CONF_DCDC_RELEGY 0x0 //在重新充电期间在掉电
    #define SET_CCFG_MODE_CONF_DCDC_REGLEE 中使用 DC/DC 0x1. //在断电期间不要使用 DC/DC
    #endif
    
    #ifndef SET_CCFG_MODE_CONF_DCDC_ACTIVE
    //#define SET_CCFG_MODE_CONF_DCDC_ACTIVE 0x0 //激活模式期间使用 DC/DC
    #define SET_CCFG_MODE_CONF_DCDC_ACTIVE 0x1. //在激活模式
    期间不要使用 DC/DC #endif
    
    #ifndef SET_CCFG_MODE_CONF_VDDS_BOD_LEV/
    #define SET_CCFG_MODE_CONF_VDDS_BOD_LEVEL 0x0 // VDDS BOD 电平为2.0V
    #define SET_CCFG_MODE_CONF_VDDS_BOD_LEVEL 0x1. // VDDS BOD 电平为1.8V (对于外部稳压器模式为1.65V)
    #endif
    
    #ifndef SET_CCFG_MODE_CONF_VDDR_CAP
    #define SET_CCFG_MODE_CONF_VDDR_CAP 0x3A //无符号8位整数、表示 VDDR 上的最小去耦电容、单位为100nF
    #endif
    
    #ifndef SET_CCFG_MODE_CONF_VDDR_TRIM_SLEEP_TC
    #define SET_CCFG_MODE_CONF_VDDR_TRIM_SLEEP_TC 0x1. //禁用 VDDR 睡眠调整上的温度补偿(默认)
    //#define SET_CCFG_MODE_CONF_VDDR_TRIM_SLEEP_TC 0x0 // VDDR 睡眠调整上的温度补偿启用
    #endif 

    此致、

    Chris

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Chris:

    是的、这对我们有所帮助。 现在、它正在运行、没有错误。 终于来了!!!

    但我想、这不是最终的解决方案。 为什么直流/直流转换器不运行?

    Christian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我不确定。  您能否对直流/直流电路进行一些故障排除?

    http://www.ti.com/lit/pdf/swra640

    请参阅 第31页的第9和10节

    此致、

    Chris

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我正在检查 PIN33 (DCDC_SW)的电压。 它具有1.60V 电压。 根据数据表、它应该具有1.68V 电压。 我忽略了电压表上电缆的压降导致的差异。 我想电感 值有点太小了。 我要用更大的值替换它。 如果这是问题、我们将看到。

    谢谢你

    Christian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

      您是否成功更换了电感器并确认直流/直流稳压器存在问题?

    此致、
    Chris

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Chris:

    我必须订购新的电感器。 希望我今天能获得这些信息。  

    如果我运气好、我会告诉你。

    此致、

    Christian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    最后、在增大内部直流/直流输出电感器的值后、我有一个正在运行的系统。 到目前为止、它的工作没有任何问题。  

    感谢 TI 的 John、Rafael 和 Chris 指导我解决这个问题。  

    此致  

    Christian