主题中讨论的其他器件:ADS1262、
我使用 python3和 RPI3来访问串行数据。 我可以使用内部或外部基准(连接到 ANI0-AIN1)从 AIN2-AIN5正确读取模拟信号。
但是 、我无法从 TDAC 设置和读取正确的差分电压。 我选择了多路复用器输入至 TDAC (P&N)、PGA=1、并设置 TDAC、TDACN 值并启用 OUTP 和 OUTN、我在 AIN6和 AIN7引脚上获得~5.25V 相对于接地电压。 因此、ADC 的读数接近0V
我正在使用单个 PS +5V 为芯片供电。
寄存器配置如下。 我会依次调用每个模块并检查寄存 器是否已更新。命令 SER.SPI_INIT[]、发送列表、列出串行数据、0x40、#Address、#Registers、New Register 值。
默认 ADS126x_version (self):# ADS126x 版本和修订版本
REG_addr_BASE = 0b00100000 # RREG (0x20)
REG_ADDR_SUFIX = 0b00000000 # 0x00
REG_VALUE =[0x0000000]# 0x00
配置= SER.SPI_INIT (0、reg_addr_BASE、reg_addr_sucfix、reg_value、self.speed)
时间睡眠(0.1)
打印('\033[34m'+"芯片版本="、配置[2]>5、"版本号="、配置[2]和0x1f、'\033[0m')
DEF ADS126x_pw_reg (self):# ADS1262功率寄存器
REG_addr_BASE = 0b01000000 # WREG (0x40)
reg_addr_sucfix = 0b00000001 # 0x01
POWER_reg =[0b00000000] #0x00
配置= SER.SPI_INIT (0、reg_addr_BASE、reg_addr_sucfix、power_reg、self.speed)
时间睡眠(0.1)
DEF ADS126x_int (self):# ADS1262接口模式寄存器
REG_addr_BASE = 0b01000000 # WREG (0x40)
reg_addr_sucfix = 0b00000010 # 0x02
INT_reg =[0b00000100] # 0x04
配置= SER.SPI_INIT (0、reg_addr_BASE、reg_addr_sucfix、int_reg、self.speed)
时间睡眠(0.1)
DEF ADS126x_mode0 (self):# ADS1262转换模式0
REG_addr_BASE = 0b01000000 # WREG (0x40)
reg_addr_sucfix = 0b00000011 # 0x03
MODE_0_conf =[0b00000000]# 0x00
配置= SER.SPI_INIT (0、REG_addr_BASE、REG_addr_sucfix、MODE_0_conf、self.speed)
时间睡眠(0.1)
DEF ADS126x_mode1 (self):# ADS1262转换模式1 -滤波器
REG_addr_BASE = 0b01000000 # WREG (0x40)
REG_addr_sucfix = 0b00000100 # 0x04
MODE_1_conf =[0b10010000]# 0x90
配置= SER.SPI_INIT (0、REG_addr_BASE、REG_addr_sucfix、MODE_1_conf、self.speed)
时间睡眠(0.1)
DEF ADS126x_mode2 (self):# ADS1262转换模式2
REG_addr_BASE = 0b01000000 # WREG (0x40)
REG_addr_sucfix = 0b00000101 # 0x05
MODE_2_conf =[0b00000100]# 0x04 - PGA=1
配置= SER.SPI_INIT (0、REG_addr_BASE、REG_addr_sucfix、MODE_2_conf、self.speed)
时间睡眠(0.1)
DEF ADS126x_mux (self、mux_ch):# ADS1262输入 MUX 寄存器
REG_addr_BASE = 0b01000000 # WREG (0x40)
REG_addr_sucfix = 0b00000110 # 0x06
MUX_INP =[0b11101110] # 0xEE - TDACP 和 TDACN
配置= SER.SPI_INIT (0、REG_addr_BASE、REG_addr_sucfix、MUX_INP、self.speed)
时间睡眠(0.1)
DEF ADS126x_ref_mux (self):# ADS1262参考 MUX 寄存器
REG_addr_BASE = 0b01000000 # WREG (0x40)
REG_ADDR_SUFIX = 0b00001111 # 0x0F
REFMUX_INP =[0b00001001] # 0x09 - AIN0 - AIN1
配置= SER.SPI_INIT (0、reg_addr_BASE、reg_addr_sucfix、refmux_INP、self.speed)
时间睡眠(0.1)
DEF ADS126x_tdac_VP (self):# ADS1262 DAC 伏特位置寄存器
REG_addr_BASE = 0b01000000 # WREG (0x40)
REG_addr_sucfix = 0b00010000 # 0x10
tdacp_INP =[0b00000111] # 0x07 - 3.0V
tdacp_Rec = SER.SPI_init (0、reg_addr_BASE、reg_addr_sucfix、tdacp_INP、self.speed)
时间睡眠(0.1)
DEF ADS126x_tdac_vn (self):# ADS1262 DAC 电压负寄存器
REG_addr_BASE = 0b01000000 # WREG (0x40)
REG_addr_sucfix = 0b00010001 # 0x11
tdacn_INP =[0b00011001] # 0x19 - 0.5V
配置= SER.SPI_INIT (0、reg_addr_BASE、reg_addr_sucfix、tdacn_INP、self.speed)
时间睡眠(0.1)
DEF ADS126x_cal (self):# ADS1262校准寄存器
REG_ADDR_BASE = 0x40 # WREG (0x40)
REG_addr_sucfix = 0x07
OFCAL0 =[0x00]#[0xEF] 200mV # 0x00复位
SER.SPI_init (0、reg_addr_BASE、reg_addr_sucfix、OFCAL0、self.speed)
REG_addr_sucfix = 0x08
OFCAL1 =[0xD0]#[0x47] 200mV # 0x00复位
SER.SPI_init (0、reg_addr_BASE、reg_addr_sucfix、OFCAL1、self.speed)
REG_addr_sucfix = 0x09
OFCAL2 =[0x00]#[0x07] 200mV # 0x00复位
SER.SPI_init (0、reg_addr_BASE、reg_addr_sucfix、OFCAL2、self.speed)
REG_ADDR_SUFIX = 0x0A
FSCAL0 =[0x00]# 0x00增益1
SER.SPI_init (0、reg_addr_BASE、reg_addr_sucfix、FSCAL0、self.speed)
REG_ADDR_SUFIX = 0x0B
FSCAL1 =[0x00]# 0x00增益1
SER.SPI_init (0、reg_addr_BASE、reg_addr_sucfix、FSCAL1、self.speed)
REG_ADDR_SUFIX = 0x0C
FSCAL2 =[0x39]# 0x40增益1
SER.SPI_init (0、reg_addr_BASE、reg_addr_sucfix、FSCAL2、self.speed)
REG_addr_sucfix = 0x0D
IDACMUX =[0xBB]# 0xBB 复位
SER.SPI_init (0、reg_addr_BASE、reg_addr_sucfix、IDACMUX、self.speed)
REG_ADDR_SUFIX = 0x0E
IDACMAG =[0x00]# 0x00复位
SER.SPI_init (0、reg_addr_BASE、reg_addr_sucfix、IDACMUX、self.speed)
REG_addr_sucfix = 0x12
GPIOCOM =[0x00]# 0x00复位
SER.SPI_init (0、reg_addr_BASE、reg_addr_sucfix、GPIOCOM、self.speed)