inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

PCB HW설계 실무 : STM32를 활용한 Mixed-signal 보드 설계 프로젝트

PHY칩 schematic 설계하기

21번 INT pin 풀업 저항

32

이승준

작성한 질문수 2

0

질문1)

데이터 시트를 살펴보면 INT 핀은 9.5kohm의 내부 풀업 저항을 갖고 있는 open-drain output이라고 나와있는데, 삼코치님께서 따로 풀업 저항을 추가하신 이유가 무엇인가요?

 

질문2)

풀업 저항은 누설 전류, 전압 분배, 기생 캡을 고려해서 저항 크기를 정하는 것으로 알고 있는데, 데이터 시트에서 권장하는 값이 없는 경우 실제로 계산해서 결정하나요?

 

질문3)

디커플링 커패시터의 용량은 대부분 데이터 시트에서 권장하는 값이 있는데, 그 용량 값을 왜 권장하는지(사용하는지) 아는 것이 좋은가요? 데이터 시트에 없는 경우에는 실무에서 커패시터의 용량을 결정하는 방법도 궁금합니다.

MCU stm32 hardware artwork kicad orcad

답변 2

0

이승준

자세한 답변 감사합니다.

말씀해주신 내용을 통해 풀업 저항과 디커플링 커패시터 값을 선정할 때 어떤 항목을 봐야 하는지는 이해했습니다. 다만 실제 설계에서 기준값을 잡는 부분은 아직 어렵게 느껴집니다.

예를 들어 풀업 저항을 선정할 때 계산식으로 상한과 하한을 잡을 수는 있지만, “어느 정도의 상승 시간을 적절하다고 볼 것인지”, “어느 정도의 noise margin을 확보해야 충분한지” 같은 기준을 어떻게 잡는지가 아직 모호합니다.

디커플링 커패시터도 마찬가지로, 전원 drop을 어느 정도까지 허용할지, 여러 용량의 커패시터를 어느 수준까지 배치해야 충분한지 판단하는 기준이 궁금합니다.

이런 부분은 결국 여러 회로를 경험하면서 감각을 쌓아야 하는 영역인지, 아니면 초보 설계자가 참고할 수 있는 일반적인 판단 순서나 체크 기준이 있는지 궁금합니다.

0

회로설계 멘토 삼코치

쉽게 말하면, 풀업 저항이나 디커플링 커패시터 값을 정할 때 처음부터 “정답값”을 찾으려고 하면 너무 어렵습니다. 실무에서도 처음부터 완벽하게 계산해서 딱 하나의 값을 고르는 경우는 많지 않습니다. 먼저 많이 쓰는 안전한 기본값으로 시작하고, 그 값이 내 회로에서 느린지, 전류를 너무 많이 먹는지, 노이즈에 약한지만 확인하면서 조정합니다.

PHY의 INT 핀 풀업 저항은 이렇게 생각하시면 됩니다. INT는 빠른 통신 신호가 아니라 “PHY가 MCU한테 일이 생겼다고 알려주는 알림선”입니다. 그래서 아주 빠를 필요는 없습니다. 다만 선이 너무 약하게 High로 올라가면 주변 노이즈에 흔들릴 수 있습니다. 내부 풀업 9.5kohm만 써도 동작은 할 수 있지만, 외부에 10kohm을 하나 더 달면 실제 풀업은 약 4.9kohm 정도가 됩니다. 그러면 High로 올라가는 힘이 더 강해지고, 노이즈에도 조금 더 튼튼해집니다. 대신 Low일 때 흐르는 전류는 3.3V / 4.9kohm = 약 0.67mA 정도라서 보통 INT 핀 입장에서는 부담이 크지 않습니다.

초보 단계에서는 open-drain GPIO나 INT 신호 풀업은 그냥 4.7kohm 또는 10kohm에서 시작하셔도 됩니다. 보드가 일반적인 3.3V MCU 보드이고, 배터리로 몇 년씩 버텨야 하는 제품이 아니라면 4.7kohm이나 10kohm이 가장 무난합니다. 노이즈가 걱정되거나 배선이 길면 4.7kohm 쪽이 낫고, 전류를 조금이라도 아끼고 싶으면 10kohm 쪽이 낫습니다. 47kohm처럼 너무 크게 잡으면 전류는 적게 먹지만 신호가 천천히 올라가고 노이즈에 약해질 수 있습니다. 1kohm처럼 너무 작게 잡으면 신호는 강하지만 Low일 때 전류가 3.3mA 정도 흘러서 불필요하게 부담이 됩니다.

상승 시간을 어렵게 생각하지 않으셔도 됩니다. INT 같은 느린 신호는 대략 1us에서 10us 안에만 안정적으로 올라와도 대부분 충분합니다. 4.7kohm이나 10kohm을 쓰면 일반적인 짧은 PCB 배선에서는 보통 이 안에 들어옵니다. 그래서 데이터시트에서 특별히 빠른 edge를 요구하지 않는 INT, RESET, ENABLE 같은 신호는 4.7kohm~10kohm을 먼저 넣고 가는 경우가 많습니다.

디커플링 커패시터도 비슷합니다. 어렵게 말하면 순간 전류 공급, 전원 임피던스, 고주파 노이즈 억제 같은 이야기인데, 쉽게 말하면 IC가 갑자기 전류를 먹을 때 전압이 출렁이지 않게 옆에서 받쳐주는 작은 배터리라고 보시면 됩니다. MCU나 PHY는 내부 회로가 빠르게 켜지고 꺼지면서 순간적으로 전류를 당깁니다. 그때 전원 IC가 멀리 있으면 바로 반응하지 못하니까, IC 바로 옆에 0.1uF 커패시터를 붙여서 순간 전류를 공급하게 만드는 겁니다.

초보 설계에서는 디커플링도 기본 패턴을 외우고 시작하시면 됩니다. MCU나 PHY의 전원 핀 근처에는 0.1uF를 최대한 가깝게 둡니다. 칩 근처나 전원 rail 근처에는 1uF 또는 4.7uF를 추가합니다. 보드 전원 입력이나 regulator 출력에는 10uF 이상을 둡니다. 즉, 0.1uF는 빠른 순간 전류용, 1uF~4.7uF는 중간 받침용, 10uF 이상은 큰 전원 출렁임 방지용이라고 이해하시면 됩니다.

전원 drop을 어느 정도 허용할지는 처음에는 너무 정밀하게 잡지 않아도 됩니다. 3.3V 전원이라면 일반 디지털 회로에서는 순간적으로 50mV~100mV 정도 흔들리는 것은 많이 보는 범위입니다. ADC 기준전압, PLL 전원, PHY analog 전원처럼 민감한 곳은 10mV~30mV 정도로 더 조심해서 봅니다. 그래서 민감한 전원에는 커패시터를 더 가까이 붙이고, 필요하면 ferrite bead 뒤에 0.1uF와 1uF를 따로 배치합니다.

정말 실무적으로 말하면, 처음 설계할 때는 값을 너무 오래 고민하지 말고 안전한 기본값으로 가는 게 낫습니다. INT 풀업은 4.7kohm 또는 10kohm, 디커플링은 전원 핀마다 0.1uF, 칩 근처에 1uF~4.7uF, 전원 입력 쪽에 10uF 이상. 이 정도로 시작하면 STM32와 PHY가 들어간 일반적인 Mixed-signal 보드에서는 큰 실수는 피할 수 있습니다.

나중에 오실로스코프로 보면 감이 빨리 생깁니다. INT 핀이 High로 올라갈 때 너무 느리거나 중간에 흔들리면 풀업을 10kohm에서 4.7kohm으로 낮추면 됩니다. 3.3V 전원이 PHY 동작 순간에 많이 꺼지면 1uF나 4.7uF를 더 가깝게 붙이거나 bulk 커패시터를 보강하면 됩니다. 처음부터 모든 값을 정확히 맞히는 사람이 잘하는 설계자가 아니라, 안전한 출발값을 잡고 실제 파형을 보면서 수정할 줄 아는 사람이 실무에서 안정적으로 설계합니다.

0

이승준

감사합니다!!

완강까지 열심히 달리겠습니다

0

회로설계 멘토 삼코치

안녕하세요, 답변 남겨드립니다.

질문 주신 내용은 PHY칩 schematic 설계에서 정말 좋은 포인트입니다. 이 부분은 단순히 “데이터시트에 내부 풀업이 있으니 외부 풀업은 필요 없다”로 끝내기보다, 실제 보드에서 그 신호가 얼마나 안정적으로 High를 유지하고, Low로 떨어질 때 디바이스가 무리 없이 전류를 sink할 수 있는지를 같이 봐야 합니다. 지금 질문하신 INT 핀은 강의 커리큘럼상 STM32 Mixed-signal 보드의 PHY칩 schematic 설계 파트와 정확히 연결되는 내용입니다.

INT 핀이 open-drain output이고 내부에 9.5kohm 풀업이 있다고 되어 있으면, 동작 자체만 놓고 보면 외부 풀업 없이도 High 레벨은 만들어질 수 있습니다. 그런데 제가 외부 풀업을 추가한 이유는 “기능 동작”보다 “보드 레벨 안정성”을 더 넓게 봤기 때문입니다. 내부 풀업 9.5kohm은 대체로 약한 풀업에 가깝고, 데이터시트에 min/max tolerance가 명확히 보장되지 않으면 양산 조건에서 9.5kohm 그대로라고 보기 어렵습니다. 예를 들어 3.3V 기준으로 내부 9.5kohm만 쓰면 Low일 때 흐르는 전류는 대략 I = 3.3V / 9.5kohm = 0.35mA 정도입니다. 이 정도면 소비전류 관점에서는 부담이 작지만, 라인에 기생 커패시턴스가 30pF만 붙어도 상승 시간은 t_r ~= 2.2RC = 2.2 x 9.5kohm x 30pF = 약 0.63us 정도가 됩니다. 인터럽트 신호라서 수십 MHz처럼 빠를 필요는 없지만, 주변에 Ethernet PHY 클럭, RMII/MII 신호, Magnetics 주변 노이즈가 같이 있는 보드에서는 약한 High 레벨이 노이즈에 더 취약해질 수 있습니다.

외부에 예를 들어 10kohm을 추가하면 내부 9.5kohm과 병렬이 되어서 유효 풀업은 R_eff = 9.5kohm || 10kohm = 약 4.87kohm이 됩니다. 이때 Low일 때 PHY가 sink해야 하는 전류는 I = 3.3V / 4.87kohm = 약 0.68mA 수준입니다. 일반적인 open-drain INT 핀에서 1mA 이하 sink 전류는 크게 부담되지 않는 경우가 많고, 대신 상승 시간은 절반 가까이 줄어듭니다. 30pF 기준이면 t_r ~= 2.2 x 4.87kohm x 30pF = 약 0.32us 정도가 되죠. 제가 외부 풀업을 넣은 판단은 “내부 풀업이 있으니 없어도 된다”가 아니라, “외부 보드 배선, MCU 입력 누설, EMI 환경, 양산 편차까지 고려하면 4.7kohm~10kohm 정도의 외부 풀업으로 신호 마진을 확보하는 편이 더 안전하다”에 가깝습니다.

풀업 저항 값은 데이터시트에 권장값이 없으면 실제로 계산을 합니다. 다만 실무에서 매번 아주 정밀하게 계산한다기보다는, 먼저 상한과 하한을 잡고 그 안에서 표준값을 고릅니다. 하한은 open-drain 출력이 Low를 만들 때 감당해야 하는 sink current로 정합니다. 식으로 쓰면 R_pullup >= (VDD - VOL_max) / I_sink_allow 정도입니다. 예를 들어 VDD = 3.3V, VOL_max를 0.4V 이하로 보고, 핀에 1mA 이상은 부담시키고 싶지 않다면 R >= (3.3V - 0.4V) / 1mA = 2.9kohm이 됩니다. 그래서 2.2kohm은 조금 공격적일 수 있고, 4.7kohm이나 10kohm은 안전한 쪽에 들어옵니다.

상한은 상승 시간과 누설 전류로 봅니다. 상승 시간 기준은 R_pullup <= t_r_target / (2.2 x C_line)로 잡으면 됩니다. 예를 들어 INT 라인의 총 기생 커패시턴스를 MCU 입력, PHY 핀, 배선까지 합쳐 50pF로 보고, 상승 시간을 1us 이내로 두고 싶다면 R <= 1us / (2.2 x 50pF) = 약 9.1kohm이 됩니다. 이 조건이면 10kohm은 살짝 느릴 수 있고 4.7kohm이 더 여유가 있습니다. 반대로 인터럽트가 아주 느린 이벤트이고 라인이 짧아서 20pF 수준이면 10kohm도 충분합니다. 그래서 실무에서는 4.7kohm, 10kohm, 47kohm 같은 흔한 값 중에서 “전류를 얼마나 아낄 것인가”와 “노이즈에 얼마나 강하게 만들 것인가”를 같이 보고 선택합니다. 배터리 제품이면 47kohm 쪽도 검토하지만, Ethernet PHY가 들어간 보드처럼 이미 수십 mA 이상 쓰는 시스템에서는 INT 풀업에서 0.3mA 아끼는 것보다 노이즈 마진과 디버깅 안정성을 더 우선하는 경우가 많습니다.

디커플링 커패시터도 데이터시트 권장값을 그대로 쓰는 것에서 끝내지 말고, 왜 그 값이 들어갔는지 아는 게 좋습니다. 특히 PHY, MCU, ADC처럼 mixed-signal 보드에서는 0.1uF 하나를 붙였는지, 1uF와 0.1uF를 병렬로 붙였는지, PLL 전원이나 AVDD에 ferrite bead 뒤로 별도 decap을 붙였는지가 실제 노이즈 성능과 bring-up 안정성에 영향을 줍니다. 데이터시트의 0.1uF 권장은 “고주파 순간 전류를 핀 바로 옆에서 공급하라”는 의미가 강하고, 1uF~4.7uF는 조금 더 낮은 주파수의 rail droop를 잡는 역할이 큽니다. 중요한 건 이상적인 C 값이 아니라 실제 부품의 ESL, ESR, DC bias, 배치 거리까지 포함한 임피던스입니다. 0.1uF라고 해도 0402와 0603의 ESL이 다르고, 1uF X5R 커패시터는 3.3V DC bias에서 실효 용량이 50~80% 수준으로 떨어질 수 있습니다.

데이터시트에 디커플링 값이 없으면 실무에서는 전원 핀의 성격과 전류 변화량을 보고 정합니다. 가장 기본적인 식은 C >= I_step x dt / dV 입니다. 예를 들어 어떤 IC가 순간적으로 50mA 전류를 100ns 동안 더 요구하고, 전원 droop를 50mV 이내로 묶고 싶다면 C >= 50mA x 100ns / 50mV = 0.1uF가 됩니다. 그래서 디지털 IC 전원 핀 근처에 0.1uF가 자주 나오는 겁니다. 그런데 이 계산은 이상적인 커패시터 기준이라 실제 보드에서는 0.1uF 하나만 믿지 않고, IC 전원 핀마다 0.1uF를 가깝게 두고, rail 단위로 1uF~10uF bulk를 추가하는 식으로 갑니다. PHY처럼 25MHz/50MHz clock과 고속 edge가 있는 부품은 VDDIO, VDD core, AVDD가 나뉘어 있으면 각 rail마다 0.1uF를 핀 근처에 놓고, analog/PLL 쪽은 ferrite bead 이후에 0.1uF + 1uF 조합을 두는 경우가 많습니다.

여기서 수강생분이 가져가시면 좋은 감각은 “데이터시트 권장은 최소한의 안전한 출발점이고, 보드 설계자는 그 권장값이 내 PCB 환경에서도 성립하는지 확인하는 사람”이라는 점입니다. 외부 풀업도 마찬가지로, 내부 9.5kohm이 있으니 부품 하나 줄여서 BOM cost를 낮출 수는 있습니다. 저항 하나가 1원~몇 원 단위라 양산 수량이 10만 대면 의미가 생기죠. 반대로 개발 초기 보드나 포트폴리오용 보드에서는 저항 하나를 줄이는 것보다 bring-up 때 INT 신호가 안정적으로 보이고, 오실로스코프로 High/Low 전압과 edge를 확인하기 쉬운 쪽이 더 중요합니다. 그래서 저는 이런 신호에는 보통 4.7kohm~10kohm 외부 풀업을 우선 검토하고, 양산 최적화 단계에서 내부 풀업만으로도 온도, 전압, 노이즈, EMI 조건을 통과하는지 확인한 뒤 DNI 처리나 삭제를 판단하는 흐름으로 가져갑니다.

전력 산출하는데 이해가 안가요?

0

49

2

수강연장

0

56

2

강의수강 만료일 연장 신청

0

49

2

강의 질문

0

85

2

RJ45 library 누락

0

65

2

강의 만료 확인 요청

0

64

2

JTAG 통신 질문

0

76

1

GND 오류

0

75

2

프로젝트 주제

0

79

1

45강 UART, TTL 질문

0

78

1

발열에 의한 LDO의 드롭아웃 전압 상승

0

106

2

I2C 통신 방식

0

133

2

라우팅 질문

0

81

2

kicad 라이브러리 추가 방법

0

340

2

VIa에 GND 항목이 없습니다.

0

91

2

디버거를 디버깅하려면

0

108

2

강의 연장

0

112

2

via 관련 질문드립니다.

0

74

1

32강 ERC에러

0

89

1

페라이트 비드 관련 질문드립니다.

0

114

2

알티움(Altium) 실습 자료 공유 가능 여부 문의드립니다.

0

132

2

핀 방향 설정 관련 질문드립니다

0

75

1

32강 debugging pin 설계 강의 관련 질문 드립니다.

0

76

1

kicad ERC footprint library 경고

0

97

2