Module flask_app.Devices
Source code
from .Driver.LTC2631 import LTC2631
from .Driver.PCAL6416 import PCAL6416, PinAssignment
from .Driver.ADS8885 import ADS8885, ResolutionScaler
from .VarSupply import VarSupply
"""
This file contains all the Device configuration used to measure voltage/current or supply voltages.
"""
measurementIoExpander = PCAL6416(0, 0b0100001)
cs1 = 8
cs2 = 7
cs3 = 5
cs4 = 6
# # if(self.name == "vm1"):
# # return value * 2.3307 - 0.1192 #* 3.133 - 40.6;
# # elif(self.name == "vm2"):
# # return value * 2.3487 + 0.0375 #* 3.133 - 40.6;
# # return value;
resolutionScalersVm1 = {
# 5V
3: ResolutionScaler(2.3361, -0.11733),
# 50mV
1: ResolutionScaler(25.4362, -3.44427),
# 500mV
2: ResolutionScaler(255.016, -13.7671)
}
resolutionScalersVm2 = {
# 5V
3: ResolutionScaler(2.3535, 0.04193),
1: ResolutionScaler(25.4852, -2.2547),
2: ResolutionScaler(255.394, 4.3131)
}
resolutionScalersCm3 = {
# 500uA
1: ResolutionScaler(242.9322, -0.47838),
# 50mA
2: ResolutionScaler(44.9391, -0.0085668)
}
resolutionScalersCm4 = {
2: ResolutionScaler(45.60521, -0.33778),
1: ResolutionScaler(241.4526, -2.2501)
}
""" Contains all ADS8885 measurement Devices. """
measurementDevices = {
"vm1": ADS8885('vm1',
0,
PinAssignment(0, 4, "resolution"),
PinAssignment(0, 5, "resolution"),
measurementIoExpander,
cs1,
resolutionScalersVm1
),
"vm2": ADS8885('vm2',
0,
PinAssignment(0, 6, "resolution"),
PinAssignment(0, 7, "resolution"),
measurementIoExpander,
cs2,
resolutionScalersVm2
)
,
"cm3": ADS8885('cm3',
1,
PinAssignment(0, 0, "resolution"),
PinAssignment(0, 1, "resolution"),
measurementIoExpander,
cs3,
resolutionScalersCm3
),
"cm4": ADS8885('cm4',
1,
PinAssignment(0, 2, "resolution"),
PinAssignment(0, 3, "resolution"),
measurementIoExpander,
cs4,
resolutionScalersCm4
)
}
bodyBiasingControl = LTC2631(address = 0b0010000)
bodyBiasingNegControl = LTC2631(address = 0b0010001)
precisionSupply1Control = LTC2631(address = 0b0010010)
precisionSupply2Control = LTC2631(address= 0b0010011)
""" Voltage supplies that use an LTC chip """
LTCDevices = {
"BBP": bodyBiasingControl,
"BBN": bodyBiasingNegControl,
"PS1": precisionSupply1Control,
"PS2": precisionSupply2Control
}
pinAssignements1 = [
PinAssignment(0, 0, "enable"),
PinAssignment(0, 1, "voltageOut"),
PinAssignment(0, 2, "voltageOut"),
PinAssignment(0, 3, "voltageOut"),
PinAssignment(0, 4, "voltageOut")
]
pinAssignements2 = [
PinAssignment(0, 5, "enable"),
PinAssignment(0, 6, "voltageOut"),
PinAssignment(0, 7, "voltageOut"),
PinAssignment(1, 0, "voltageOut"),
PinAssignment(1, 1, "voltageOut")
]
pinAssignements3 = [
PinAssignment(1, 2, "enable"),
PinAssignment(1, 3, "voltageOut"),
PinAssignment(1, 4, "voltageOut"),
PinAssignment(1, 5, "voltageOut"),
PinAssignment(1, 6, "voltageOut")
]
""" Voltage supplies that do not use an LTC chip but are controlled using IO Pins from the IO Expander """
varSupplies = {
"1": VarSupply(0b0100000, pinAssignements1, "VarSupply1"),
"2": VarSupply(0b0100000, pinAssignements2, "VarSupply2"),
"3": VarSupply(0b0100000, pinAssignements3, "VarSupply3")
}
Global variables
var pinAssignements3
-
Voltage supplies that do not use an LTC chip but are controlled using IO Pins from the IO Expander
var precisionSupply2Control
-
Voltage supplies that use an LTC chip
var resolutionScalersCm4
-
Contains all ADS8885 measurement Devices.