Проблема с ацп adc0832ccn, не выдает данные

MrKairos

✩✩✩✩✩✩✩
29 Сен 2025
1
0
Привет!

Я хочу подключить два потенциометра к raspberry pi 5. У нее нет встроенного ацп, по этому я решил подключить через микросхему adc0832ccn. Это двуканальный ацп.

столкнулся с проблемой:
когда DI и DO стоят правильно, то данные как в приложении 1.

А когда я их меняю местами, то начанает с обоих каналов поступать данные со второго потенциометра. (приложение 2)

еще приложу фото борда

board.jpg

Код:

Python:
import spidev, time

spi = spidev.SpiDev()
spi.open(0, 0)            # bus0, CE0
spi.mode = 0
spi.max_speed_hz = 100000


def read_adc(channel: int, debug=False) -> int:
    if channel not in (0, 1):
        raise ValueError("channel must be 0 or 1")
    cmd = 0xD0 if channel == 0 else 0xF0
    r = spi.xfer2([0x01, cmd, 0x00])
    if debug:
        print(f"RAW({channel}) -> {[f'0x{x:02X}' for x in r]}")
    value = ((r[1] & 0x03) << 6) | (r[2] >> 2)
    return value & 0xFF

VREF = 3.3

try:
    while True:
        raw0 = read_adc(0, debug=True)
        raw1 = read_adc(1, debug=True)
        v0 = raw0 * VREF / 255.0
        v1 = raw1 * VREF / 255.0
        print(f"CH0: {raw0:3d} ({v0:0.3f} V) | CH1: {raw1:3d} ({v1:0.3f} V)")
        time.sleep(0.2)
except KeyboardInterrupt:
    spi.close()
 

Вложения