一种低成本高精度直流采样方法 |
|||||||
申请号 | CN202311613850.4 | 申请日 | 2023-11-29 | 公开(公告)号 | CN117895946A | 公开(公告)日 | 2024-04-16 |
申请人 | 信义储电(深圳)有限公司; | 发明人 | 李圣根; 江辉; 吕建明; | ||||
摘要 | 本 发明 涉及 电子 工程技术领域,具体是一种低成本高 精度 直流 采样 方法。包括方法如下:第一步,得到一个固定 频率 的3.3V三 角 波;第二步,直流 信号 进行 限幅 调整;第三步,Vsample与三角波接入运放比较得到方波;第四步,配置MCU对方波进行捕获处理;第五步,MCU捕获得到Ton的起始时间;第六步,MCU捕获得到Ton的结束时间;第七步,计算得到Ton时间;第八步,通过matlab工具拟合得到K;第九步,确定Vsample为16位高精度。本发明提供一种使用MCU的ADC功能对直流采样,通过 模数转换 得到数字形式值,通用MCU自带ADC是12位精度,通过优化设计方案可在通用的MCU上把直流采样精度提高到16位的低成本高精度直流采样方法。 | ||||||
权利要求 | 1.一种低成本高精度直流采样方法,其特征在于:包括方法如下: |
||||||
说明书全文 | 一种低成本高精度直流采样方法技术领域背景技术[0002] 电子产品开发时,涉及到MCU对直流信号进行ADC采样转化;通用低成本MCU自带12位精度采样功能。需要提高到16位采样时,外部增加一个专门的ADC采样芯片;此方案价格比较高;另外软件算法实现的:CN202310095020.0《一种模数转换器采样值精度提高方法、装置、设备及介质》,该专利实现的算法较为复杂,同时可靠性不高。 [0003] 于是,提出了一种低成本高精度直流采样方法。 发明内容[0004] 本发明提供一种使用MCU的ADC功能对直流采样,通过模数转换得到数字形式值,通用MCU自带ADC是12位精度,通过优化设计方案可在通用的MCU上把直流采样精度提高到16位的低成本高精度直流采样方法。 [0005] 本发明所采用的技术方案为:一种低成本高精度直流采样方法,包括方法如下: [0007] S2:第二步,直流信号进行限幅调整:将被测直流信号Vsample的最小值调至大于0V;最大值调至小于3.3V; [0008] S3:第三步,Vsample与三角波接入运放比较得到方波:Vsample接入运放比较器的输入正端;三角波信号接入运放比较器的输入负端,运放供电为3.3V;运放运行工作后输出端产生10000Hz频率的3.3V方波; [0009] S4:第四步,配置MCU对方波进行捕获处理:选取MCU普通16位定时器中Time1,定时器配置步长为1us,对方波进行上升沿与下降沿捕获; [0010] S5:第五步,MCU捕获得到Ton的起始时间:将定时器捕获功能配置为上升沿触发并开始运行工作;当捕获到一个上升沿时,获取到定时器值value1,认为是方波周期的起始值; [0011] S6:第六步,MCU捕获得到Ton的结束时间:获取到起始值后,将定时器捕获功能配置为下降沿触发; [0012] S7:第七步,计算得到Ton时间:当捕获到一个下降沿时,获取到定时器值value2。value1‑value2的差值就是方波高电平保持时间Ton; [0013] S8:第八步,通过matlab工具拟合得到K:高电平保持时间Ton值与Vsample成正比关系,将大量的Ton和Vsample数据通过matlab工具进行拟合计算,得到转换系数K;即Ton*K=Vsample; [0014] S9:第九步,确定Vsample为16位高精度:Ton的最大值为16位最大值0xFFFF,通过Ton*K=Vsample,所以Vsample也是16位精度。 [0015] 作为本发明进一步的方案:所述MCU为微处理控制器。 [0016] 作为本发明进一步的方案:所述DAC为微处理控制器的数模转换功能。 [0017] 作为本发明进一步的方案:所述Vsample为直流信号源。 [0018] 作为本发明进一步的方案:所述Time1为微处理控制器的定时器功能。 [0019] 作为本发明进一步的方案:所述Ton为一个方波周期中高电平保持时间。 [0020] 作为本发明进一步的方案:所述K为直流信号源与方波周期中高电平保持时间之间相除得到的系数。 [0021] 本发明的有益效果: [0022] 本发明与外加ADC芯片方案比较:成本更低。 [0024] 图1为本发明一种低成本高精度直流采样方法的高精度直流采样流程图。 [0025] 图2为本发明一种低成本高精度直流采样方法的高精度直流采样示意图。 具体实施方式[0026] 下面对本发明作进一步说明。 [0027] 一种低成本高精度直流采样方法,包括方法如下: [0028] S1:第一步,得到一个固定频率的3.3V三角波:使用MCU自带的DAC功能模块(MCU为微处理控制器,DAC为微处理控制器的数模转换功能),通过代码设计编写,发出一个频率为10000Hz的3.3V的三角波; [0029] S2:第二步,直流信号进行限幅调整:将被测直流信号Vsample的最小值调至大于0V(Vsample为直流信号源);最大值调至小于3.3V; [0030] S3:第三步,Vsample与三角波接入运放比较得到方波:Vsample接入运放比较器的输入正端;三角波信号接入运放比较器的输入负端,运放供电为3.3V;运放运行工作后输出端产生10000Hz频率的3.3V方波; [0031] S4:第四步,配置MCU对方波进行捕获处理:选取MCU普通16位定时器中Time1(Time1为微处理控制器的定时器功能),定时器配置步长为1us,对方波进行上升沿与下降沿捕获; [0032] S5:第五步,MCU捕获得到Ton的起始时间(Ton为一个方波周期中高电平保持时间):将定时器捕获功能配置为上升沿触发并开始运行工作;当捕获到一个上升沿时,获取到定时器值value1,认为是方波周期的起始值; [0033] S6:第六步,MCU捕获得到Ton的结束时间:获取到起始值后,将定时器捕获功能配置为下降沿触发; [0034] S7:第七步,计算得到Ton时间:当捕获到一个下降沿时,获取到定时器值value2。value1‑value2的差值就是方波高电平保持时间Ton; [0035] S8:第八步,通过matlab工具拟合得到K(K为直流信号源与方波周期中高电平保持时间之间相除得到的系数):高电平保持时间Ton值与Vsample成正比关系,将大量的Ton和Vsample数据通过matlab工具进行拟合计算,得到转换系数K;即Ton*K=Vsample; [0036] S9:第九步,确定Vsample为16位高精度:Ton的最大值为16位最大值0xFFFF,通过Ton*K=Vsample,所以Vsample也是16位精度。 [0037] 本发明与外加ADC芯片方案比较:成本更低。 [0038] 本发明与软件算法方案比较:实现更简单,可靠性更高。 |