Skip to content

Commit 24e2d96

Browse files
committed
Bugfix Channel Scan
This Commit, - Fixes Bug with Channel scan - Adds tca9548a_channelscan.py example code for testing - Updates examples.rst
1 parent e79e116 commit 24e2d96

File tree

3 files changed

+34
-1
lines changed

3 files changed

+34
-1
lines changed

adafruit_tca9548a.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,11 @@ def writeto_then_readfrom(self, address, buffer_out, buffer_in, **kwargs):
7777

7878
def scan(self):
7979
"""Perform an I2C Device Scan"""
80-
return self.tca.i2c.scan()
80+
self.try_lock()
81+
try:
82+
return self.tca.i2c.scan()
83+
finally:
84+
self.unlock()
8185

8286

8387
class TCA9548A:

docs/examples.rst

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,12 @@ Ensure your device works with this simple test.
66
.. literalinclude:: ../examples/tca9548a_simpletest.py
77
:caption: examples/tca9548a_simpletest.py
88
:linenos:
9+
10+
Channel Scan
11+
-------------
12+
13+
Ensure your device scans each channel of TCA9547A with Channel Scan.
14+
15+
.. literalinclude:: ../examples/tca9548a_channelscan.py
16+
:caption: examples/tca9548a_channelscan.py
17+
:linenos:

examples/tca9548a_channelscan.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# SPDX-FileCopyrightText: 2021 codenio (Aananth K)
2+
# SPDX-License-Identifier: MIT
3+
4+
# This example shows scanning of each TCA9548A channels.
5+
import board
6+
import busio
7+
import adafruit_tca9548a
8+
9+
# Create I2C bus as normal
10+
i2c = busio.I2C(board.SCL, board.SDA)
11+
12+
# Create the TCA9548A object and give it the I2C bus
13+
tca = adafruit_tca9548a.TCA9548A(i2c)
14+
15+
# Scan the Main I2C Channel present in your board
16+
print(f"Scan of Main I2C Channel:{[hex(i) for i in i2c.scan()]}")
17+
18+
# Scan Each TCA9548A channel
19+
for i in range(8):
20+
print(f"Scan of TCA[i] Channel: {[hex(j) for j in tca[i].scan()]}")

0 commit comments

Comments
 (0)