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.

[参考译文] CC3120MOD:UniFLASH 5.1.0 ->"等待 ack&quot 的超时;

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/844552/cc3120mod-uniflash-5-1-0---timed-out-waiting-for-ack

器件型号:CC3120MOD
主题中讨论的其他器件: UNIFLASHCC3120CC3XXXRADIOTESTCC3220MOD

您好!

我正在尝试使用这些板上的 CC3120MOD 器件对某些板进行编程。

如果我使用 UniFLASH GUI、我可以连接到器件、但是当我进行编程时、我会得到超时。

如果我使用 UniFLASH CLI、我会遇到相同的问题。

以下是命令:

D:\TI\uniflash_5.1.0\simplelink\imagecreator\bin\SLImageCreator.exe 项目程序--name spro --dev 

以下是开始日志(您可以看到它可以获得存储列表):

信息:root:未检测到 FTDI、正在尝试 XDS
信息:slbootloader.slbootloader:连接到器件
信息:slbootloader.slbootloader:关闭
信息:slbootloader.slbootloader:设置中断信号
信息:slbootloader.slbootloader:打开
信息:slbootloader.slbootloader:清除中断信号
信息:slbootloader.slbootloader.slbootloader:
已接收到存储器。信息:slbootloader.slbootloader:连接信息:slbootloader 

有关构建映像的一些信息:

版权所有2014 TI.com。 保留所有权限、SimpleLink 编程映像生成
器= 3.0.1.5



块大小为4096字节。
配置的存储大小为512个块。


图像的总大小(14个块)
提取后用户文件的总大小(8个块)
FileSystem( 4个块)的总大小

提取后的系统文件总数(包括系统文件的保留空间)(106个块)
为系统文件预留的总空间(106个块)
提取后的 Service Pack 大小(66块)
提取大小后的应用程序代码(0块)
保留用于系统文件(32个块)
提取大小后的系统文件(包括服务包)(84个块)
为图像保留的大小(包括图像保护)(32块)
=>提取后、集将需要150个块的总大小。<=
=>在提取过程中,集将需要150个块的总大小。<=

成功生成非加密文件!!!



成功完成!!!!
产品位于:[d:\ti\uniflash_5.1.0\simplelink\imagecreator\bin\C:\Users\SNIP\.SLImageCreator\projects\spro\sl_image\Output ]

最后、所有内容暂停几秒钟(我认为它会形成图像)、然后我得到:

回溯(最近一次调用最后一次):
文件" "、第4586行、输入 
文件" ",第4582行,在主
文件中" ",第4554行,在命令行
文件中" ",第3695行,在 COMMAND_PROJECT_PROGRAM
文件中" ",第2353行,在 program_image_from _project
文件中" "、第3298行、在 validate_project_device_type
文件"W:\slbootloader\slbootloader.py"、第854行、在 get_chip_version
文件"W:\slbootloader\slbootloader.py"、第456行、在 get_version
文件"W:\slslloader\slbootloader.py"、第285行、在_timed bootloader.pack
中等待时出现错误
提示:slbootloader\slloader.pack 

是否有人可以告诉我为什么会超时?

谢谢。

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

    尊敬的 TI:

    我们为什么会收到超时错误、是否有任何更新?? 我们需要交付此硬件!!!

    下面的屏幕截图显示我们可以成功连接到 CC3120:

    然后、我们会收到超时消息。

    任何帮助、谢谢。

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

    从 nRESET 被拉至收到"等待 ACK 超时"消息时、我已附加了整个过程的 Saleae 逻辑捕获。

    在捕获中、RX 是 Rx 进入 CC3120、TX 是来自 CC3120的 Tx。

    您可以看到、UniFLASH 在大约6秒的标记处停止传输。 它可能正在等待 CC3120的 ACK?

    请帮帮我。

    谢谢、

    e2e.ti.com/.../cc3120_5F00_error.zip

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

    您好!

    我们在 XDS 复位时遇到了类似的问题、但已修复。

    您使用的操作系统是什么? Uniflash 版本是什么?

    我们无法在 Windows10 和 Uniflash 5.1上重新创建此文件。

    有时、切换电缆或 USB 端口可以解决问题。

     

    BR、

    Kobi

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

    您好、Kobi、

    我们在 Windows 10 + UniFLASH 5.1上运行(最新下载)。

    我一直使用 launchpad 作为串行网关、也切换到 FTDI USB 串行桥接器、同样存在同样的问题。

    TI 确实需要打开这些工具的源代码、以便我们能够解决这些问题。 由于工具崩溃、我们无法交付硬件、几周前 TI 蓝牙工具发生了同样的问题。 :(

    我想我唯一的选择是尝试另一台 PC。

    谢谢。

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

    尊敬的 TI / Kobi:

    我找到了指向此主题的链接: https://e2e.ti.com/support/wireless-connectivity/wifi/f/968/t/590187?CC3220-Protocol-for-image-programming-over-UART-

    和此工具: http://www.ti.com/tool/embedded-programming

    发表于@

    我已经运行了该工具、并且具有以下日志输出(注意:我删除了一些不重要的内容)

    映像编程 v2.0.0
    -------------------------------------------------------
    此实用程序将二进制映像编程到连接到 CC3120/CC3220器件的串行闪存
    仅支持生产器件(即没有预量产器件)
    需要使用 Uniflash 实用程序提前准备二进制映像
    
    步骤1 -- >连接到目标设备
    端口已打开
    连接成功
    获取存储列表
    
    步骤#2 -->读取版本信息
    已完成
    引导加载程序版本为(3、0、1、1)
    这是 CC3120设备
    NWP 引导加载程序已运行
    RawStorageWrite
    
    步骤#4/8 -->获取 SRAM/SFLASH 存储信息
    
    步骤#5/9 -- >擦除来自 SRAM/SFLASH 的3个块从块#0开始
    擦除块的过程需要几秒钟
    。擦除完成
    
    步骤#6/10 -->将映像[0:1051]编程到 SRAM/SFLASH
    映像编程完成
    
    步骤#7-->从 SRAM 执行引导加载程序补丁
    ENTER 获取存储信息
    RawStorageWrite
    
    步骤#4/8 -- >获取 SRAM/SFLASH 存储信息
    
    步骤#5/9 -->从块#33开始对 SRAM/SFLASH 的2个块进行擦除
    已完成
    
    步骤#6/10 -->将图像[135176:141157]编程到 SRAM/SFLASH
    图像编程已完成
    
    步骤#11 --> >图像编程
    端口打开
    编程块,偏移量=0,chunkSize=4096
    等待 ACK
    接收应答
    数据接收
    错误:错误编号=-10275,扩展错误=3904
    编程进度=0%
    总编程持续时间=0秒
    步骤#12-->重置目标器件 

    在映像编程期间、CC3120MOD 返回错误代码、不会进行编程。

    请告诉我错误代码是什么以及我们如何解决此问题、我们必须发货硬件!!

    谢谢。

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

    尝试了一些之后、我还使器件在此时挂起。

    步骤#11-->图像编程
    端口打开
    编程块,偏移量=0,chunkSize=4096
    等待 ACK
    
    

    它从未完成 ACK

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

    您好!

    -10275编程过程中出错。 此错误表示 sl_error_FS_programming_illegal 文件。 嵌入式编程使用的确切文件是什么? 它是*。ucf 文件?

    1月

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

    是的、它是由 UniFLASH 5.1.0生成的.ucf 文件。

    我尝试了许多不同的选项、包括没有服务包等。我确实注意到、有时 UniFLASH 会生成大小约为2048或4096 KB 的.bin 文件、但.ucf 文件大小仅为90 KB。

    我的主要问题是、我无法使用 UniFLASH GUI、SlImageCreator 命令行或 EmbeddedProgramming 工具对最新一批电路板进行编程。 在几乎所有情况下、它都在"等待 ACK "或"等待 ACK 超时"挂起

    有什么事想到?

    谢谢。

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

    您好!

    对于嵌入式编程,您需要使用 UCF 文件。 bin 或 hex 文件用于 Gang 编程(通过第三方 SPI 闪存编程器对 sFlash 进行编程)。 bin 文件较大是正常情况。

    这个问题非常有趣。 我假设当您能够通过 Uniflash GUI 进行正确连接时、从 GUI 进行编程也应该能够正常工作。 但您的情况并非如此。 请尝试以下步骤:

    • 下载 CC3XXXRADIOTEST。 此无线电工具包包含已准备好的 UCF 文件。 您可以使用此文件进行测试。 使用此 UCF 文件测试您的嵌入式编程。
    • 如果无法通过 XDS 成功对该 UCF 文件进行编程、请使用 FT232RL 等 USB 转换器进行测试

    1月

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

    您好、Jan、

    回顾一下:

    答:几个月前我们做了一些示例硬件、我们能够毫无问题地刷写 CC3120MOD 器件并开发我们的应用。

    b.我们为客户样片制作了一批新的生产硬件、我们无法对这些 CC3120MOD 器件进行编程。

    c.我们可以使用 UART 和 SOP2连接到器件、但无法将任何映像编程到其中、因为当 CC3120MOD 器件无法在第一个编程块上使用 ACK 进行响应时、映像编程步骤会失败。

    d.我们可以编程(并已发货)的器件具有以下标记:

    CC3120MODRNMM0B
    LTC76000TZ 05K0
    2202027391-06L0 

    E:我们无法编程的器件之一是:

    CC3120MODRNMM0B
    LTC78000TZ 00JH
    2372000197-06L0 

    要回答您的问题:

    了解.ucf 文件。

    2.我找到了 CCS UniFLASH 版本3.4的旧版本、我能够连接到我的器件、我找到了以下信息、这些信息可能会有所帮助:

    Bootloader 版本:3.0.1.1
    NWP Patch 2.2.0.2
    MAC Patch 1.2.0.2
    PHY Patch 1.0.3.23 


    但是、当我尝试格式化、编程等任何操作时 我收到故障(可能是预期故障)

    也许很有趣、但考虑到 UniFLASH 3.4的使用年限、它是检测到的器件版本:

    [11:37:29]信息:>执行操作:初始
    化[11:37:29]信息:读取版本信息
    [11:37:29]信息:器件 CC3100 ES1.21 


    CC3XXXRADIOTEST 包含 CC3120器件映像 UCF 文件。 当我尝试对此进行编程时、我会得到相同的结果:

    步骤#11-->图像编程
    端口打开
    编程块,偏移量=0,chunkSize=4096
    等待 ACK 


    4.当我从 UniFLASH GUI v5.1.0尝试时、我会得到"操作失败、超时等待 ACK "

    5.我已经尝试了各种串行端口适配器(Launchpad、XDS110和 FDTI USB 桥接器)组合以及不同的计算机。

    唯一与我相关的是"EmbeddedProgramming 附带的 BTL_ram.ptc"无法正常工作、或者器件在映像编程阶段锁定。

    我不知道 UniFLASH 在后台执行什么操作、但我认为它也必须对一些引导加载程序进行编程?

    然而、正如报告的那样、CC3120MOD 器件已经被编程为 BL 3.0.1.1、并且清单显示 BL 版本为33.0.1.1。

    TI 该怎么做? 我们在这方面失去了这么多钱,这一点再也不有趣了。 我们需要交付硬件、我们需要对这些器件进行编程。

    请帮助!

    谢谢。

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

    您好!

    感谢您对问题的详细描述。 但是、最好在第一个问题中写下该详细描述。 Uniflash 3.4不支持 CC3x20器件、因此尝试使用此版本与之无关。

    您是否在您的硬件(PCB)上对样片和第二批生产进行了任何更改?

    根据我的经验、如果您的样片和第二批产品之间没有做出任何更改、则会出现以下问题之一:

    1. 制造(组装)问题
      1. 模块下的焊接/回流焊问题
      2. 由于回流焊曲线不正确而损坏模块
      3. PCB 的其他部件组装错误
    2. 制造模块错误

    我认为最有可能是模块下的回流问题。 我没有看到这种症状的问题。  但是、错误回流可能会产生许多奇怪的间歇性故障。 请使用 X 射线或 BGA 检查凸轮并检查 PCB 上模块的焊接情况。

    1月

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

    您好!

    不幸的是、我们花了2周的时间才能全面了解情况。

    硬件在构建之间没有变化。 实际上、我们已经使用 CC3120MOD 和 CC3220MOD 器件完成了大约12个月的开发工作。 在 CC3120MOD 器件上、连接方面没有太多问题。 我们在6层 PCB 上具有稳定的电源、良好的信号完整性、良好的旁路等。 唯一改变的是一批 CC3120器件。

    列表中有第三个选项、这是 TI 软件中的故障、它会导致 CC3120模块在编程期间停止使用 ACK 进行响应、或者存在一些其他缺陷、使其无法处理发生的任何错误情况。

    我设计了一段代码、如下所示、允许我在固件控制下对器件进行编程。 在调用器件上的 sl_Start()期间,我们无法使用 UniFLASH 进行编程,我们得到错误 SL_ERROR_FS_corrupted_ERR;

    这种方法有两个问题。

    我必须使用 UniFLASH 读取器件、生成 UCF、然后将 UCF 嵌入到代码中、从而创建适合每个 CC3120MOD 器件的新固件二进制文件。

    2.我正在使用4096字节的块调用 sl_FsProgram。 考虑到铀转化设施的规模,我有大约3KB 的剩余数据。 在发送完所有数据之前、sl_FsProgram 返回0 (编程成功)。 我将发布有关此内容的新帖子。

    在固件控制下对器件进行编程后、如果我尝试使用 UniFLASH 对器件进行编程、则文件系统会损坏。 在过去的48小时内、我已经让 CC3120MOD 运行了我们的持续集成测试、包括循环通电和无故障文件写入。 如果是 PCB 问题、我认为它会出现。

    谢谢

    固件刷写代码:

    void vCC3X20_SM_LoadImage (void)
    {
    
    //默认块大小
    #define programming_chunch_size 4096
    
    LUint32 u32UCFSize;
    LUint32 u32ProgramChunkSize;
    LUint8 * pu8DataBuffer;
    Lint32 slRetVal;
    LUint8 u8ExitFlag;
    
    //指向编程映像
    pu8DataBuffer =&lpcba486r0_Programming[0];
    u32UCFSize = 60chunk;
    
    //初始条件
    slRetVal = 0;
    u8ExitFlag = 0;
    
    //初始大小,这将随着剩余
    的 Programu32ChunkSize = 4096而改变;
    
    执行
    {
    //当剩余的缓冲区大小为零时,对最后一个块进行编程并退出。
    if (u32UCFSize =0)
    {
    //设置退出标志、这样、在对最后一个块进行编程后、我们就会退出此循环。
    u8ExitFlag = 1U;
    }
    
    //执行程序,不要使用键。
    slRetVal = sl_FsProgram (pu8DataBuffer、u32ProgramChunSize、NULL、0);
    if (slRetVal = sl_API_ABLETED)
    {
    //错误、退出
    中断;
    }
    否则、如果(slRetVal ==0)
    {
    //在本例中、FsProgram 返回0、表示所有数据都已编程
    (如果(u32UCFSize!= 0)
    {
    //这是一个大错误、这意味着 FsProgram 返回0 =成功、但我们没有对整个文件进行编程。
    //为什么会发生这种情况? 最后3KB 数据有什么问题、为什么不需要对其进行编程?
    
    //现在只需退出,现在确定为什么要发送剩余的数据。
    break;
    }
    else
    {
    //无论怎样都退出,现在
    是 break;
    }
    
    
    }else
    {
    //我们很好,slRetVal 的值随着编程的大小递增。
    //它不返回最后一个编程块的大小,而是一个累加值。
    
    //增加数据缓冲区指针
    pu8DataBuffer += 4096;
    
    //检查图像大小
    if (u32UCFSize >=4096)
    {
    //减去下一个块。
    u32UCFSize -= 4096;
    
    //保持块大小
    u32ProgramChunkSize = 4096;
    }
    否则
    {
    //我们有余数,处理
    u32ProgramChunkSize = u32UCFSize;
    
    //立即清除文件大小,这将用于检测退出。
    u32UCFSize = 0;
    }
    
    
    
    }}}{while (u8ExitFlag = 0U)};
    
    } 

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

    您好!

    我仍然认为、对您的问题的最佳解释是焊接问题。 但因为我从未见过这样的问题,所以我可能会错的。 Uniflash 编程由 ROM 引导加载程序完成。 ROM 是模块内部 QFN 芯片的一部分、未更改。 TI 支持人员可能会对您的案例中可能出现的问题有额外的了解。

    同时、请提供有关您问题的一些统计数据。

    • 您在第二批生产中生产了多少台设备?
    • 有多少器件无法正常工作(Uniflash 无法编程)、有多少器件正常工作?
    • 您在第二个制造批次中已经/未能编程的模块数量。

    1月

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

    您好!

    您遇到的所有错误似乎都指向了访问闪存时出现的问题。

    它看起来肯定像是闪存或闪存接口(SPI)问题。

    请验证接口。

    我们仍在等待您对 Jan 问题的答复。

    谢谢、

    Kobi

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

    您好、Jan、

    很抱歉耽误你的时间。  

    在哪里可以找到 CC3120器件上的批号?

    我们还在昨天组装了第二个设计、完全不同的电路板设计、仍在使用 CC3120MOD。 希望我能在本周对此进行加电、看看它是否也有同样的问题。

    谢谢。

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

    高脚部、

    您以前能够对电路板进行编程、但现在却不能肯定地指出硬件问题。

    不过、根据我在本主题中看到的内容、我的想法如下:

    1) 1)如果要尝试将问题与正在使用的 UniFlash 版本进行解耦(假设您成功使用了 v5.1之前的版本)、则可以在此处下载该工具的早期版本:

    http://processors.wiki.ti.com/index.php/Category:CCS_UniFlash_Release_Notes_Archive

    2) 2)您从 ImageCreator Capture 获得的原始 Saleae 看起来可以一直到获取器件的存储信息。 看起来、器件不会看到0x31命令、而是得到0x3A。 似乎会导致器件响应但响应不合理的问题。 该工具会确认响应、但会返回到"Get Version"信息命令。 但是、器件无法恢复。  请注意、您在 UART 线路上看到的内容应遵循《嵌入式编程指南》中所述的引导加载程序协议。 请参阅第5.3节(http://www.ti.com/lit/swpa230)。   

    我不确定此处的明显错误是否是问题的根源、但它似乎是 ImageCreator 工具挂起的地方。 同样、您也可以返回到该工具的较早版本、看看您在与 PC 一起使用的 UART 上是否获得了相同的行为。

    3) 3)查看嵌入式编程尝试的结果、数据如何发送到 SimpleLink 器件似乎存在问题。 您收到的错误为:

    接收到的错误:错误编号=-10275,扩展错误=3904

    这表示在解析 UCF 文件开头的表时出现问题。 如果您在 UCF 文件中查看偏移量0x00000000和0x00000040 (使用类似 HxD 的工具)、您应该会看到数据、其中开头是 D4 C3 B2 A1、结尾是1A 2B 3C 4D 引导加载程序正在查找这些标记、如果它们不在器件预期的位置、则会将错误置于上方。

    查看发送此数据的主机的逻辑捕获可能会有所帮助。 我认为、您还可以从设备中提取日志、同时尝试运行此过程以验证错误发生的位置。  http://processors.wiki.ti.com/index.php/CC3120_%26_CC3220_Capture_NWP_Logs

    4) 4)最后、关于使用硬件进行的测试、以尝试查看最新批次中的特定器件是否存在问题、如果您可以进行 ABA 交换、将会有所帮助。 取出一块正常的电路板、卸下该器件、然后在出现故障的电路板上更换该器件。 然后从故障电路板上取出器件、并将其放在正常电路板上。 查看该问题是否出在器件或电路板上。 当然、这需要您拥有一个好的板。 如果您仍然可以使用 ImageCreator 5.1对其进行编程、则获得其中一个可能会非常有助于确定问题。

    此致、

    本·M

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

    谢谢 Ben、

    我们可以连接 UniFLASH 或 EmbeddedProgramming。 当我们尝试刻录映像时、工具会锁定并擦除文件系统。 我已经尝试过可用的每个版本的 UniFLASH、还使用了 EmbeddedProgramming 和一些自定义 Python。 在自定义 python 中、我也不会获得预期的 ACK。  

    2.我可以从主机 CPU 内对器件进行编程、目前我们已使用此方法将客户样本发送出去。

    3.如前所述,我们正在为新产品开发新的电路板。 我将尝试为您提供合适的逻辑采集、NWP 日志和您所需的任何其他信息。

    4、这里有一个很好的器件、我们将器件交换到了另一个电路板。 故障随器件移动。

    很可能是硬件问题、但接口非常简单、两条串行端口线路、一条接地和一条 SOP2短接。 为了尝试并排除这种情况、包括信号完整性问题、我们使用了从几乎直接焊接到电路板的 Launchpad 到 FTDI-USB 转换器、再到老式 PC 串行端口适配器的所有功能。

    希望本周晚些时候或下一周晚些时候、我还没有关于捕获的时间范围。

    谢谢。

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

    您好!

    您是否取得了任何进展(或捕获了 NWP 日志)?

    BR、

    Kobi