diff --git a/ohmpi/hardware_components/pwr_dps5005.py b/ohmpi/hardware_components/pwr_dps5005.py index 59a320e3eb180c25e6733a8aaa39e07b72b5b76f..df2802c55763fd2984b3a312abaa82c16e13798c 100644 --- a/ohmpi/hardware_components/pwr_dps5005.py +++ b/ohmpi/hardware_components/pwr_dps5005.py @@ -39,6 +39,8 @@ class Pwr(PwrAbstract): self._current_max_tolerance = kwargs['current_max_tolerance'] self.current_max = self._current_max self.voltage_max = self._voltage_max + self.voltage_defaut(self._voltage) + self.current_max_default(self._current_max) self.power_max(self._power_max) self.voltage_adjustable = True self.current_adjustable = False @@ -72,15 +74,26 @@ class Pwr(PwrAbstract): self.connection.write_register(0x0000, np.round(value, 2), 2) self._voltage = value + def voltage_default(self, value): # [A] + self.connection.write_register(0x0050, np.round(value, 2), 2) + self._current_max = value + + @property + def voltage_max(self): + return self._voltage_max + + @voltage_max.setter + def voltage_max(self, value): # [V] + if value >= 51.: # DPS 5005 maximum accepted value + value = 50.99 + self.connection.write_register(0x0052, np.round(value, 2), 2) + self._voltage_max = value + + def battery_voltage(self): self._battery_voltage = self.connection.read_register(0x05, 2) return self._battery_voltage - # @current_max.setter - # def current_max(self, value): # [mA] - # new_value = value * (1 + self._current_max_tolerance / 100) # To set DPS max current slightly above (20% by default) the limit to avoid regulation artefacts - # self.connection.write_register(0x0001, np.round((new_value * 1000), 3), 0) - # self._current_max = value @property def current(self): return self._current @@ -102,16 +115,11 @@ class Pwr(PwrAbstract): self.connection.write_register(0x0053, np.round((new_value), 3), 3) self._current_max = value - @property - def voltage_max(self): - return self._voltage_max - - @voltage_max.setter - def voltage_max(self, value): # [V] - if value >= 51.: # DPS 5005 maximum accepted value - value = 50.99 - self.connection.write_register(0x0052, np.round(value, 2), 2) - self._voltage_max = value + def current_max_default(self, value): # [A] + new_value = value * ( + 1 + self._current_max_tolerance / 100) # To set DPS max current slightly above (20% by default) the limit to avoid regulation artefacts + self.connection.write_register(0x0051, np.round((new_value), 3), 3) + self._current_max = value def power_max(self, value): # [W] self.connection.write_register(0x0054, np.round(value,1), 1) diff --git a/ohmpi/hardware_system.py b/ohmpi/hardware_system.py index 56774903d93f4c7a5dc0604a42eca33f046f2909..33ef24e5436eb5fe725256e5f36319f4b9942c88 100644 --- a/ohmpi/hardware_system.py +++ b/ohmpi/hardware_system.py @@ -241,11 +241,6 @@ class OhmPiHardware: self.tx.voltage_pulse(length=injection_duration, polarity=polarity) self.exec_logger.event(f'OhmPiHardware\tinject\tend\t{datetime.datetime.utcnow()}') - def _inject_current(self, polarity=1, injection_duration=None): # TODO: deal with voltage or current pulse - self.exec_logger.event(f'OhmPiHardware\tinject\tbegin\t{datetime.datetime.utcnow()}') - self.tx.current_pulse(length=injection_duration, polarity=polarity) - self.exec_logger.event(f'OhmPiHardware\tinject\tend\t{datetime.datetime.utcnow()}') - def _set_mux_barrier(self): self.mux_barrier = Barrier(len(self.mux_boards) + 1) for mux in self.mux_boards: