왼쪽 아래 입력단에 24V 입력, 오른쪽 아래 출력단에 멀티미터와 부하를 직렬 연결하고, 다른 멀티미터로 출력 전압을 측정하였습니다.
출력 직류 전압은 8V이며, 전류2(Current2)는 단지 0.2A입니다.
샘플링 저항 양단의 전압은 0.2mV이고, INA199A1의 이론적 이득은 50배이지만, 실제 측정 결과는 2배에서 200배 사이에서 무작위로 변동합니다.
질문 사항
INA199A1의 피드백 계수가 정상적이지 않습니다. 핀 미접속(soldering open)이나 부품 번호 오류 가능성은 이미 배제하였습니다. (예비 부품이 없어 며칠 후 새 부품 두 개를 교체하여 다시 테스트 예정)
OLED에 표시되는 데이터가 정확하지 않습니다. 전류2(Current2)는 비슷하게 나오나, 전류1(Current1)은 전혀 말이 안 됩니다. 또한 OFF 상태에서도 약 1A 정도의 총 전류가 흐르며, 전압은 0입니다. 이해할 수 없습니다. 샘플링 저항에 켈빈 배선(Kelvin connection) 방식을 사용하지 않았는데, 이것이 오차의 원인인지 모르겠습니다.
이 설계의 실현 가능성을 알고 싶습니다. 설계를 변경해야 하는지, 아니면 유지 가능한지 여부와 만약 유지 가능하다면 어떻게 조정해야 하는지 알고 싶습니다.
형 안녕, 전국대학생 전자설계경진대회(전경대)에서 고전했던 전원 문제를 리메이크하면서 이런 ‘신비한’ 문제가 발생하는 건 너무나 당연해. 이 문제는 당시 정말 많은 사람을 괴롭힌 '큰 함정’이었거든.
스위칭 전원의 아날로그 부분, 특히 병렬 균류 회로를 다룰 때는 회로도보다 PCB 레이아웃과 배선, 그리고 잡음 간섭이 훨씬 더 치명적일 수 있어.
제공해준 회로도와 현상, 그리고 메인 컨트롤러 교체 상황을 종합해서 하나씩 분석해볼게. 네가 문제 해결에 도움이 되길 바라며 정리해줄게:
1. INA199A1 증폭배율이 '무작위로 변화’하고 0.2mV 관련 의문
말하기를, 전류가 0.2A인데 샘플링 저항 양단 전압은 0.2mV이고, 증폭배율이 들쭉날쭉하다고 했지?
여기서 명백한 옴의 법칙 위반이 있어:
회로도상 R3, R12 샘플링 저항은 20mΩ (0.02Ω)야. 만약 실제 전류가 0.2A라면, 저항 양단의 전압 강하는 다음과 같아야 해: 0.2A × 0.02Ω = 0.004V (즉, 4mV).
근데 멀티미터로 측정한 값이 0.2mV라면, 다음 가능성들이 있어:
멀티미터가 고주파 스위칭 노이즈에 간섭받고 있음: XL4015의 스위칭 주파수는 약 180kHz이고, 출력 리플이 매우 큼. INA199 입력단(R1/R2/C1)의 로우패스 필터 커팅 주파수가 너무 높아서(메가헤르츠 수준으로 계산됨), 180kHz 스위칭 노이즈를 제거할 수 없어. 멀티미터로 아주 작은 직류 전압에 큰 고주파 리플이 겹친 신호를 측정하면 그 값은 신뢰할 수 없어.
전류가 샘플링 저항 전체를 흐르지 않고 있음: 동판이나 배선 때문에 전류가 우회하고 있는지 확인해봐.
왜 증폭배율이 들쭉날쭉할까?
거의 확실하게 스위칭 노이즈 결합 + 접지 불량 때문이야. 멀티미터로 보이는 '출력 전압’은 실제로는 엄청난 스위칭 스파이크가 덧씌워진 신호야. 부정확한 출력값을 또 부정확한 입력값으로 나누면, 산출된 이득은 당연히 2~200 사이를 왔다갔다 하겠지. 추천: 오실로스코프를 빌려서 INA199 출력 핀을 측정해봐. 아마 매끄러운 직류 대신 온통 노이즈로 가득 찬 파형을 볼 수 있을 거야.
2. OLED 디스플레이 데이터가 비현실적이고, OFF 상태에서도 1A 전류가 흐르는 이유
켈빈 접속법(Kelvin connection) 미사용의 치명적 단점:
샘플링 저항이 20mΩ인데, PCB의 1온스 구리箔에서 몇 밀리미터 길이의 트레이스 저항만으로도 몇 mΩ이 생길 수 있어! 켈빈 접속법(즉, 샘플링 저항 납땜 패드 내측에서 두 개의 가는 선을 따로 뽑아 INA199로 연결, 대전류 경로와 분리)을 사용하지 않으면, 솔더링 및 트레이스 상의 전압 강하까지 함께 증폭되어, 말한 것처럼 "전류 1A가 나오는 기이한 현상"이 발생함.
OFF 상태에서 1A의 ‘유령 전류’ 존재:
오퍼에이션 증폭기의 제로 오프셋(Zero Offset): INA199의 REF 핀은 GND에 연결되어 있고, 싱글 전원 공급 시 출력은 절대 0V까지 내려가지 못해(보통 수십 mV 정도의 하한치가 있음). 예를 들어 출력이 50mV에서 멈춰 있다면, ADC가 이를 읽고 50배 증폭 후 20mΩ으로 나누면 시스템은 50mA의 바닥 전류가 있다고 잘못 판단함.
접지 전위 반동(Ground Bounce): 어떤 출력 채널을 끄거나 무부하 상태일 때 AGND와 PGND(파워 그라운드) 사이의 전위차가 제대로 처리되지 않으면, 접지상의 수 mV 전위차도 INA199에 의해 증폭되어 버림.
STM32와 Air32의 ADC 차이: 메인 컨트롤러를 바꿨지만, 두 MCU의 ADC 내부 기준전압 정밀도, 입력 임피던스, 기본 설정 등에 미세한 차이가 있을 수 있음. 원래 설계자가 작성한 코드에는 해당 보드의 바닥 잡음에 맞춘 ‘소프트웨어 제로 클리어’ 또는 보정 계수가 포함되어 있었을 수 있는데, MCU를 바꾸면서 ADC에서 읽는 바닥 잡음이 달라져, 그대로 계산되다 보니 1A로 인식되는 것임.
3. 이 방안이 가능한가? 어떻게 조정해야 할까?
결론: 이 방안은 절대적으로 가능하며, 사실 이건 과거 전경대에서 고전했던 표준적인 해법이야(정전압원을 주(Master), 정전류원을 종(Slave)으로 하고 오차 증폭기를 통해 조절). 하지만 PCB 레이아웃(Layout)에 매우 민감함.
이미 보드를 제작했다면, 아래 ‘변수 통제법(Controlled Variable Method)’ 기반의 하드웨어 디버깅 절차를 추천해. 코드 수정부터 서두르지 말고, 먼저 아날로그 신호 체인이 정상인지 확인하자:
정적 주입 테스트 (스위칭 노이즈 제거 목적):
보드의 전원을 완전히 차단해. 외부의 안정화 전원장치를 준비해서 일정한 전류 모드(예: 고정 1A 출력)로 설정한 후, 이 1A 전류를 직접 샘플링 저항 R3에 주입해줘.
그런 다음 INA199와 MCU에 별도로 3.3V/5V를 공급해. 이후 INA199 출력 핀 전압을 멀티미터로 측정해봐. 만약 이때 출력이 1A \\times 0.02\\Omega \\times 50 = 1V 로 안정된다면, INA199는 정상이며, 부품 번호도 맞고, 순수 DC에서는 완벽하게 작동한다는 의미야. 그러면 문제는 100% 스위칭 전원의 리플과 레이아웃에 있음.
필선(Fly-wire)로 ‘가짜 켈빈 접속법’ 개조:
PCB에 켈빈 접속이 없으면, 직접 ‘회로판을 자르는’ 작업을 해야 해. INA199의 IN+와 IN-가 대전류 동박에 연결된 부분을 커터로 절단하고, 매우 가는 에나멜선 두 가닥을 20mΩ 샘플링 저항의 금속 본체 근처 뿌리 부분에 직접 납땜해서 연결해. 이렇게 하면 전류 측정값이 과도하게 나오는 문제를 크게 개선할 수 있어.
소프트웨어 디지털 필터링 및 보정 (STM32용):
코드에서 ADC 샘플링 주기를 최대한 길게 설정해.
시동 시 보정 수행: 부하가 완전히 분리된 상태(OFF 상태)에서 현재 ADC 값을 읽어 Offset(제로 오프셋)으로 저장. 이후 모든 전류 계산식을 실제 전류 = (ADC_읽은값 - Offset) × 계수 로 변경. 이렇게 하면 'OFF 상태에서도 1A 전류’라는 유령 전류를 완전히 제거할 수 있어.
그라운드(GND) 선 검사:
회로도에 AGND와 GND가 나뉘어 있음. 이 두 그라운드는 어디서 연결되고 있나? 마구잡이로 연결되어 있다면, 대전류의 리턴 전류가 아날로그 그라운드를 방해함. 올바른 방법은 싱글 포인트 접지(XL4015 입력 캐패시터 음극 근처에서 한 지점만 연결)를 적용하는 것임.
다음 단계 추천:
오실로스코프가 없다면, 위의 1번과 3번 절차(특히 소프트웨어로 시작 시 잡음 제거 보정 로직 추가)를 우선적으로 시행하기를 강력히 추천함. 형, 일단 1단계의 '정적 주입 테스트’로 INA199를 테스트해서 순수 DC에서 증폭 배율이 맞는지 확인해봐. 테스트 후 결과 알려주면 다음 단계 진단을 함께 진행할 수 있어.