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.

[参考译文] LAUNCHCC3235MOD:将 ADC 引脚更改为 GPIO 引脚

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1043561/launchcc3235mod-changing-the-adc-pins-to-gpio-pins

器件型号:LAUNCHCC3235MOD
主题中讨论的其他器件:CC3235SF

大家好、团队、

我正在使用 CC3235SF 的 ADC 和 GPIO 模块。 我正在使用 ADC 通道1、2和3、分别使用 GPIO3 (引脚58)、GPIO4 (引脚59)和 GPIO5 (引脚60)。

我 在项目的*。syscfg 中相应地配置了这些 ADC 模块及其引脚。

在我的应用中,我希望在需要时使用 ADC 通道,当 Read_once ()功能结束时,我想将上面提到的引脚配置为 GPIO,并根据需要将它们设置为高电平/低电平。

我正在执行以下步骤:

  1. ADC_Init()
  2. ADC_open ()=>根据 用户输入传递 CONFIG_ADC_x 以返回 ADC 句柄。
  3. adc_convert ()

  4. ADC_CLOSE ()=>根据我的理解、此函数将上述模块的 ADC 引脚设置为复位状态。 因此、将引脚功能从模拟更改为数字变得很容易。

调用 adc_close()函数后,我尝试立即将该引脚设置为 GPIO (使用硬件时,不会在*.syscfg 的 GPIO 部分中配置 ADC 引脚)。

为此、我将使用以下寄存器访问函数:   

  • 为外设提供时钟                                                                                                                                   HWREG (ARCM_BASE + APPS_RCM_O_GPIO_A_CLK_Gating)= APPS_RCM_GPIO_A_CLK_Ging_GPIO_A_RUN_CLK_ENABLE;

        HWREG (ARCM_BASE + APPS_RCM_O_GPIO_B_CLK_Gating)= APPS_RCM_GPIO_B_CLK_GING_GPIO_B_RUN_CLK_ENABLE;

        HWREG (ARCM_BASE + APPS_RCM_O_GPIO_C_CLK_Gating)= APPS_RCM_GPIO_C_CLK_Ging_GPIO_C_RUN_CLK_ENABLE;

        HWREG (ARCM_BASE + APPS_RCM_O_GPIO_D_CLK_Gating)= APPS_RCM_GPIO_D_CLK_GINGLE_GPIO_D_RUN_CLK_ENABLE;

        HWREG (ARCM_BASE + APPS_RCM_O_GPIO_E_CLK_Gating)= APPS_RCM_GPIO_E_CLK_GINGLE_GPIO_E_RUN_CLK_ENABLE;

  • 将引脚设置为输出                                                                                                                                                            uint32_t addr = OCP_shared_base + OCP_shared_O_GPIO_PAD_CONFIG_0 + 0x00000004 * IO;

        HWREG (addr)= 0b000001100000;

        HWREG (((GPIOA0_BASE + 0x00001000 *(IO/8))+ GPIO_GPIO_DIR)|= 0x00000001 <<(IO%8);

  • 将引脚的输出驱动更新为高电平

        uint32_t addr = OCP_shared_base + OCP_shared_O_GPIO_pad_config_0 + 4 * IO;

        HWREG (addr)|= 0b000000010000;

但是、我在引脚上没有获得高电压、而且、 即使在向外设提供时钟之后、我也无法读取 OCP_SHARGE_O_GPIO_PAD_CONFIG_0寄存器。

我还尝试使用   ROM_MAP.h 中的函数 MAP_PinTypeGPIO

请有人指导我完成这一过程。

谢谢你。

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

    您好、Aishwarya、

    明天或星期三、我将在这里跟进。

    此致、
    Jacob

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

    您好、Jacob、

    简单地提醒一下上述问题。

    您是否有机会了解它?

    谢谢你。

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

    今天下午、我简单地看了一下、但我需要更多时间来提供见解。 我明天会跟进。

    谢谢、
    Jacob

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

    您好、Aishwarya、

    我应该说、不建议将引脚从 ADC 动态地来回切换为 GPIO。 这是因为 ADC 输入只能承受1.8V 电压。 如果对这些引脚施加高于1.8V 的输入电压、ADC 输入可能会损坏。

    从 CCC3235数据表中:

    您可以在 SimpleLink Wi-Fi CC32xx ADC 应用手册中找到有关 ADC 的更多信息。

    我建议您找到替代解决方案。

    此致、
    Jacob