Compare commits

...

2 commits

Author SHA1 Message Date
Stephan I. Böttcher
5c9dfe072a new: dlrena.py 2024-11-22 22:34:08 +01:00
Stephan I. Böttcher
f47fb57243 mainloop: fix adc vars order, echo/uart1 sends nl 2024-11-22 22:33:35 +01:00
2 changed files with 56 additions and 5 deletions

49
dlrena.py Executable file
View file

@ -0,0 +1,49 @@
#! /usr/bin/ipython3 --profile=dlrena
import armlib, sys, math, time
def HK():
Vcc = hk2mvolt("adc_Vp")*0.011
Vss = hk2mvolt("adc_Vm")*(-0.011)
Icc = hk2mvolt("adc_Ip")*0.1
Iss = hk2mvolt("adc_Im")*(-0.1)
Vprim = hk2mvolt("adc_Vprim")*(0.011)
Iprim = hk2mvolt("adc_Iprim")
r = (Vcc, Vss, Icc, Iss, Vprim, Iprim)
print("Vcc:%4.2fV, Vss:%4.2fV, Icc:%6.1fmA, Iss:%6.1fmA, Vprim:%4.1fV, Iprim:%4.1fmV" % r)
return r
def adc_gain(ch, gain=None, unipolar=False):
c = ADC_prefix + "/addr=0x%04x/range[%d]" % adc_addr_ch(ch)
if gain is None:
return cmd(c)
if gain>3:
gain=0b1011
if unipolar:
gain |= 4
return cmd("%s %d" % (c, gain))
def init_adc_features():
for i,a in enumerate(ADC_ADDRS):
f = (i<<6)|3
r=cmd(ADC_prefix + "/addr=0x%04x/feature=0x%02x" % (a,f))
try:
ff = int(r.split()[-1], 0)
if ff>>8 == f:
armlib._ifc._log("found ADC %d at 0x%03x" % (i,a))
else:
armlib._ifc._log("no ADC %d at 0x%03x, response 0x%04x" % (i,a, ff))
except ValueError:
armlib._ifc._log("no ADC %d at 0x%03x, message %s" % (i,a,r))
def finddlrena():
findxrena(prod=0xeed1)
if connected_p():
set_clock()
messages()
HK()
if __name__=="__main__":
ifc,_oo = armlib.init_irena(scope = globals(), name = "DLRENA", prod = 0xeed1)
if ifc.is_a("USB"):
finddlrena()

View file

@ -103,8 +103,10 @@ static int echo_command(struct command *cmd, const struct command_par *par)
message(val, "%s", txt); message(val, "%s", txt);
if (what & 0x40000) if (what & 0x40000)
uart_submit_response(txt); uart_submit_response(txt);
if (what & 0x400000) if (what & 0x400000) {
uart1_send(txt, strlen(txt)); uart1_send(txt, strlen(txt));
uart1_send("\n", 1);
}
if (what & 0x100000) if (what & 0x100000)
printf(0, "%s\n", txt); printf(0, "%s\n", txt);
if (what & 0x80000) { if (what & 0x80000) {
@ -835,12 +837,12 @@ static const struct keywords main_variable_names[] = {
VARIABLE("adc1", (unsigned int *)&AD_1), VARIABLE("adc1", (unsigned int *)&AD_1),
VARIABLE("adc2", (unsigned int *)&AD_2), VARIABLE("adc2", (unsigned int *)&AD_2),
VARIABLE("adc3", (unsigned int *)&AD_3), VARIABLE("adc3", (unsigned int *)&AD_3),
VARIABLE("adc_Iplus", (unsigned int *)&AD_Ip ),
VARIABLE("adc_Iminus", (unsigned int *)&AD_Im ),
VARIABLE("adc_Vplus", (unsigned int *)&AD_Vp ),
VARIABLE("adc_Vminus", (unsigned int *)&AD_Vm ),
VARIABLE("adc_Iprim", (unsigned int *)&AD_Iprim), VARIABLE("adc_Iprim", (unsigned int *)&AD_Iprim),
VARIABLE("adc_Vprim", (unsigned int *)&AD_Vprim), VARIABLE("adc_Vprim", (unsigned int *)&AD_Vprim),
VARIABLE("adc_Ip", (unsigned int *)&AD_Ip ),
VARIABLE("adc_Im", (unsigned int *)&AD_Im ),
VARIABLE("adc_Vp", (unsigned int *)&AD_Vp ),
VARIABLE("adc_Vm", (unsigned int *)&AD_Vm ),
VARIABLE("gpio1", &gpio1_status), VARIABLE("gpio1", &gpio1_status),