글

라벨이 임베디드인 게시물 표시

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 게인 값을...

25년차가 아직도 보드에 RS232 회로 넣는 이유, MAX232 그리고 TX RX 실수담

이미지
RX선을 상대방 RX에, TX선을 상대방 TX에 연결했습니다. 그리고 아무리 시리얼 터미널을 열어봐도 화면에는 아무것도 뜨지 않았습니다. 이 어이없는 실수 하나 때문에 신입 시절 밤을 꼬박 새운 기억이 아직도 생생합니다. 스마트폰 때문에 USB나 블루투스, 와이파이가 익숙하시겠지만 공장 현장의 컨트롤 보드 뒤편을 열어보면 지금도 D-SUB 9핀 커넥터가 떡하니 박혀 있는 경우가 정말 많습니다. 산업현장에 아직도 RS232가 살아있는 이유 저는 AVR 계열 8비트 MCU로 단순한 컨트롤 보드를 설계할 때, 별다른 고민 없이 RS232 회로부터 기본으로 깔고 갑니다. 디버그용으로도 쓰고, 외부 PC와의 통신용으로도 씁니다. RS232는 EIA(전자산업협회, Electronic Industries Association)가 1960년대에 제정한 직렬 통신 표준입니다. 여기서 직렬 통신이란 데이터를 한 비트씩 순서대로 하나의 선을 통해 주고받는 방식을 말합니다. 병렬로 여러 선에 동시에 데이터를 실어 보내는 방식보다 느리지만, 배선이 단순하고 노이즈에 상대적으로 강한 편이라 산업 현장에서는 지금도 골칫거리 없이 잘 씁니다. 실제로 RS-232 표준은 2000년대 초반 컴퓨터 주변기기 시장에서는 USB에 자리를 많이 내줬지만, 설계가 단순하고 저속 통신이면 충분한 산업용 시스템에서는 여전히 광범위하게 쓰이고 있다고 합니다(출처: 뉴헤이븐 디스플레이 ). 8비트 MCU들은 이더넷이나 USB 컨트롤러를 따로 붙이려면 부품값도 오르고 펌웨어도 복잡해집니다. 그런데 RS232는 UART(Universal Asynchronous Receiver/Transmitter)라는, MCU 내부에 기본으로 들어있는 하드웨어 모듈만 있으면 됩니다. UART란 데이터를 직렬 형태로 바꿔서 순서대로 보내고 받는 통신 전용 회로를 말합니다. 별도의 클럭선 없이도 정해진 통신속도(Baud Rate)에 맞춰 알아서 송수신을 처리해줍니다. 요약 — RS232는 6...

[회로 설계 노트] 25년 차 엔지니어가 말하는 트랜지스터의 두 얼굴: BJT 포화 스위칭과 실무 디버깅 노하우

이미지
신입 시절, 손톱만 한 부품 하나가 수십억 개씩 들어가 스마트폰을 움직인다는 사실이 신기하기만 했습니다. 그 주인공이 바로 트랜지스터입니다. 25년째 AVR, ARM 보드를 그리며 수많은 회로를 만져왔지만, 미세한 신호 하나로 거대한 전력을 쥐락펴락하는 이 소자의 매력은 여전히 감탄을 자아냅니다. 오늘은 교과서 속 공식 이야기를 넘어, 실제 펌웨어와 하드웨어를 넘나들며 현장에서 겪은 트랜지스터의 진짜 동작 원리 를 풀어보겠습니다. 1. BJT 트랜지스터의 본질: 전류 제어 소자와 hFE의 함정 트랜지스터는 베이스(Base)에 흘러 들어오는 미세한 전류로 컬렉터(Collector)와 이미터(Emitter) 사이의 거대 전류를 제어하는 능동소자입니다. 1947년 벨 연구소에서 진공관을 대체하기 위해 탄생한 이후, 현대 전자공학의 뼈대를 이루어 왔습니다. (참고: Electronics Tutorials BJT Basics ) 많은 초급 엔지니어들이 데이터시트의 직류 전류 증폭률($h_{FE}$)만 믿고 베이스 저항을 대충 계산합니다. 가령 "증폭률이 100이니까 컬렉터에 1A를 흘리려면 베이스에 10mA만 주면 되겠지"라고 생각하기 쉽습니다. 하지만 실무에서 스위칭 회로를 이따위로 설계하면 보드가 동작하다가 오동작을 일으키거나 트랜지스터가 타버립니다. [실무 포인트] 스위칭 목적으로 BJT를 쓸 때는 활성 영역이 아니라 완전히 켜진 포화 영역(Saturation Region) 에 진입시켜야 합니다. 이를 위해 $h_{FE}$를 그대로 믿지 않고 보통 1/10 수준으로 넉넉하게 베이스 전류를 밀어주는 오버드라이빙(Over-driving) 설계 를 해야 $V_{CE(sat)}$ 전압 강하를 최소화하고 발열을 막을 수 있습니다. 2. 증폭(Linear) vs 스위칭(Switching): 회로의 목적을 가르는 바이어스 ...

25년 차 임베디드 엔지니어가 AVR 대신 아두이노부터 권하는 이유 (초보자 입문 가이드)

이미지
LED 하나 깜빡이는 데 3만원짜리 보드까지 필요하냐고 묻는 분들이 있습니다. 결론부터 말하면, 아니요. 아두이노 우노 호환보드 하나면 첫 프로젝트는 다 끝납니다. 저는 회로 설계로 시작해서 지금은 임베디드 프로그램까지 겸하고 있는 25년 차 엔지니어입니다. 회사에서는 지금도 8비트 MCU(마이크로컨트롤러 유닛, 하나의 칩 안에 CPU와 메모리, 입출력 기능이 다 들어있는 반도체)로 AVR 계열을 주력으로 씁니다. 그런데 취미로 뭔가 만들어보고 싶다는 지인들에게는 항상 AVR이 아니라 아두이노부터 권합니다. 이유는 아래에서 하나씩 풀어드릴게요. 아두이노와 AVR, 뭐가 다른가 제가 다니는 회사는 신제품 대부분에 ATmega128, ATmega2560을 씁니다. 조금 복잡한 모터 제어나 통신이 많이 붙는 제품은 ARM Cortex M3나 M4로 넘어가고요. 이건 사실 아두이노 우노와 아두이노 메가 안에 들어있는 칩과 거의 같은 계열입니다. 차이는 딱 하나, 아두이노는 부트로더(bootloader) 가 미리 심어져 있어서 별도의 프로그래머 장비 없이 USB 케이블만으로 코드를 업로드할 수 있다는 겁니다(출처: Arduino Official Website ). 부트로더란 전원을 켰을 때 가장 먼저 실행되면서 새 프로그램을 칩에 넣어주는 작은 관리 프로그램입니다. 회사에서 순수 AVR로 개발할 때는 JTAG이나 ISP 프로그래머를 따로 물려야 하고, 레지스터 값을 데이터시트 보면서 하나하나 세팅해야 합니다. 저는 25년 동안 이 과정을 수도 없이 반복했는데, 솔직히 이건 초보자에게 권할 방식이 절대 아닙니다. 아두이노는 그 레지스터 세팅을 digitalWrite() , analogRead() 같은 함수 하나로 다 감춰놨습니다. 제 경험상 이건 진입장벽을 거의 90% 낮춰주는 수준입니다. 전자의 꽃은 프로그램이라는 말을 예전 선배한테 들었는데, 회로를 아무리 잘 설계해도 그걸 움직이게 만드는 코드가 있어야 완성이 되거든요. [사내...