38 lines
1.1 KiB
Python
38 lines
1.1 KiB
Python
import board
|
|
import audiobusio
|
|
from microcontroller import Pin
|
|
|
|
|
|
def is_hardware_i2s(bit_clock, word_select, data):
|
|
try:
|
|
p = audiobusio.I2SOut(bit_clock, word_select, data)
|
|
p.deinit()
|
|
return True
|
|
except ValueError:
|
|
return False
|
|
|
|
|
|
def get_unique_pins():
|
|
exclude = ['NEOPIXEL', 'APA102_MOSI', 'APA102_SCK']
|
|
pins = [pin for pin in [
|
|
getattr(board, p) for p in dir(board) if p not in exclude]
|
|
if isinstance(pin, Pin)]
|
|
unique = []
|
|
for p in pins:
|
|
if p not in unique:
|
|
unique.append(p)
|
|
return unique
|
|
|
|
|
|
for bit_clock_pin in get_unique_pins():
|
|
for word_select_pin in get_unique_pins():
|
|
for data_pin in get_unique_pins():
|
|
if bit_clock_pin is word_select_pin or bit_clock_pin is data_pin or word_select_pin\
|
|
is data_pin:
|
|
continue
|
|
else:
|
|
if is_hardware_i2s(bit_clock_pin, word_select_pin, data_pin):
|
|
print("Bit clock pin:", bit_clock_pin, "\t Word select pin:", word_select_pin,
|
|
"\t Data pin:", data_pin)
|
|
else:
|
|
pass
|