From 3fa419e132e77d68924a6696706c1f991782537b Mon Sep 17 00:00:00 2001 From: Pierre Kancir Date: Sat, 4 May 2019 19:39:39 +0200 Subject: [PATCH] AP_Baro: fix LPS22H on I2C --- libraries/AP_Baro/AP_Baro_LPS2XH.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/libraries/AP_Baro/AP_Baro_LPS2XH.cpp b/libraries/AP_Baro/AP_Baro_LPS2XH.cpp index 34946680db77a..d4e5fbabbb8b8 100644 --- a/libraries/AP_Baro/AP_Baro_LPS2XH.cpp +++ b/libraries/AP_Baro/AP_Baro_LPS2XH.cpp @@ -159,8 +159,13 @@ bool AP_Baro_LPS2XH::_init() CallTime = 40 * AP_USEC_PER_MSEC; } if(_lps2xh_type == BARO_LPS22H){ - _dev->write_register(LPS22H_CTRL_REG1,LPS22H_CTRL_REG1_ODR_75HZ|LPS22H_CTRL_REG1_BDU|LPS22H_CTRL_REG1_EN_LPFP|LPS22H_CTRL_REG1_LPFP_CFG); - _dev->write_register(LPS22H_CTRL_REG2,0x18); + _dev->write_register(LPS22H_CTRL_REG1, 0x00); // turn off for config + _dev->write_register(LPS22H_CTRL_REG1, LPS22H_CTRL_REG1_ODR_75HZ|LPS22H_CTRL_REG1_BDU|LPS22H_CTRL_REG1_EN_LPFP|LPS22H_CTRL_REG1_LPFP_CFG); + if (_dev->bus_type() == AP_HAL::Device::BUS_TYPE_SPI) { + _dev->write_register(LPS22H_CTRL_REG2, 0x18); // disable i2c + } else { + _dev->write_register(LPS22H_CTRL_REG2, 0x10); + } // request 75Hz update CallTime = 1000000/75;