x0FANSA-hk 님의 블로그
8bit CPU 사전준비) 풀업 & 풀다운 본문
Mosfet을 우리는 흔히 스위치에 비유해서 표현합니다. 실제로 Mosfet의 쓰임의 반 정도는 스위칭에 사용되지요.
그렇게해서 빵판에 MOSFET을 꽂고 무언가를 돌려보겠다고 하면 아마 이론처럼 잘 되지는 않을 것입니다. (꺼져야 하는데 안꺼지거나, 켜지긴 하는데 약하게 켜지거나, MOSFET이 갑자기 뜨거워지는 등)
그중에서도 8bit CPU를 만들며 NMOS를 쓸때 유독 헷갈리는데 그래도 자주 쓰여서 조심해야하는 2가지를 설명하려 합니다.
I) 풀업 & 풀다운
II) 하이사이드 & 로우사이드
이 두개는 NMOS를 단순히 택트 스위치로 치환해서 해석한다면 옳은 회로를 만들어도, NMOS는 정상적으로 동작하지 않기에 중요한 개념입니다. (참고로 저는 처음에 이거때문에 전선태워먹은적이 한-두번이 아니에요.)
그중에서도 오늘은 풀업과 풀다운에 대한 글을 쓰려고 합니다.
또한 이것은 MOSFET의 이야기 입니다. BJT도 비슷한 현상이 있지만 원리는 다르기에 이는 나중에 다루겠습니다.
MOS 커패시터
풀업, 풀다운의 원인에 대해 이해하기 위해서는 우선 MOSFET의 게이트 구조에 대해 알아야 합니다.(여기는 MOSFET 구조에 대해 다루는 곳은 아니기에 중요한것만 설명하고 빠르게 넘어갈게요.)
NMOS의 게이트의 경우 Metal-Oxide-Semiconductor 의 구조인데, 마치 도체-절연체-도체 구조인 커패시터와 비슷하게 생겼습니다. 실제로도 게이트는 커패시터와 동일하게 작동합니다. 게이트의 M에 양의 전압이 걸리면 커패시터와 동일하게, 반댓편인 S에는 상대적으로 전위가 낮아지기에, M에서 S방향의 전기장이 생기게 됩니다. 전자기학적으로 전자의 경우 전기장과 반대 방향으로 가려고 하기에, 반도체 안의 전자는 S에서 M으로 이동하고 싶어하지만 O에 막힌 상태입니다. 대신에 S의 표면, 즉 O와 S가 만나는 곳에 모이게 되지요. 이 모인 전자들이 NMOS의 Drain/Source전류(I_DS)가 흐르게 해 줍니다. 즉, MOS커패시터가 충전되면 NMOS가 켜집니다. 이것이 NMOS의 동작원리입니다.
MOS커패시터가 충전되면 NMOS가 켜짐을 우린 이제 이해했습니다. 그러면 반대로 NMOS를 끄고싶다면, MOS커패시터를 방전시키면 꺼지겠죠? 실제로도 MOS의 전하가 일정량 이상 떨어지면(일정량 이상 방전되면), NMOS는 I_DS가 흐르지 않는 OFF상태가 됩니다.
그러면 MOS를 어떻게 방전시킬까요? 방전이라는게 별거 아닌거 같지만 여기서는 많이 어렵습니다. 저희가 M에 전압을 차단한다면 이건 커패시터가 더 충전되는것을 막을 뿐, 방전시키는건 아닙니다. 맞아요. 양전압을 인가하거나, 전압을 아예 인가하지 않는것으로는 NMOS를 꺼트릴 수 없습니다. 스위치인데 안꺼진다는 거죠.
이때 이러한 사고의 흐름이 엔지니어의 마음가짐입니다.
MOS에 있는 양전하를 강제로 빼내야 하는건데, 전하를 빼낼려면 양전하가 이동해야겠고, 양전하의 이동방향은 전류와 같은데, 전류는 전위가 낮아지는 쪽으로 생기고, 현재 MOS는 충전된상태라 전위가 높기에, MOS보다 낮은 전위, 즉 0V나 음전압을 연결을 하면 방전이 될 것 같다!!
Pull-Up & Pull-Down
그러나 게이트를 양전압과 0V에 번갈아서 연결을 하는건 번거롭습니다.(음전압의 경우 취급 자체가 까다로우니 논외) 그래서 어디를 하나 기본상태로 하고 전압을 주면 좋을거 같습니다.
이때...
풀업: 기본적으로 양전압과 연결시켜서 ON을 약하게 유지하되, 강한 0V가 들어오면 약한 양전압을 몰아내고 OFF로 만들자.
풀다운: 기본적으로 GND와 연결시켜서 OFF을 약하게 유지하되, 강한 양전압이 들어오면 약한 0V를 몰아내고 ON으로 만들자.
이게 풀업, 풀다운 입니다.
여기서 제가 기본이 되는 전압과의 연결을 '약하게'라고 표현했습니다. 이것은 전압분배를 배운다면 쉽게 이해가 되지만 아니라고 가정하고 설명한다면, 저항을 통해서 기본이 되는 전압을 연결하자는 거에요. 이때 전압이 저항을 거치기에 약한 전류로 들어와서 몰아내기가 쉬운 것이죠. 이때 쓰는 저항이 풀업, 풀다운 저항 입니다.

그런데 궁금은 합니다. 만약 이러한 풀업, 풀다운 저항을 쓰지 않았다면 무슨일이 일어날까요? 그냥 잘 안꺼지는구나 라고 생각하고 넘어갈법도 합니다. 이건 아래의 현상 때문입니다.
Floating
말 그대로 떠있다는 뜻 입니다. 뭐가요?: 상태가요.
상태가 떠있다는 것이 무슨 뜻이냐면, 디지털세상에서는 0과 1만 존재할 뿐, 다른 상태는 존재하지 않습니다. 다시 말해서, 0과 1을 제외한 다른값을 가질 수 없고, 0과 1의 경계가 구별되어야 합니다. 그러나 상태가 떠 있으면 현재 값이 0인지 1인지 구별이 가지 않는 상태입니다. 어쩌다 측정하면 0, 어쩌다 측정하면 1이 랜덤하게 나오는 상태인 것이죠.
이걸 이렇게 말로만 하면 심각해 보이지는 않습니다만, 한번 컴퓨터를 생각해보자고요. 이러한 트랜지스터가 몇억개가 있는 장치입니다. 이것들중 단 몇개라도 정해지지 않은 값을 갖는다면 해당 시스템은 오작동을 하게 되겠지요. 컴퓨터는 이러한 Floating이라는 현상을 없애기 위해서, 역시 풀업 풀다운 저항을 사용하다가, 아예 처음부터(정상적인 로직을 가진다는 가정하에) 로직을 구별하여Floating이 존재하지 않는 트랜지스터인 CMOS를 사용합니다.
말하기 편하게 하려고 제가 NMOS기준으로만 설명했을뿐, 당연히 유사한 구조인 PMOS에도 해당하는 이야기 입니다.
백문이볼여일견이라고 직접 회로를 구성해보겠습니다.
일단 잠시 이 장치를 소개할게요. 제가 만든 3.3VDC를 공급하는 장치입니다. 말 그대로, C타입으로 5V이상의 어떠한 전압을 받더라도, 제너다이오드처럼 출력을 3.3V로 강제하는 장치입니다. 이런걸 DCDC벅컨버터 라고 하는데 이건 나중에 다루도록 하겠습니다. 여기서는 그중 MP1584 3.3V 모듈이 쓰였고 흰색 LED는 정상작동중이라는 LED이기 때문에 문제없이 상시 켜져야 합니다.



1. SPST로 스위칭되는 LED회로
우선 첫번째 회로. 일반 SPST스위치로 구성된 LED회로 입니다. 아무런 문제가 없이 정상적으로 LED가 켜지고 꺼짐을 확인할 수 있습니다.



2. NMOS로 스위칭되는 LED회로
두번째 회로는 NMOS를 직접 사용하였습니다. 이때 사용한 NMOS는 TO-220패키지의 IRLZ44N인데요, 3.3V로직레벨에서 원할하게 동작하는 NMOS중 MOS커패시터가 크기 때문에 사용하게 되었습니다.
cf) 제가 현재 수강중인 지능형센서응용의 김X민 교수님께서 항상 하시는 말씀이 있습니다. "데이터시트는 답을 알고있다." IRLZ44N의 경우, 제가 매우 많이 쓰는 MOSFET이어서 데이터시트를 일부 외워서 검증없이 사용한 것이지만, 사실은 회로를 구성할 때 이러한 소자들의 데이터시트를 읽어보는 습관이 있으면 좋습니다. 솔직히 이정도 말씀하셨으면 한번쯤이라도 읽어볼만 한데, 적어도 제 주위에는 없더라고요. 구글에 조금만 검색만해도 맨윗줄에 나와요.
두번째 회로의 경우 택트스위치를 누르면 IRLZ44N의 게이트에는 3.3V가 연결됩니다. 택트스위치를 땐다면 게이트는 아무것도 연결되있지 않은 상태입니다.(주의: 아무것도 연결이 안된것과 0V가 연결된건 서로 다른거에요. "회로가 끊겨있으니 0V다" 라고 하는건 틀린표현입니다.) 택트스위치를 누르면 NMOS가 ON이되어 전류가 흐르기에 LED에 불이 들어옵니다. 그러나 택트스위치를 땐다면 3.3V랑 연결이 떨어져서 불이 꺼져야하는데... 여전히 LED에 불이 들어옵니다. 이것이 바로 현재 IRLZ44N이 Floating되어있는 상태를 보여줍니다.





3. 풀다운 저항이 있는 NMOS로 스위칭되는 LED회로
그래서 Gate와 GND사이를 10kΩ으로 연결한 것이 3번째 회로입니다. 이때 10kΩ저항은 풀다운 저항이 되는 것이지요.


이번에도 똑같이 택트스위치를 조작하였습니다. 그런데 이번에는 아까와는 다르게 NMOS가 바로 꺼지는 것이 관찰되었습니다. 왜냐하면 택트스위치를 땠을 때, 풀다운 저항으로 MOS커패시터의 전하가 빠져나가기 때문이죠.



여담: 만약 풀다운 저항값이 크거나 작으면 어떤 현상이 일어날까요?
case 크다.: 저항이 크기에 전류가 잘 안흐르고, 시간당 빠져나가는 전하량이 작습니다. 즉, 방전이 되기는 하는데 그 속도가 느립니다. 빠르게 스위칭을 한다면, 전하가 완전히 빠져나가기 전에 MOS커패시터가 충전되는 등, 빠른 스위칭이 정상적으로 이루어지지 않습니다.
case 작다.: 저항이 작기에 전류가 잘 흐르기에 방전이 빠르게 되어, 잘 꺼집니다. 즉 반응성이 좋아집니다. 그러나, 게이트에 ON이 이루어지는 전압을 인가하더라도, 그 전압도 쉽게 빠져나가기 때문에 낭비되는 전류가 증가하여, 전력효율이 낮아집니다.
→ 결론: 환경에 따라 적절한 값의 저항을 선택하는게 좋습니다. 잘 모르겠으면, 어지간해서 10kΩ을 쓰면 문제없을거에요.
'Nebula > 8bit CPU' 카테고리의 다른 글
| 8bit CPU 사전준비) 하이사이드 & 로우사이드 스위칭 (0) | 2026.07.07 |
|---|---|
| 8bit CPU 사전준비) TTL과 CMOS 조금만 (0) | 2026.06.30 |
| 8bit CPU 사전준비) NOT, AND, OR, XOR 게이트 이론편 (0) | 2026.05.06 |
| 8bit CPU 사전준비) 8bit CPU였던것 (1) | 2026.05.05 |
