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.

[参考译文] CCS/LAUNCHXL-CC26X2R1:CC26x2 SDK 3.40.00.02 iCall 更改优先级、ADS1292R 停止发送中断

Guru**** 2815205 points

Other Parts Discussed in Thread: ADS1292, SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/876344/ccs-launchxl-cc26x2r1-cc26x2-sdk-3-40-00-02-icall-change-priority-and-ads1292r-stopping-sending-interrupts

器件型号:LAUNCHXL-CC26X2R1
Thread 中讨论的其他器件:ADS1292SysConfig

工具/软件:Code Composer Studio

您好!

我开始使用 simple_peripheral SDK 3.40.00.02示例、并创建了另一个具有最高优先级的任务、用于读取某些 SPI 传感器并通过 BLE 发送数据。

我在图中看到问题、SPI 讲座中断、而执行它的任务具有最高优先级。

在我发现当我不创建 simple_peripheral 和 iCall 任务时、它不会中断。 因此、我想知道我是否可以更改 ICall 优先级、因为当我执行该操作时、它没有更改、我在另一篇文章中读到不建议这样做。

我尝试读取的传感器是 ADS1292、有时当我通过 BLE 将器件连接到平板电脑时、它会停止发送中断。 我在传感器的数据表中看到 DRDY (数据就绪)。 发送中断的引脚)在第一个 SCLK 下降沿变为高电平、而不管 CS (芯片选择)的状态如何、也不管数据是从器件检索还是通过 DIN 引脚发送命令。 这意味着、如果我读取另一个传感器、它将被拉高?

谢谢、

此致、

Sebastian

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

    您好 Sebastian、

    我强烈建议您让 ICALL (BLE 堆栈)任务具有最高优先级。 Swi、HWI 和 NMI 软件的优先级始终高于任务、除非您运行关键段(HWI 禁用、只有 NMI 仍然可以中断)、否则会导致上下文切换。  

    您是否考虑使用传感器控制器? 它在隔离式 CPU 内核上运行:

    http://www.ti.com/tool/SENSOR-CONTROLLER-STUDIO

    http://dev.ti.com/tirex/explore/node?node=ANCoD.o46AaNIWAc.SHTsQ__pTTHBmu__LATEST

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

    Erik 您好!

    感谢您的响应、我在 Sensor Controller Studio 中执行了一个程序来读取一个传感器。

    我有4个 SPI 传感器、同时事件触发器计数最大值为3。 您知道我如何管理传感器的中断吗?

    谢谢、

    此致

    Sebastian

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

    您好 Sebastian、

    如前所述、GPIO 输入事件触发源限制为3。 一些备选建议:

    1.使用额外的 GPIO 和外部4端口与或门。 然后、您可以使用 GATE 的输出触发事件、然后读取各个中断线路以确定由哪个传感器提供中断。

    2. 按一个间隔轮询所有传感器。

    3. 在定时器2上使用捕捉(4个比较/捕捉通道)、然后让所有捕捉通道触发同一事件、该事件被用作事件触发器。

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

    Erik 您好!

    感谢您的回答。

    它的工作方式非常完美、但现在我又提出了另一个问题、在我的应用中、我有一项任务来控制 UART 通信。 当我不创建它时、我使用输出结构从传感器控制器中完美读取值。

    但是、当我创建 UART 任务时、打开 UART 0 (零)会使我在输出结构中始终读取零。

    您知道为什么会发生这种情况吗?

    此致、

    Sebastian

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

    您能否调查 UART 和传感器控制器中配置的引脚之间是否存在任何引脚冲突?

    UART TI-RTOS 驱动程序引脚在板级配置文件中设置、而传感器控制器引脚可在 Sensor Controller Studio GIU 中进行检查。

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

    感谢您的回答。

    我验证了它、并且没有冲突:

    我的理由是、当我使用 UART 时、引脚 DIO3 (一个传感器的芯片选择)不能正常工作。

    此致、

    Sebastian

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

    您似乎有冲突:

    source\ti\boards\CC26X2R1_LAUNCHXL\cC26X2R1_LAUNCHXL.h:

    #define CC26X2R1_LAUNCHXL_UART0_TX        ioID_3.      /* TXD  

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

    感谢您的回应 Erik、

    是的、我发现函数 UART_open 引用了文件 ti_drivers_conf.c (Debug/syscfg/ti_drivers_conf.c)、因此我无法进行修改、因此我创建了自己的库 UART.c 和 UART.h、当然使用了另一个名称。

    我发现了另一个错误、我希望最后一个错误是、SD 卡的问题与 UART 相同、它引用了文件 (Debug/syscfg/ti_drivers_conf.c)、但为 SDFATFS、SD 和 SDSPI 创建库需要更多的时间、还有其他解决方案?

    我需要引脚13和14来写入 SD 卡、在中(Debug/syscfg/ti_drivers_conf.c)有:

    GPIO_PinConfig gpioPinConfigs[]={

    /* CONFIG_GPIO_BTN1:LaunchPad 按钮 BTN-1 (左)*/

    GPIOCC26XX_DIO_13 | GPIO_DO_NOT _CONFIG、

    /* CONFIG_GPIO_BTN2:LaunchPad 按钮 BTN-2 (右侧)*/

    GPIOCC26XX_DIO_14 | GPIO_DO_NOT _CONFIG、

    }  

    此致、

    Sebastian

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

    您好 Sebastian、

    我认为您可以更改 SysConfig 中的引脚吗?

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

    Erik 您好!

    感谢你的帮助。 它的工作原理。

    此致、

    Sebastian