Compare commits
No commits in common. "a8c60193c62a2c5df16568d8820a483333b36aa3" and "31e515558639b0062f4672f56dd465faef8df502" have entirely different histories.
a8c60193c6
...
31e5155586
3 changed files with 55 additions and 68 deletions
118
dorn.py
118
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" GND = {d[0]:6.3f} V,
|
T = {d[5]:6.2f} °C" Ibias = {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 = [[
|
||||||
("GND",),
|
("Ibias", 10470/470 * 51/1051 * 100),
|
||||||
("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,36 +79,16 @@ class DORN_CONFIG:
|
||||||
("Vss", 2.5, ("Vcc", -1.5)),
|
("Vss", 2.5, ("Vcc", -1.5)),
|
||||||
]]
|
]]
|
||||||
|
|
||||||
HK = [
|
HK4_AHBGO = [[
|
||||||
("INP₀", None, HK_fmt),
|
("Tbgo₁", (degC, {})),
|
||||||
("INP₁", None, HK_fmt),
|
("Tbgo₂", (degC, {})),
|
||||||
("INP₂", None, HK_fmt),
|
("Vbias", -1/0.047),
|
||||||
("HK ADC", HK3, HK3_fmt),
|
("Tbgo₃", (degC, {})),
|
||||||
("HK PA", None, HK_fmt),
|
("Ibias₁", 10470/470 * 51/1051 * 100),
|
||||||
("VrefL", None, HK_fmt),
|
("Ibias₂", 10470/470 * 51/1051 * 100),
|
||||||
("VrefH", None, HK_fmt),
|
("Vss", 2.5, ("Vcc", -1.5)),
|
||||||
("HK_PWR", None, HK_fmt),
|
("Vcc", 2.0),
|
||||||
]
|
]]
|
||||||
|
|
||||||
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 = [
|
||||||
[
|
[
|
||||||
|
|
@ -135,14 +115,20 @@ 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, {})),
|
||||||
|
|
@ -150,26 +136,42 @@ 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 .HK
|
# ! change the class attribute
|
||||||
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):
|
||||||
|
|
@ -182,20 +184,8 @@ def hk(sl, what="print", data=None):
|
||||||
time.sleep(0.1)
|
time.sleep(0.1)
|
||||||
fifo_read(sl=sl, hk=True)
|
fifo_read(sl=sl, hk=True)
|
||||||
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,14 +49,11 @@ 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", "ahbgo"])
|
long_options=["seth"])
|
||||||
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