1.设计背景
由于工作的需求,有时需要调试模拟量控制的设备,需要输出4-20mA和±10V的模拟信号,本来市场已经有很多能够实现模拟量输出的功能但是都很难满足我的需求:
- 手持模拟量输出设备,只能现场调试,无法远程控制,调试只能在现场,其次放久了电池衰减的厉害,没一会就没电了。
- 支持网络或485通信的模拟量输出设备:个头较大,一般还需要单独准备一个电源,去哪里都背着它,很累也很烦。
- 同时这些设备便宜的精度差,精度稍微好点的都不便宜。
因此我就萌生了一个想做一个小巧的、接在电脑用软件实现控制的模拟量输出设备。
2. 客益的GP8630N芯片
其实对于实现0-24mA输出的设计网上有非常多的方案,成本相对不高,但是对于实现±10V输出,方案比较少,有利用运放将DAC信号负向平移然后在放大的方案。也有直接用双极性DAC直接输出,这些要不成本很高,要不就是电路复杂,难以做到小巧。
主要是我很穷,芯片太贵我还折腾不起。
机缘巧合下,我看到了一款非常有意思的芯片,那就是GP8630N,这个芯片通过配置可以实现0-24m、-10V-0V、0V-10V输出,输入控制接口有PWM和I2C两种方式,芯片封装小巧,价格便宜,外围电路还简单。

这个芯片有很多优点:
-
可以在单端口电压电流一体输出 ,一个端口实现0-24mA和±12V的模拟信号输出,通过配置实现选择,同时也支持非一体分开输出。
下面是数据手册中关于两种输出方式的设计简单示意图:


- 一个芯片就可以实现输出4-20mA和±10V的模拟信号,对电路设计者要求不高,不用单独DAC,使用MCU的PWM或I2C就可以控制。
- 提供HART调制引脚,通过外挂HART芯片即可进行HART通信。
- 芯片可以检测电流输出是否断路,电压输出是否短路的问题,提供了异常反馈的通道。
- 供电简单,只需要提供正负15V的电压即可,芯片自身输出一个由内部LDO生成的5V、10mA的电源,可为其他芯片供电。
- 芯片集成度高,整个外围电路相当简单,整个芯片功耗也比较低,设计电路前不需要像使用运放那样还需要仿真。
3. 小巧的模拟量输出设备
官方demo原理图采用一体式输出:

这是我设计的将电流电压分体输出的原理图:

最后做出来的成品,加了一个外壳,测试了一下效果我还是相当满意的,首先是价格,板子上使用的芯片都很便宜,GP8630N不到7块钱,剩下的就是ch340不到2块钱,光耦都是低速光耦很便宜,剩下都是些电阻二极管也都是便宜货,不到15元的芯片成本。
主要是在立创只做了5个,SMT花了不少钱,肉疼。USB选择方口,高情商是方口USB不容易损坏,实际上是没买到合适的公版外壳。因此没有选用type-c接口。


因为有很多4-20mA和±10V控制的设备都有浪涌或静电之类的干扰,因此设备采用了隔离方案,防止干扰导致电脑USB口损毁或者电脑蓝屏,I2C的隔离芯片较贵,因此采用光耦隔离的PWM控制。

这个模块有很多优点:
- 小巧,单手可握,携带方便。
- USB供电,插到电脑上面直接使用,不需要复杂接线。
- 有的现场夏天热冬天冷,活没干人先崩溃了,可以通过远程电脑来控制来解决,到隔壁屋子吹空调。
- 本来这个设备还可以检测电流输出是否断路,电压输出是否短路的问题,用于检测外部设备是否连接正常,但是我懒得弄程序了,以后再说吧。
4. 精度
模拟量输出,精度是非常重要的指标,为了更好的使用,我编写了一个简单的上位机,使用高精度的万用表来测量输出精度,虽然设备可以输出0-24mA的电流,正负12V的电压,但是我使用的范围只有4-20mA,±10V,因此我针对这个输出区间的程序中做了一个线性拟合,以提高输出精度。
通过编写上位机控制输出,然后用一个5位半的万用表读取模块输出值,

具体可以观看视频链接:
【一个隔离型USB转模拟量电压正负10V和电流4-20mA输出的设计】https://www.bilibili.com/video/BV1GraHz2E27?vd_source=5ffcc7dce7256099efea2db29a304b20
可以看到,输出精度还是相当可以的,不管是电压输出还是电流输出,实测偏差不超过实际值的0.02。
备注
- 根据最新和客益的FAE交流,他们说后期的GP8630N芯片,不会在同时支持PWM和I2C控制,会细分成两个型号,因此请同学门购买前要确认好。
公众号 | FunIO
微信搜一搜 “funio”,发现更多精彩内容。
个人博客 | blog.boringhex.top
1113

被折叠的 条评论
为什么被折叠?



