IC를 다루는 일이지만.. 반도체 공학을 전공하며 아이러니하게도 IC가 뭔지 제대로 알지 못하고 모르는 단어도 굉장히 많기 때문에 공부해보려고 한다.
IC가 뭘까? = Intergrated Circuit, 직접회로
여러개의 전자 부품(트랜지스터, 저항, 콘덴서 등)을 하나의 칩안에 집약시켜서 만든 전자회로를 의미한다.
즉, IC는 "작은 반도체칩 하나에 복잡한 회로를 넣은 전자 부품" <- 이라고 간단하게 생각
회로 기판을 사용하지 않으면 전자 부품들을 전선으로 직접 연결해서 사용해야 하므로 배선이 복잡하고 전선이 고정되지 않아 고장나는 일도 다수 발생
IC의 주요 특징
- 크기가 작고 가벼움 : 하나의 칩에 많은 회로를 집적이 가능함
- 전력 소모가 적음 : 개별 부품을 활용한 회로보다 효율적임
- 생산 단가가 적음 : 대량 생산이 가능
- 고속 동작 가능 : 데이터 처리 속도가 빠름
그럼 I2C 통신과 MCU는 뭘까?
I2C 통신이란?
전자부품(센서, 액츄에이터, 메모리 등)이 데이터를 주고받는 방식 (프로토콜, 통신규약) 이다.
- 사람들이 대화를 하려면 언어 (영어, 한국어)가 필요하듯이 전자 부품도 통신을 하기위해서는 그들만의 언어(I2C 등)이 필요함
- I2C가 통신을 하기 위한 언어중 하나인 것임
I2C 통신의 기본 개념
- 1명의 선생님 (Master) 여러명의 학생 (Slave) 처럼 작동함
I2C를 사람의 대화로 비유하면
마스터(Master) : 선생님 (명령을 내리는 사람)
슬레이브(Slave) : 학생 (명령을 듣고 실행하는 사람)
SCL(Clock, 클럭) : 대화 속도를 맞추는 신호
SDA(Data) : 실제 말(Data)를 전달하는 신호
I2C 통신을 하려면?
2개의 신호선이 필요함
1. SCL(Serial Clock Line) : 데이터를 주고 받는 속도를 맞춰주는 역할
2. SDA(Serial Data Line) : 실제 데이터를 주고받는 역할
전자 부품들이 I2C를 통해 소통하는 과정 예시?
1. 마스터(MCU) 가 슬레이브(IC)에게 "PID 값을 바꿔! 라는 명령을 보냄" (SDA 사용)
2. 슬레이브(IC)가 "네 변경했습니다" 라고 응답합 (SDA 사용)
3. SCL 신호를 통해 정확한 속도로 데이터가 오간다
즉 I2C 통신은 두개의 선(SDA, SCL)만으로 여러 부품이 동시에 연결되고 통신될 수 있는 효율적인 방식
그러면 MCU(Microcontroller) 란 뭘까?
작은 칩으로 전자부품을 제어하는 역할을 함
쉽게 말해서 MCU는 전자 부품의 두뇌라고 볼 수 있다.
MCU와 I2C의 관계? MCU는 어떻게 IC와 소통을 할까?
MCU가 IC에 명령을 전달하는 방식은 I2C통신을 통해서 이루어짐
MCU가 IC에 명령을 전달하는 방식은 I²C 통신을 통해 이루어짐
MCU가 "마스터" 역할 → OIS IC에 명령을 내림
OIS IC가 "슬레이브" 역할 → MCU의 명령을 받아 실행
예제: OIS 튜닝에서 MCU와 IC의 관계
1️⃣ MCU(마스터)가 I²C(SCL, SDA)를 통해 OIS IC(슬레이브)에게 명령을 보냄
- "PID 값을 100으로 바꿔!"
2️⃣ OIS IC(슬레이브)가 액추에이터를 제어하고 결과를 MCU로 전송 - "PID 값을 변경 완료했어요!"
3️⃣ MCU가 결과를 확인하고 PID 값을 조정하여 OIS 성능을 최적화
✅ 즉, MCU는 I²C 통신을 통해 OIS IC와 소통하며, 액추에이터를 제어하고 PID 튜닝을 진행
VCM(Voice Coil Motor)란?
- 전기 자기력을 이용한 정밀한 움직임을 위한 모터임
- 자석(영구 자석)과 코일(전류가 흐르는 도선) 사이의 자기장 반응을 이용하여 힘을 발생시키는 방식으로 작용
✔️ VCM은 카메라 모듈 안에서 렌즈를 앞뒤로 움직이는 역할을 함
✔️ 전류(전압)를 조절하면 자기장이 변하면서 렌즈가 이동
✔️ 비접촉식(Non-contact) 방식이라 마찰이 거의 없고, 빠르고 정밀한 제어가 가능
즉 VCM은 자기장의 힘을 이용하여 렌즈를 미세하게 이동시키는 모터
그러면!!! VCM 의 동작 원리는 무엇일까?
VCM의 동작원리를 이해하려면 로렌츠 힘(Lorenz Force)에 대한 이해가 있어야함
VCM은 영구자석(고정) + 코일(전류가 흐름)로 구성됨
코일에 전류를 흘리면, 자기장과의 상호작용으로 힘(로렌츠 힘)이 발생함
이 힘이 렌즈를 앞 뒤로 움직이게 만들면서 렌즈가 이동
I2C와 I3C는 어떤 계층의 프토콜일까?
I²C와 I³C는 "물리 계층(Layer 1) + 데이터 링크 계층(Layer 2)" 프로토콜
I²C와 I³C는 물리계층 + 데이터 링크 계층 계층에서 동작하는 "하드웨어 통신 프로토콜임"
자기장 강도 (Magnetic Field Strength, 단위 mT)란?
자기장 강도는 공간에서 자기장이 얼마나 강한지를 나타내는 물리량, 단위 mT(밀리테슬라, milliTesla)를 사용함
자기장은 보통 자석(Magnet) 또는 전류가 흐르는 전선 주변에서 발생
강한 자석일수록 자기장 강도(mT)가 커짐
감도(Sensitivity)란?
센서가 자기장을 얼마나 정미랗게 측정할 수 있는지를 의미함
✔️ Low Sensitivity (저감도) → 강한 자기장 감지 가능, 하지만 정밀도 낮음
✔️ High Sensitivity (고감도) → 미세한 자기장 변화도 감지 가능, 하지만 감지할 수 있는 범위가 좁음
감도(Sensitivity)허용 자기장 범위 (mT)감지할 수 있는 최소 변화
저감도 (-288mT ~ 288mT) | 넓은 범위에서 강한 자기장 감지 | 1mT 변화 정도 |
중감도 (-165mT ~ 165mT) | 적절한 감지 범위 | 0.5mT 변화 정도 |
고감도 (-100mT ~ 100mT) | 아주 미세한 자기장 변화 감지 가능 | 0.1mT 변화 정도 |
홀 센서(Hall Sensor)란?
홀 센서는 자기장(자석에서 나오는 힘)을 감지하여 전기 신호로 변환하는 센서
- 자석(영구 자석)이 가까워지면 자기장이 강해지고, 멀어지면 자기장이 약해짐
- 홀 센서는 이런 자기장의 변화를 감지하여 위치(Position), 거리(Distance), 방향(Direction)을 측정할 수 있음
-> 즉, 홀 센서는 자기장의 변화를 감지해서 "물체가 얼마나 움직였는지"를 측정하는 센서임
홀 센서가 렌즈의 움직임을 측정하는 원리
렌즈(VCM 액추에이터)에는 자석이 붙어 있음 -> 렌즈가 움직이면 자석의 위치도 변함 -> 홀 센서가 이 변화를 감지하여 렌즈의 위치를 측정함
- 카메라 렌즈(VCM)에는 작은 자석(Neodymium Magnet)이 부착되어 있음
- 렌즈가 움직이면, 자석의 위치가 변하면서 자기장의 강도도 변함
- 홀 센서는 이 자기장의 변화를 감지하여 "렌즈가 얼마나 움직였는지" 를 측정함
즉 센서는 이 자기장의 변화를 감지하여 "렌즈가 얼마나 움직였는지"를 측정함
홀 센서가 감지하는 것 = 자기장(Magnetic Field)의 변화
- 자기장이 강해지면 = 렌즈가 가까워짐
- 자기장이 약해지면 = 렌즈가 멀어짐
- 자기장의 방향이 바뀌면 = 렌즈가 다른 방향으로 움직임
즉, 렌즈가 움직이면 자기장도 변하고, 홀 센서는 이 변화를 감지해서 "렌즈의 정확한 위치"를 측정할 수 있음
즉 홀 센서가 렌즈 위치를 측정하는 과정?
1. 렌즈(VCM)에는 작은 자석이 부착되어 있음
2. 렌즈가 움직이면 자석의 위치가 변하면서 자기장의 세기도 변함
3. 홀 센서가 이 자기장 변화를 감지하여 전기 신호(Voltage)로 변환
4. 마이크로컨트롤러(MCU)가 이 신호를 읽어서 렌즈의 정확한 위치를 계산
5. 시스템이 렌즈의 움직임을 분석하여 손떨림 보정을 수행