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.

[参考译文] CC3100:无法打开文件将服务包文件写入 sFlash

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1014953/cc3100-failure-to-open-file-to-write-service-pack-file-to-sflash

器件型号:CC3100
主题中讨论的其他器件:、 、UNIFLASH

我有一个具有 CC3100和 sFlash 的定制板、我已将 simplelink 驱动程序移植到我的环境中。  在我之前打开的相关线程中、我无法格式化 sFlash (ACK 是0x00 0x80而不是0x00 0xCC)。

我已将 CC3100 MODBOOST 刷写到另一个板以进行比较。  在 MODBOOST 上、格式化完成后、它还返回0x00 0x80。

现在、我允许我的代码将0x00 0x80视为格式的 ACK。  之后、我将器件重置为 STA 模式并尝试发送写入服务包文件。

在 MODBOOST 上,sl_FsOpen()成功,我可以编写服务包。

但是,在我的定制板上,sl_FsOpen()失败,错误代码为-49,我无法发送服务请求文件:

   s32WifiResult = sl_FsOpen (
                       "/sys/servicepack.ucf "、
                       FS_MODE_OPEN_CREATE (LEN_128KB、_FS_FILE_OPEN_FLAG_SECURE|_FS_FILE_OPEN_FLAG_COMMIT|_FS_FILE_PUT)、
                       null、
                       (_i32*)和 s32Handle);

随附的是来自某种格式的 NWP 调试日志、并尝试打开用于服务请求更新的文件:

e2e.ti.com/.../3348.cc3100_2D00_debug.zip

我们的 sFlash 是 GigaDevice GD25D80C、我们相信 CC3100能够访问该器件并正确识别它。

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

    您好!

    感谢您使用 CC3100MODBOOST 进行测试、您应该知道、当您使用 CC3100MOD EVM 时、您将获得正确的行为并可以编写服务包。 因此、您在主机 MCU 上的代码应该可以正常运行。

    此时、由于 CC3100MODBOOST 工作正常、定制板上似乎存在一些硬件问题。

    是否可以将 GigaDevice 串行闪存部件更换为此已知良好的列表中列出的串行闪存部件之一? 有关列表、请参阅串行闪存指南的表8: https://www.ti.com/lit/an/swra657/swra657.pdf

    我强烈怀疑串行闪存是问题的原因。

    此致、

    Michael

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

    GD25D80C 支持串行闪存指南第7.2节中提到的所有命令。  什么会导致您认为由于闪存类型而存在"硬件问题"?

    串行闪存指南中列出的8Mbit 器件全部不可用(已停产、已淘汰或其他)。

    您能否提供另一个常用和经过验证的器件列表、特别是具有与此匹配的 BGA 封装(8-XFDFN 外露焊盘封装、8-USON (1.5x1.5)供应商器件封装)的器件列表:
    https://www.digikey.com/en/products/detail/gigadevice-semiconductor-hk-limited/GD25D80CKIGR/9598058

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

    您好!

    对于其他经过验证的器件、CC3220和 CC323x 器件的串行闪存指南中还列出了一些其他器件:

    https://www.ti.com/lit/an/swra515/swra515.pdf

    https://www.ti.com/lit/an/swra613b/swra613b.pdf

    话虽如此、我认为在此阶段、对硬件进行全面审查、以排除导致您问题的任何其他可能硬件原因将是很好的。 请访问此站点以填写硬件审核请求。 我的一位同事将在您提交所需信息后审查您的硬件设计:

    https://www.ti.com/tool/SIMPLELINK-WIFI-DESIGN-REVIEWS

    此致、

    Michael

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

    我们将尝试对板进行返工以使用 AT25SF081。  我将告诉您这是如何实现的。

    同时、我将提交一份原理图审阅申请。

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

    当然、让我知道新的串行闪存部件是否会在您的定制板上产生不同的行为。

    此致、

    Michael

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

    新的串行闪存器件未导致任何更改。  格式化闪存后、尝试打开服务包文件时、仍然出现错误-49。

    在原理图审阅中、与闪存相关的唯一注释如下:

    我有哪些第二级支持选项?  或者是否可以雇用 TI FAE 进行调查?

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

    大家好、Michael、我们预计将使用许多 CC3100器件投入生产、但如果我无法在这个问题上取得进展、我们将不得不考虑改用另一个器件。  我需要后续步骤或支持升级。

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

    尊敬的 Patrick:

    我不是 TI 员工、但有一些提示:

    • 您的嵌入式编程文件是否使用适当大小的文件(对于 AT25SF081为1MB)创建?
    • 您是否已检查 CC3100和 sFlash 之间的 SPI 线路的完整性(使用具有有源探头的示波器、然后监听与逻辑分析仪的通信)?
    • 您是否将编程后的 SPI 闪存内容与 CC3100MODBOOST 闪存中的内容进行了比较?
    • 您是否有信誉良好的分销商提供的 SPI 闪存? 因为市场上有许多假冒 SPI 闪存(我无法提供更多详细信息)。

    1月

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

    您好、Jan、

    • 我报告的错误发生在调用 sl_FsOpen()时。  这是在尝试写入数据之前进行的。  此时文件的长度不相关。
    • 是的、我们已将串行闪存 SPI 总线的范围限定为信号和数据完整性。
    • 比较闪存内容毫无意义、因为错误发生在尝试写入数据之前。
    • 我们从 DigiKey 采购器件。  是的、他们声誉良好。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Patrick:

    逻辑分析仪在 SPI 闪存的线路上看到了什么? 通过分析 SPI 闪存命令、您可以获得线索。

    1月

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

    我们看到 CC3100读取了闪存 ID、读取了状态寄存器以及其他活动。  该问题记录在该过期的其他相关主题中:

    e2e.ti.com/.../3686444

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

    尊敬的 Patrick:

    Michael 不再在 TI 工作。 我目前已将您的主题重新分配给我、并将在需要时与我们团队的另一名成员联系、继续提供支持。

    似乎新串行闪存设备的情况与原始问题相同。 我返回并查看了您提供的原始 NWP 日志。 实际上、器件在串行闪存上看不到有效的文件系统。 启动时、器件未检测到有效的文件系统标头、并且无法将文件表加载到存储器中(如 此处的 POST 中所述)。 此后、每次器件尝试从串行闪存读取持久性设置或固件时、都会出现错误、因为"no_device_is 已加载"。  

    在您尝试打开服务包文件之前、您甚至会看到一个常规异步错误。 请确保已准备好事件处理程序来检测此情况。

    实际上、问题似乎在于格式化过程。 我不确定您正在执行的操作是否有效。 我将稍微回顾一下您的另一个主题、看看是否有其他有用的详细信息。

    请注意、尽管硬件审阅中的其他反馈与串行闪存接口没有直接关系、但这并不意味着您的硬件正常。

    此致、

    Benjamin Moore

    Wi-Fi 应用管理器

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

    Benjamin、感谢您的回答。  我期待您的进一步审核结果。  我相信我已经连接了异步错误处理程序、因为我在开发过程中确实看到了它的出现。

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

    尊敬的 Patrick:

    要验证格式化过程是否存在问题、您能否尝试连接到 CC31xx 的 UART 并通过 UniFlash 3.x 进行初始格式化?

    谢谢、

    本·M

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

    无法立即访问 UART、但我将尝试该实验。

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

    Benjamin、我能够从其他几个引脚将串行连接到 CC3100、并发现格式有效而感到震惊。  它在两块板上工作、一个板带有未经批准的 sFlash、另一个板经过返工使用批准列表中的一个板。

    此外、现在 sFlash 已格式化、我可以成功写入服务包文件、而且向 CC3100发送命令时不会出现错误、导致它与 sFlash 交互。

    看来未格式化的 sFlash 一直是问题所在。  我的下一步是捕获一些串行流量、以确定 UniFlash 的过程与我编码的过程之间的差异。

    我注意到 UniFlash 能够通过引导加载程序检索有关该器件的大量信息、您是否有详细介绍这些命令和响应的文档?

    [16:38:09] INFO: DEVICE CC3100 ES1.33
    [16:38:09] INFO: reading version info
    [16:38:09] DEBUG: Bootloader version is 2, 0, 4, 0
    [16:38:09] DEBUG: BlockSize is 4096, number of blocks is 16
    [16:38:09] DEBUG: erasing 13 blocks starting from  0

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

    尊敬的 Patrick!

    好消息。 此处显示的信息应仅是我们的嵌入式编程工具指南中记录的 Get Version 命令的结果:

    www.ti.com/lit/swru577

    此致、

    本·M

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

    谢谢、Benjamin、我期待尝试这些命令。  不过、我看不到此处记录的格式或断开命令。  我有命令数据、但其他地方是否记录了这些命令的命令格式?

    此外、UniFlash 显然检测到我的 SRAM 有16个大小为4096的块、并在尝试擦除 sflash 之前使用 Raw Storage Erase 命令擦除其中的13个块。  我是否还需要擦除 SRAM 并进行0xffffffb 字节的存储写入?  如果是、您能否提供我应该写入 SRAM 的映像?

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

    Benjamin、看起来我已经解决了这些问题、现在可以格式化 sFlash 并编写服务包。 我的流程中出现了几个错误、这些错误阻碍了格式的成功。  感谢你的帮助。  能够证明它适用于 UniFlash 是最大的帮助。

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

    啊,好消息! 对我上次答复中的滞后表示歉意。 这是我的队列中的一个循环。

    我很高兴听到它正在工作。

    此致、

    本·M