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.

[参考译文] RTOS/CC2640:OAD 期间的多个 SPI 芯片选择

Guru**** 2561910 points
Other Parts Discussed in Thread: CC2640, CC2650

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/569718/rtos-cc2640-multiple-spi-chip-select-during-oad

器件型号:CC2640
Thread 中讨论的其他器件: CC2650

工具/软件:TI-RTOS

我正在使用 CC2640 4x4定制板、ble_sdk_2_02_01_18、CCS 6.2、XDS 200调试器、

BTool v1.41.16、simple_peripheral_lp_app。

定制板具有两个 SPI 从器件、一个用于外部闪存、另一个用于传感器测量。

我正在通过定制板运行 simple_peripheral 的纯净副本。 我将同时查看 SPI

示波器上的芯片选择信号。

BTool 显示了正在传输的 OAD 块、但始终使用具有 clean simple_peripheral 的 OAD

以 CRC 错误结束。

示波器显示外部闪存芯片选择始终置为低电平。 另一个 SPI 从器件芯片选择是

大部分为高电平、但在 OAD 期间也会生效。 是否有办法防止这种情况? 代码片段

谢谢。

谢谢、

Priya

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

    在 ExtFlash.c 中、请参阅函数 extFlashSelect。 此调用 PIN_setOutputValue (hFlashPin、Board_SPI_FLASH_CS、Board_FLASH_CS_ON);Board_SPI_FLASH_CS 对应于特定引脚、如 CC2650_LAUNCHXL.h 中设置的那样 您应该检查以确保这是所需的引脚。

    -弥敦
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    弥敦--
    正如我说过的、OAD 块是通过 BTool 发出的。 我认为这是可能的
    仅当正确选择外部闪存时。

    ExtFlash.c 中的所有引脚定义语句都会打开正确的定制板文件。

    C:\ti\simplelink\ble_sdk_2_02_01_18\src\examples\util\bim_extflash\cc2640\board\cc2650lp\bsp.h
    此处已正确输入定制板引脚。

    定制板有自己的独立目录、我有
    用于选择它的预定义符号。 该文件的链接在 CCS 中按预期工作。

    C:\ti\simplelink\ble_sdk_2_02_01_18\src\boards\CC2640_Custom\CC2640_Custom.c


    如果仍然存在由应用程序引起的引脚冲突、则其位置不太明显。

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

    BTool 只需向目标器件发送块、并等待通知、请求接收下一个块。 这只是意味着目标器件能够成功地将块写入外部闪存、这并不意味着它被写入您所期望的引脚。 如果您遇到 CRC 错误、则块可能未写入正确的位置。

    -弥敦
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    SPI 引脚定义在任何地方都很好。 我已确保 SPI 硬件属性
    定义与 LP 板级配置文件相同、因此问题得以解决。
    OAD 正在定制板上工作!

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

    您好、Priya、

    您能否解释为什么更改硬件属性可以解决此问题? 您应该能够使用与 LP 不同的 attrs、并且可以接受。

    这是否是我们的代码或您的定制板级配置文件的问题?

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

     我一直在想我是否应该重新打开 OAD 帖子。 我标记它时

    Thread 回答说、OAD 在定制电路板上工作、我能够进行连接

    传感器。

    几天后再次尝试 OAD 时、它不再起作用。

    编辑 SPI HW 属性将显示正确的 SPI 芯片选择变为

    在示波器上处于活动状态。 在这之前、两个从器件芯片选择都是

    即使使用干净的 simple_peripheral 文件也会打开。

    在定制板上运行 simple_peripheral 的干净副本、BTool

    显示了所有正在发送的 OAD 块。 最后、它无法完成

    OAD 成功(附带屏幕截图)。

    示波器确认其他 SPI 从器件在 OAD 进入的整个时间内处于关闭状态

    过程。 当时、外部闪存芯片选择可能未被置位

    所需的所有组件

    请告诉我、您是否有用于缩小此问题范围的指针/方法

    更进一步。 上一帖子中列出的文件中的所有自定义电路板引脚

    已检查并正确分配。

    谢谢、

    Priya