
通讯可调电压
简介
RS232/485串口转DAC模块
简介:RS232/485串口转DAC模块开源协议
:GPL 3.0
描述
DAC即数字模拟转换器(Digital to analog converter,英文缩写:DAC)是一种将数字信号转换为模拟信号(以电流、电压或电荷的形式)的设备。在很多数字系统中(例如计算机),信号以数字方式存储和传输,而数字模拟转换器可以将这样的信号转换为模拟信号,从而使得它们能够被外界(人或其他非数字系统)识别。
项目功能
本模块有2种工作模式:多字节模式和MODBUS-RTU协议模式。分别可输出负10V-正10V的电压,用户可自行通过串口下载不同模式的程序,实现自己的需要。
项目参数
本项目采用12位的ADC,8562ADC,通过将参考电压经过一个反向放大器介入到输出端在连接到另一个运放的反相输入端,通过第二个运放配置的反向加法电路,实现输出0-4.96v转变为(-10V)-(+10V)。
软件代码
软件代码将放置在附件中
Modbus使用讲解
一,MODBUS-RTU协议下DAC模块通讯方式说明:
1,DAC模块默认的器件地址是0001.
2,写入寄存器地址:0000~0003
0000:校准寄存器,向此寄存器写入任何字节,将迫使DAC模块输出端输出0V,用于0V电位校准。
0001:正电压寄存器,向此寄存器写入数据,DAC模块输出正电压(0~+9.99V)
0002:负电压寄存器,向此寄存器写入数据,DAC模块输出负电压(0~-9.99V)
0003:器件地址寄存器,向此寄存器写入数据,将改变此DAC模块地址(0~255)
正常写入一帧字节如下所示:
01 06 00 01 09 50 8F A6
数据说明:
01: 器件地址(0~255)
06: 功能码
0001:写寄存器地址
0950:通讯线向DAC模块写入电压数据,DAC模块经转换后输出9.50V电压,此数据范围在0000~0999范围,有效数据位是右边3位,最左边一位数字无效,比如此数值设置为3999,那么3这个数据是无效的,设备识别的有效数据仍然是0999.
8FA6: CRC校验数据

如何改变器件地址:
器件地址寄存器:0003
直接在这个地址里写入器件地址数值即可,例如:01 06 00 03 00 01 + 校验码
改变寄存器地址值在下次上电后生效,用户务必记录改变的数值,避免下次使用遗忘。若用户不记得上次的设置,可按板子上的S1按钮,强制恢复为出厂器件地址(01).具体方法是:先不要给板子通电,按住SW1再通电,此时板子上红色LED会闪烁一次,修改数据成功。修改完毕,下次上电后器件地址会更新,使用多片模块时改变不同器件地址可同时挂在MODBUS总线上。
3,串口参数设置:19200波特率,8数据位,1停止位,无校验位。
若输出电压有偏差,请执行以下调零点和调整输出电压范围操作。
如何校准输出正负电压的零点:
用MODBUS主机发送00 00(寄存器地址),XX XX(寄存器数据,任意值)数据到DAC板,用万用表测量电压输出端子是否为0V,若不为0V,则调整板上R17(ZERO)电位器,直到输出电压为0V即可,通常发货之前都会做校准,不会有太大偏差,若有偏差,请按上述方法 调整零点。
XX XX 表示任意数字,当地址为00时,不管后面的数值是多少,输出都是0V.
如何校准输出正负电压的范围:
用MODBUS主机发送00 01(寄存器地址),09 99(寄存器数据)数据到DAC板,用万用表测量电压输出端子是否为9.99V,若不符合,则调整板R16(FULL SCALE)电位器,直到输出正电压最高值达到9.99V,通常发货之前都会做校准,不会有太大偏差,若有偏差,请按上述方法 调整。
用MODBUS主机发送00 02(寄存器地址),09 99(寄存器数据)数据到DAC板,用万用表测量电压输出端子是否为-9.99V,若不符合,则调整板R16(FULL SCALE)电位器,直到输出负电压最高值达到-9.99V,通常发货之前都会做校准,不会有太大偏差,若有偏差,请按上述方法 调整。
串口通讯使用讲解
1,串口发送5字节(一帧)数据到DAC板,转换为一对应的电压值。
2,输出电压范围校准,通过R16电位器(FULLSCALE)在正负10V范围内(-9.99V~+9.99V)可调。
3,电压调零功能,通过R17电位器(ZERO)调节输出正负电压的零点。
4,板载专用正负电压发生模块,工作稳定不发热。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
串口参数设置:19200波特率,8数据位,1停止位,无校验位。
数据格式:上位机一次发送5个字节到DAC板,数据格式为:
数据头+输出电压极性字节+输出电压值个位数字节+输出电压值小数字节+数据尾
数据头固定为:0X5A
数据尾固定为:0XA5
例如:一次发送的数据类似于这样:5A 01 09 30 A5
解释:
5A:数据头,为固定字节
01:表示输出电压极性,这个位置可以出现00,01,02几个数值,01表示输出正电压,02表示输出负电压,00表示输出0V(可用于0电位点校准)。
09,30:电压数值2字节,09 30表示输出9.30V电压。此数值在00 00~09 99之间,表示0.00V~9.99V电压。这个字节四位数字最左边的一位数是无效数字,始终为0,比如,09 30,用户输入成19 30,DAC板接收到数据后会去除掉最左边的1,仍然输出为09 30(9.3V)。
A5:数据尾,为固定字节。
综上所述:5A 01 09 30 A5这一帧数据表示DAC板输出+9.30V电压。
注意所有发送的数据都是16进制数据(HEX).
板子接受5字节数据后返回2字节DAC数据,以便用户确认通讯正常。例如,发送5A 01 09 30 A5五字节后,返回的2字节数据是09 30

若输出电压有偏差,请执行以下调零点和调整输出电压范围操作。如何校准输出正负电压的零点:
用串口软件发送5A 00 XX XX A5五个字节的16进制数据到DAC板,用万用表测量电压输出端子是否为0V,若不为0V,则调整板上R17(ZERO)电位器,直到输出电压为0V即可,通常发货之前都会做校准,不会有太大偏差,若有偏差,请按上述方法 调整零点。
XX XX 表示任意数字,当第二字节为00时,不管后面的电压值是多少,输出都是0V.
如何校准输出正负电压的范围:
用串口软件发送5A 01 09 99 A5五个字节的16进制数据到DAC板,用万用表测量电压输出端子是否为用户需要的电压输出范围正电压的最高值9.99V,若不符合,则调整板R16(FULL SCALE)电位器,直到输出正电压最高值达到要求,通常发货之前都会做校准,不会有太大偏差,若有偏差,请按上述方法 调整。
用串口软件发送5A 02 09 99 A5五个字节的16进制数据到DAC板,用万用表测量电压输出端子是否为用户需要的电压输出范围负电压的最高值-9.99V,若不符合,则调整板R16(FULL SCALE)电位器,直到输出负电压最高值达到要求,通常发货之前都会做校准,不会有太大偏差,若有偏差,请按上述方法 调整。
设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程工程成员
知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。










