ADS1015 IC를 사용해 전압 검사 보드 만든 경험(PGA 설정 실수담)

검사 지그 만들다가 전압값이 이상하게 튀어서 하루 종일 오실로스코프 붙잡고 있었던 적, 저만 있는 건 아닐 겁니다.

양산 라인에 들어가는 전압 출력 검사보드를 설계할 때 저는 ADS1015라는 ADC IC를 거의 기본값처럼 씁니다.

가격도 부담 없고 12bit 분해능이라 소수점 셋째 자리까지 웬만한 검사 기준은 다 커버가 되거든요. 다만 처음 이 IC를 만졌을 때 PGA 설정 하나 잘못 잡아서 양불 판정이 죄다 뒤집힌 적이 있어서, 그 경험을 오늘 풀어보려고 합니다.

[ADS1015 Block Diagram]

전압 출력 검사 지그에 ADC IC가 필요한 이유

전자 제품을 대량으로 만드는 회사는 완제품 하나하나를 사람이 눈으로 검사할 수가 없습니다. 그래서 지그라는 걸 씁니다.

지그는 쉽게 말하면 붕어빵틀입니다. 제품을 지그에 꽂으면 전원이 들어가고, 입력 핀에 인에이블(Enable) 신호를 넣으면 제품 내부 회로에서 여러 전압이 출력됩니다.

이 DC 전압들을 사람이 멀티미터로 하나씩 재는 건 양산 속도를 도저히 못 따라갑니다. 그래서 검사보드에 ADC(아날로그-디지털 컨버터) IC를 붙여서 전압을 자동으로 읽고, 정해진 범위 안에 들어오는지 MCU가 판단하게 만듭니다.

📌 검사 지그 핵심 흐름: 제품 전원 인가 → 인에이블 신호 → 출력 전압 발생 → ADC IC가 전압 샘플링 → MCU가 상하한 값과 비교 → 양품/불량 판정

ADS1015 스펙과 PGA 개념 정리

ADS1015는 텍사스 인스트루먼트(TI)에서 나오는 12비트 I2C 방식 ADC입니다. 최대 3300SPS 속도로 변환이 가능하고, 내부에 PGA(Programmable Gain Amplifier)라는 걸 가지고 있습니다.

PGA란 입력 신호를 ADC가 읽기 전에 미리 증폭해주는 회로인데, 이게 있어서 작은 전압도 정밀하게 측정할 수 있습니다. 이 PGA 게인 값을 어떻게 설정하느냐에 따라 측정 가능한 전체 범위, 즉 FSR(Full Scale Range)이 완전히 달라집니다.

PGA 게인 FSR (측정 범위) LSB (1bit당 전압) 주로 쓰는 상황
2/3 ±6.144V 3mV 24V 계열 라인 출력 검사
1 ±4.096V 2mV 3.3V, 5V 로직 전압 검사
2 ±2.048V 1mV 기본값, 센서 신호단 검사
16 ±0.256V 0.125mV 미세 전류 션트 전압 검사

출처: TI ADS1015 Datasheet (Rev. F)

PGA 설정 실수로 양불 판정이 뒤집혔던 날

이론은 저렇게 깔끔한데, 처음 ADS1015를 검사보드에 붙였을 때 저는 이 PGA 개념을 대충 넘어갔습니다.

당시 검사하려던 제품 출력이 5V 라인이었는데, 라이브러리 예제 코드를 그대로 가져다 쓰면서 PGA 게인을 16으로 놔둔 채 컴파일했습니다. 게인 16이면 FSR이 ±0.256V까지밖에 안 열리는데, 거기에 5V를 밀어 넣은 겁니다.

결과가 어땠을 것 같으세요. 값이 전부 최대치로 클리핑되어서 7FF0h 코드로 고정되어 버렸습니다. 검사기는 5V 정상 제품도, 실제로 3V밖에 안 나오는 불량 제품도 전부 같은 값으로 읽었습니다. 라인에서 양품 20개가 연달아 불량으로 튕겨 나가고 나서야 뭔가 잘못됐다는 걸 눈치챘죠.

원인을 찾느라 오실로스코프로 실제 출력단 파형부터 다시 찍어봤습니다. 제품 출력 자체는 멀쩡했는데, ADC가 읽는 디지털 값만 이상하게 고정되어 있더라고요. 그때 데이터시트를 처음부터 다시 정독하면서 PGA[2:0] 설정 비트를 확인했고, 게인을 1로 낮추자마자 값이 정상적으로 움직이기 시작했습니다.

이 사건 이후로 저는 새 검사보드를 설계할 때마다 무조건 제품 출력 전압의 최대치를 먼저 확인하고, 거기에 여유를 20% 정도 두고 PGA 게인을 역산해서 정합니다. 라이브러리 기본값을 그대로 믿으면 안 된다는 걸 몸으로 배운 셈입니다.

⚠️ 핵심 요약: PGA 게인이 높을수록 측정 분해능은 좋아지지만 FSR은 좁아진다. 검사할 최대 전압보다 FSR이 낮으면 값이 클리핑되어 오판정으로 이어진다.

I2C 통신과 Atmega 8bit MCU 연동 팁

ADS1015는 I2C(Inter-Integrated Circuit) 방식으로 제어합니다. I2C란 두 개의 선(SDA, SCL)만으로 여러 개의 센서나 IC를 하나의 MCU에 물릴 수 있게 해주는 직렬 통신 방식입니다.

저는 검사보드 대부분을 8bit 계열인 Atmega 시리즈로 구성하는데, I2C가 하드웨어 레벨에서 지원되기 때문에 별도 라이브러리 없이도 레지스터 몇 개만 만지면 바로 통신이 붙습니다.

ADDR 핀 상태에 따라 슬레이브 주소가 4가지로 갈리기 때문에, 한 보드에 ADS1015를 여러 개 올려서 채널을 늘리는 것도 어렵지 않습니다. 100핀급 대형 검사보드를 만들 때 저는 이 방식으로 채널 수를 확장하곤 합니다.

Config 레지스터는 PGA, 변환 모드, 데이터 레이트를 한 번에 설정하는 16비트 레지스터입니다. 여기서 변환 모드는 싱글샷과 컨티뉴어스 두 가지가 있는데, 검사보드처럼 트리거 시점에만 값을 읽으면 되는 경우 싱글샷 모드가 전력 소모나 노이즈 관리 측면에서 유리합니다.

검사보드 설계 시 실무 주의사항

첫째, 절대 정격 전압을 넘기지 마세요.

TI 데이터시트에 따르면 아날로그 입력 절대 최대 범위는 GND-0.3V에서 VDD+0.3V까지로 규정되어 있습니다(출처: TI ADS1015 제품 페이지). 이 범위를 넘으면 IC가 영구 손상될 수 있어서, 저는 제품 출력단과 ADS1015 입력단 사이에 반드시 시리즈 저항과 쇼트키 다이오드로 클램프를 걸어둡니다.

둘째, PGA 설정을 라이브러리 기본값에 맡기지 마세요.

바로 위에서 겪은 실수처럼, 검사 대상 전압 스펙을 먼저 계산하고 그에 맞는 게인을 코드에서 명시적으로 지정해야 합니다.

셋째, 스레숄드 레지스터를 PGA 변경 시마다 같이 갱신하세요.

컴퍼레이터 기능을 쓰는 경우 Hi_thresh와 Lo_thresh 값은 PGA 게인이 바뀌면 함께 재설정해줘야 정상 동작합니다. 이 부분을 놓치면 알람 핀이 엉뚱한 타이밍에 튀는 경우가 생깁니다.

✅ 요약: 정격 전압 클램프, PGA 명시적 지정, 스레숄드 레지스터 동기화 이 세 가지만 지켜도 양산 라인에서 오판정 리스크가 크게 줄어듭니다.

자주 묻는 질문 (Q&A)

Q1. ADS1015와 ADS1115 중 검사보드에는 뭐가 나을까요?
검사 기준 자체가 소수점 셋째 자리 정도로 널널하다면 ADS1015로 충분합니다. 저도 실제로 대부분의 전압 검사 항목은 12bit로 판정 여유가 넘칩니다. 더 미세한 전류 션트나 저항 측정처럼 mV 이하 정밀도가 필요할 때만 16bit ADS1115로 넘어갑니다.

Q2. PGA 게인을 잘못 잡으면 IC가 고장 나나요?
게인 자체는 IC를 손상시키지 않습니다. 다만 FSR을 초과하는 입력이 절대 최대 정격까지 넘어서면 얘기가 다릅니다. 제가 겪은 사고는 값이 클리핑된 것뿐이지만, 여기에 시리즈 저항 없이 고전압을 직결했다면 IC가 타버렸을 수도 있는 상황이었습니다.

Q3. 여러 개 ADS1015를 한 I2C 라인에 물려도 되나요?
됩니다. ADDR 핀 조합으로 주소를 최대 4개까지 나눌 수 있어서, 저는 채널이 더 필요하면 IC 개수를 늘리는 방식으로 대응합니다. 다만 라인이 길어질수록 풀업 저항 값 재계산은 꼭 해줘야 합니다.

Q4. 싱글샷 모드와 컨티뉴어스 모드 중 검사보드엔 뭐가 맞나요?
저는 검사보드에는 거의 싱글샷 모드를 씁니다. 트리거 시점에만 값을 읽으면 되기 때문에 불필요한 변환이 없고, 노이즈에 노출되는 시간도 짧아서 판정 안정성이 더 좋았습니다.

Q5. 오실로스코프 없이도 PGA 설정 실수를 미리 걸러낼 방법이 있을까요?
완전히는 못 걸러내지만, 저는 이제 코드 작성 단계에서 제품 스펙 전압과 PGA FSR 표를 나란히 놓고 체크하는 습관을 들였습니다. 값이 특정 코드에서 멈춰 있으면 클리핑을 의심해보는 것도 빠른 진단법입니다.

정리하며

ADS1015는 가격 대비 성능이 좋아서 저는 지금도 새 검사보드를 설계할 때 1순위로 검토하는 IC입니다. 다만 PGA라는 편리한 기능이 동시에 실수하기도 딱 좋은 지점이라는 걸, 저는 라인에서 불량 20개를 만들고서야 배웠습니다.

오늘 당장 확인해 볼 것 3가지를 남깁니다.

1) 지금 사용 중인 코드의 PGA 게인 값이 실제 검사 전압 스펙과 맞는지 다시 확인해보세요.
2) 제품 출력단과 ADC 입력단 사이에 보호 저항이나 다이오드가 들어가 있는지 점검하세요.
3) 컴퍼레이터를 쓰고 있다면 스레숄드 레지스터가 최신 PGA 값 기준으로 갱신되어 있는지 확인하세요.

본 글은 실무 경험을 바탕으로 작성한 참고용 정보이며, 실제 회로 설계 및 양산 적용 시에는 반드시 제조사 최신 데이터시트와 자사 검증 절차를 함께 확인하시기 바랍니다.