前一段时间在淘宝上买了一款0-80V 0-6A可调电源,下图左边的。
此款电源测量电压的精度很不错,但是电流非常不准。250mA以下显示0,0.5A显示0.3A,1A时显示0.83A。3A是准的,3A以上又偏大。
没办法打开,拆机,发现用的表头在淘宝上有卖,测量电流不准的原因是电流分流电阻并不是表头配套的。
没有办法,只有自己重新编程才能解决电流测量不准的问题。首先对照实物绘制原理图,如下。
原来这款表头的电流量程是50A的,需配50A的分流电阻,测量电流才能达到该表头原有的设计精度。可是此电源却没有用50A的分流电阻,而是用约2毫欧的分流电阻。这样0-6A在分流电阻上的电压为 0-12mV。
对照原理图测量电流部分可以得出:运放部分的放大倍数为 23(188.2/8.2)- 35(288.2/8.2),输出电压为 0-420mV。这个电压太小,因为STM8的ADC输入电压可以到3300mV,所以我将放大电阻R6有原来的180k换成了1M,这样放大倍数就变成 123-135,运放的输出电压为 0-1620mV。
实际上,放大倍数在 3300/12=275时最理想(R6换成2M左右),可以充分利用ADC的转换精度。但我手头只有1M贴片,就没有再折腾了。
然后就是编程了,STM8是第一次,一直在用STM32。就在网上找了些例子,几番折腾终于能够编译和下载了。
电压测量校准比较简单,只调整电位器就能达到不错的精度。不过我还是用软件作了多区间线形校正。
10V以下精度 <1%,10V以上精度 <0.5%
电流校正没有分区间,精度基本做到 <1%。
下面是自己编程的工程文件,可以直接修改编译。