找回密码
 请使用中文注册

手机号码,快捷登录

手机号码,快捷登录

查看: 611|回复: 0

【开源】RS485 转 0-20mA 输出模块设计

[复制链接]
阅读字号:

1351

主题

50

回帖

2万

积分

超级版主

积分
26839
发表于 2023-8-17 10:38:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?请使用中文注册

×


  • 1. 简介
  • 2. 功能实现
  • 3. 测试
  • 4. 开源地址

1. 简介

结合以前发的文章,我们知道,模拟量输出有两种,一种是共地型,一种是共源型。

今天开源一款 rs485 隔离的转 0-20ma 输出模块的设计。

我设计模块的原因是为了测试公司的一款模拟量检测模块的性能,因此需要一个可控的 0-20ma 输出模拟器,来模拟 0-20ma 输出。

同时想测试一下 GP8212S 性能。话不多说,直接上。


acd86ee05087d752fbf4f88839402efa.png RS485转0_20mA输出模块2. 功能实现

mcu 采用小华半导体的 hc32f005,模拟量输出使用的是 GP8212S,485 隔离芯片使用的是 CA-IS2092W,国产化设计,具体的参数如下:

  • rs485 使用的是带电源隔离的 CA-IS2092W,做到 485 完全隔离。
  • 宽电压供电,内部集成升降压模块,使系统工作在 24v 状态下。
  • 此模块用来模拟模拟量输出。
3. 测试

我已经编写了一个简单的 mcu 程序,通过上位机发送指令控制模拟量输出。

使用一个 usb 转 485 模块来通过上位机向测试模块发送数据,usb 转 485 模块使用的是我设计的 usb 转 4 路 422+4 路 485 模块,如下:


1811c4f8f0274335de4e95be6a741376.png usb转4路422+4路485模块

上位机的数值为实际值乘以 100,并用#号结束,如下是分别设置 1ma、10.5ma、16.39ma、20ma、10ma 的过程,测得结果如下:


cb617ca16b531a410bfc151bea2cd673.png 上位机设置值
e461e87c48809e377ed717f53866a37b.png 设置1ma输出实际值
0c5b99eae06cecfb6d059b10cc7bcb58.png 设置10.5ma输出实际值
d6d6d9b9204cd33e1392423cefb50b5e.png 设置16.39ma输出实际值
9f50eea589ee72c242dac0692921cf0f.png 设置20ma输出实际值
ba3fed912462363aaadac852c6ca00e4.png 设置10ma输出实际值

这里只是简单的测量一下,通过上面我们发现最大误差已经达到了 0.05ma,可是也发现了一些规律,那就是在 10ma 以下,输出值比实际值偏大,当 10ma 以上,输出值比实际值偏小,且设置值与 10ma 差值越大,误差越大,因此可以通过补偿的方法,减小误差,通过合理的补偿其实可以做到 0.02ma 的误差。

4. 开源地址

开源包括 pcb 设计和 mcu 的程序。



您需要登录后才可以回帖 登录 | 请使用中文注册

本版积分规则

QQ|Archiver|手机版|家电维修论坛 ( 蜀ICP备19011473号-4 川公网安备51102502000164号 )

GMT+8, 2025-5-1 03:06 , Processed in 0.187772 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表