diff options
author | Andrew Tridgell <tridge@samba.org> | 2013-12-09 10:03:50 +1100 |
---|---|---|
committer | Lorenz Meier <lm@inf.ethz.ch> | 2013-12-10 12:06:41 +0100 |
commit | 96881d88106c421a4ea44118b754f90d47b94e4f (patch) | |
tree | 81805cc83f1a585d420f0ee8033b4c39684f1494 /src | |
parent | f0d84d4826a6563693ae0abd6ac1f72a3eafdc68 (diff) | |
download | px4-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.cpp | 7 |
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; } |