查看: 4639|回复: 0

[项目展示] 1 - 基于AD4011的低功耗设备测试工具

[复制链接]

该用户从未签到

发表于 2019-12-10 14:09:04 | 显示全部楼层 |阅读模式
分享到:
一、概述
本设计使用ADI 18bitADC AD4011为核心器件,结合PC端上位机程序,实现可编程输出电压,图形化统计测试低功耗设备的电量消耗情况等功能。旨在提供便捷的,低成本的低功耗设备测试和评估方案。

主要技术参数:
电源输入:9-15V DC
输出:1.5~9V 数字可调  1000mA MAX
ADC精度:18bit
最小测量精度:1uA
采样速度:250KS/S  MAX
二、硬件架构图
1.png C:\Users\Sunny\AppData\Local\YNote\data\weixinobU7VjpBgQ_wlwrY1ghRSHDH1LWc\b1f4f4614b11436184b39adc6bb1bc0a\clipboard.png
主要分为这几个模块吧。

三、硬件模块

1.可编程电压控制器

由于考虑系统对电源精度要求并不算高,而且本设计的侧重点也不是数字电源的实现与控制,于是借鉴并尝试了一种半数字控制的模型,原理图如下:
2.png
分析起来其实很简单:
首先是基础的DC-DC转换器,可以选的芯片有很多,用法都一样,反馈端不是直接连接到DC-DC芯片上,而是将反馈电压与PWM滤波后的电压做差分处理,再接到DC-DC反馈端,同时输出电压受到MCU监控,这样既保证了反馈速度,又达到了数控的目的。
PWM信号接入二阶低通滤波器,输出得到模拟直流电压,信号大小可根据PWM动态调整。

有源二阶滤波器:
3.png


关于二阶有源滤波器这里就不做介绍了,简单的理解为这个电路将PWM作为DAC的转换。

DC-DC芯片的原理一般是根据采样反馈电压与内部基准源相比较,动态调节输出使反馈电压稳定等于基准电压,内部基准一般有0.6V和0.8V两种,取决于具体的DC-DC芯片。
本设计选用同步降压DC-DC转换器SY8120,最大输出2A,物美价廉。
4.png
再来看一下差分放大器的原理,忘记了有必要拿起模电书看一看了。


5.png

根据理论来推导一下输出公式,如原理图中,DC-DC采样电阻,设高边采样电阻为Rh,低边采样电阻为Rl,差分放大器反馈电阻R2=R1=R3=1K,R4不接为无穷大,Vpwm为PWM滤波后输出电压,可推导输出公式:
反馈点电压:


6.png
DC-DC转换器需要将反馈脚的电压稳定在0.6V,Vop表示差分放大器输出电压,即:
7.png


这里代入参数,R4不接即取无穷大,简化为
8.png
代入Vf,得:
9.png

这个公式就非常简洁了,输出电压与PWM滤波电压是正比关系,本设计中RH取值120K,RL取值47K,算得最小输出电压1.065V,也就是说电路最少必须从1V左右开始调整。

调试一下二阶滤波器:
10.png
滤波器噪声:看得出来PWM二阶滤波器噪声还是有点大的,这里用的是廉价的LM358,换好一点的运放可能会好一点,另外如果MCU支持DAC的话,直接使用DAC产生模拟信号应该会好很多的。
11.png
看一下测试波形:
输出5V 空载时的波形:
直流:
12.png
交流:
13.png
5V @200mA波形:
直流:
14.png
交流:
15.png
0V到5V的开启和关闭曲线,这部分是通过PID算法调整的,可以根际情况来调整到合适的曲线。
16.png
17.png




上位机测试(红色:电压,原谅色:电流):
18.png

可以看出,简单设计下的效果还是有体现的,纹波达到了168mV,一些要求较高的场合可能不适用,当然,示波器在测量小信号下的误差是比较大的,另一点是PWM滤波器的噪声本身就很大,如果用DAC来做效果肯定会更好。总之不可否认该设计的可行性,而且设计中没有使用较大的电解电容滤波,还是有很高的优化空间,毕竟低成本数字调压,几乎适合所有的微控制器+DC-DC转换器,输出电流和开关频率完全取决于DC-DC转换器,可以说灵活度很大。

2. 输出电流采样
本设计的目的低成本的实现对低功耗设备的功耗测量和统计,主要针对一些物联网设备或移动设备,这些设备一般都有多种工作模式,最常见的是工作状态和待机状态,这两种状态下的电流差别巨大,通产在10000倍以上,所以用固定的采样电阻可能难以实现,所以借鉴万用表的切换量程的方法,也就是在不同级别的电流下换用不同的采样电阻来对量程做切换。
本设计分别使用100Ω和0.1Ω的精密电阻 来做uA级和mA级电流的采样,用MOSFET来做无缝切换,避免切换量程的时候设备重启,电路图如下:
19.png
因为使用的是N沟道的MOSFET,所以两颗采样电阻放在了低边。
这样的话本来要配置两颗ADC来做不同量程的信号采集,但考虑到成本问题,而且本次使用的ADI的18bit ADC,ADI的器件,大家懂的,好用但很贵,本着节省的精神,这里只用一颗,型号是AD4011,具体参数大家可以到官网上看:https://www.analog.com/cn/products/ad4011.html
20.png
这个芯片的操作非常简单,还有中文版的Datasheet,虽然官方没有提供C code,但根据Datasheet实现驱动代码很简单,调试过程中也很顺利,重点是这颗芯片使用时不需要进行复杂的配置,整个芯片内就只有一个寄存器,而且基本不用配置,直接做好IO时序读取转换结果就行了。
电路图:
21.png
时序图:
22.png
根据这个时序图直接读转换结果就OK了。
另外提及一下,想要仿制或使用AD4011的同学注意了,这颗芯片可能由于出货不多还是其他原因,某宝上的卖家并不多,而且价格贵的吓人,Mouser上大概150RMB左右/颗,某宝上单颗价格更是在200RMB以上,很多同学望而却步,这里有个建议提供给大家,AD4011和AD7691无论在管脚和操作时序上都是一样的,最大差别可能是速度上的差别,AD4011是500KS/s,AD7691是250KS/s,如果说短时间内拿不到AD4011或者考虑样品成本的情况下,可以先用AD7691试试,毕竟某宝现货10块钱-20块应该可以搞定。


23.png 24.png

采样选择器则使用一个信号继电器做信号的切换,有考虑过模拟开关芯片之类的,成本更低,但是不知道对AD采样有没有影响,所以还是麻烦一点,使用微型的信号继电器,尺寸应该是10mmx6mmx5mm左右。
25.png
ADC前端使用一颗精密运放做了一级放大处理,提醒大家在使用精密ADC器件是最好搭配模拟前端一起使用,一个是起到保护ADC的作用,避免器件因电压过高而损坏,另外一点是可以将信号放大的同时减少很多干扰。
电路图如下:
26.png     27.png
运放同样是来自ADI的精密放大器AD8605,https://www.analog.com/cn/products/ad8605.html#product-overview
这里对采样信号做了一次11倍的放大处理。


3.采样测试


找了个电机做负载试试,运放输出端好像干扰很大,可能是接的感性负载原因,按照计算公式来说电流到电压应该是接近1:1的关系,万用表测得平均电流41.1mA,实际放大器输出47.8mV,当然,采样电阻和放大器参考电阻都有误差,不可能与计算结果完全一致。

28.png

29.jpg

30.png
软件校正后的输出精度其实还可以。

看一下uA档的测量情况,找了一个设备在休眠模式下测试:
31.png

32.png

33.png

可以看出来uA级的精度还是可以的。



4.温度传感器
温度传感器在本设计中其实没什么作用,相当于白给,主要作用是监视PCB板温度,避免器件过热。
用料是大赛提供的TMP1075,来自Ti。
官方描述:TMP1075 是最流行的数字温度传感器的直接替代产品,且具有多项增强功能。TMP1075 可通过 12 位分辨率(0.0625°C 的温度分辨率)在 −25°C 至 +85°C 范围内提供高达 ±0.5°C 的典型精度,在 −55°C 至 +125°C 范围内提供高达 ±1°C 的典型精度。
IIC通信接口,调试起来也是比较简单的,一个16位的TEMP寄存器存放转换结果,一个配置寄存器,用来配置转换速度和警报触发条件,两个温度上下限寄存器,一个只读的器件ID寄存器。
一般应用默认就OK,读取的时候先发送器件IIC地址、在是寄存器地址、最后连续读取两个字节数据就OK了。




34.png

读取到的数据处理
35.png
读到两字节数据,格式是First MSB,即最高有效位在前,整数部分就是正常的转换,0X20就是32,小数部分是这样的,将1个温度单位分成256份,用16进制表示,0XC0表示0XC0/(0xFF+1),得到小数部分。
具体的驱动程式在文章最后的工程代码中。

5.通信

采样结果要通过PC上位机软件显示出来,这里使用最常用的UART串口通信,由于是电源类的设备,非常有必要做对通信端口的电气隔离保护,为了可靠和便于实现,本设计使用USB转UART + 光电耦合器件来完成和PC端的通信。
奉上原理图:
36.png

USB转串口芯片使用的比赛提供的器件,来自MicroChip公司的MCP2221,芯片是支持USB转UART和IIC的,这里只使用UART的,外围基本上没什么东西,也不需要为它配置晶体。

37.png

我这里使用的是一般的开关光耦,可以支撑9600及以下的UART通信波特率,需要更高波特率的朋友需要用高速光耦了。9600波特率表示9600HZ的数据调制速度,UART再无校验的情况下的帧组成由1bit起始位+8bit数据位+1bit停止位构成,也就是10bit表示1Byte,传输速度=9600/10=960B/s;也就是理论速度0.96KB/s。
相比USB这些常用数据传输方式来看确实是不够看,但在对本设计来说已经足够用了。

6.微控制器

主控本来按计划会使用MicroChip的PIC18F系列的单片机,后面实在不想去购买配套的烧录器,Microchip就是这里不好,调试工具太不亲民了。

所以最后还是用回STM32了,F103系列,没用到什么很高级的功能,PWM和UART。

7.PCBAPCB就不多介绍了,参考了Arduino MEGA2560板子的外形设计,文章最后有完整的设计文档。主要看一下效果图:

38.png
2D显示
39.png
3D显示
40.jpg
41.jpg
实物手焊板
PCB是改过两次的,主要是方案的改动导致的,第一次打样的镀金板,因为方案问题,被废了,心痛啊,还好嘉利创的打样费还算可以,后面的镀锡板很便宜。
42.jpg

7.上位机软件
上位机软件其实是本设计的重点,也是花费精力最多的地方,其实主要是刚接触Qt,版本5.13,现学现用了,参考了许多资料,相信这种界面对于大神来说也不过弹指之间就能搞定了。
简单介绍一下:
用到的串口类:QSerialPort
二维绘图库:qcustomplot
功能就是实时电流、电压曲线绘制,有点像简版的示波器,可是速度可远不及示波器,因为主要功能还是统计功耗,目前显示频率是5次/S,应该够用了,显示效果尚可。

43.png

目前功能如下:
  • 可设置输出电压,最低1.5V,最高9V,步进0.01V,关闭输出,输出电压为0
  • 实时电压曲线显示:范围 0~10V
  • 实时电流曲线显示:范围 0.001mA~1000mA(两档自动切换)
  • 实时温度显示,范围-55~125℃,最高精度0.0625℃,12bit
  • 功耗统计(mAh、mWh),电流最大值、电流最小值、电流平均值


后期将继续优化和改进,准备加入曲线缩放、截图、数据导出和保存等功能,基本上参考示波器的功能来做了,哈哈。

三、视频演示



视频剪得稀碎,大家凑合看看吧,哈哈。



四、项目资料

Power-x上位机软件.7z (16.26 MB, 下载次数: 5)
未标题-1.jpg
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /2 下一条



手机版|小黑屋|与非网

GMT+8, 2024-5-6 05:02 , Processed in 0.112104 second(s), 15 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.