티스토리 뷰

오늘은 TI(Texas Instrument)사에서 생산하는 아날로그-디지털 변환기 중 하나인 ADS1219에 대해 알아 보겠습니다.

이 부품은 I2C 통신이 가능하면서 24비트라는 높은 해상도를 가지고 있어 관심을 가졌던 부품입니다.

 

[주요 특징]

  • 단일 프로그램 레지스터 사용으로 편리한 적용 가능
  • 315 마이크로 암페어 수준의 낮은 소비 전류
  • 넓은 공급 전압 : 2.5V ~ 5.5V
  • 높은 입력 임피던스가 가능한 레일 타입 입력 버퍼
  • 프로그램 가능한 이득 : 1과 4
  • 최대 1kSPS까지 데이터 속도 프로그래밍 가능
  • 최대 20 비트의 유효 해상도
  • 디지털 필터를 이용하여 50Hz와 60Hz 노이즈 동시 제거
  • 2개의 차분 또는 4개의 단일 입력
  • 내부 2.048V 기준 전압 : 5ppm/℃ 변동
  • 내부 2% 정확도 오실레이터
  • I2C 호환 인터페이스
  • 지원되는 I2C 버스 속도 모드 : 표준 모드, 고속 모드, 고속 모드 플러스
  • 자체 구성 가능한 I2C 주소

[내부 구성 및 응용 회로]

  • 이 회로는 온도와 전류를 측정하는 용도의 응용회로임.
  • AIN0와 AIN1은 차분 모드로 온도 측정
  • AIN2는 단일 모드로 전류 측정
  • AIN3는 단일 모드로 전압 측정

 

[핀 배치도]

TSSOP-16(ADS1219IPWR) 구성의 부품을 활용함.

 

[노이즈 특성]

  • 이 부품은 특정 시점의 전압 측정을 위해 제곱평균제곱근(RMS : Root Mean Square)을 취하므로 신호의 노이즈가 증폭되는 영향이 발생함.
  • 이로 인해 실제 측정 가능한 정밀도가 저하됨(유효 해상도가 낮아짐)

 

[최소 표현 값]

  • 2.048V의 내부 전압을 활용하고 이득이 1인 경우, 측정 값의 최소비는 244.14nV(약 0.25uV)로 표현됨.

 

[주소 지정 방식]

  • 이 부품의 주소는 A0(1번핀)와 A1(2번핀)을 이용하여 주소를 지정함.
  • 0x40에서 0x4F까지 총 16개의 주소 지정 가능

 

[프로그래밍 레지스터]

  • 이 레지스터를 이용하여 입력 포트와 이득, 데이터 속도, 변환 모드, 기준 전압 등의 설정이 가능함.
  • 각 설정 예시는 아래를 참조할 것

이득:1, 연속모드, 1k SPS

Meaning Code Mux Gain DR CM VRef
차분(AIN0-AIN1) 0x0E 000 0 11 1 0
차분(AIN2-AIN3) 0x2E 001 0 11 1 0
차분(AIN1-AIN2) 0x4E 010 0 11 1 0
단일(AIN0~AIN3) 0x6E~0xCE 011~110 0 11 1 0

이득:4, 연속모드, 1kSPS

Meaning Code Mux Gain DR CM VRef
차분(AIN0-AIN1) 0x1E 000 1 11 1 0
차분(AIN2-AIN3) 0x3E 001 1 11 1 0
차분(AIN1-AIN2) 0x5E 010 1 11 1 0
단일(AIN0~AIN3) 0x7E~0xDE 011~110 1 11 1 0

이득:1, 연속모드, 20 SPS

Meaning Code Mux Gain DR CM VRef
차분(AIN0-AIN1) 0x02 000 0 00 1 0
차분(A IN2-A IN3) 0x22 001 0 00 1 0
차분(AIN1-AIN2) 0x42 010 0 00 1 0
단일(AIN0~AIN3) 0x62~0xC2 011~110 0 00 1 0

 

[테스트 코드]

#include<Wire.h>

#define DEFALUTADDRESS_ADS1219 0x40
#define DEFALUTCONF_ADS1219 0x0E

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  Wire.begin();

}

void loop() {
  // put your main code here, to run repeatedly:
  for(int addressIndex=0; addressIndex<16; addressIndex++){
    if(!SetConfiguration(DEFALUTADDRESS_ADS1219, DEFALUTCONF_ADS1219)) continue;
    delay(2);
    Wire.requestFrom(DEFALUTADDRESS_ADS1219, (uint8_t)3);
    uint8_t temp[receivedByteNumber];
    Wire.readBytes(temp, receivedByteNumber);
    float valueHigh, valueLow;
    byte3 = temp[0];
    byte2 = temp[1];
    byte1 = temp[2]; // Configuration Byte

    Serial.print("[0] ");
    Serial.print(byte3);
    Serial.print(",[1] ");
    Serial.print(byte2);
    Serial.print(",[2] ");
    Serial.print(byte1);
    delay(500);
  }

}

boolean SetConfiguration(uint8_t addressNo, uint8_t channelNo){
  Wire.beginTransmission(addressNo)
  Wire.write(channelConf);
  int errorCode = Wire.endTransmission();
  if(errorCode!=0) return false;
  return true;

}
반응형

'HWDesk > ElectronicParts' 카테고리의 다른 글

토르(THOR) 종류  (0) 2024.09.07
아날로그-디지털 변환기 : MCP3428  (0) 2024.08.14
Reference Model for Electronic Part  (0) 2024.08.06
NAU7802SGI : ADC, 24 bits, I2C  (0) 2024.08.02
ADS1219 : ADC, 24 bits, I2C  (0) 2024.08.02