forked from M-Labs/artiq
novogorny: simplify and fix coefficient
This commit is contained in:
parent
b4ba71c7a4
commit
cff85ee13b
|
@ -47,20 +47,19 @@ def adc_value(data, v_ref=5.):
|
||||||
"""Convert a ADC result packet to SI units (Volt)"""
|
"""Convert a ADC result packet to SI units (Volt)"""
|
||||||
softspan = adc_softspan(data)
|
softspan = adc_softspan(data)
|
||||||
data = adc_data(data)
|
data = adc_data(data)
|
||||||
|
g = 625
|
||||||
if softspan & 4:
|
if softspan & 4:
|
||||||
g3 = 2
|
g *= 2
|
||||||
else:
|
|
||||||
g3 = 1
|
|
||||||
if softspan & 2:
|
if softspan & 2:
|
||||||
g2 = 1 << 15
|
h = 1 << 15
|
||||||
else:
|
else:
|
||||||
g2 = 1 << 16
|
h = 1 << 16
|
||||||
|
data = -(data & h) + (data & ~h)
|
||||||
if softspan & 1:
|
if softspan & 1:
|
||||||
g1 = 1000
|
h *= 500
|
||||||
else:
|
else:
|
||||||
g1 = 1023
|
h *= 512
|
||||||
data = -(data & g2) + (data & ~g2)
|
v_per_lsb = v_ref*g/h
|
||||||
v_per_lsb = v_ref*(1250*g3)/(g1*g2)
|
|
||||||
return data*v_per_lsb
|
return data*v_per_lsb
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue