From 84900ae8e1b3d112f8759ad9d16405efc3e346be Mon Sep 17 00:00:00 2001 From: caternuson Date: Wed, 17 Oct 2018 09:51:20 -0700 Subject: [PATCH] add Stop Mode to register write --- adafruit_mpr121.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/adafruit_mpr121.py b/adafruit_mpr121.py index 550c17b..d49aea9 100644 --- a/adafruit_mpr121.py +++ b/adafruit_mpr121.py @@ -120,8 +120,16 @@ def touched_pins(self): def _write_register_byte(self, register, value): # Write a byte value to the specifier register address. + # MPR121 must be put in Stop Mode to write to most registers + stop_required = True + if register == MPR121_ECR or 0x73 <= register <= 0x7A: + stop_required = False with self._i2c: + if stop_required: + self._i2c.write(bytes([MPR121_ECR, 0x00])) self._i2c.write(bytes([register, value])) + if stop_required: + self._i2c.write(bytes([MPR121_ECR, 0x8F])) def _read_register_bytes(self, register, result, length=None): # Read the specified register address and fill the specified result byte