主题中讨论的其他器件:、 ADS131M04
大家好、不久前我购买了一款 ADS131M08EVM 进行测试、但现在我需要跳出舒适区、并使用 Raspberry Pi 4b 通过电路板开始实现。 我想使用 Raspberry Pi 4b 通过 SPI 以 Python 语言编程来控制 ADS131M08。 我的目标是从读取寄存器开始、使用数据表中提供的默认值作为基础。
我不确定我的代码是否结构良好、
代码:
导入 spidev
将 rpi.gpio 导入为 GPIO
导入时间
类 ads131m08 ():
# ADS131M08命令
命令={
'CMD_NULL':[0b00000000、0b00000000]、#请求 ADS 样本
'CMD_RESET_DEVICE':[0b00000000、0b00010001]、#重置设备
'CMD_STANDBY':[0b00000000、0b00100010]、
'CMD_WAKEUP':[0b00000000、0b00110011]、
'CMD_LOCK':[0b00000000、0b10101010]]、
'CMD_UNLOCK ':[0b00000000、0b11001010]、
'CMD_RREG':[0b10100000、0b00000000]、#读取寄存器
'CMD_WREG':[0b01100000、0b00000000]、#写寄存器
}
DEF _init__(self、SyncResetGpio、DrdyGpio、DeviseSpi、cs、 SCLK=12000000):
# SPI 配置
self.spi = spidev.SpiDev ()
self.spi.open (DeviseSpi、cs)
self.spi.max_speed_Hz = SCLK
self.spi.mode = 1
self.spi.lsbfirst = False #默认值
# ADS131M08工作模式1
self.chEnable = 8
# GPIO 配置
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(DrdyGpio、gpio.in)#要读取引脚--> DrdyState = GPIO.input(DrdyGpio)
GPIO.setup(SyncResetGpio、GPIO.out)#写入引脚高电平=停用、低电平=激活--> GPIO.output (SyncResetGpio、GPIO.low)
# gpio.output (SyncResetGpio、gpio.high)
GPIO.setup(self.ChEnable、GPIO.out)
GPIO.OUTPUT (SyncResetGpio、GPIO.low)
时间睡眠(1)
GPIO.OUTPUT (SyncResetGpio、GPIO.high)
默认 ID (自):
GPIO.Output (self.chEnable、GPIO.low)
respons = self.spi.xfer2 ([0xA0、0x01、0x00])#发送地址为0x01 (STATUS)的读取命令
GPIO.Output (self.chEnable、GPIO.high)
打印("status:"、respons)
时间睡眠(1)
默认关闭(自):
self.spi.close()
DEF 反转(自):
print ("将位反转以使用模式3作为模式1")
ADS = ads131m08 (22、24、0、01000000)
尝试:
While True:
ads.id()
除了键盘中断:
ads.close()
gpio.clean()
结果:
状态:[255、40、0]
状态:[224、1、0]
状态:[5255、0]
状态:[224、1、0]
状态:[5255、0]
状态:[224、1、0]
状态:[5255、0]
状态:[224、1、0]
状态:[5255、0]
状态:[224、1、0]
对于同一个命令,我收到了各种响应,但没有一个像预期的那样---0x500h。
用于--> respons = self.spi.xfer2([0xA0, 0x00, 0x00])
结果:状态:[255、40、0]
状态:[40、1、0]
状态:[40、1、0]
状态:[40、1、0]
状态:[40、1、0]
状态:[40、1、0]
状态:[40、1、0]
状态:[40、1、0]
状态:[40、1、0]
状态:[40、1、0]
对于同一个命令,我收到了各种响应,没有一个是预期 ID --> 0x28XXh。
用于--> respons = self.spi.xfer2([0xA0, 0x03, 0x00])
结果:
状态:[255、40、0]
状态:[224、3、0]
状态:[5255、0]
状态:[224、3、0]
状态:[5255、0]
状态:[224、3、0]
状态:[5255、0]
状态:[224、3、0]
状态:[5255、0]
对于同一条命令,我收到了各种响应,但没有一个响应符合预期-->0xFF0Eh。