矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
查看: 977|回复: 3

各位老大请指教!

[复制链接]
     
发表于 2022-12-5 13:32:38 | 显示全部楼层 |阅读模式
本帖最后由 lqzhang03 于 2022-12-5 13:34 编辑

各位老大请指教!

一直学习washu老大的Voltgen程序,是双AD5541,REF2.5V,放大5倍的那个,设置电压那个子程序看不懂,程序如下:

Function SetVoltage(fVoltage As Float) As Byte
Local Vsetm As Word               ' The Master DAC Setting Return
Local Vsets As Word               ' The Slave  DAC Setting Return
Local bMSB As Byte
Local bLSB As Byte                     
' the addsch VOut = Gain * (Vmaster * R2 +Vslave * R1) / (R1+R2),
' Fullscale of the Vm and Vs all = 2.5V, R1 = 470 ohm, R2 = 1M ohm, Gain= 5
fVtrn = fVoltage
fVtrn = fVtrn / fDACGain
fVset = fVtrn
' Get theMasteDAC Voltage Setting Value, Vm=Vo*(R1+R2)/R2
fVtrn = fVtrn * (fMResistance + fSResistance) /fSResistance
fVtrn = fVtrn * 65535 * 1000000 / fDACReference
Vsetm = fVtrn
bMSB = Msb(Vsetm)
bLSB = Vsetm - bMSB * 256
WriteDAC(bMSB,bLSB,1)
' Get the SlaveDAC Voltage Setting Value,Vs=[Vo*(R1+R2)-Vm*R2]/R1
fVtrn = Vsetm * fDACReference / 65535 / 1000000
fVtrn = (fVset * (fMResistance + fSResistance) -fVtrn * fSResistance) / fMResistance
fVtrn = fVtrn * 65535 * 1000000 / fDACReference
Vsets = fVtrn
bMSB = Msb(Vsets)
bLSB = Vsets - bMSB * 256
WriteDAC(bMSB,bLSB,2)
Return 0
End Function


按照红字的Vm和Vs的公式,Vs是一直为0吗???还是我理解的错了!
各位老大请指教!谢谢。

     
发表于 2022-12-5 23:55:33 | 显示全部楼层
以下纯属猜测 ,解铃还须系铃人。

根据 VOut = Gain * (Vmaster * R2 +Vslave * R1) / (R1+R2),

当 Gain=1 且 Vslave=0 时,有:
Vm=Vo*(R1+R2)/R2

当 Gain=1 时,有:
Vs=[Vo*(R1+R2)-Vm*R2]/R1
回复 支持 反对

使用道具 举报

     
发表于 2022-12-6 00:00:17 | 显示全部楼层
老郑小烧 发表于 2022-12-5 23:55
以下纯属猜测 ,解铃还须系铃人。

根据 VOut = Gain * (Vmaster * R2 +Vslave * R1) / (R1+R2),

也就是说,这2个式子应该分别有不同的条件,不能放在一起看,不知道是不是这样。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2022-12-6 07:54:35 | 显示全部楼层
老郑小烧 发表于 2022-12-6 00:00
也就是说,这2个式子应该分别有不同的条件,不能放在一起看,不知道是不是这样。

谢谢老大。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

小黑屋|手机版|矿石收音机 ( 蒙ICP备05000029号-1 )

蒙公网安备 15040402000005号

GMT+8, 2024-5-5 01:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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