过采样提高12位ADC精度在STM32主控上的实现(附电路及代码)

2024年09月13日 15:38    发布者:eechina
背景:
1. 过去传统的按键都是机械按键,随着技术的发展也出现了触摸按键,但是机械按键不能泡水,寿命也比较短。触摸按键也没法有很多水或泡沫等,金属面板还不能使用。
2. 压感就应运而生,可以应用于不同的面板,还防水防油,寿命也很长。
3. 压感不但可以应用于按键,还可以应用于刷头等,提升了产品的体验。

概述:
1. 深圳瑞浒科技有限公司专注于压力传感器的研发,12ADC过采样技术方案已在最近发布的松下电动牙刷【DC03系列】上实现量产。
2. 标准单键传感器RH101、多键标准传感器、压力按键定制模块,在家电、手机、电子烟、无线耳机和电动牙刷等多领域,不断为3C、家电、卫浴等行业客户带来更高效、更优质的综合解决方案。瑞浒科技是一家基于新型压感材料和印刷工艺的高科技公司,专业研发、生产、制造和检测压力传感器以及提供配套服务。
3. 正常使用压力传感器需要专门的高精度ADC采集芯片,比如M68等专用芯片。
4. 为了减少成本,普及客户的应用,可以采用普通的12bit ADC MCU来实现压力方案。
5. 目前该方案在STM32上面已经有实测和验证通过,如下是详细的实现过程和测试数据。

压感知识补充:
1. 瑞浒科技的压感是电阻桥式的压感,如下图所示:
2. 给压感供电: 比如VCC供电3.3v,然后采集两个信号的差值SIG+和SIG-得到实际按压的力度检测,来实现各种方案。
3. 压感信号比较小,大概uv级别,所以需要专用的高精度的ADC芯片来采集和处理。



压感应用实物概览:





过采样方案(理论依据):
1. 因为压感信号比较小,假如单独用12位ADC采集,其精度不够。
2. 假如压感供电3.3v,大概计算12位ADC的1ADC = 805uV。没法识别几十或几百uv的压感信号,所以得增加识别精度。
3. 用过采样方式来提高: 软件上,把12bitADC扩展为16bit数据,有效位数为14bit,原理为每隔0.625ms采集一次传感器信号,每16次ADC数据相加的和,即为16bit的ADC数据,有效位数为14bit,最后2bit的数据为无效数据。假如直接以16bit的数据进行运算可以提高ADC精度,有效14bitADC对应 1ADC=201uV 假如按压压感信号可以到几百uV那么就可以省去高精度ADC的MCU。

过采样方案(电路图):

1. LDO给MCU和压感供电:



2. 12位ADC的MCU和压感:




过采样方案(参考代码):

int main(void)
{
       
    //初始化ADC,GPIO,TIMER等
    Init_All_Driver();

    while (1)
    {
        //定时0.625ms
        if (time3_ms625_time_out_flag)
        {
                                        time3_ms625_time_out_flag = 0;
                                       
                                        //看门狗喂狗
                                        IWDG_ReloadCounter();
                                       
                                          //获取ADC值
                                          ADC_Get_Data(key_adcdata);
                                          g_adc_sum += (key_adcdata - key_adcdata);
                                          g_10ms_cnt++;
                                       
                                          if(g_10ms_cnt >= 16)         
                                                {
                                              g_10ms_cnt = 0;                                                       
                               
                                                          //压感ADC处理
                                                          key_rawdata = g_adc_sum;
                                                          g_adc_sum = 0;            
                                                       
                                                          //ADC数据处理
                                                                ADC_DealWith();

                                                                //按键处理
                                                                Button_DealWith();                                       

                                                                //按键模式切换
                                                                Button_Mode_Pro();
                                                       
                                                                //时间计时
                                                                Key_Time_Pro();               
                                                                                                                               
                                                }            
        }
    }
}


过采样方案(对比测试数据):



结论(过采样是可行的):

1. 从上面实际测量的数据对比看:过采样可以提升精度,从而可以省去专用高精度ADC芯片,来采集压感信号。
2. 假如直接用12bit采集压感信号,只有在施加很大压力的时候,信号非常大的时候才可以采集到信号。

总结(压感降成本使用对比):

1. 传统使用方式:



2.  低成本方案,省掉高精度AD芯片,直接用主控采集压感:



关于深圳瑞浒科技有限公司

瑞浒科技成立于2015年(公司曾用名瑞湖科技),坐落在中国高科技中心深圳,总部位于南山区创智云城。深圳瑞浒科技有限公司一直以来深耕于压力传感器领域,2018年获得国家级高新技术企业认证,现已成为业内领先的压感触控综合解决方案提供商。

瑞浒科技经过多年的研发,目前在柔性压力传感器、压力感应按键、应变薄膜等领域,已形成深厚积累,产品开始产业化落地。多年的技术累积使瑞浒掌握了最前沿的压感技术与应用,攻破了很多业界技术难题,不论在传感器研发还是上游制造,均拥有自己独特的技术优势和特点,并拥有针对各个领域成熟的压感方案,且都有自主的核心知识产权,通过持续的创新形成了应用不同领域的专利池,建立了行业壁垒。

瑞浒科技目前已达成多行业领域的量产落地,与家电、卫浴、智能穿戴等多个行业的知名客户逐步建立了良好的战略合作关系,并根据客户的实际产品需求,与客户的研发团队一同合作优化方案,确保产品保持高附加值和高性价比。

瑞浒的使命是致力于柔性压感技术对人机交互的革新,在以技术创新为前提下,为客户提供品质好,服务优,响应快的传感器解决方案,以客户需求为已任。持续提供具有竞争力的产品方案,是瑞浒实现人机交互革新的根本准则。

联系瑞浒科技请访问:http://www.ruihutech.com/