Compare commits
2 commits
31e5155586
...
a8c60193c6
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a8c60193c6 | ||
|
|
f399dcd2ad |
3 changed files with 68 additions and 55 deletions
114
dorn.py
114
dorn.py
|
|
@ -20,7 +20,7 @@ def HK_fmt(s, i, n, d):
|
||||||
|
|
||||||
def HK3_fmt(s, i, n, d):
|
def HK3_fmt(s, i, n, d):
|
||||||
return f"""{i}. {n}
|
return f"""{i}. {n}
|
||||||
T = {d[5]:6.2f} °C" Ibias = {d[0]:6.3f} V,
|
T = {d[5]:6.2f} °C" GND = {d[0]:6.3f} V,
|
||||||
Vff = {d[1]:6.3f} V, Vnn = {d[2]:6.3f} V, Vpp = {d[3]:6.3f} V, Vdig = {d[4]:6.3f} V,
|
Vff = {d[1]:6.3f} V, Vnn = {d[2]:6.3f} V, Vpp = {d[3]:6.3f} V, Vdig = {d[4]:6.3f} V,
|
||||||
Vcc = {d[6]:6.3f} V, Vss = {d[7]:6.3f} V.
|
Vcc = {d[6]:6.3f} V, Vss = {d[7]:6.3f} V.
|
||||||
"""
|
"""
|
||||||
|
|
@ -69,7 +69,7 @@ class DORN_CONFIG:
|
||||||
)
|
)
|
||||||
|
|
||||||
HK3 = [[
|
HK3 = [[
|
||||||
("Ibias", 10470/470 * 51/1051 * 100),
|
("GND",),
|
||||||
("Vff", 2.0),
|
("Vff", 2.0),
|
||||||
("Vnn", 2.5, ("Vpp", -1.5)),
|
("Vnn", 2.5, ("Vpp", -1.5)),
|
||||||
("Vpp", 2.0),
|
("Vpp", 2.0),
|
||||||
|
|
@ -79,16 +79,36 @@ class DORN_CONFIG:
|
||||||
("Vss", 2.5, ("Vcc", -1.5)),
|
("Vss", 2.5, ("Vcc", -1.5)),
|
||||||
]]
|
]]
|
||||||
|
|
||||||
HK4_AHBGO = [[
|
HK = [
|
||||||
("Tbgo₁", (degC, {})),
|
("INP₀", None, HK_fmt),
|
||||||
("Tbgo₂", (degC, {})),
|
("INP₁", None, HK_fmt),
|
||||||
("Vbias", -1/0.047),
|
("INP₂", None, HK_fmt),
|
||||||
("Tbgo₃", (degC, {})),
|
("HK ADC", HK3, HK3_fmt),
|
||||||
("Ibias₁", 10470/470 * 51/1051 * 100),
|
("HK PA", None, HK_fmt),
|
||||||
("Ibias₂", 10470/470 * 51/1051 * 100),
|
("VrefL", None, HK_fmt),
|
||||||
("Vss", 2.5, ("Vcc", -1.5)),
|
("VrefH", None, HK_fmt),
|
||||||
("Vcc", 2.0),
|
("HK_PWR", None, HK_fmt),
|
||||||
]]
|
]
|
||||||
|
|
||||||
|
def n_adc(self):
|
||||||
|
return self.n_channels//3
|
||||||
|
|
||||||
|
def Vref(self, slice=None):
|
||||||
|
try:
|
||||||
|
return self.VREF[slice]
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
return 3.3
|
||||||
|
|
||||||
|
def n_trigs(self):
|
||||||
|
if self.n_channels > 16:
|
||||||
|
return self.n_adc()
|
||||||
|
return self.n_channels
|
||||||
|
|
||||||
|
def m_trigs(self):
|
||||||
|
return (1 << self.n_trigs()) - 1
|
||||||
|
|
||||||
|
NTC = [dict(R1=10e3, R25=10e3, B25=3940, res=0x1000)]
|
||||||
|
|
||||||
HK4_SETH = [
|
HK4_SETH = [
|
||||||
[
|
[
|
||||||
|
|
@ -115,20 +135,14 @@ class DORN_CONFIG:
|
||||||
|
|
||||||
HK7_SETH = [
|
HK7_SETH = [
|
||||||
[
|
[
|
||||||
("na₁",),
|
("na₁",), ("na₂",), ("na₃",), ("na₄",),
|
||||||
("na₂",),
|
|
||||||
("na₃",),
|
|
||||||
("na₄",),
|
|
||||||
("Iprim", 2000.0),
|
("Iprim", 2000.0),
|
||||||
("Vprim", 16.3),
|
("Vprim", 16.3),
|
||||||
("Tpwr", (degC, {})),
|
("Tpwr", (degC, {})),
|
||||||
("Ibias⁺", 100.0),
|
("Ibias⁺", 100.0),
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
("na₁",),
|
("na₁",), ("na₂",), ("na₃",), ("na₄",),
|
||||||
("na₂",),
|
|
||||||
("na₃",),
|
|
||||||
("na₄",),
|
|
||||||
("Ibias", 100.0),
|
("Ibias", 100.0),
|
||||||
("Vbias⁺", 100.0),
|
("Vbias⁺", 100.0),
|
||||||
("Text", (degC, {})),
|
("Text", (degC, {})),
|
||||||
|
|
@ -136,42 +150,26 @@ class DORN_CONFIG:
|
||||||
],
|
],
|
||||||
]
|
]
|
||||||
|
|
||||||
HK = [
|
|
||||||
("INP₀", None, HK_fmt),
|
|
||||||
("INP₁", None, HK_fmt),
|
|
||||||
("INP₂", None, HK_fmt),
|
|
||||||
("HK ADC", HK3, HK3_fmt),
|
|
||||||
("HK PA", HK4_AHBGO, HK4_AHBGO_fmt),
|
|
||||||
("VrefL", None, HK_fmt),
|
|
||||||
("VrefH", None, HK_fmt),
|
|
||||||
("HK_PWR", None, HK_fmt),
|
|
||||||
]
|
|
||||||
|
|
||||||
def n_adc(self):
|
|
||||||
return self.n_channels//3
|
|
||||||
|
|
||||||
def Vref(self, slice=None):
|
|
||||||
try:
|
|
||||||
return self.VREF[slice]
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
return 3.3
|
|
||||||
|
|
||||||
def n_trigs(self):
|
|
||||||
if self.n_channels > 16:
|
|
||||||
return self.n_adc()
|
|
||||||
return self.n_channels
|
|
||||||
|
|
||||||
def m_trigs(self):
|
|
||||||
return (1 << self.n_trigs()) - 1
|
|
||||||
|
|
||||||
NTC = [dict(R1=10e3, R25=10e3, B25=3940, res=0x1000)]
|
|
||||||
|
|
||||||
def seth(self):
|
def seth(self):
|
||||||
# ! change the class attribute
|
# ! change the class attribute .HK
|
||||||
self.HK[4] = ("HK PA", self.HK4_SETH, HK4_SETH_fmt)
|
self.HK[4] = ("HK PA", self.HK4_SETH, HK4_SETH_fmt)
|
||||||
self.HK[7] = ("HK_PWR", self.HK7_SETH, HK7_SETH_fmt)
|
self.HK[7] = ("HK_PWR", self.HK7_SETH, HK7_SETH_fmt)
|
||||||
|
|
||||||
|
HK4_AHBGO = [[
|
||||||
|
("Tbgo₁", (degC, {})),
|
||||||
|
("Tbgo₂", (degC, {})),
|
||||||
|
("Vbias", -1/0.047),
|
||||||
|
("Tbgo₃", (degC, {})),
|
||||||
|
("Ibias₁", 10470/470 * 51/1051 * 100),
|
||||||
|
("Ibias₂", 10470/470 * 51/1051 * 100),
|
||||||
|
("Vss", 2.5, ("Vcc", -1.5)),
|
||||||
|
("Vcc", 2.0),
|
||||||
|
]]
|
||||||
|
|
||||||
|
def ahbgo(self):
|
||||||
|
# ! change the class attribute .HK
|
||||||
|
self.HK[4] = ("HK PA", self.HK4_AHBGO, HK4_AHBGO_fmt)
|
||||||
|
|
||||||
CONFIG = DORN_CONFIG()
|
CONFIG = DORN_CONFIG()
|
||||||
|
|
||||||
def hk(sl, what="print", data=None):
|
def hk(sl, what="print", data=None):
|
||||||
|
|
@ -186,6 +184,18 @@ def hk(sl, what="print", data=None):
|
||||||
data=_ifc.read_fifo()
|
data=_ifc.read_fifo()
|
||||||
if data[0] != 0x5710 + sl:
|
if data[0] != 0x5710 + sl:
|
||||||
raise ValueError("Read HK packet error", data)
|
raise ValueError("Read HK packet error", data)
|
||||||
|
if isinstance(data, str):
|
||||||
|
# HDORN … data line
|
||||||
|
if "x" in data:
|
||||||
|
return
|
||||||
|
data = data.split()
|
||||||
|
if data[0] != "HDORN":
|
||||||
|
return
|
||||||
|
data = list(map(int, data[1:]))
|
||||||
|
if sl is None:
|
||||||
|
sl = data[0] & 3;
|
||||||
|
if data[0] & 3 != sl:
|
||||||
|
return None
|
||||||
if what=="data":
|
if what=="data":
|
||||||
return data
|
return data
|
||||||
ND = CONFIG.n_adc()
|
ND = CONFIG.n_adc()
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -49,11 +49,14 @@ def aenable(sl=None, hk=True, ev=True, **aa):
|
||||||
|
|
||||||
if __name__=="__main__":
|
if __name__=="__main__":
|
||||||
ifc,_oo = armlib.init_irena(scope = globals(), name = "AHEPAM", prod = (0xee0c,),
|
ifc,_oo = armlib.init_irena(scope = globals(), name = "AHEPAM", prod = (0xee0c,),
|
||||||
long_options=["seth"])
|
long_options=["seth", "ahbgo"])
|
||||||
for o,v in _oo[0]:
|
for o,v in _oo[0]:
|
||||||
if o=="--seth":
|
if o=="--seth":
|
||||||
dorn.CONFIG.seth()
|
dorn.CONFIG.seth()
|
||||||
armlib.set_prompt("SETH")
|
armlib.set_prompt("SETH")
|
||||||
|
if o=="--ahbgo":
|
||||||
|
dorn.CONFIG.ahbgo()
|
||||||
|
armlib.set_prompt("AHBGO")
|
||||||
ifc._stream_fifos = 'hk1/f1/f2/f3'
|
ifc._stream_fifos = 'hk1/f1/f2/f3'
|
||||||
if ifc.is_a("USB"):
|
if ifc.is_a("USB"):
|
||||||
findnmahepam()
|
findnmahepam()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue