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.

[参考译文] CC2538:SPI 闪存连接

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1435737/cc2538-spi-flash-conneciton

器件型号:CC2538
Thread 中讨论的其他器件: CC2530

工具与软件:

大家好、团队成员:

我计划将 CC2538与 IS25LP128-JBLE 闪存连接。 我想将其用作编程闪存。  
我已进行以下连接:


PA2:CLK

PA3:CS#

PA4:迪

PA5:执行

您能否确认这些线路上的连接是否正常、或者闪存是否有特定端口可连接?

谢谢、此致。

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

    您好、Saira:

    这些引脚可用于 ROM 串行引导加载程序。 如果您不需要该功能、则可以将其用于存储器器件。 SPI 信号可以路由到任何 GPIO 引脚、因此、如果更方便或您需要与引导加载程序进行 SPI 通信、您可以选择任何其他 IO 集。 有关配置内部多路复用器以将信号从外设路由到 IO 的信息、请参阅技术参考手册(www.ti.com/.../swru319c.pdf)的第9章。

    此致、

    周杰

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

    你好、杰克、
    感谢您的快速响应。
    我对引导加载程序有一些疑问。

    我需要将我的程序保存在外部 SPI 闪存中。 上电时、我希望微控制器从 SPI 闪存中获取程序。  

    我有以下问题:

    我是否需要对引导加载程序进行编程以查找 SPI 闪存以便将程序加载到器件闪存中?  
    2.如果未通过 SSI/UART0对引导加载程序进行编程并且内部闪存中没有映像、则 ROM 引导加载程序在哪里查找默认外设?
    3. 能否通过 SPI 与引导加载程序建立通信? (有关 CC2538的 ROM 引导加载程序的文档提到了 SSI 和 UART0)

    谢谢、此致。

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

    尊敬的 Saira:

    1)基于 ROM 的串行引导加载程序支持擦除和写入闪存的功能。 如果您需要在启动时从闪存加载数据、则需要开发您自己的自定义引导加载程序。   有关支持的引导加载程序功能、请参阅 www.ti.com/.../swra466e.pdf。

    2) 2)请参见2.3.3 (来自 https://www.ti.com/lit/ug/swru333a/swru333a.pdf:) 
    "引导装载程序选择外部器件访问的第一个接口。 选择后
    无效接口(UART0或 SSI0)的模块时钟被禁用。 来切换到另一个
    接口时、CC2538必须被复位

    3) 3)是的、SSI 接口支持 SPI 和类似的串行协议。

    BR、

    周杰

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

    尊敬的 Saira:

    ROM 引导加载程序不会与外部 SPI 闪存设备连接、因此您需要两个 CC2538项目:

    • 映像引导管理器应用程序、从器件启动开始、读取其自身的内部闪存和外部 SPI 闪存、确定哪个区域包含有效且更新后的功能应用程序、并在跳转到主应用程序之前复制外部闪存或维护内部闪存。
    • 主应用程序存储在器件上、也可以存储在外部闪存上、具有一个已知的标头位置、其中包含更新版本、类型 等的值

    Z-Stack 3.0.2中提供了一个这样的示例 、用于 OTA 目的。  但是、CC2538示例支持片上 OTA (也称为双映像)、而只有 CC2530支持片外 OTA (使用外部闪存)以进行开箱即用演示。  因此、需要进行进一步的更改和开发才能实现您的用例。

    此致、
    Ryan

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

    尊敬的

    非常感谢您的及时响应。 感谢您的耐心。

    或者、此应用实现是否可能?

    在复位/上电时使用 CC2538器件引导加载程序、并指向 SPI 闪存中的应用程序、而不是器件闪存中的应用分区。
    我已 按如下方式建立硬件连接:

    1.器件闪存引导加载程序代码是否可以指向外部 SPI 闪存地址而不是器件闪存应用程序分区?  
    2.上述应用的硬件实现方式和注意事项是什么?  
    3、  上述应用的软件实现和注意事项有哪些?  

    谢谢、此致。

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

    无法使用存储在外部 SPI 闪存器件上的应用程序代码来操作 CC2538。  应用程序代码必须复制到内部器件闪存。

    否则、考虑到使用前面提到的 TI 资源 作为参考、进行定制的闪存引导加载程序开发、您的设计是可行的。

    此致、
    Ryan

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

    Ryan、感谢您 进行澄清。

    此外、我还有几个问题、

    1.开发自定义闪存引导加载程序时、如果使用 UART0加载引导加载程序、此时会禁用 SSI0端口?  
    2.在 CC2538中刷写自定义引导加载程序后、SSI0可用于 SPI 闪存、UART0端口可用作外设?
    3.引导加载程序将位于器件闪存本身中还是外部闪存中?  
    硬件连接对于我使用引导加载程序自定义以及将这些线路用于 SPI 和 UART 协议是否可行?



    感谢您的耐心。  

    谢谢、此致。

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

    1.由于是在开发自定义的闪存引导加载程序、因此可以决定是启用还是禁用 SSI0端口。
    2.同上
    3.设备闪存
    4.我不知道硬件连接的直接问题。

    我想问一下、为什么要评估传统的 CC2538而不是较新的 SimpleLink F2 (CC13X2/CC26X2)器件?

    此致、
    Ryan