Commit c75f8766 authored by Matthieu Cattin's avatar Matthieu Cattin

fmc_adc: manual LED control using register map.

Can't use field_set function because of write only command fields.
parent dd993732
......@@ -252,26 +252,40 @@ class CFmcAdc100m:
# Front panel LED manual control
def acq_led(self, state):
reg = self.fmc_adc_csr.rd_reg(self.R_CTL)
#print("R_CTL:%.8X")%reg
if(state == 0):
reg &= ~(1<<self.CTL_ACQ_LED)
else:
reg |= (1<<self.CTL_ACQ_LED)
reg &= self.CTL_MASK
#print("R_CTL:%.8X")%reg
self.fmc_adc_csr.wr_reg(self.R_CTL, reg)
ACQ_LED_OFFSET = 7
try:
reg = self.fmc_adc_csr.get_reg('CTL')
# print("CTL reg value:%.8X")%reg
if(state == 0):
reg &= ~(1<<ACQ_LED_OFFSET)
else:
reg |= (1<<ACQ_LED_OFFSET)
# The set_field function can't be used here, because of write
# only command fields that have undefined value when read.
# Therefore, write only command fields are set to 0
reg &= 0xEC
# print("CTL reg value:%.8X")%reg
self.fmc_adc_csr.set_reg('CTL', reg)
except CSRDeviceOperationError as e:
raise FmcAdc100mOperationError(e)
def trig_led(self, state):
reg = self.fmc_adc_csr.rd_reg(self.R_CTL)
#print("R_CTL:%.8X")%reg
if(state == 0):
reg &= ~(1<<self.CTL_TRIG_LED)
else:
reg |= (1<<self.CTL_TRIG_LED)
reg &= self.CTL_MASK
#print("R_CTL:%.8X")%reg
self.fmc_adc_csr.wr_reg(self.R_CTL, reg)
TRIG_LED_OFFSET = 6
try:
reg = self.fmc_adc_csr.get_reg('CTL')
# print("CTL reg value:%.8X")%reg
if(state == 0):
reg &= ~(1<<TRIG_LED_OFFSET)
else:
reg |= (1<<TRIG_LED_OFFSET)
# The set_field function can't be used here, because of write
# only command fields that have undefined value when read.
# Therefore, write only command fields are set to 0
reg &= 0xEC
# print("CTL reg value:%.8X")%reg
self.fmc_adc_csr.set_reg('CTL', reg)
except CSRDeviceOperationError as e:
raise FmcAdc100mOperationError(e)
# print LTC2174 configuration
def print_adc_config(self):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment