MAX487是用于低功耗RS-485总线收发器。
▲ MAX487管脚配置和典型应用电路
存在的问题:
是否需要增加偏置电阻?在MAX487输出低电平的时候两线的差分是多少?
测量总线电压与输出电压之间的关系
▲ 实验电路原理图
▲ 实验电路板PCB
□ MAX487输入输出电压关系
▲ MAX487输入和输出之间的关系
inv=[5.11,5.11,5.11,5.11,5.11,5.11,5.11,5.11,3.30,3.29,3.28,3.27,3.26,3.25,3.24,3.23,3.22,3.21,3.20,3.19,3.18,3.16,3.15,3.15,3.14,3.13,3.12,3.11,3.10,3.09,3.08,3.07,3.06,3.05,3.04,3.03,3.02,3.01,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00]
outv=[-0.00,-0.00,-0.01,-0.01,-0.01,-0.01,-0.01,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.03,-0.03,-0.03,-0.03,-0.03,-0.04,-0.04,-0.04,-0.04,-0.04,-0.05,-0.05,-0.05,-0.05,-0.05,-0.06,-0.06,-0.06,-0.06,-0.06,-0.07,-0.07,-0.07,-0.07,-0.08,-0.08,-0.08,-0.08,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.10,-0.10,-0.10]
▲ MAX487输入输出之间的电压关系
▲ Sipexl485输入输出之间的关系
inv=[0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.95,1.11,1.23,1.33,1.41,1.50,1.60,1.68,1.75,1.82,1.90,1.97,2.04,2.12,2.20,5.11,5.11,5.11,5.11,5.11,5.11,5.11,5.11,5.11,5.11]
outv=[0.00,0.00,0.01,0.01,0.02,0.02,0.02,0.03,0.03,0.04,0.04,0.05,0.05,0.05,0.06,0.06,0.07,0.07,0.07,0.08,0.08,0.09,0.09,0.09,0.10,0.10,0.11,0.11,0.11,0.12,0.12,0.13,0.13,0.14,0.14,0.14,0.15,0.15,0.15,0.16,0.16,0.17,0.17,0.18,0.18,0.18,0.19,0.19,0.20,0.20]
在485总线B端加入交流信号。A端接地。测量RO的输出波形。
▲ 测量电路
测量信号波形:
▲ 输入波形和输出波形
补充这个实验
▲ 测量TXD到VAB之间的传递关系
▲ TXD → Vab
▲ TXD → Vab
▲ TXD → Vab
▲ TXD → Vab
在上面测量过程中,MAX487在输出电压转换过程中出现了输入输出电压非单调变化的情况。对于这个原因初步猜测是输入电流的增加,使得输入电压微微下降。
下面在输入Vtxd:串联一个200Ω的电阻,测量其两端的电压,反映了输入电流的变化。
下面是给出了相应的曲线,可以看到输入电流的确是在输出反转前后出现了一定的波动,但这种波动(十几个微安)很小,应该不足以引起输入电压的变化。
▲ 在电压转换过程中的输入电流Vi变化情况
★ 疑问:那么这其中究竟什么原因造成了前面的数据曲线?现在还不可而知。
#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST2.PY -- by Dr. ZhuoQing 2020-07-12
#
# Note:
#============================================================
from headm import *
from tsmodule.tsvisa import *
from tsmodule.tsstm32 import *
tspbeep(1200, 200)
dp1308open()
dp1308p6v(0)
tspbeep(1200, 200)
time.sleep(1)
#------------------------------------------------------------
inputv = []
outputv = []
#------------------------------------------------------------
setv = linspace(0, 0.1, 50)
for v in setv:
dp1308p6v(v)
time.sleep(1)
meter = meterval()
outputv.append(meter[2])
inputv.append(meter[0])
printf(meter)
tspsave('measure', inv=inputv, outv=outputv)
plt.plot(outputv, inputv)
plt.xlabel("Input(V)")
plt.ylabel("Output(V)")
plt.grid(True)
plt.tight_layout()
plt.show()
#------------------------------------------------------------
# END OF FILE : TEST2.PY
#============================================================