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.

[参考译文] CC3220MOD:无需外部 MCU 的应用程序加载

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/997751/cc3220mod-application-program-load-without-external-mcu

器件型号:CC3220MOD
主题中讨论的其他器件:UNIFLASHCC3220SFSysConfig

TI 朋友和家人、

我们有一位客户尝试使用内部开发的应用程序对其通信控制板上的 CC3220MODSF 模块进行编程。  他们目前正在尝试在不使用外部 MCU 的情况下使 Wi-Fi 模块正常工作、以便能够使用外部天线和外壳运行一些基本的信号强度测试。  目前、它们正在尝试通过 UART 端口与模块通信。  这是设计上的 J3 (我可以单独发送原理图)。  用于使用 FTDI TTL-232R-3V3 UART 转 USB 电缆连接到 PC (https://www.ftdichip.com/Support/Documents/DataSheets/Cables/DS_TTL-232R_CABLES.pdf)。  他们尝试了 UARTLOAD 和 UARTLOAD_funcitonal_4WJ SOP 配置、但看不到 UART TX 和 RX 信号上的任何信号传输。  尝试将电缆连接到 Putty 终端、并查看示波器上的 TX 和 RX 信号。  原理图中需要注意的一点是、nRESET 信号始终在电路板上拉低。  为了在家庭办公室轻松解决此问题、他们将 nRESET 信号短接至 JTAG 连接器 J1引脚10并将其连接至+3.3V 引脚 J1引脚1。  由于 nRESET 上的4.75K 下拉电阻和+3.3V 上的1K 下拉电阻、这会导致 nRESET 引脚上的分压器电压为2.7V。  +2.7V 是否足以将模块从复位状态中拉出?

 

问题:

  1. 是否有推荐用于该模块的 UART 编程/调试电缆?
  2. 我们是否有推荐用于 CC3220MODSDF 的 JTAG 调试器?  XDS 是否像 LaunchPad?
  3. 是否有办法查看 CC3220是否未被保持在复位状态?
  4. 他们是否需要 UART TX 和 RX 以外的任何信号来通过 UART 对 CC3220进行编程?
  5. 他们还尝试使用 UniFlash 通过 FTDI 线缆加载软件、但收到错误消息。  查看日志消息、如果正确、似乎需要特定的 TI 调试器?  再说一次、该 XDS 是否像 Launchpad?

Ty、

是的

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

    尊敬的 Chris:

    要回答您的问题:

    建议使用 XDS110作为 UART 编程器。 这就是每个 CC32xx Launchpad 以及其他 TI 连接器件(如13xx 和26xx)附带的功能。

    XDS110也是 JTAG 调试器、建议与 CC32xx 配合使用。

    3.在数据表中,指定 nRESET 必须保持在0.6V 或更低的电压才能被置为有效。 但是、不清楚确保失效状态的最小电压是多少。 我将请我们的一位硬件工程师发表评论。

    它们还需要能够在编程期间切换 nRESET。 这可以通过 XDS110来处理

    5.是的,Uniflash GUI 要求您在 PC 上使用 XDS110或 FTDI FT2232D 设备进行连接,否则自动检测将失败。 但是、您可以使用 Uniflash CLI 执行刷写步骤、因为它可以选择手动指定 COM 端口以供使用。 请参阅 《Uniflash Imagecreator 用户指南》第7节中的说明

    如果他们尝试测试射频特性、我建议他们执行以下操作:

    1.下载并安装最新版本的 Radiotool: https://www.ti.com/tool/CC3XXXRADIOTEST

    2.按照以下指南在 Uniflash Imagecreator 中准备项目: https://dev.ti.com/tirex/explore/node?node=ABEoqU9o3snoxDcmIpW0EA__fc2e6sr__LATEST

    添加 MCU 映像时、请确保他们在无线电工具安装的/Source Files/预编译二进制文件中添加 CC32xxSF 映像

    3.项目设置完成后、在"刻录/编程映像"步骤中、切换到 Uniflash CLI 以使用其 FTDI 线缆的 COM 端口进行编程。

    4.编程完成后,请按照此处的指南使用无线电工具程序来测试所需的射频参数:

    https://www.ti.com/lit/swru471

    此致、

    Michael

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

    您好、您好、

    您可以分享客户的原理图吗? 我将向您发送一份 E2E 好友邀请函。

    BR、

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

    感谢 Michael 和 Seong。  我将离线跟踪原理图。  现在、您的回答是正确的、我们当然非常感谢。

    Ty、
    Chris

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

    尊敬的 Chris:

    如我的电子邮件中所述、用于闪存的 UART 引脚为引脚46和47。 每个都需要100k 的上拉电阻器。

    我在原理图中看到、它们使用的是引脚48和49。 这就是问题所在。

    BR、

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

    实际上、您完全正确。  在深入研究了有关 CC3220SF 的所有信息后、他们意识到他们已经为刷写模块分配了错误的 UART 引脚。  遗憾的是、如果不重新制造设计、他们此时将无法访问电路板上的引脚46和47。  所幸的是、他们确实计划在下一个 PCB 设计中包含用于闪存的 UART0接口。  

     

    因此、故事简短…这就是他们一直希望使用 JTAG 接口和 XDS110来刷写模块的原因。

     

    遗憾的是、他们甚至无法使用 Uniflash 通过 JTAG 连接到 LaunchPad、因为我们建议他们直接尝试。  这在我看来很奇怪。

     

    他们已经能够在 CSS v10中为 LaunchPad 导入示例项目、但在构建项目时遇到以下错误。

     

    C:/ti/ccs1030/ccs/tools/compiler/ti-cgt-arm_20.2.5.LTS/bin/armobjcopy -O 二进制文件-仅部分.text -仅部分.const -仅部分.cinit -仅部分.resetVecs out_for_box_CC3220SF_LAUNCHXL_tirtos_ccs.out out_of_box_CC3220SF_LAUNCHXL_tirtos_ccs.bin

    C:/ti/simplelink_cc32xx_sdk_5_10_00_02/source/ti/drivers/net/imagecreator/bin/SLImageCreator.exe syscfg create_image -sdk_path C:/ti/simplelink_cc32xx_sdk_5_10_00_02 -json C:\users\穿孔 em2\workspace_v10\out_of_box_CC3220SF_LAUNCHXL_tirtos_ccs\mcus+image/syscfg/ti_drivers_net_wifi config.json -file C:\tinccs_ccs_tir32xL_tos_mccs_rtos_r32x_uncs_out_rtos_ccs_rtos_rtos out_of_box_CC3220SF_LAUNCHXL_tirtos_ccs.bin

    INFO:ROOT:FTDI 未检测到、正在尝试 XDS

    info:slbootloader.slbootloader:连接到设备

    INFO:slbootloader.slbootloader:关闭电源

    INFO:slbootloader.slbootloader:设置中断信号

    INFO:slbootloader.slbootloader:加电

    Makefile:183:目标'post-build'的配方失败

    回溯(最近一次调用最后一次):

     文件" "、5262行、输入

     文件" ",第5258行,在 main 中

     文件" ",第5228行,位于 cmdline 中

     文件" "、第4653行、位于 COMMAND_SysConfig_CREATE 中

     文件" "、第2498行、位于 create_image_from _sysconfig 中

     文件" "、第1567行、在 connect_device 中

     文件"W:\slbootloader\slbootloader.py",第409行,位于 connect_on_reset 中

     文件"W:\slbootloader\slbootloader.py",第271行,在_welse_ack 中

     文件"W:\slbootloader\slbootloader.py",第302行,在_read_data 中

    slbootloader.slbootloader.BootLoaderError:

    错误:SLImageCreator.exe:BootLoaderError、读取数据超时

    SLImageCreator 返回-1

    gmak[2]:[编译后]错误-1 (忽略)

     

    对于此测试、他们使用的是集成 XDS、它是 LaunchPad 评估板的一部分。  JTAG 和 UART 的所有默认跳线连接。  

     

    在我看来、由于他们使用的是 TI Launchpad、这不是 PCB 的设计检查清单问题、而是电源问题或类似问题?  对我来说、根据错误消息、更像是一个通信问题?  

     

    我知道、在 e2e 论坛上、您非常积极地帮助遇到类似问题的客户、Seong。  请告诉我您的看法?


    谢谢、
    Chris

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

    尊敬的 Chris:

    客户在编译过程中看到的错误实际上是在编译后调用 imagecreator。 在较新版本的 SDK 中、我们集成了 UART 引导加载程序功能、以便客户可以一步构建并永久刷写 CC32xx 器件。 但是、如果在这个闪存过程中出现错误、它将显示为一个构建错误。

    话虽如此,实际的汇编和连接阶段是成功的。 因此、客户只需通过 JTAG 将生成的.out 直接加载到 CC32xx 上。 当然、也会出现相同的引导加载程序错误、因此 CCS 会警告客户在构建过程中遇到错误、但这可以忽略-我们将通过 JTAG 而不是 UART 加载代码。

    要通过 JTAG 加载代码、客户只需照常点击绿色的 JTAG 调试按钮。

    如果这对客户不起作用、请告诉我。

    此致、

    Michael

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

    您好、Michael、

    客户能够使用评估板的集成 XDS110和使用 JTAG 的外部 XDS110、使用开箱即用演示软件对 Lauchpad 评估板进行编程。  对于这两项测试、他们都使用了 SOP = 000。  使用外部 XDS110进行测试时、他们使用外部工作台电源为 Lauchpad 供电、以断开与 PC 的第二个 USB 连接。

     测试成功后、他们切换回电路板。  对于此测试、他们移除了电路板上的 R2、该 R2拉低了 nRESET 信号。  移除此电阻器使其电路板类似于 Lauchpad 评估板。  使用相同的开箱即用演示软件、他们尝试使用与外部 XSD110一起用于 Launchpad 的相同方法调试电路板。  一切看起来都在最初正常工作、但随后他们收到此错误消息:

     Cortex_M4_0:GEL 输出:

    内存映射初始化完成

    CS_DAP:连接到目标时出错:(错误-1170 @ 0x0)无法访问 DAP。 重置设备、然后重试此操作。 如果错误仍然存在、请确认配置、对电路板进行下电上电和/或尝试更可靠的 JTAG 设置(例如、较低的 TCLK)。 (仿真包9.3.0.00042)

     

    他们已经厌倦了通过修改 CC3220SF.ccxml 目标配置文件将 JTAG 时钟降低到1MHz 和100KHz、但这似乎没有改变任何东西。

     他们在电路板上的 JTAG 配置是否缺少一些东西?  根据我对此错误的体验、它似乎仍然是一个通信问题、可能是他们的定制板出现的问题。

    Ty、
    是的

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

    尊敬的 Chris:

    他们是否能够通过 UART 刷写自定义电路板? 他们的 CC3220很可能处于生产模式。 在生产模式下、大多数调试选项、例如 JTAG 访问被锁定。

    为了解锁 JTAG、客户至少需要将其电路板闪存到开发模式中一次。

    如果客户根本无法访问 UART、则 需要直接在模块内刷写 SPI 闪存。 有关说明、请参阅量产线指南的第4节: www.ti.com/.../

    请注意,您将在模块上使用 FLASH_SPI_*信号,而不是按照该文档中的图直接连接到串行闪存。

    此致、

    Michael

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

    您好、Michael、

    否、他们无法使用 UART 刷写定制板。  因此、我也会怀疑模块仍处于生产模式。

    它们确实为测试点提供了4个串行闪存引脚、如您参考的产品系列应用手册中所示。  除了 swra548之外、我还参考了 swra645。

    这比他们预期的要复杂一些、但他们肯定想在重新旋转电路板之前用尽所有可能的方法。

    我已经发送了一些外部 SPI 编程器建议。  我认为整个 Cheetah 阶段对他们来说是可以的。  (您的其他 e2e 线程参考)。

    让我们暂时保持开放、直到他们有机会尝试 SPI 编程器、但到目前为止、这种做法非常好。

    再次感谢、
    Chris

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

    尊敬的 Chris:

    感谢您的更新。 是的、Cheetah 是我在办公室用于连接 CC32xx 串行闪存的工具、感谢您查看我的其他博文并向客户提供该信息。

    如果他们遇到任何困难或需要进一步的帮助、请告诉我。

    此致、

    Michael

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

    Michael et al、

    因此、客户获得了 Cheetah SPI 编程器、并将一个接头连接到了模块。  他们能够使用 Total Phase 软件对模块进行编程。  至少我们认为它已正确编程、因为它们在闪存过程中未收到任何错误消息。  使用 SPI 编程器编程的软件是由 CSS 创建的开箱即用演示.bin 文件。  对闪存进行编程后、他们尝试使用 CSS 启动 JTAG 调试连接、但收到的错误消息与之前相同。  开箱即用演示软件不应该将模块置于开发模式?  如果不是、如果开箱即用演示没有、CC3220SF 是否有其他启用开发模式的演示项目?  在资源中心上查看 CC3220SF 演示后、客户未看到任何专门将此功能称为"演示项目"的演示项目。

     您可以为创建正确的软件二进制文件提供任何帮助、这将是很好的。

    Ty、

    是的

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

    您好、您好、

    客户用于对 SPI 闪存进行编程的精确过程是什么?

    开箱即用的 Uniflash 项目确实应该将其器件置于开发模式。 但为了澄清、他们是否从器件中看到了开箱即用示例的预期输出?

    客户应执行的步骤如下:

    1.下载并安装 Uniflash

    2.在 Uniflash 中、选择 CC3220 launchxl 器件。 或者、他们只需在 Uniflash 安装程序的 simplelink/imagecreator/bin 中运行 SLImageCreator.exe 即可。

    3.在 Uniflash 中,单击 Manage Project -> Import a project from a zip file。 然后转至 examples/rtos/CC3220SF_LAUNCHXL/demos/out_for_box/uniflash 并导入项目

    4. 进入项目视图后,单击刻录->保存 bin。 请注意、该二进制文件与 CCS 生成的.bin 不同。 客户需要使用通过 Uniflash 提供的.bin、如果直接刷写到 SPI 闪存、则不能直接通过 CCS

    5.将步骤4中的.bin 闪存到 SPI 闪存。

    请仔细检查并确保客户正在执行这些步骤。

    此致、

    Michael

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

    Michael、

    感谢您提供更新的说明。  

    来自客户"我看到您应该使用 Uniflash 创建.bin 文件、但我不知道如何创建.bin 文件。  我只是一个在软件领域工作的硬件人员。  今天上午、我按照 Uniflash 指令创建了一个.bin 文件、并成功将其刷写到模块中。 我假设这是一个成功的闪存,因为我没有从 Total Phase Flash 工具中得到任何编程错误。  刷写后、我断开了 Cheetah Box 并移除了将模块保持在复位状态的跳线(我在模块上的 nRESET (引脚35)添加了一个跳线、以简化此步骤)。  然后、我关闭电路板电源并连接我的 XDS110、并将 SOP 引脚设置为000。  接下来、我为电路板加电、并尝试使用 XD110 JTAG 接口和 CSS 调试模块。  

     很遗憾、我仍然收到与以前相同的错误消息。

    CS_DAP:连接到目标时出错:(错误-1170 @ 0x0)无法访问 DAP。 重置设备、然后重试此操作。 如果错误仍然存在、请确认配置、对电路板进行下电上电和/或尝试更可靠的 JTAG 设置(例如、较低的 TCLK)。 (仿真包9.3.0.00042)

     CSS 中是否缺少一个步骤?  我在 CSS 中执行的步骤是单击 Binaries 文件夹下的.out 文件、然后单击工具栏中的绿色 Bug 图标。"

    请告诉我、我们在这里是否仍然缺少一些明显的东西?

    谢谢 Michael、

    Chris

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

    尊敬的 Chris:

    如果客户成功地将 OOB 映像应用到器件、则应启动到开箱即用功能中。 客户能否确认其 CC3220正在运行 OOB 代码? 这将使我们能够判断刷写过程是否确实有效。

    在此线程中可以找到更多调试提示:

    https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/717279/ccs-cc3220-for-cc3220r-production-line-the-gang-image-not-work-correctly

    其中一个可能适用的方法是客户 Uniflash 映像的 MAC 地址设置。 在开发模式下、出于安全原因、您必须提供目标器件的 MAC 地址。 通常、这会在 Uniflash 中自动填充、因为它将自动检测任何连接的 CC3220器件、但如果客户无法连接到 Uniflash、则需要手动提供。 这应在“常规”->“设置”视图中完成:

    此致、

    Michael