微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 无运放的权电阻网络在单片机控制系统中的应用(上)

无运放的权电阻网络在单片机控制系统中的应用(上)

时间:04-28 来源:电子产品世界 点击:

前言

命题的起源是一款RS485从机设计过程中,需要给它提供一个手动设置从机地址的功能,市面上同类产品,一般是两种做法。

一种是纯软件,通过设备的RS485端口,按厂家给出的通信协议,比如Modbus RTU,修改它作为从机地址的寄存器的值,有些要求重启才生效。优点是节省了PCB面积和相关的元器件,缺点是操作麻烦,需要客户先搭建软硬件环境,把设备地址修改完后再安装到系统里。

另一种是硬件上提供了拨码开关,想修改地址时,拨成不同的地址组合就可以了。这种做法优点是操作很简单,不需要额外的辅件。缺点是需要拨码开关和一些电阻,提高了器件和PCB成本,也需要使用MCU多个I/O口,在MCU片上资源紧张时,增加了芯片选型和PCB走线的麻烦。

正文

本文针对第二种方式的缺点提供一种解决方案,这里提供两种电路形态,图1为并联电路,图2为串联电路。

标号SWad是需要AD采样的电压点,作为权电阻网络的电压输出,开关状态与电压输出的关系推导如下。

并联电路:设SWad处的电压为U,则由电流定律,各分支的电流之和等于汇总后的电流

电路图里的电阻参数是按*2的比例增加的,精度级别1%,另外图中的R6和R12两个电阻的阻值很关键,下面深入研究下它们的阻值对输出电压的影响。

通过在Excel中填表作图我们得到图3和4两组曲线。

图3是并联电路R6的阻值选择带来的影响,曲线大致可以分为两类,第一类是上部的几条曲线,前期都上升得比较快,之后又变化得过于缓慢,带来的问题是使后面部分的地址值难以分辨;第二类是下部的几条曲线,它们有着较好的线性,但斜率在不断降低,过低斜率的问题是整段的地址值都难以区分了,所以最优的电阻取值是两类曲线交界的地方,也就是取值1kΩ电阻较为合适。

图4是串联电路R12的阻值选择带来的影响,曲线也可以分为两类,具体分析和并联电路类似,合适的电阻值为16.2kΩ。

数组获取

为了让MCU能通过电压分辨出不同的地址设置值,我们需要一个数组,而且这个数组的生成要尽可能方便,我们使用Excel来实现,具体步骤如下:

并联电路:

1. 新建一个空白的工作表,如图5在相应位置填入对应值。

2. 在A4里填上0,A5里填上1,选中A4和A5,拖动右下角的实心方块,沿A列往下拖动,会自动填充出0~31。

3. 在B4到F35的矩形位置里填上0~31的二进制值,方法是在B4里写入 =INT(A4/2^$B$2),意思是除式取整,$表示绝对地址,避免复制粘贴时引用了错误的数据。复制B4的内容,粘贴到B5到B35里。

4.同样道理,C4里写=INT(MOD($A4,(2^$B$2))/(2^$C$2)),D4里写 =INT(MOD($A4,(2^$C$2))/(2^$D$2)) ,E4里写=INT(MOD($A4,(2^$D$2))/(2^$E$2)),F4里写=INT(MOD($A4,(2^$E$2))/(2^$F$2)),MOD是取余数,都复制粘贴完后,你就可以看到一个熟悉的二进制表了。

5. 在G4里写入=(1/$B$3*$B4+1/$C$3*$C4+1/$D$3*$D4+1/$E$3*$E4+1/$F$3*$F4),复制粘贴,这一列相当于计算了一个系数J。

6. 在H4上写入=$G4/(1/$G$2+$G4),复制粘贴,得到系数K。

需要进行设置使得计算结果支持小数点。串联电路的表格创建过程类似,前面提供的曲线就是通过更换不同的分压电阻值,获取数表后画在同一个图表里而得到的。

公式验证

为了计算公式的准确性,本文做了两种验证,一是使用Multisim电路仿真软件,对电路进行仿真,得到的电压值与Excel计算的数表一致。另一种是实际搭硬件电路,一块板使用的是精密的可调稳压电源,电阻用可调电阻来代替,另一块板使用了1%精度的贴片电阻,使用普通精度的电源,这几条曲线在地址-电压图表中几乎重合(见图8)。(未完待续)

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top