마이크로컨트롤러로 프로젝트를 만들다 보면 아날로그 입력 핀이 부족하거나, 디지털 입출력 핀이 더 필요할 때가 있습니다.

특히 ESP32, Arduino, Raspberry Pi 같은 보드를 사용하다 보면 센서 수가 늘어나면서 핀 부족 문제를 자주 만나게 됩니다.

이럴 때 사용할 수 있는 보드 중 하나가 Adafruit ADS7128 8-Channel ADC and GPIO Expander입니다.

ADS7128은 8개의 채널을 아날로그 입력, 디지털 입력, 디지털 출력으로 설정할 수 있는 다기능 I2C 확장 보드입니다.

쉽게 말하면, 하나의 작은 보드로 다음과 같은 역할을 할 수 있습니다.

• 아날로그 센서 입력 확장

• 디지털 입력 핀 확장

• 디지털 출력 핀 확장

• 오픈드레인 출력 제어

• I2C 기반 외부 핀 확장

그래서 Adafruit에서는 이 보드를 다양한 프로젝트에 붙여 쓸 수 있는 “범용 글루 칩” 같은 역할로 소개하고 있습니다.

1. 주요 하드웨어 특징

ADS7128의 가장 큰 특징은 8개의 채널을 각각 독립적으로 설정할 수 있다는 점입니다.

각 채널은 다음과 같이 사용할 수 있습니다.

• 12비트 SAR ADC 아날로그 입력

• 디지털 입력

• 디지털 출력

• 푸시풀 출력

• 오픈드레인 출력

12비트 ADC이므로 아날로그 입력값을 0~4095 범위로 읽을 수 있습니다.

조도 센서, 가변저항, 배터리 전압 측정, 간단한 아날로그 센서 입력 등에 활용하기 좋습니다.

또 하나 흥미로운 점은 전원 구성이 디지털 전원과 아날로그 전원으로 나뉘어 있다는 것입니다.

일반적인 확장 칩은 하나의 전원만 사용하는 경우가 많지만, ADS7128은 다음 두 전원을 따로 사용할 수 있습니다.

• DVDD: 디지털 로직 전원

• AVDD: 아날로그 입력 및 출력 관련 전원

이 구조 덕분에 예를 들어 I2C 통신은 3.3V 로직으로 사용하면서, 아날로그 입력 쪽은 5V 범위로 사용할 수도 있습니다.

ESP32처럼 3.3V 로직을 사용하는 보드와 함께 사용할 때 유용한 구조입니다.

동작 전압 범위는 다음과 같습니다.

• AVDD: 2.35V ~ 5.5V

• DVDD: 1.65V ~ 5.5V

• 동작 온도: -40°C ~ +85°C

I2C 통신은 최대 3.4MHz의 고속 모드를 지원하며, 주소도 8개까지 설정할 수 있습니다.

따라서 여러 개의 ADS7128 보드를 하나의 I2C 버스에 연결하는 것도 가능합니다.

2. 고급 기능

ADS7128은 단순히 아날로그 값을 읽는 ADC에 그치지 않습니다.

내부에 여러 가지 고급 기능이 들어 있어, 마이크로컨트롤러가 계속 감시하지 않아도 일부 작업을 칩 자체에서 처리할 수 있습니다.

대표적인 기능은 다음과 같습니다.

아날로그 워치독

각 채널에 대해 높은 임계값과 낮은 임계값을 설정할 수 있습니다.

센서값이 특정 범위를 벗어났는지 칩이 직접 감시할 수 있기 때문에, 알람이나 이상 감지 시스템에 활용할 수 있습니다.

예를 들어 배터리 전압이 일정 값 이하로 떨어졌을 때,

조도 센서값이 특정 기준보다 낮아졌을 때,

센서 입력이 비정상 범위에 들어갔을 때 사용할 수 있습니다.

RMS 계산 기능

ADS7128은 16비트 true RMS 출력 기능도 제공합니다.

설정한 시간 구간 동안의 신호를 기반으로 RMS 값을 계산할 수 있어, 단순한 순간값보다 안정적인 측정이 필요한 경우에 활용할 수 있습니다.

제로 크로싱 감지

아날로그 입력 신호가 0 기준점을 통과하는 순간을 감지하는 기능도 있습니다.

제로 크로싱 감지는 교류 신호나 주기적인 신호를 다룰 때 유용합니다.

또한 순간적인 노이즈에 잘못 반응하지 않도록 transient rejection과 hysteresis 기능도 포함되어 있습니다.

데이터 신뢰성 기능

데이터 읽기와 쓰기 과정에서 CRC를 사용할 수 있어 통신 신뢰성을 높일 수 있습니다.

전원 인가 시 설정값을 안정적으로 적용하기 위한 기능도 포함되어 있습니다.

평균 필터

센서값은 노이즈 때문에 흔들리는 경우가 많습니다.

ADS7128은 프로그래밍 가능한 평균 필터를 제공하므로, 아날로그 입력값을 보다 안정적으로 읽을 수 있습니다.

3. 연결 방식과 사용 편의성

Adafruit ADS7128 보드는 STEMMA QT / Qwiic 커넥터를 제공합니다.

이 커넥터를 사용하면 납땜 없이 케이블만 연결해서 I2C 장치를 쉽게 추가할 수 있습니다.

Adafruit, SparkFun, Seeed Studio 계열의 여러 I2C 센서 보드와 함께 사용하기 편리합니다.

물론 브레드보드나 직접 배선용으로 사용할 수 있는 일반 핀도 제공됩니다.

따라서 빠르게 테스트할 때는 STEMMA QT 케이블을 사용하고, 실제 프로젝트에 넣을 때는 직접 배선하는 방식으로도 사용할 수 있습니다.

또한 3.3V와 5V 로직 모두와 호환되기 때문에 Arduino, ESP32, Raspberry Pi 같은 다양한 보드와 함께 사용할 수 있습니다.

4. 소프트웨어 지원

Adafruit 제품답게 소프트웨어 지원도 잘 되어 있습니다.

Arduino 환경에서는 C/C++ 라이브러리를 사용할 수 있고,

CircuitPython이나 Python 환경에서도 드라이버를 사용할 수 있습니다.

따라서 Arduino IDE, Raspberry Pi, CircuitPython 보드 등 여러 환경에서 비교적 쉽게 사용할 수 있습니다.

복잡한 레지스터 제어를 직접 구현하지 않아도, 제공되는 라이브러리를 이용하면 기본적인 ADC 읽기와 GPIO 제어를 빠르게 시작할 수 있습니다.

5. 크기와 무게

보드 크기는 매우 작습니다.

• 크기: 약 30.5mm × 17.8mm × 4.7mm

• 무게: 약 2.1g

작고 가벼운 보드이기 때문에 소형 IoT 장치, 센서 노드, 배터리 기반 프로젝트에도 부담 없이 넣을 수 있습니다.

6. 어떤 프로젝트에 적합할까?

ADS7128은 다음과 같은 경우에 특히 유용합니다.

• 마이크로컨트롤러의 아날로그 입력 핀이 부족할 때

• 여러 개의 아날로그 센서를 동시에 읽고 싶을 때

• I2C만으로 GPIO를 확장하고 싶을 때

• 3.3V 보드와 5V 아날로그 신호를 함께 다루고 싶을 때

• 센서값의 임계값 감지 기능이 필요할 때

• 작은 크기의 다기능 확장 보드가 필요할 때

예를 들어 식물 관리 장치, 환경 모니터링 장치, 배터리 전압 측정 회로, 조도 센서 어레이, 간단한 산업용 센서 모니터링 장치 등에 활용할 수 있습니다.

마무리

Adafruit ADS7128은 단순한 8채널 ADC 보드가 아니라,

ADC와 GPIO 확장 기능을 함께 제공하는 다기능 I2C 확장 보드입니다.

8개의 채널을 각각 아날로그 입력, 디지털 입력, 디지털 출력으로 설정할 수 있고,

아날로그 워치독, 평균 필터, RMS 계산, 제로 크로싱 감지 같은 고급 기능도 포함되어 있습니다.

센서 입력이 많아지는 프로젝트나, ESP32·Arduino·Raspberry Pi의 핀을 더 확장하고 싶은 경우에 꽤 유용한 보드입니다.

특히 작은 보드 하나로 아날로그 입력과 GPIO 확장을 동시에 해결할 수 있다는 점에서,

IoT 제작이나 센서 기반 프로젝트를 진행하는 분들에게 좋은 선택지가 될 수 있습니다.

+ Recent posts