X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/blobdiff_plain/77e8ffedfd65c00800e65169561d79fc4797ec1b..c2bc4a90827f28abb6b51eae659a1f80a65c0497:/src/adafruit_blinka/microcontroller/mcp2221/mcp2221.py diff --git a/src/adafruit_blinka/microcontroller/mcp2221/mcp2221.py b/src/adafruit_blinka/microcontroller/mcp2221/mcp2221.py index b6ca933..2dcc539 100644 --- a/src/adafruit_blinka/microcontroller/mcp2221/mcp2221.py +++ b/src/adafruit_blinka/microcontroller/mcp2221/mcp2221.py @@ -1,8 +1,12 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """Chip Definition for MCP2221""" import os import time import atexit + import hid # Here if you need it @@ -62,7 +66,7 @@ class MCP2221: self.gpio_set_direction(pin, 1) # set to INPUT def close(self): - """Close the device. Does nothing if the device is not open.""" + """Close the hid device. Does nothing if the device is not open.""" self._hid.close() def __del__(self): @@ -129,6 +133,7 @@ class MCP2221: def _reset(self): self._hid_xfer(b"\x70\xAB\xCD\xEF", response=False) + self._hid.close() time.sleep(MCP2221_RESET_DELAY) start = time.monotonic() while time.monotonic() - start < 5: @@ -243,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 @@ -355,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)