데브허브 | DEVHUB | [임베디드 입문용 39-1] ADC는 이렇게 쓰세요[임베디드 입문용 39-1] ADC는 이렇게 쓰세요
- ADC 하드웨어 연결: 가변 저항을 사용하여 ADC 입력(PA2)에 연결하며, 1번 핀은 3.3V, 3번 핀은 GND, 2번 핀은 아날로그 입력으로 전압 변화를 감지합니다. 🔌
- STM32CubeIDE 설정: ADC1 채널 2(PA2)를 독립 모드, 오른쪽 정렬, 스캔 및 연속 변환 활성화, 소프트웨어 시작, 우선순위 1로 설정하여 코드를 생성합니다. ⚙️
- ADC 폴링 방식 구현:
HAL_ADC_Start(), HAL_ADC_PollForConversion(), HAL_ADC_GetValue() 함수를 사용하여 ADC 값을 읽고 전압으로 변환하는 폴링 방식 코드를 구현합니다. 🔄
- GPT 코드의 한계: GPT로 생성된 코드는
HAL_ADC_Start()와 같은 함수를 불필요하게 반복 호출할 수 있어, 효율성 저하 및 인간의 검토가 필요함을 보여줍니다. 🤖
- ADC 비트 해상도: 이 ADC는 12비트 해상도를 가지며, 이는 2^12 = 4096개의 이산적인 전압 레벨로 측정 범위를 나눈다는 의미로, 정밀도와 직결됩니다. 📊
- Vref+의 역할: Vref+ (레퍼런스 전압)는 ADC가 측정할 수 있는 최대 전압 범위를 결정하며, 이 값이 전압 계산식에 직접 반영되어야 합니다. 📏
- Vref+ 전압 제한: Vref+는 최소 1.8V에서 최대 3.6V까지만 설정 가능하며, 이를 초과하는 전압은 측정할 수 없습니다. ⚠️
- VDDA와 ADC 속도: VDDA(아날로그 전원)는 ADC 연산 속도에 영향을 미치며, 낮은 VDDA는 ADC 동작 속도를 느리게 할 수 있습니다. ⚡