]> Repositories - Adafruit_Blinka-hackapet.git/commitdiff
Merge pull request #864 from brentru/fix-mcp-nack 8.45.2
authorMelissa LeBlanc-Williams <melissa@adafruit.com>
Tue, 2 Jul 2024 15:19:04 +0000 (08:19 -0700)
committerGitHub <noreply@github.com>
Tue, 2 Jul 2024 15:19:04 +0000 (08:19 -0700)
Fix MCP2221 I2C NACK Error

src/adafruit_blinka/microcontroller/mcp2221/mcp2221.py

index 90ed49e50c046ba10d48259a1e4e96a1b6a6b6a3..2dcc5394718eb79efd25a5c0706b79187e015b97 100644 (file)
@@ -248,7 +248,7 @@ class MCP2221:
         for _ in range(MCP2221_RETRY_MAX):
             status = self._i2c_status()
             if status[20] & MASK_ADDR_NACK:
-                raise RuntimeError("I2C slave address was NACK'd")
+                raise OSError("I2C slave address was NACK'd")
             usb_cmd_status = status[8]
             if usb_cmd_status == 0:
                 break
@@ -360,7 +360,8 @@ class MCP2221:
             # try a write
             try:
                 self.i2c_writeto(addr, b"\x00")
-            except RuntimeError:  # no reply!
+            except OSError:  # no reply!
+                # We got a NACK, which could be correct
                 continue
             # store if success
             found.append(addr)