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.

[参考译文] CC2650:在 MCU 和 SCE 代码之间共享 SPI

Guru**** 2595805 points


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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/607479/cc2650-sharing-spi-between-mcu-and-sce-code

器件型号:CC2650

您好!

我正在实施 BLE 应用、在该应用中、我使用 SCE 中的 ADC 读取模拟传感器、并将数据流写入 SPI FRAM。 我正在从主内核读取 FRAM 中的数据并通过 BLE 进行传输。  

当通过 Sensor Controller Studio 使用时、SCE 能够写入 FRAM、但当我从 TI-RTOS 上下文运行任务时、SCE 不会向 FRAM 写入任何内容。 我猜、一旦在 TI-RTOS 中初始化 SPI 外设、相同的引脚就不能被 SCE 位拆裂以写入 FRAM。 是这样吗? 如果是、我们如何在 TI-RTOS 上下文中的 SPI 外设驱动程序和 SCE 位拆裂 SPI 驱动程序之间共享相同的引脚?  

以下是我的代码的粗大算法

1. RTOS 线程已初始化

2. SPI_Init()

循环{

3.启动 SCE 任务

a.读取传感器数据

b.通过 SPI 写入 FRAM

4. SPI_Open ()

5.从 FRAM 读取数据

6. SPI_CLOSE ()

7.通过 BLE 传输数据

Niraj

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是否有人对此作出反应?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    当您在从 SCE 访问引脚时使 SPI 驱动器保持关闭状态时、它是否起作用? 我的理解是,您不能同时使用 SPI 驱动程序和 SCE,因为在调用 SPI_open()时,SPI 驱动程序会从 GPIO 单元去耦所选的 SPI 引脚,并将它们路由到 SPI 外设。 读取和写入将不会产生影响。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Richard、

    不可以、每次完成 SPI 通信时、SPI 驱动器都会关闭 M3内核。 请注意、SCE 和 M3内核不会同时访问 SPI 引脚。

    我假设在我们执行 SPI_CLOSE ()时,分配给 SPI 驱动程序的引脚(在 SPI_Init()期间)被释放,并且它们假定 PIN_Init()期间提供的 GPIO 配置。 我的假设是否正确?

    如果没有、在我切换到 SCE 之前、如何从 M3内核中的 SPI 外设中释放引脚? 以便 SCE 可以使用它与 FRAM 进行通信。

    此致
    Niraj
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    关闭 SPI 驱动程序后,您需要为希望 IO 引脚使用的 SCE 任务调用 scifReinitTaskIo()。 您可以在 SCIF.h/c 中的 Sensor Controller Studio 生成的接口代码中找到此函数