aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2013-12-09 10:03:50 +1100
committerLorenz Meier <lm@inf.ethz.ch>2013-12-10 12:06:41 +0100
commit96881d88106c421a4ea44118b754f90d47b94e4f (patch)
tree81805cc83f1a585d420f0ee8033b4c39684f1494 /src
parentf0d84d4826a6563693ae0abd6ac1f72a3eafdc68 (diff)
downloadpx4-firmware-96881d88106c421a4ea44118b754f90d47b94e4f.tar.gz
px4-firmware-96881d88106c421a4ea44118b754f90d47b94e4f.tar.bz2
px4-firmware-96881d88106c421a4ea44118b754f90d47b94e4f.zip
ms5611: check for all zero in the prom
when SPI CLK fails we get all zero data
Diffstat (limited to 'src')
-rw-r--r--src/drivers/ms5611/ms5611_spi.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/drivers/ms5611/ms5611_spi.cpp b/src/drivers/ms5611/ms5611_spi.cpp
index e9dff5a8b..bc4074c55 100644
--- a/src/drivers/ms5611/ms5611_spi.cpp
+++ b/src/drivers/ms5611/ms5611_spi.cpp
@@ -236,9 +236,12 @@ MS5611_SPI::_read_prom()
usleep(3000);
/* read and convert PROM words */
+ bool all_zero = true;
for (int i = 0; i < 8; i++) {
uint8_t cmd = (ADDR_PROM_SETUP + (i * 2));
_prom.c[i] = _reg16(cmd);
+ if (_prom.c[i] != 0)
+ all_zero = false;
//debug("prom[%u]=0x%x", (unsigned)i, (unsigned)_prom.c[i]);
}
@@ -247,6 +250,10 @@ MS5611_SPI::_read_prom()
if (ret != OK) {
debug("crc failed");
}
+ if (all_zero) {
+ debug("prom all zero");
+ ret = -EIO;
+ }
return ret;
}