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/CC1310:如何通过两个 GPIO 引脚控制多种工作模式的切换

Guru**** 2551110 points
Other Parts Discussed in Thread: CC1310

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/790451/rtos-cc1310-how-to-control-the-switching-of-multiple-working-modes-by-two-gpio-pins

器件型号:CC1310

工具/软件:TI-RTOS

您好,团队

我的项目需要实现这样一个功能:四个运行模式由两个引脚控制。

我在执行过程中遇到了几个困难:

我将四种代码模式放置在同一任务中、并不断轮询引脚电平,如(读取(pin1)读取(PIN2))执行某些操作;由于我的 UART 使用阻塞模式、因此该任务无法在引脚切换时检测到电平变化、因此这毫无意义。

如何使用两个引脚控制模块实现进入和退出关断模式的逻辑?

我的方法可能不合理。 你有什么好主意吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能否详细说明一下为什么要像这样实现它、为什么要定义类似这样的模式?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、ter,
    我们的要求与此类似、目的是使该模块更具通用性和灵活性、以适应不同场合的需求。这也是一种常见的无线模块类型。

    前两种模式适用于 UART 和 RF 应用、区别仅在于前导码的长度。第三种模式是在保持无线数据接收的同时节省功耗。 此时,串行端口只能打印数据。第四种模式可实现产品的最低功耗。

    但是、我认为在不同模式之间切换时需要考虑很多因素、例如引脚选择方法是中断还是轮询。它是通过一个任务还是多个任务完成的?您能否根据我的问题提供一些良好的实施方案?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我想我的应该是:为什么您希望模式开关在两个引脚上的电平完成、而不是通过软件/其他输入完成?

    这是否意味着您计划使用一个主 CPU 来控制 CC1310、如果需要、为什么您需要这样做、因为 CC1310是一个无线 MCU?

    我认为您必须具有单独的引脚才能关断。 此外、轮询引脚的效率较低、基于中断(边沿)更好。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、软件控制切换会更好、但我们的客户需要是这样的。 我们在外部使用 MSP430微控制器来控制 CC1310。 我们的外设功能更多、因此只有一个 CC1310无法满足要求。 它仅用于实现无线传输。

    您是否意味着无法使用两个引脚控制关断、只能使用一个引脚?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    出于好奇、您是否因为需要补充 MSP430而耗尽了 IOS?

    请参阅 www.ti.com/.../swcu117h.pdf:中的11.11.3 IOC 寄存器
    10:如果此焊盘变为低电平、则从关断状态唤醒。
    11:如果此焊盘变为高电平、则从关断状态唤醒

    这意味着您无法设置两个引脚必须同时处于高电平才能进入关断状态。 您必须为此使用专用引脚。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、ter,
    IO 就足够了、只需使用引脚来控制多种运行模式即可。 UART 阻塞任务是一个大问题。 当我检测到电平变化时、如何取消 UART 阻塞操作?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以调用 write_chancel、检查 UART 驱动程序。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我有一个问题、我们的官方信息说 WRITE_CHANCEL 只能在回调模式下使用、阻止模式也可以生效?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我不确定这里的文档是否正确,您能否尝试 write_cancel(),看看这是否正确?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    实际结果是它能正常工作。谢谢您!