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.

[参考译文] CC1352P7:将无线电信号路由到 GPIO 时出现问题

Guru**** 2392105 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1441314/cc1352p7-issues-when-routing-radio-signals-to-gpios

器件型号:CC1352P7
主题中讨论的其他器件:SysConfig

工具与软件:

你(们)好、  
我正在尝试将射频内核单个引脚连接到 Launchpad 的 GPIO。
按照给定的说明、在本页[将射频内核信号路由到物理引脚]中、我尝试将两个信号路由到两个 GPIO 引脚、一个用于发送数据包时、另一个用于接收数据包时。


Rx 则需要寄存器的覆盖。 按照说明操作、添加了以下行来更新无线电设备设置结构:

// Overrides for CMD_PROP_RADIO_DIV_SETUP
uint32_t new_pOverrides[] = {
    // ...
    // Set the SYSGPOCTL register
    HW_REG_OVERRIDE(0x1110, RFC_DBELL_SYSGPOCTL_GPOCTL1_RATGPO1),
    (uint32_t)0x008F88B3, (uint32_t)0xFFFFFFFF};

和使用了以下 GPIO 配置和引脚多路复用:
        // Rx GPIOs:
        RF_cmdPropRadioDivSetup.pRegOverride = new_pOverrides;
        GPIO_setConfigAndMux(CONFIG_GPIO_RRX_DBG, GPIO_CFG_NO_DIR,
                             IOC_PORT_RFC_GPO1);

其中 CONFIG_GPIO_RX_DBG 在 SysConfig 中定义和多路复用。

TX 、根据[将射频内核信号路由到物理引脚]中提供的表、 RAT_GPO0应该是无线电创建的信号、因此我只需要将其引脚多路复用为 GPIO 引脚、如下所示:

        GPIO_setConfig(CONFIG_GPIO_RTX_DBG,
                       GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW);
        GPIO_setConfigAndMux(CONFIG_GPIO_RTX_DBG, GPIO_CFG_NO_DIR,
                             IOC_PORT_RFC_GPO0);

其中 CONFIG_GPIO_RTX_DBG 在 SysConfig 中进行配置和多路复用。

但是、这不起作用、并且在传输开始和结束时我不会收到任何信号。

不管怎样、如果我在没有覆盖的情况下使用 GPO1、可以在传输开始和结束时获得信号。 看起来 GPO1同时用于 TX 和 RX 情况、尽管默认情况下它用于 TX、并可通过上述覆盖用于 RX。

这对我来说是个大问题、因为在我的应用中、无线电正在 Rx 和 Tx 之间切换、我希望在不同引脚上具有专用信号、而不是被限制为一次只能看到一个信号。

如果您能让我知道我如何解决此问题并 
将两个信号独立路由到两个不同的引脚、我将不胜感激。

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

    要在引脚上获取这两个信号、最简单的方法是执行以下操作。

    首先、使用您要使用的设置构建工程、以生成 ti_radio_config.c 文件

    生成文件后、手动将其添加到工程中、并禁止在 SysConfig 中生成此文件、以便手动修改文件。

    将以下覆盖项添加到覆盖列表:

    uint32_t pOverrides[] =
    {
        .
        .
        .
        .
        .
        .
    
        HW_REG_OVERRIDE(0x1110, RFC_DBELL_SYSGPOCTL_GPOCTL0_CPEGPO0 |
                                RFC_DBELL_SYSGPOCTL_GPOCTL1_MCEGPO1),
        (uint32_t)0xFFFFFFFF
    };

    要输出信号、请将以下内容添加到代码中:

        GPIO_setConfigAndMux(CONFIG_GPIO_xxx, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW, IOC_PORT_RFC_GPO0);
        GPIO_setConfigAndMux(CONFIG_GPIO_yyy, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW, IOC_PORT_RFC_GPO1);

    Siri

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

    谢谢 Siri、  

    我累了你的答案,但有两件事:

    1)它不会给你的信号接收同步字,这是我最初的目标。
    2) 2)确实需要 从 SysConfig 中的构建中排除 ti_radio_config.c。


    处理您提供的宏、我可以让系统按照我需要的方式工作。 对于将来的参考、如果任何人有相同的问题、请执行以下操作:

    假设您已在 SysConfig 上启用传播无线电命令、则需要将以下覆盖项添加到 由 SysConfig 专业创建的 CMD_PROP_RADIO_DIV_SETUP 数据结构:

    // Overrides for CMD_PROP_RADIO_DIV_SETUP
    uint32_t new_pOverrides[] = {
        HW_REG_OVERRIDE(0x1110, RFC_DBELL_SYSGPOCTL_GPOCTL0_RATGPO0 |
                                    RFC_DBELL_SYSGPOCTL_GPOCTL1_RATGPO1),
        (uint32_t)0x008F88B3, (uint32_t)0xFFFFFFFF};

    然后、您将此结构添加到 RF_cmdPropRadioDivSetup 的覆盖元素中。 即  RF_cmdPropRadioDivSetup.pRegOverride = NEW_pOverrides



    最后一步是对 GPIO 的信号进行配置并进行引脚多路复用:

    GPIO_setConfigAndMux(CONFIG_GPIO_XXXX,
                         GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW,
                         IOC_PORT_RFC_GPO0);
                                 
    GPIO_setConfigAndMux(CONFIG_GPIO_YYYY,
                         GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW,
                         IOC_PORT_RFC_GPO1);

    其中 CONFIG_GPIO_XXXX 和 CONFIG_GPIO_YYYY 是您在 SysConfig 中分配的物理针脚。

    SDK 版本:7.41.00.17