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.

[参考译文] CC2745R10-Q1:通过 SPI 第一个字节延迟的 ROM 引导加载程序

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1479110/cc2745r10-q1-rom-bootloader-through-spi-first-byte-delay

器件型号:CC2745R10-Q1

工具与软件:

是否有通过 SPI 连接 ROM 引导加载程序主机的示例? 我的客户在通过 SPI 使用 ROM 引导加载程序时遇到问题、我从 TRM 中了解到、在将 SPI 用作 ROM 引导加载程序的接口时应注意第一个字节、但我仍然不清楚以下问题:

在使用 SPI 时、主机是否仍需要发送0x55 0x55?

2.主机应作为第一个字节发送什么? ping 命令(0x03 0x20 0x20)是否应用作第一条命令?

3. TRM 建议在第一个字节之后添加一个延迟、这是否意味着我应该发送0x03 0x20 0x20作为第一个命令并在0x03和0x20之间添加一个延迟?

4.建议延迟多久?

此致、

沭阳县

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

    您好、沭阳、  

    遗憾的是、没有 SPI 串行引导加载程序示例工程。  

    1./2. SPI 串行引导加载程序无需发送0x55 0x55命令即可启动 SBL。 0x55 0x55命令用于初始化 UART 的自动波特检测。 当 SBL 收到 SPI 数据包(ping 命令)时、SBL 需要一些时间来切换到 SPI 模式、因为默认为 UART。 为此、可使用 ping 命令、而不是0x55 0x55。 参见编号2b。 在9.5.4下:  

    3.我不知道您引用的是什么命令。 您能详细说明一下吗? ping 命令为1字节(0x20)。 向主机发送0x20命令后、需要添加延迟。  

    4.通过 SPI 发送 ping 命令后、TI 没有建议的延迟。 毫秒范围内的东西很可能会起作用。 我建议尝试5ms 或客户希望使用的延迟等数字。 如果可行、不需要优化、那么很好。 如果客户想要优化延迟、则将延迟减少一半、然后重试。 这有点像猜测和检查情况。  

    请告诉我这是否有帮助!

    谢谢!  

    Isaac

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

    尊敬的 Isaac:

    对于1和2、我没有其他问题。

    对于3、0x03 0x20 0x20是 ping 命令的完整串行数据包:

    大小 校验和 命令
    0x03 0x20 0x20

    我的问题是、我应该在0x03之后还是在整个数据包之后添加延迟?

    此致、

    沭阳县

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

    尊敬的 Isaac:

    客户尝试在0x03和完整命令(0x03 0x20 0x20)之后添加5ms 延迟、但两者都不起作用。

    他们还尝试了 CC2340、同样无法正常工作。

    您能否提供有关使用 SPI ROM 引导加载程序的分步指南?

    SPI 应该设置为 MSB 在前还是 LSB 在前?

    此致、

    沭阳县

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

    您好、沭阳、  

    1. ping 命令为1字节、只需包含0x20命令。 SBL 器件将不会读取第一个字节、但会在接收到 ping 后开始配置 SPI SBL。 请尝试发送 ping 命令(0x20)。

    2.我在初始的反应里提到过、TI 没有推荐的延迟 尝试100ms、但如果这不起作用、请尝试增加延迟。  

    研发团队正在创建一个 UART ROM SBL 示例。 该示例没有时间表、SPI 不在计划范围内。 这是因为 SPI ROM SBL 需要额外的硬件来向器件传达 SPI 命令。 由于市场上的这些器件有很多种、并且实施可能因具体器件而异、因此 TI 很难创建示例工程。  

    我将首先通过 MSB 或 LSB 与您联系。  

    谢谢!  
    Isaac

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

    尊敬的 Isaac:

    我对 ping 命令是1字节的结论深表怀疑。 从 TRM 来看、所有通信使用都使用 这些定义明确的数据包、包括 SPI 和 UART。 我很确定 UART ping 命令是3字节、从 TRM 来看、我还认为 SPI ping 命令也是3字节。

    此外、尽管 CC27xx TRM 中未指定、但 CC26xx TRM 明确指定了 COMMAND_ping 数据包中的字节为3:

    团队中是否有人测试了 SPI 接口? 我们需要有效的指导来支持这一点、客户已经在这方面停留了几天、这对他们来说是一个紧急情况、谢谢!

    此致、

    沭阳县

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

    您好、沭阳、  

    我道歉,你是对的。 命令的格式为字节数、校验和、然后是数据。 我将在下面添加一张图像:  

    另外、这些字节首先接收 MSB。 这些命令在 UART 和 SPI 之间的作用相同。 唯一的区别是 UART 使用0x55 0x55进行自动波特检测。  

    请告诉我增加延迟是否可行。 在进入命令序列之后、应添加延迟、以便在发送最后一条0x20命令之后。  

    谢谢!  
    Isaac

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

    尊敬的 Isaac:

    客户尝试在最后一次0x20之后添加延迟、范围为100ms 至2000ms、但这些延迟不起作用。 器件未响应预期的 ACK 数据包。

    您能否帮助联系团队并提供一个逻辑跟踪、演示 SPI ROM 引导加载程序的正确命令和时序? 谢谢。

    此致、

    沭阳县