[AIROC™ 蓝牙]【英飞凌CYW20829测评】+ ADC实验

本实验中的ADC配置为10位分辨率。输入电压施加在设备配置器中配置的其中一个gpio P3.5上。


通过设备配置器中的“电压范围”下拉菜单,可以设置电压范围为0 ~ 1.8 V或0 ~ 3.6 V。



ADC DC采样以定时器周期/定时器输入频率的间隔读取,该间隔可以在设备配置器中配置,如图所示。' makeInterval = Timer_period / Clock_frequency '本例中SysClk配置为96 MHz。因此,间隔为~104 uSec。


主要代码:

复制
    while (1)

    {

        /* Monitoring for every one second */

        Cy_SysLib_Delay(1000);



        Cy_ADCMic_SetInterruptMask(adcmic_0_HW, CY_ADCMIC_INTR_DC);

        Cy_ADCMic_ClearInterrupt(adcmic_0_HW, CY_ADCMIC_INTR);



        /* Enable the DC monitoring */

        Cy_ADCMic_Enable(adcmic_0_HW);



        /* ADC Settling Time */

        Cy_SysLib_Delay(10);



        /* Enable ADC timer to generate interrupt for reading the sample */

        Cy_ADCMic_EnableTimer(adcmic_0_HW);



        /* Wait for DC monitoring samples to complete */

        while(batmon_cplt);



        for (int i = 0; i < NO_OF_DC_SAMPLES; i++)

        {

            batmon_dc_avg = batmon_dc_avg + batmon_samples[i];

        }



        batmon_dc_avg = batmon_dc_avg/NO_OF_DC_SAMPLES;



        /* Convert the ADC code in millivolts */

        batt_level_mv = Cy_ADCMic_CountsTo_mVolts((int16_t)batmon_dc_avg, adcmic_0_config.dcConfig->context );



        printf("batt_level_mv = %d \r\n",batt_level_mv);



        /* Reset for the next set of readings */

        batmon_cplt = 1;

        batmon_dc_avg = 0;

    }



实物测试:
根据任务要求,搭建简易电阻分压网络,在此选择两个10kΩ电阻串联,进而测试分压。
 


串口助手输出测试电压值:

接着测试了引脚悬空状态下P3.5引脚电压值:

串口结果:

Snipaste_2024-07-21_12-40-35.png (14.77 KB )

下载附件

2024-7-21 12:45 上传

看来平时不使用的PIN脚还是要做好处理,根据系统设计要求进行引脚悬空、上下拉或者接地处理。
---------------------
作者:YangTwo
链接:https://bbs.21ic.com/icview-3390762-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值