def ADS1263_GetAll_ADC2(self): ADC_Value = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] for i in range(0, 10, 1): ADC_Value[i] = self.ADS1263_GetChannalValue_ADC2(i) self.ADS1263_WriteCmd(ADS1263_CMD['CMD_STOP2']) config.delay_ms(20) print("--- Read ADC2 value success ---") return ADC_Value
def ADS1256_GetVibrate(self, channel): while (config.digital_read(self.drdy_pin) == 1): pass self.ADS1256_SetDiffChannal(channel) self.ADS1256_WriteCmd(CMD['CMD_SYNC']) config.delay_ms(10) self.ADS1256_WriteCmd(CMD['CMD_WAKEUP']) config.delay_ms(10) Value = self.ADS1256_Read_ADC_Data() return Value
def ADS1256_Read_ADC_Data(self): config.digital_write(self.cs_pin, GPIO.LOW)#cs 0 config.spi_writebyte([CMD['CMD_RDATA']]) config.delay_ms(10) buf = config.spi_readbytes(3) config.digital_write(self.cs_pin, GPIO.HIGH)#cs 1 read = (buf[0]<<16) & 0xff0000 read |= (buf[1]<<8) & 0xff00 read |= (buf[2]) & 0xff if (read & 0x800000): read |= 0xFF000000 return read
def ADS1256_ReadReg(self, _RegID): '''Read the corresponding register''' config.digital_write(self.cs_pin, GPIO.LOW) self.ADS1256_SendData(CMD['CMD_RREG'] | _RegID) self.ADS1256_SendData(0x00) config.delay_ms(1) read_data = config.spi_readbytes(0xff) config.digital_write(self.cs_pin, GPIO.HIGH) return read_data[0]
def ADS1256_GetAll(self): print(" ADS1256_GetAll") adc = [0, 0, 0, 0, 0, 0, 0, 0] # -1.0 volt = [0, 0, 0, 0, 0, 0, 0, 0] # -2.0 while True: if (self.ADS1256_Scan() == 1): for i in range(0, 8): adc[i] = self.ADS1256_GetAdc(i) volt[i] = (adc[i] * 100) / 167 / 100000.0 print("i = ", i, "adc= ", adc[i], "volt = ", volt[i]) else: print("NO scan performed!") config.delay_ms(100)
def ADS1256_GetChannalValue(self, Channel): while(config.digital_read(self.drdy_pin) == 1): pass if(ScanMode == 0):# 0 Single-ended input 8 channel1 Differential input 4 channe if(Channel>=8): return 0 elif(Channel == 7): Channel = 0 else : Channel = Channel + 1 self.ADS1256_SetChannal(Channel) self.ADS1256_WriteCmd(CMD['CMD_SYNC']) config.delay_ms(10) self.ADS1256_WriteCmd(CMD['CMD_WAKEUP']) config.delay_ms(10) Value = self.ADS1256_Read_ADC_Data() else: if(Channel>=4): return 0 self.ADS1256_SetDiffChannal(Channel) self.ADS1256_WriteCmd(CMD['CMD_SYNC']) config.delay_ms(10) self.ADS1256_WriteCmd(CMD['CMD_WAKEUP']) config.delay_ms(10) Value = self.ADS1256_Read_ADC_Data() return Value
def ADS1256_ConfigADC(self, gain, drate): self.ADS1256_WaitDRDY() buf = [0,0,0,0,0,0,0,0] buf[0] = (0<<3) | (1<<2) | (0<<1) buf[1] = 0x08 buf[2] = (0<<5) | (0<<3) | (gain<<0) buf[3] = drate config.digital_write(self.cs_pin, GPIO.LOW)#cs 0 config.spi_writebyte([CMD['CMD_WREG'] | 0, 0x03]) config.spi_writebyte(buf) config.digital_write(self.cs_pin, GPIO.HIGH)#cs 1 config.delay_ms(1)
def ADS1256_GetoneChannel(self, Channel): print(" ADS1256_GetAll") adc = [0, 0, 0, 0, 0, 0, 0, 0] # -1.0 volt = [0, 0, 0, 0, 0, 0, 0, 0] # -2.0 while True: if (self.ADS1256_Scan() == 1): adc[Channel] = self.ADS1256_GetAdc(Channel) volt[Channel] = (adc[Channel] * 100) / 167 / 100000.0 # print("i = ", Channel, "adc= ", adc[Channel], "volt = ", volt[Channel]) return adc[Channel] else: # print("NO scan performed!") pass config.delay_ms(100)
def ADS1263_Read_ADC2_Data(self): read = 0 config.digital_write(self.cs_pin, GPIO.LOW) #cs 0 while (1): config.spi_writebyte([ADS1263_CMD['CMD_RDATA2']]) config.delay_ms(10) if (config.spi_readbytes(1)[0] & 0x80 != 0): break buf = config.spi_readbytes(5) config.digital_write(self.cs_pin, GPIO.HIGH) #cs 1 read |= (buf[0] << 16) & 0xff0000 read |= (buf[1] << 8) & 0xff00 read |= (buf[2]) & 0xff CRC = buf[4] if (self.ADS1263_CheckSum(read, CRC) != 0): print("ADC2 data read error!") return read
def ADS1256_ConfigADC( self, gain=ADS1256_GAIN_E.get("ADS1256_GAIN_1"), drate=ADS1256_DRATE_E.get("ADS1256_30000SPS"), ): self.ADS1256_WaitDRDY() buf = [0, 0, 0, 0, 0, 0, 0, 0] buf[0] = (0 << 3) | (1 << 2) | (0 << 1) buf[1] = 0x08 buf[2] = (0 << 5) | (0 << 3) | (gain << 0) buf[3] = drate config.digital_write(self.cs_pin, GPIO.LOW) # cs 0 config.spi_writebyte([CMD["CMD_WREG"] | 0, 0x03]) config.spi_writebyte(buf) config.digital_write(self.cs_pin, GPIO.HIGH) # cs 1 config.delay_ms(1) return 0
def ADS1263_reset(self): config.digital_write(self.rst_pin, GPIO.HIGH) config.delay_ms(200) config.digital_write(self.rst_pin, GPIO.LOW) config.delay_ms(200) config.digital_write(self.rst_pin, GPIO.HIGH) config.delay_ms(200)
def ADS1263_GetChannalValue_ADC2(self, Channel): if ( ScanMode == 0 ): # 0 Single-ended input 8 channel1 Differential input 4 channe if (Channel > 10): return 0 self.ADS1263_SetChannal_ADC2(Channel) config.delay_ms(2) self.ADS1263_WriteCmd(ADS1263_CMD['CMD_START2']) config.delay_ms(2) Value = self.ADS1263_Read_ADC2_Data() else: if (Channel > 4): return 0 self.ADS1263_SetDiffChannal_ADC2(Channel) config.delay_ms(2) self.ADS1263_WriteCmd(ADS1263_CMD['CMD_START2']) config.delay_ms(2) Value = self.ADS1263_Read_AD2C_Data() return Value
def ADS1263_RTD_Test(self): Delay = ADS1263_DELAY['ADS1263_DELAY_8d8ms'] Gain = ADS1263_GAIN['ADS1263_GAIN_1'] Drate = ADS1263_DRATE['ADS1263_20SPS'] #MODE0 (CHOP OFF) MODE0 = Delay self.ADS1263_WriteReg(ADS1263_REG['REG_MODE0'], MODE0) config.delay_ms(1) #(IDACMUX) IDAC2 AINCOM,IDAC1 AIN3 IDACMUX = (0x0a << 4) | 0x03 self.ADS1263_WriteReg(ADS1263_REG['REG_IDACMUX'], IDACMUX) config.delay_ms(1) #((IDACMAG)) IDAC2 = IDAC1 = 250uA IDACMAG = (0x03 << 4) | 0x03 self.ADS1263_WriteReg(ADS1263_REG['REG_IDACMAG'], IDACMAG) config.delay_ms(1) MODE2 = (Gain << 4) | Drate self.ADS1263_WriteReg(ADS1263_REG['REG_MODE2'], MODE2) config.delay_ms(1) #INPMUX (AINP = AIN7, AINN = AIN6) INPMUX = (0x07 << 4) | 0x06 self.ADS1263_WriteReg(ADS1263_REG['REG_INPMUX'], INPMUX) config.delay_ms(1) # REFMUX AIN4 AIN5 REFMUX = (0x03 << 3) | 0x03 self.ADS1263_WriteReg(ADS1263_REG['REG_REFMUX'], REFMUX) config.delay_ms(1) #Read one conversion self.ADS1263_WriteCmd(ADS1263_CMD['CMD_START1']) config.delay_ms(10) self.ADS1263_WaitDRDY() Value = self.ADS1263_Read_ADC_Data() self.ADS1263_WriteCmd(ADS1263_CMD['CMD_STOP1']) return Value