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:使用 FTDI 对器件进行编程。 有可能吗?

Guru**** 2589280 points
Other Parts Discussed in Thread: CC3200, UNIFLASH, CC3120, CC31XXEMUBOOST

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/635118/cc3220mod-programming-the-device-using-ftdi-is-it-possible

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

您好!

我已在 Launchpad CC3220x LaunchXL 上开发了一个应用。 现在、我想使用包含一些运算放大器和传感器接口等附加组件的构建板。

我正在使用部件 XCC3220MODSF 12MOBR。

我要使用板载 FT2232D 通过 UART 使用内部引导加载程序在生产线上对 CC3220进行编程吗?

我已使用 CC3200 FTDI 模板刷写了 FTDI 芯片(我无法找到 cc3220版本、但我在其他论坛中看到了有关 cc3200模板应该起作用的报告)。

当我插入 USB 电缆并尝试使用 Uniflash 刷写映像时、我甚至无法连接到器 件(我通过串行方式选择 CC3320并在几秒钟后收到超时错误、串行设置为921688、N、1、None)。

在使用 CI 实用程序进行连接的同时、通过示波器探测信号、我可以看到 SRST 信号下降、但不会发生任何情况(没有 TDI TDO TM 信号)。

我尝试了两种 UART 模式(SOP 在100和010中)。

我做错了、还是无法通过 FT2232D 对 CC3220进行编程?

出厂时、引导加载程序是否已经在芯片上?

谢谢你

Damiano

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

    引导加载程序确实在芯片上、无法擦除。 请参阅产品线指南、了解这是否说明了问题:www.ti.com/lit/pdf/swra568

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

    您好!

    我遵循产品线指南。

    今天、我在原型板上进行了测试。 使用 CC3200 FTDI 模板对 FTDI 芯片进行编程后、我断开电路板并将其重新连接到 PC 上的 USB、然后我连接 Teraterm (尝试115200和921600)、并从 PC 发送字符、 如果我在示波器上设置触发器、我可以看到 TX 线上的 FTDI 端口 B 流出的字符(FTDI 端口 B 配置为 UART/rsr232并直接连接到 CC3220、 端口 A 设置为 C、并使用缓冲器连接到 CC3220的 JTAG 引脚)。

    SOP 引脚连接到010 (PD、PU、PD)、但如果我尝试在串行/CC3220上连接 Uniflash、则会尝试几秒钟、然后超时。

    如果我在 RESET 引脚上进行探测、我会看到它变为低电平、但 CC3220似乎没有响应(我在 RX 上没有任何反应)。
    我还尝试了手动重启、SOP = 100、什么也不会发生。

    我有两个原型、两个原型的行为方式都很正常、RX 上没有任何内容、即使在复位或上电后也是如此、因此我认为这是布局中的错误、而不是 mlspuncing 板。

    有什么想法我还能寻找什么?

    谢谢你

    Damiano

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

    您好!


    FWiw、我有一个类似的配置、并且在连接 Uniflash 时遇到了类似的问题(尽管我没有尝试这么困难-由于其他原因、说服我的硬件和 Uniflash 正确通信非常困难、因为我需要我自己的魔术 FTDI 配置)。 我通过编写自己的代码通过 FTDI 下载映像(尽管使用 CC3220MODS)、成功地实现了这一目标、因此它最终对我有效、我可以愉快地下载.ufs 并运行它们-只是不使用 Uniflash。

    我以921600波特率、8N1进入引导加载程序、将 SOP2保持为高电平、并将 NRST=0设置为10ms、然后 NRST=1。 然后、我从器件返回一个 ACK (0xCC)并从器件继续- TI 站点上有一些生产线编程 python、我对此进行了批评-如果您看一下网络、 有一些引导加载 程序命令可让您从器件获取 MAC (构建开发映像时需要使用该命令)。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您将 CC3220的哪个引脚用于 TX、RX? GPIO1和 GPIO2?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、

    这里有几条评论。

    Uniflash 通过 UART 连接(921600、8N1)与 CC3120/3220目标器件的引导加载程序进行通信。  它还会在适当的时间切换 nRESET 行以启动引导加载程序。  默认情况下、它通过搜索 TI XDS110仿真器或基于 TI FTDI 的仿真器(CC3200LP 或 CC31XXEMUBOOST)来查找合适的 COM 端口(和 nRESET)。  只要 UART RX、TX 和 nRESET 连接就应该在 CC3120/CC3220中正确使用这些仿真器中的任何一个。  

    您还可以使用另一个 UART 连接、例如通用 FTDI 电缆、为此、您需要将所需器件的 COM 端口传递到 Uniflash 工具中。  为此、您可以从命令行启动 Uniflash (通过 dslite.bat)并传递适当的'GUI_cfg'选项。  例如、  

    C:\ti\uniflash_4.2.1.1562> dslite.bat -模式 cc3220 Gui_cfg --port com132 

    但是、请注意、在这种情况下、Uniflash 工具将无法在正确的时间自动控制 nRESET 行、因此将启动控制台窗口以提示用户手动控制该行。  例如:-

    C:\ti\uniflash_4.2.1.1562>dslite.bat --mode cc3220 Gui_cfg --port com132
    执行以下命令
    :>C:\ti\uniflash_4.2.1.1562\simplelink\Gen2\bin\SLImageCreator.exe Gui_cfg --port com132
    
    SLImageCreator v 1.0.17.7 killall:('Taskkill'、'/FI'、'PID ne 20232'、'/IM'、'SlImageCreator.exe'、 '/F') 信息:没有使用指定条件运行的任务。 正在验证与服务器的连接 正在 验证与服务器的连接 服务器端口:55431 55434 信息:ROOT:COM 端口 com132 信息:slbootloader.slbootloader:正在连接到设备 信息:slbootloader.slbootloader:--请关闭设备电源-- 按 ENTER 键继续 信息:slbootloader.slbootloader.slbootloader:关机 信息:slbootloader.slbootloader.slbootloader-请关闭 设备电源-设置 slbootloader-信号:slbootloader- - 信息:slbootloader.slbootloader:加电 信息:slbootloader.slbootloader:清除中断信号 信息:slbootloader.slbootloader:连接成功 信息:slbootloader.slbootloader:接收的存储列表

    使用 python 脚本可以"也"自动控制 nReset 行。  Uniflash 工具将查找2个文件(power_on_com.py / power_off_com.py),并按如下方式实施样板文件:-

    [power_on_com.py]
    导入子过程、时间
    打印"Powering -On SimpleLink Device -取消 nReset "
    time.sleep (1)
    subprocess.call('echo 插入一些系统调用或 python 代码来控制 nReset……"、shell=True) 

    [POWER_OFF_com.py]
    导入子过程、时间
    打印"Power-Off SimpleLink Device -发出 nReset"
    time.sleep (1)
    subprocess.call('echo 插入一些系统调用或 Python 代码来控制 nReset..."、shell=True)
    

    这些脚本位于'script_path'中,在启动 uniflash 时也可以传递该脚本:-

    C:\ti\uniflash_4.2.0.1562>dslite.bat --mode cc3220 Gui_cfg --port COM4 --script_path c:\users\me\.SLImageCreator\scripts
    
    执行以下命令
    :>C:\ti\uniflash_4.2.0.1562\simplelink\gen2\bin\SLImageCreator.exe gui_cfg -meskillImageCreator\scripts
    
    :>C:\i:\es\fliflash_4.217.7 ImageCreator\m\m\Simple_me.c:'/scripts '\mes\fles\clImageCreator\me.c:'/scripts '\mes\fles\fles\cles\cl.qe\me.me.mes\cmes\cmes\cmes\cmes\cmes\cl
    
    '/F')
    
    信息:没有使用指定条件运行的任务。
    验证与服务器的连接
    验证与服务器的连接
    正常运行
    服务器端口:56674 56676
    信息:根:COM 端口 COM4
    信息:slbootloader.slbootloader:连接到设备
    
    关闭 SimpleLink 设备-声明 nReset
    插入一些系统调用或 python 代码以控制 nReset...
    
    info:slbootloader.slbootloader:关闭
    电源信息:slbootloader.slbootloader:设置中断信号
    
    打开 SimpleLink 器件电源-取消 nReset
    插入一些系统调用或 python 代码以控制 nReset...
    
    信息:slbootloader.slbootloader:加电
    信息:slbootloader.slbootloader:清除中断信号
    信息:slbootloader.slbootloader:连接成功
    信息:slbootloader.slbootloader:接收到的存储列表 

    希望这有所帮助、

    ~Roger

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    GPIO_01是来自 CC 器件的 TX。
    GPIO_02是 CC 器件的 RX。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是否有办法通过 FTDI 端口 A 使用 JTAG 标签对芯片进行编程?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    不能使用 JTAG 执行初始编程。 要与引导加载程序进行交互以对串行闪存进行编程、您将需要一个 UART。

    如果您使用 FTDI FT2232D (根据原始帖子)、则可在 Porta 和 portB 上使用 UART。

    对初始固件进行编程后、您可以继续调试(并通过 JTAG (*)加载进一步的开发软件)。

    (*)如果这是一个具有安全性的器件("S"),则必须将一个"开发模式"映像(解锁 JTAG)编程到串行闪存中。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    因此、最终发现问题是路由错误。
    (CC3220MODSF 12MOBR。) 引脚 GPIO_01和 GPIO_02是复位后引导加载程序使用的引脚。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Roger、

    请在您的帖子中提供有关此句子的更多详细信息:
    '如果这是一个具有安全性的器件("S")、那么必须将一个'开发模式'镜像(解锁 JTAG)编程到串行闪存中。'

    我在定制板上使用 CC3220MODSF12MOB 模块、并且 JTAG 连接有问题。 我得到的错误如下:

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

    您能否确认每个新的"SF"模块都设置为"生产模式"、而不是"开发模式"、并且必须解锁?
    (至少这是我从您的帖子中理解的内容)
    如果是这种情况,如何更改模式或如何进行调试?
    遗憾的是、在我们的电路板上、我无法访问 UART 引脚(GPIO 01和02)

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

    您好、克里斯蒂安、

    是的、没错。  要使用 JTAG 进行调试、您需要将器件置于开发模式。  为此、您需要在创建 Uniflash 编程映像并将该映像编程到所连接的串行闪存中时配置此模式。  要对串行闪存进行编程、您需要访问这些 UART 引脚、或使用独立编程器连接到串行闪存引脚。

    希望这有所帮助、

    ~Roger

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

    谢谢 Roger。

    您的答案非常清楚、非常有用。

    此致、

    克里斯蒂安。

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

    我遇到了类似的问题、需要使用串行闪存工具对 CC3220MODASF 进行初始程序。 我在 Launchpad 参考设计中加入了 TC-2050封装、您能否推荐使用与此接头连接的独立编程器? 我在文档中只看到通用的"OTS 编程工具"、但这似乎是定制板的主要编程路径。

    感谢你的帮助。

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

    您好 Roger、

    对此进行了任何更新? 我也面临同样的问题。 任何帮助都是值得注意的。

    @克里斯蒂安:你是否解决了这个问题? 如果是、请建议我解决该问题的方法。