예제 #1
0
    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)
예제 #3
0
    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)
예제 #4
0
    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)
예제 #5
0
    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)
예제 #6
0
    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)
예제 #7
0
    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)
예제 #8
0
    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)
예제 #9
0
 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")
예제 #11
0
 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")