From f4ce26de5c81d6285a26ac172123398bab314e7e Mon Sep 17 00:00:00 2001
From: David Siorpaes <david.siorpaes@st.com>
Date: Tue, 26 Aug 2014 18:23:00 +0200
Subject: [PATCH] Added LIS302DL ID check

---
 stmhal/boards/STM32F4DISC/staccel.py | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/stmhal/boards/STM32F4DISC/staccel.py b/stmhal/boards/STM32F4DISC/staccel.py
index 8395df803..986c3a85c 100755
--- a/stmhal/boards/STM32F4DISC/staccel.py
+++ b/stmhal/boards/STM32F4DISC/staccel.py
@@ -21,6 +21,7 @@ from pyb import SPI
 READWRITE_CMD = const(0x80) 
 MULTIPLEBYTE_CMD = const(0x40)
 LIS302DL_WHO_AM_I_ADDR = const(0x0f)
+LIS302DL_WHO_AM_I_VAL = const(0x3b)
 LIS302DL_CTRL_REG1_ADDR = const(0x20)
 LIS302DL_OUT_X = const(0x29)
 # Configuration for 100Hz sampling rate, +-2g range
@@ -38,6 +39,8 @@ class STAccel:
         self.cs_pin.high()
         self.spi = SPI(1, SPI.MASTER, baudrate=328125, polarity=0, phase=1, bits=8)
         self.wr(LIS302DL_CTRL_REG1_ADDR, bytearray([LIS302DL_CONF]))
+        if(self.read_id()[0] != LIS302DL_WHO_AM_I_VAL):
+            raise Exception('LIS302DL accelerometer not present')
 
     def rd(self, addr, nbytes):
         if nbytes > 1:
-- 
GitLab