SW 개발자를 위한 하드웨어의 이해. 두번째
마이크로 콘트롤러의 이해
2019년
워크쉬트: http://goo.gl/gxswv
시간표

4일간 뭘 할까요?
- 마이크로 컨트롤러의 이해와 제어(마이크로 컨트롤러 프로그래밍) 그리고 프로젝트
- 전자회로 기본 소자의 이해
- 계측 장비 사용(멀티미터, 오실로스코프)
- 회로도 읽기
- 데이터 쉬트 읽기
- 멀티 태스크 스케쥴러 소개 및 사용
- 통신 드라이버 개발 및 디버깅(I2C, SPI)
참가자 소개
- 취미
- 관심사
- 최근에 배운것
- 이번 워크숍에서 자신이 얻었으면 하는것?
준비물
- Tiva launchpad 평가보드
- 수업 워크쉬트
- TM4C123GH6PM 핀배열
- 계측 장비
- 전자 소자
첫째날 시간표
오전
- 5V 전원으로 LED 켜기
- 전자 소자 알아보기 (저항, 캐패시터, 인덕터)
- 옴의법칙, 키리히 호프의 법칙
오후
- DC 5V는 어떻게 만들어질까? (AC->DC … DC)
- 전자 소자 알아보기 2 (다이오드, 반도체, 캐패시터(콘덴서))
- DC 전원 회로(레귤레이터, DC-DC)
- 트랜지스터 (NPN, FET)
- 증폭기를 만들어 보자
- BJT 마이크 증폭기
- Opamp 소개
Project ‘Time Boom’
By dkshots (CC Some rights reservd)
‘Time Boom’ 장치의 요구사항
- 시간이 되면 폭탄이 터진다.
- 시간은 버튼 입력을 받아서 바꿀 수 있다.
- 온도와 빛이 일정값 이상으로 변하면 터진다.
- 오후 4시가 되면 터진다.
- 시한 폭탄을 켜는 시작버튼이 있다.
- 시간이 지날때 마다 비프음이 들린다.
- 움직임이 감지되면 터진다. (옵션)
타겟보드 소개 : Tiva LaunchPad
MCU: TM4C123GH6PM http://www.ti.com/product/tm4c123gh6pm
- 32-bit ARM® Cortex™-M4 80-MHz
- 256KB of flash memory, 32KB of RAM, 2KB of EEPROM
- two 12-bit analog to digital converters
- USB 2.0 device port
- hibernation module
- other serial connectivity (SPI 4, I2C 4, UART 8)
- GPIO (43)
전자, 전자회로
읽어보기: (Concise electronics for geeks](http://lcamtuf.coredump.cx/electronics/)
- 전도체
- 반도체 condution energy band? doped?
- IRV
- 옴의 법칙
- 줄의 법칙
- 전류(전하, 인덕턴스, 리액턴스, 임피던스)
- 기본 소자 (전압소스, 전류소스, 저항, 캐패시터, 인덕터, 트랜스포머, 스위치, 액츄레이터, 모터, 크리스탈, 포텐셜미터, 트리머 캡, Incandescent lamps, LED, 광센서, 마이크로폰,)
- 반도체 (다이오드, FET, BJT,)
- 아날로그 회로 (테브난의 정리(키리히호프보다 편하다네..) wikipedia.org/wiki/%ED%85%8C%EB%B8%8C%EB%82%9C%EC%9D%98_%EC%A0%95%EB%A6%AC 전류 제한, Voltage Divider, 캐패시터, RC 필터, 트랜지스터(스위치), Voltage follower, amplifier, 션츠 다이오드, 레귤레이터 다이오드, 정류기, OPAMP, 비교기, 오실레이터, …)
- 디지털 회로 (로직 게이트, Adder, 메모리, Line decoder, DAC, ADC)
전자소자 알아보기
R 저항
L 인덕터
C 캐패시터
다이오드
트랜지스터 (BJT/FET)
IC(Integrated Circuit)
Opamp
Batteries, 선, 스위치, 릴레이, 트랜스포머, 퓨즈, 모터
참고:
전자소자 알아보기

회로의 재료!
해보기 (10분)
- 아는 소자와 모르는 소자 구분하기.
- 질문 목록 만들기.
출처: Practical Electronics for inventors. p–2
전기회로 이론
- 옴의 법칙
- 키리히호프의 전류 법칙 (직렬연결, 병렬연결)
- 키리히호프의 전압 법칙
- AC/DC (교류/직류)
회로 용어와 패턴
- Voltage Divider
- Pull-up
- Pull-Down
- Bypass Capacitor
- 회로패턴 카드: http://goo.gl/W5Q4EC
측정장비 1: Multi meter
- 전압, 저항, 전류
- 연결(short)이 되어 있는지 체크


해보기:
- 멀티미터를 이용하여 Breadboard는 내부가 어떻게 연결이 되어 있는지 알아보자.
Breadboard 내부

5V 전원회로를 이용하여 LED를 켜보자.
(옴의법칙, 키리히호프의 법칙, 저항, 반도체, 다이오드, 스위치)
Launchpad 보드로 부터 VBUS를 빵판에 연결하자.
해보기:
- VBUS 핀에서 5V가 나오는지 측정해보자.
- 5V전원을 이용하여 LED를 켜보자.
- 저항을 연결해 보자.
- LED에 걸리는 전압을 측정해보자.
- 저항에 걸리는 전압도 측정해보자.
옴의 법칙

- V= RI
- 전압 = 전류 x 저항
I(전자의 흐름)는 V(세기)에 비례. 비례 상수는 R.
저항

전류 흐르는것을 방해하는 소자.
저항의 용량은 양단에 전압 1V를 가했을 때 전류가 1A 만 흐르도록 하는것. 단위는 옴(ohm)를 사용한다.
저항 스펙 읽기
[https://kr.mouser.com/ProductDetail/Panasonic/ERJ–3RBD1000V/?qs=sGAEpiMZZMu61qfTUdNhGzgaTPd4k50bmsXo%2fJgMePwduQbbO8P85Q%3d%3d]
Power:1/32 Watt ~ 1 Watt, P=V^2/R
PPM: 20 ppm/°C -> 1도당 0.000020 ohms 변화
참고: ICBanQ 기초전자 부품정보
저항의 사용
- Voltage Divider
- Current Divider
전류 나누기
도체, 부도체, 그리고 반도체

Energy Band: 전하(전자-,정공+)가 자유로이 이동할 수 있는 에너지대역 (전도대,가전자대)
- 전도띠(전도대 conduction band) : 전자가 없는 에너지띠 (원자가띠보다 에너지 수준이 높다.) 전도띠에 전자가 있으면 전기장을 가해 쉽게 가속시켜 전류를 흐르게 할 수 있다.
- 띠틈Eg: 전도대와 가전자대의 사이. 전자가 채워질 수 없는 영역. 띠틈의 크기에 따라서 도체, 부도체, 반도체가 정해진다.
- 원자가띠(가전자대 valence band) : 절대0도에서 전자가 존재하는 가장 높은 에너지범위. 전자가 들어 있는 에너지 띠
반도체(Semiconductor)

- N형: 실리콘(Si)는 4개의 전자를 가지고 있는데, Si 결정 구조에 전자가 5개인 원자(P, As, Sb, Bi)를 도핑한다. (이동할 수 있는)전자가 하나 남는다.
- P형: 실리콘(Si) 결정구조에 전자가 3개인 원자(B, Al, In, Ga)를 도핑한다. 전자가 하나 부족. 자유로운 양공(+)이 생긴다.
- N형/P형 애니메이션: http://physica.gsnu.ac.kr/phtml/modern/solidstate/semiconductorphysics/semiconductorphysics2.html
주기율표: http://i.imgur.com/qbMxt6M.png
반도체: 전자의 이동


Diode 내부구조: P-N Junction

- P-N을 접합하면 Junction이 생긴다.(중립지대)
- P-N에 걸리는 전압에 따라서 Junction의 너비가 변함.
- Forward volatge: P-N에 해당 전압(Forward volatge)이 걸리면, 다이오드가 흐르기 시작!
Diode

from: Collin Mel Cunningham http://goo.gl/h8MoY
- Forward voltage: 0.7v
- I-V curve
해보기: Forward voltage를 측정해보자. 1n4148 diode의 Forward Voltage를 측정해보자.
LED (Light Emitting Diode)


LED
Forward voltage : 2V Forward current : 20mA
R1 ?

Switch
LED를 제어하는 스위치를 연결해보자.
해보기:
- 스위치가 눌렸을때 연결되는 다리는?
- 브레드보드에 연결하여 스위치가 눌렸을때 LED가 켜지도록 만들자.
AC (Alternating current)
- 220VAC 60Hz 파형의 모양은?
- Peak Voltage?
- Frequency?
DC 5V는 어떻게 만들어질까?
220VAC를 5VDC로 변환하기. (캐패시터, 트랜스 포머(인덕터), 다이오드)
- 트랜스포머로 220VAC를 12VAC로 만든다.
- 정류 다이오드를 이용하여 AC를 DC로 변환
- 캐패시터를 거쳐 리플을 줄인다.

정류기: http://en.wikipedia.org/wiki/Rectifier
캐패시터
–from wikipedia
용량(C:Capacitance)는 전압1볼트를 가했을 때 전자를 얼마나 많이 붙들고 있느냐 하는 것을 말하고 단위는 파랏드(Farad)를 사용한다.
- 1 Farad은 1 볼트 전위차로 1 Coulomb (쿨롬) 전하를 대전시키는 전기 용량.
- 1 Coulomb은 1A가 1초동안 흐를때 이동하는 전하량 (6.242×10^18)
ESR(Equivalent Series Resistance): 커패시터에 전자가 저장되었다 다시 꺼냈다 할 경우에 커패시터내에서 전자가 이동하거나 할 때 장애(ESR)가 없어야 에너지 소모가 일어나지 않을 것이다.
캐패시터 내부

- 임시로 전하를 저장하는 소자.
- C = (전극사이의 매질의 유전율)x(전극면적/전극사이의거리)
유전율: 誘電 은 전기를 유도. 매질의 전기장을 미치는 정도. http://ko.wikipedia.org/wiki/%EC%9C%A0%EC%A0%84%EC%9C%A8
—-
캐패시터의 충전과 방전

캐패시터의 사용
- Signal Filtering
- Bypass capacitor

인덕터(코일)

- 전류가 변하는 것을 방해하는 소자
- 코일에 전류가 흐르면 자기장(앙페르법칙) 이 생기는데, 그 자기장이 전류가 변하는것을 방해.
Joseph Henry(1797~1878) 전동기, 전신기 발명, Self induction(전류가 인접한 코일에만 영향을 주는것이 아니라 전류가 흐르는 코일 자신에게도 영향을 주는 현상) 발견
전자기 유도
전류 -> 자기장 (질문: 반대로 전류가 흐를 때 그 주위에 자기장이 생긴다면 자기장을 변화시켜 도선에 전류가 흐르게 할 수는 없을까?)
자기장(B)의 변화 -> 전류(I)
http://youtu.be/1Axzz6i5X7Q?t=3 https://www.youtube.com/watch?time_continue=21&v=hajIIGHPeuU
코일과 자기장을 이용하여 전기를 만든다.
- 세기: 페러데이법칙 -> 유도전압(기전력)의 크기는 코일을 통과하는 자기선속의 변화 / 변화시간. 1831년 영국, 마이클 패러데이 http://i.imgur.com/IhVzvj5.png
- 방향: 렌츠의 법칙 -> 코일은 자기장의 변화를 방해한다. 1834년 독일. 로렌츠 렌츠. http://i.imgur.com/VM77QjE.png
- 이용사례: 발전기, 다이나믹 마이크, 카드마그네틱.
인덕터의 용량: 인덕턴스
Self-inductance의 용량(L)은 코일에 1초 동안 1A의 전류의 변화가 있을때, 전류의 반대방향으로 1V세기로 방해하는 양. 단위: H (헨리)
- Self-inductance(자기유도) : V(반대방향) = -L * (I의변화)/(변화시간)
- Mutual-inductance(상호유도): V(유도되는전압) = -M * (유도하는 I의변화)/(변화시간)
Self-inductance

참고: http://spiff.rit.edu/classes/phys213/lectures/henry/henry_long.html
인덕터의 사용
- 왜? 전류와 자기장.

- 전류의 변화를 방해 -> 반대방향으로 전압 발생(기전력)
트랜스포머
Mutual-inductance (상호인덕턴스)


전원공급: Regulator, LDO, DCDC
리니어 방식: (효율 30–70%)
- Regulator: (불안전한) 입력전압에 대해 (안정적인)출력으로 특정 전압을 공급하는 소자.
- LDO: Low Dropout Regulator (Vd가 작으면 열도 적게 난다.)
스위칭 방식: (효율 80–90%)
- DC-DC Converter (Buck, Boost, Buck-Boost):
전원공급 Regulator

- 저항을 조절하여 전압을 정하는 방식.

전원공급: DC-DC Converter
스위칭

인덕터: 기전력? 렌츠의 법칙.

전원공급: DC-DC / Buck Converter (Step-Down)

- Switch ON 하는 즉시 인덕터에서 기전력 발생. 입력 전압을 떨어뜨림.
- Switch OFF 일때, 인덕터에 저장된 기전력이 출력으로 나간다.
전원공급: DC-DC / Boost Converter (Step-Up)

- Switch ON 을 유지하면, 인덕터에서 기전력 저장.
- Switch OFF 일때, 전원의 전압+인덕터에 저장된 기전력 이 출력으로 나간다.
해보기: http://learn.adafruit.com/diy-boost-calc
트랜지스터
증폭, 스위칭 하는 반도체 소자.
- BJT
- FET
BJT (Bipolar Junction Transistor)
BJT TR: 2n3904, 2n2222a
전류에 의해 스위칭. (DC Operation or Saturation)

해보기
- 2n3904 를 이용하여 LED 제어 해보자. (트랜지스터 베이스에 스위치(+1k옴)와 Vcc 연결, Collector Vcc와 LED, 저항 연결, Emitter에는 GND연결), 3904의 경우 베이스에 1k 연결 안하니깐 TR이 탄다. 3904 max Vbe 6V.
Base 양쪽에 Emitter 와 Collector 가 대칭적으로 보이지만 실제로는 doping 된 수준이 다르고 내부적으로 다른 모양으로 만들기 때문에 band structure 가 차이가 있어 극을 바꾸어 사용할 수 없다. (그림: http://i.imgur.com/hCXwgSy.png from http://www.semipark.co.kr)
FET (Field-effect transistor)
FET: FQP33N10, IRF540
전압에 의해 스위칭.

FET는 BJT와는 다르게 drain 과 source 가 대칭적으로 만들어지므로 바꾸어 사용해도 작동하는 경우가 많다.
- Relay: DC/AC제어
- MOSFET: metal-oxide-semiconductor field effect transistors
BJT Amplifier
Operation Region
- CutOff: BJT가 동작하지 않는다. 예: Vbe is 0V
- Active
- Saturation (DC Switch)
해보기
- BJT의 Cutoff, Active, Saturation point를 찾아보자. 짝과협력!
- Cutoff: base가 0v일때 Vc(Collector의 전압)의 값은?
- Active: base의 전압을 올려보자. 10k가변저항 사용. Vc가 변하기(0.05v정도 ) 시작할때 Vbe의 전압은?
- Saturation: base의 전압을 계속 올려보자. Vc가 내려갔다 올라가기 시작할때의 Vc전압, 그리고 Vbe의 전압은?
- Active 영역에서 Vbe의 전압 범위?
```
| 5v 5v
| /|\ /|\
| (1kohm) |1kohm
| | /
| --+----------|
| | \
| (10k가변) |
| | 1kohm
| | |
| __ __
```
- http://youtu.be/c6cmkm3UPUI?t=252 오실로스코프로 보기
BJT Amplifier 2: Biasing
CLASS?
BJT의 동작 지점(Cutoff, Active, Saturation 영역중에)에 따라서 Class A, Class B, Class C, Class AB 로 나뉜다.
- Class A: Active 영역에서 동작한다. (모든 파형이 다 살아있음 360)
- Class B: 1/2 파형동안만 켜진다. (180) // 1/2파형은 Cutoff영역 나머지 1/2은 Active 영역
- Class C: <1/2 파형동안만 켜진다. (<180) // RF에서 주로.
- Class AB: 180<->360 사이.
회로
| 5v 5v
| | |
| (10k가변) |1kohm
| | /
| 1khz(AC-2PP)--||470nF-+-----|
| | \
| | |
| (2.7k) | 1kohm
| | |
| __ __
참고:
- http://youtu.be/c6cmkm3UPUI?t=547 Amp B -> Amp A -> Amp C
- http://www.youtube.com/watch?v=Br3uOM0IVjc common emiter amp
- http://www.ece.mtu.edu/labs/EElabs/EE3305/Amplifier_Design_using_BJTs_A.pdf