WIFI技术
直播中

李欢

7年用户 1075经验值
私信 关注
[问答]

CYPD3120如何使用MUXB正确读取引脚电压电平?

嗨,
我正在尝试读取引脚 #24 (P2.4) 的模拟电压电平,但我得出了错误的值。 这是我的代码。
gpio_hsiom_set_config(GPIO_PORT_2_PIN_4, HSIOM_MODE_AMUXB, GPIO_DM_HIZ_ANALOG, 0);CyDelayUs(200);pd_adc_calibrate(TYPEC_PORT_0_IDX, PD_ADC_ID_1);uint8_t level = pd_adc_sample(TYPEC_PORT_0_IDX, PD_ADC_ID_1, PD_ADC_INPUT_AMUX_B);hsiom_set_config(GPIO_PORT_2_PIN_4, HSIOM_MODE_GPIO);
来自 pd_adc_sample () 的 ADC 返回值非常低,只有 2-5。 引脚上的实际电压为 1.1V。 如果引脚中的电压为 0V,则返回值为 0,因此似乎存在连接。

但是,如果我改用 HSIOM_MODE_AMUXA   PD_ADC_INPUT_AMUX_A,我确实会得到预期的值(约 85),但随后 PD 会立即引发应用程序事件 APP_EVT_RP_CHANGE 和 APP_EVT_VBUS_OVP_FAULT。 我认为这是因为端口使用 AMUXA 来感应 VBUS。

如何使用 MUXB 正确读取引脚电压电平?
                                                                                                                                                                                                                                                                                                                                                   
                                                        

回帖(1)

潘飘稚

2024-2-22 17:05:05
首先,请确保在读取引脚电压电平之前已正确配置了引脚和ADC。

根据您提供的代码和描述,我注意到您在配置HSIOM模式时使用了HSIOM_MODE_AMUXB,并在读取ADC值之前进行了模拟校准。

下面是一些可能导致您得到错误数值的原因:

1. 引脚配置:确保您在读取引脚之前正确配置了引脚。您可以使用gpio_hsiom_set_config()函数或其他相关函数来配置引脚模式。确保将引脚配置为模拟输入模式(ANALOG IN)。

2. ADC配置:在读取ADC之前,请确保已正确配置了ADC通道和输入引脚。确保将ADC通道配置为使用正确的输入引脚(AMUX B)。您可以使用pd_adc_calibrate()函数对ADC进行校准。

3. 延迟:您在配置引脚后添加了200微秒的延迟。这可能是为了等待引脚配置生效。请确保延迟足够长,以确保引脚配置的生效。

4. 引脚电压检查:如果确保了上述配置正确,但仍然得到错误的ADC值,可以检查一下引脚的实际电压。可以使用示波器或万用表来测量引脚上的电压,以验证ADC值是否与实际电压匹配。

如果您仍然无法解决问题,请提供更多关于您的硬件和软件配置的详细信息,以便我们可以更好地帮助您解决问题。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分