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.

[参考译文] CC3200MOD:重新编程之前、器件无法连接到网络

Guru**** 2905440 points

Other Parts Discussed in Thread: CC3200, UNIFLASH, CC3200SDK

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/717156/cc3200mod-device-fails-to-connect-to-network-until-reprogrammed

器件型号:CC3200MOD
主题中讨论的其他器件:CC3200UNIFLASHCC3200SDK

您好!

我有一个 CC3200设计已经完成并已进入制造阶段。  我们遇到了一个器件、该器件已在多个网络上使用了几个月。  以前没有问题、但上次用户尝试更改网络时、设备未连接。  我们尝试重新配置、清除旧配置文件并重新输入、但仍然没有连接。 我们确保 SSID 和密码正确、因为我们成功配置了其他单元(具有相同的固件)。  

当我收到设备后、我验证了配置文件是否通过 html 页面保存(请注意、我们使用 TI 示例中的 AP 配置、输入 WiFi 配置文件的 html 小节完全相同)。  然后、我使用"删除所有配置文件"清除了该设置、并输入了我的网络的凭据。  我在我的网络上遇到了同样的问题、查看调试日志、我看到固件运行正常、只是在等待 WiFi 连接。  然后我连接了调试器(运行相同版本的固件)。  同样、我看到固件的执行完全正常、但 WiFi 连接响应从未恢复。  我第二次配置、以确保我没有输入错误信息、并再次确认问题。

我采取的下一个步骤是使用 Uniflash (同样使用相同的固件版本)对器件进行重新编程。  当我这次为器件通电并配置了相同的 AP 方法和相同的 WiFi 凭据时、该器件会立即连接到网络。

因此、CC3200 WiFi 配置文件似乎存在问题、无法连接到保存的网络配置文件。  进入调试器未清除问题、但通过 Uniflash 重新编程确实解决了问题。  

您是否在其他设备上看到过此问题?  由于 CC3200的配置全部包含在封面下面、我不确定是什么出错了、还是可以在应用程序固件中执行什么操作来防止这种情况发生。  如果您在我们发布更多现场器件之前有任何见解、我将不胜感激。  这肯定是一个非常令人担忧的问题、因为器件在不能连接的情况下被欺骗。

请注意、我们位于 servicepack_1.0.1.11-2.10.0.0上。  编译器版本为 v16.9.3.LTS。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    值得注意的是、在进入 AP 模式时没有问题、我可以毫无问题地连接到器件的网络;连接响应恢复得非常快、就像正常情况一样。 切换回 STA 模式还可以、但连接响应从未进入。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Jon、

    我们以前从未听说过我们的器件发生过类似的情况。

    要说明的是、该问题仅发生在该单个器件上? 您是否完全能够重现此问题? 很难说出可以采取哪些措施来防止再次发生、而无需更多有关问题发生方式的详细信息。

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

    到目前为止、是的、我们仅在一个器件上看到了这一点。 但我们一直在增加产量、因此我们非常担心、因为即使是很小的百分比也会对我们的产品评论产生不利影响。

    我一直在试图重复这个问题,但至今还不能。

    我想让 TI 进一步了解的关键问题是"删除所有配置文件"命令和通过 uniFlash 编程之间有何区别? 我们是否可以做些什么来扩展"删除所有配置文件"按钮清除的内容?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Jon、

    "删除所有配置文件"按钮应足以清除所有配置文件。

    您可以查看包含删除配置文件的代码的.html 文件。 该按钮使用"remove_all_profiles" POST 操作、 CC3200用户指南第12.12.3节对此进行了介绍

    如果您看一下 CC3200 SDK 中的开箱即用示例(C:\ti\CC3200SDK_1.3.0\cc3200-sdk\examples\out_for_box.html)、您可以查看 setup.html 以了解其使用方式。  

    要将新网页刷写到 CC3200、您可以使用 Uniflash 来执行此操作。  

    此致、
    Kristen

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢 Kristen 的快速回答。 我很高兴听到您确认"删除所有配置文件"应该是我们必须做的事情。 但是、这又回到了为什么 UniFlash 重新编程会修复此问题、而"删除所有配置文件"不会解决此问题的问题。 请再次注意、进入调试器(覆盖 MCU 程序)未解决问题、因此问题肯定是配置文件设置中的问题。

    用于配置文件的闪存是否有可能在不影响 MCU 固件运行的情况下损坏? 这可能是 Uniflash 会纠正的、但"删除所有配置文件"不会纠正的吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果闪存损坏、则 MCU 固件仍可运行、因为它不从闪存执行。 "删除所有配置文件"调用 sl_WlanProfileDel() API,如果闪存损坏,则可能会失败,因为它正在尝试读取/写入存储配置文件的位置。 但是、Uniflash 只会恢复闪存并完全清除任何配置文件。

    此致、
    Kristen
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢 Kristen。 我了解固件从 CC3200上的 RAM 运行、但不是在每个下电上电时从闪存重新加载? 我还没有能够再现这一问题,但想考虑缓解这一潜在情况。 请注意、这是一个电池供电的器件、因此有机会出现电流大幅尖峰、从而导致芯片欠压。 似乎 MCU 可以在 sl_WlanProfileDel()返回故障时检测到潜在问题;MCU 是否可以采取任何可能的措施来解决配置文件问题?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    只是想一下-您是否使用了自动连接或快速连接?

    是的、引导加载程序会在加电时从闪存加载。 但是、如果某些情况仅导致配置文件损坏、我不认为这会影响应用程序的其余部分。

    我相信大多数主机驱动程序 API 会在失败时返回错误代码、因此最好在您的应用程序中检查 API 是否成功返回。

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

    我一段时间内没有听到您的声音、因此我将关闭这个线程。 如果您有更多问题、请随时在此处发布、如果此主题已锁定、请打开新主题。

    此致、
    Kristen
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Kristen、很抱歉您未回复您之前的消息。 我一直在试图重现这一问题,但迄今为止我没有运气。

    我确实在我的应用中使用自动连接(sl_WlanPolicySet (sl_policy_connection、sl_connection_policy (1)、0、0、0、0、 0)、NULL、0);)

    至于主机驱动程序 API、我会对所有主机驱动程序 API 返回的任何故障执行操作。 我至少打印一条调试消息、但在大多数情况下、我会触发缓解措施、例如重试、软重置和完全重置。 在测试失败的器件时、我没有看到任何显示失败的 API 尝试的调试消息、因此我坚信主机驱动程序 API 中的任何一个都没有为我提供错误响应。 尽管如此、Uniflash 确实仍然能够纠正某些问题。

    我想考虑添加缓解措施、即使尝试缓解措施时不清楚(很可能是在"删除所有配置文件"例行程序上)。 我可以在应用程序中执行与 Uniflash 对配置文件空间重新编程类似的操作吗? 当我再次看到此问题时、我希望准备一些代码。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Jon、

    遗憾的是、您无法调用任何 API 来格式化闪存、因此您需要使用 Uniflash 来进行格式化。

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

    如果您有任何其他问题、请随时在此处发布或打开新主题。

    此致、
    Kristen