티스토리 뷰
오늘은 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 |
반응형
250x250
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 오블완
- 빌리언트
- 심심풀이
- 심심풀이치매방지기
- 전압전류모니터링
- image
- Innovations&Hurdles
- Hurdles
- Decorator
- arduino
- ServantClock
- 둎
- 치매
- 허들
- 전류
- 배프
- DYOV
- Innovation&Hurdles
- Innovations
- 혁신과허들
- Video
- 치매방지
- 전압
- 혁신
- 티스토리챌린지
- bilient
- BSC
- badp
- 절연형
- 아두이노
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함