我尝试使用AD5270,20KOhm SPI电位计,用于我的树莓Pi 3B+个人项目。我将一些Arduino库代码翻译成Python语言,但它看起来不起作用。我无法测试电位计是否配置了良好的值,因此我读取电阻器值,并始终从SPI寄存器中获取0
问题:我不知道我的书写是否很好,因为我不能探测电阻。为了知道它是否有效,我读取寄存器并始终接收0x00。写作和/或阅读不起作用
期望:读我写的东西
硬件设置:
带有1uF外部电容器和3V3电源(来自Raspberry)
AD5270的数据表可从here获得
数据表后面的最低限度代码不起作用:
spi = spidev.SpiDev()
spi.open(spi_bus, spi_device_select)
spi.max_speed_hz = 50000 # Datasheet p7
spi.mode = 1 # CPOL = 0, CPHA = 1 (Datasheet p7)
# Datasheet example
data = [0x1C, 0x03]
r = spi.xfer(data)
print(r)
data = [0x05, 0x00]
r = spi.xfer(data)
print(r)
data = [0x08, 0x00]
r = spi.xfer(data)
print(r)
data = [0xC0, 0x00]
r = spi.xfer(data)
print(r)
我终于掌握了窍门。不要忘记在SDO线上添加一个上拉,并为AD5270配置Spidev。这段代码运行得很好:
从硬件设置:
DIN是AD5270的输入,因此是RPI的输出,所以应该是MOSI。SDO也有同样的问题
相关问题 更多 >
编程相关推荐