def set_power_off(self, channel=CH_ACC): """ Set operating mode to "stand-by". """ assert channel == CH_ACC, 'only accelerometer available' self.reset_bit(r.KX022_CNTL1, b.KX022_CNTL1_PC1) # When changing PC1 1->0 then 2/ODR delay is needed odr_t = 1 / hz[self.read_register(r.KX022_ODCNTL, 1)[0] & m.KX022_ODCNTL_OSA_MASK] * 2.0 delay_seconds(max(odr_t, 0.1)) # wait at least 0.1 seconds
def set_power_off(self, channel=CH_ACC): """ Set operating mode to "stand-by". """ assert channel == CH_ACC, 'only accelerometer available' self.reset_bit(r.KXTJ3_CTRL_REG1, b.KXTJ3_CTRL_REG1_PC) # When changing PC1 1->0 then 1.5/ODR delay is needed odr_t = 1 / (hz[self.read_register(r.KXTJ3_DATA_CTRL_REG, 1)[0] & m.KXTJ3_DATA_CTRL_REG_OSA_MASK]) * 1.5 if odr_t < 0.1: odr_t = 0.1 delay_seconds(odr_t)
def set_power_on(self, channel=CH_ACC): """ Set operating mode to "operating mode". """ assert channel == CH_ACC, 'only accelerometer available' self.set_bit(r.KX022_CNTL1, b.KX022_CNTL1_PC1) # When changing PC1 0->1 then 2/ODR delay is needed odr_t = 1 / (hz[self.read_register(r.KX022_ODCNTL, 1)[0] & m.KX022_ODCNTL_OSA_MASK]) * 2.0 if odr_t < 0.1: odr_t = 0.1 delay_seconds(odr_t)
def set_power_off(self, channel=CH_ACC): """ Set operating mode to "stand-by". """ assert channel == CH_ACC, 'only accelerometer available' self.reset_bit(r.KX224_CNTL1, b.KX224_CNTL1_PC1) ## When changing PC1 1->0 then 1.5/ODR delay is needed odr_t = 1 / hz[self.read_register(r.KX224_ODCNTL, 1)[0] & m.KX224_ODCNTL_OSA_MASK] * 1.5 if odr_t < 0.1: odr_t = 0.1 delay_seconds(odr_t)
def set_power_on(self, channel=CH_ACC): """ Set operating mode to "operating mode". """ assert channel == CH_ACC, 'only accelerometer available' self.set_bit(r.KX224_CNTL1, b.KX224_CNTL1_PC1) ## When changing PC1 0->1 then 1.5/ODR delay is needed # FIXME 3 : is multiplier 1.5 like here on 2.0 like in kx022? # FIXME 3 : make common function for delay calculation and execution odr_t = 1 / (hz[self.read_register(r.KX224_ODCNTL, 1)[0] & m.KX224_ODCNTL_OSA_MASK]) * 1.5 if odr_t < 0.1: odr_t = 0.1 delay_seconds(odr_t)
def set_power_off(self, channel=CH_ACC | CH_ADP): """ Set operating mode to "stand-by". """ assert channel > 0 and channel & (CH_ACC | CH_ADP) == channel, 'only accelerometer and ADP' self.reset_bit(r.KX134_1211_CNTL1, b.KX134_1211_CNTL1_PC1) if channel & CH_ACC: # When changing PC1 1->0 then 2.0/ODR delay is needed odr_t = 1 / \ hz[self.read_register(r.KX134_1211_ODCNTL, 1)[0] & m.KX134_1211_ODCNTL_OSA_MASK] * 2.0 delay_seconds(max(odr_t, 0.1)) # wait at least 0.1 seconds if channel & CH_ADP: self.reset_bit(r.KX134_1211_CNTL5, b.KX134_1211_CNTL5_ADPE)
def set_power_on(self, channel=CH_ACC | CH_ADP): """ Set operating mode to "operating mode". """ assert channel > 0 and channel & (CH_ACC | CH_ADP) == channel, 'only accelerometer and ADP' if channel & CH_ACC: # When changing PC1 0->1 then 2.0/ODR delay is needed # only CH_ACC sets PC1 self.set_bit(r.KX134_1211_CNTL1, b.KX134_1211_CNTL1_PC1) odr_t = 1 / (hz[self.read_register(r.KX134_1211_ODCNTL, 1)[0] & m.KX134_1211_ODCNTL_OSA_MASK]) * 2.0 if odr_t < 0.1: odr_t = 0.1 delay_seconds(odr_t) if channel & CH_ADP: self.set_bit(r.KX134_1211_CNTL5, b.KX134_1211_CNTL5_ADPE)
def set_power_on(self, channel=CH_ACC): assert channel & (CH_ACC | CH_MAG | CH_TEMP) == channel if channel & CH_ACC > 0: self.set_bit_pattern(r.KMX62_CNTL2, b.KMX62_CNTL2_ACCEL_EN_OPERATING_MODE, m.KMX62_CNTL2_ACCEL_EN_MASK) # When setting power on; 0->1 then 1.5/ODR delay is needed for acc odr_t = 1 / (hz[self.read_register(r.KMX62_ODCNTL, 1)[0] & m.KMX62_ODCNTL_OSA_MASK]) if odr_t < 0.1: odr_t = 0.1 delay_seconds(odr_t) if channel & CH_MAG > 0: self.set_bit_pattern(r.KMX62_CNTL2, b.KMX62_CNTL2_MAG_EN_OPERATING_MODE, m.KMX62_CNTL2_MAG_EN_MASK) if channel & CH_TEMP > 0: self.set_bit_pattern(r.KMX62_CNTL2, b.KMX62_CNTL2_TEMP_EN_OPERATING_MODE, m.KMX62_CNTL2_TEMP_EN_MASK)
def por(self): self.write_register(r.KX022_CNTL2, b.KX022_CNTL2_SRST) delay_seconds(1) LOGGER.debug("POR done")
def por(self): self.set_bit(r.KXTJ3_CTRL_REG2, b.KXTJ3_CTRL_REG2_SRST) delay_seconds(1) LOGGER.debug("POR done")
def por(self): """ Initiate software reset (reset without cutting voltage supply or ground wires). """ self.write_register(r.KMX62_CNTL1, b.KMX62_CNTL1_SRST) delay_seconds(1) LOGGER.debug("POR done")