이력 사항
現) 반도체 대기업 (CHIP 회로설계 4년차)
아날로그 IP / 디지털 시나리오 설계
A급 특허 출원
글로벌 외국 기업 엔지니어 기술 대응
前) 스타트업 인큐베이팅 업체 (MCU Firm-ware 설계)
前) 대기업 가전제품 업체 (All-in-one 정수기 생산 기술)
前) 중견기업 의료기기 업체 (CIS, DDI ASIC 설계)
CHIP 설계 취업/이직 충분히 도전할 수 있습니다.
저와 함께 CHIP 설계 취업/이직에 가까워지세요!
"반도체 아날로그/디지털 회로설계를 꿈꾸시나요?
대기업 S전자 현직자의 눈으로 기초부터 도와드립니다!"
반갑습니다! S전자에서 시스템반도체를 설계하고 있는 삼코치 입니다 :)
저는 스타트업에서부터 회로설계 직무에 도전하면서 많은 시행착오를 겪어왔습니다.
PCB 설계, F/W 설계, FPGA 설계, CHIP 설계를 구먹구구 식으로 경험했죠.
그런데 한 가지 아쉬움이 있었습니다.
'왜 회로설계 분야는 체계화된 실습 기회와 취업에 대한 정보가 적을까?'
반도체 공정, 프로그래밍 등의 분야는 콘텐츠가 많았지만, 회로설계는 정보가 적다보니 그저 '숨겨진 세상'이었습니다.
이 글을 읽는 회로설계 취준생분들 또한 저와 같은 답답한 심정을 느껴보셨을 겁니다.
그래서 현직자와 면담도 해보고, 교수님께 물어보고, IDEC 강의를 수강해보기도 하죠.
하지만 알들말듯 여전히 잘 모르는 경우가 대부분 입니다.
그.래.서! 제가 직접 취업까지 연결되는 체계화된 강의를 제작해 버렸습니다!
저는 [아날로그 회로-> 디지털 시스템 -> MCU 펌웨어 -> 드라이버 설계 -> 소프트웨어]를 모두 경험하면서,
'Top-down / Bottom-up'스킬을 통해 제품과 회로를 완벽히 설명해낼 수 있게 되었습니다.
그리고 인프런에서 실무적인 회로를 다루면서 '아날로그/디지털 회로'에 대해 저만의 직관적 해석 방법부터 Trade-off를 따지는 방법까지 모두 풀어드리려 합니다.
저와 함께 기초를 닦고, 실무 역량을 쌓아 자신만의 Chip 설계 Story를 만들어 가봅시다!
강의
로드맵
전체 1수강평
- PCB HW설계 실무 : STM32를 활용한 Mixed-signal 보드 설계 프로젝트
- 아날로그 회로설계 실무 : Analog IP 설계와 성능 개선하기
- 디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
- PCB HW설계 실무 : STM32를 활용한 Mixed-signal 보드 설계 프로젝트
- PCB HW설계 실무 : STM32를 활용한 Mixed-signal 보드 설계 프로젝트
게시글
질문&답변
전자캐드기능사는 어떤가요?
안녕하세요, 답변 남겨드립니다.전자캐드기능사는 회로설계나 PCB 설계 입문자에게는 유용할 수 있지만, 실제 회로설계 또는 하드웨어 엔지니어로의 취업에는 제한적인 영향을 미칩니다. 해당 자격증은 주로 OrCAD 기반의 회로도 작성 및 PCB 기본 설계 과정을 다루며, 실무보다는 ‘기초 설계 도구 활용 능력’을 검증하는 성격이 강합니다. 즉, 산업 현장에서 요구하는 Mixed-signal PCB 설계, 전력·신호 무결성 분석, EMC 대응, 고속 디지털 설계 같은 고급 기술 역량과는 직접적인 연관이 적습니다.PCB HW설계 실무 강의에서도 다루듯이, 실제 취업에서 중요한 것은 Power Budget 작성, Pin Mapping, Layer Stack-up, Return Path 및 Analog/Digital GND 분리, BOM 및 Gerber 파일 산출 등 ‘완전한 설계 Flow’를 경험해보는 것입니다. 전자캐드기능사에서는 단순한 회로 입력과 배선만 다루기 때문에, 현업 수준의 설계 역량을 평가하기에는 부족합니다.실무에서는 오히려 OrCAD, Altium Designer, Cadence Allegro, Mentor PADS 등 상용 툴을 활용한 프로젝트 포트폴리오가 더 높은 가치를 가집니다. 예를 들어, STM32F103 기반 Mixed-signal 보드를 설계하면서 Ethernet PHY, ADC, DAC, LDO 등을 통합하고 Signal Return Path를 검증한 결과물을 제출하면, 기업에서는 이를 정량적 기술역량으로 평가합니다. 특히 Layer Stack-up 규칙(예: 4 Layer 기준 Top/GND/Power/Bottom 구조)이나 EMI 대책 설계 등을 포함하면 자격증보다 훨씬 높은 평가를 받을 수 있습니다.실제 현업에서 전자캐드기능사를 준비하는 사례는 많지 않습니다. 실무자보다는 학생이나 초보자가 설계 흐름을 익히기 위한 ‘입문용 인증’으로 준비하는 경우가 대부분입니다. 따라서 이 자격증은 “기초 전자캐드 도구를 다룰 줄 안다”는 보조적인 어필 수단일 뿐이며, 이를 기반으로 STM32 기반 보드 설계 프로젝트나 Power & Signal Flow 설계 과제 경험을 병행하시면 훨씬 실질적인 경쟁력을 확보하실 수 있습니다.
- 0
- 2
- 25
질문&답변
Debugging pin 글로벌 라벨에 대한 질문 있습니다.
안녕하세요, 답변 남겨드립니다.질문하신 내용은 STM32F103의 디버깅 핀(JTAG/SWD 관련 신호)을 schematic에 설계할 때, 글로벌 라벨 명을 JTMS_F407, NTRST_F407처럼 명명한 근거가 무엇이냐는 부분으로 이해됩니다.먼저, STM32F103의 데이터시트를 보면 각 포트 핀(PB14, PB13, PB12 등)은 “main function” 열에 단순히 GPIO명(PB14, PB13 등)으로만 표시되어 있습니다. 그러나 실제로 이 핀들은 “alternate function(AF)”으로서 특정 디버깅 기능을 수행할 수 있습니다. 예를 들어 STM32F103의 PB3~PB4, PA13~PA15 등은 JTAG/SWD 포트로 설정될 수 있으며, 데이터시트보다는 STM32F103 Reference Manual (RM0008) 및 ST의 Debug Interface application note (AN2606)에서 해당 핀들의 디버깅 기능이 정의되어 있습니다.JTMS_F407, NTRST_F407 등의 라벨을 붙인 이유는, STM32F407과 STM32F103 모두 ST의 Cortex-M 시리즈 MCU로서, 디버깅 인터페이스(JTAG/SWD)가 공통적으로 존재하기 때문입니다. 즉, 기능 명(JTMS, JTCK, JTDI, JTDO, NTRST)은 Cortex-M CoreSight 표준 인터페이스 규격(ARM Debug Interface v5 Architecture, ADIv5)에 기반하여 동일하게 사용됩니다. 따라서 설계 시 pin 라벨을 “PB14”로만 두기보다는, 핀의 기능 역할을 명시적으로 표현하기 위해 글로벌 라벨로 “JTMS”, “JTCK”, “NTRST” 등의 명칭을 추가하는 것이 하드웨어 설계상 더 명확합니다.예를 들어, STM32F103의 디버깅 핀 매핑은 다음과 같이 설정됩니다.JTMS/SWDIO → PA13JTCK/SWCLK → PA14JTDI → PA15JTDO → PB3NTRST → PB4따라서 schematic에서 “PB14, PB13, PB12”에 JTMS_F407 등의 이름을 부여한 것은 단순히 STM32F103의 기능을 따른 것이 아니라, STM32 시리즈 간 호환성과 디버깅 신호의 의미적 일관성을 유지하기 위한 설계 관례입니다. 실제 PCB 설계 시, 동일한 디버깅 커넥터(예: 2x5 10pin ARM JTAG Header)를 여러 MCU 제품군에 공통적으로 사용할 수 있게 되며, 이는 재사용성 및 설계 효율을 높입니다.요약하자면, 데이터시트에 “PB14”라고만 표기되어 있어도, Reference Manual과 ARM Debug Interface 스펙을 근거로 “JTMS”, “JTCK” 등의 기능명이 존재하고, 설계자는 이를 schematic 상에서 명시적으로 표현하여 디버그 인터페이스의 연결 관계를 명확히 하기 위해 글로벌 라벨을 부여한 것입니다.실무적으로는, 같은 회로보드에서 STM32F1, F4, F7 등의 시리즈를 교체하더라도 JTAG 핀의 역할은 동일하므로, 이러한 라벨링 방식은 하드웨어 디버깅 포트를 설계할 때의 표준화된 접근입니다.
- 0
- 2
- 21
질문&답변
현재 stm32 Mixed-signal 보드 설계 수강중인데요??
안녕하세요, 답변 남겨드립니다.제가 직접 임베디드 강의를 기획하지는 않아서,무료로 들으실 수 있는 강의 좋은게 있어서 추천드립니다.https://inf.run/NuX4o
- 0
- 1
- 21
질문&답변
PLL과 X크리스탈(xtal) 차이
안녕하세요, 답변 남겨드립니다.STM32와 같은 MCU 기반 회로에서 PLL(Phase-Locked Loop)과 크리스탈(Quartz Crystal, Xtal)은 모두 클럭을 생성하거나 안정화시키는 역할을 하지만, 그 동작 원리와 회로 내 역할은 다르며, 항상 동시에 쓰이지는 않습니다.크리스탈은 물리적으로 진동하는 석영 결정체로, 전압을 가하면 특정 고유 주파수로 매우 안정적으로 진동합니다. MCU 내부의 오실레이터 블록에 크리스탈을 연결하면, MCU는 이를 기준 주파수(reference clock)로 사용합니다. 예를 들어, 8 MHz 크리스탈을 연결하면 MCU는 내부 회로에서 그 주파수를 매우 정밀한 기준 클럭으로 사용하게 됩니다. 크리스탈의 장점은 주파수 안정성이 높고, 온도나 전압 변화에 따른 드리프트가 작다는 점입니다. 대신, 주파수를 크게 변경하거나 배수로 증폭하는 데는 적합하지 않습니다.반면 PLL은 전자적으로 입력된 기준 클럭을 기준으로 위상을 고정시키면서 원하는 배수나 분주로 클럭을 변환해주는 회로입니다. PLL의 출력 주파수는 입력 주파수 * N / M (N: 곱셈 계수, M: 분주 계수) 형태로 계산되며, 예를 들어 8 MHz 크리스탈을 입력으로 하고 PLL 배수기를 9로 설정하면 72 MHz의 시스템 클럭을 얻을 수 있습니다. PLL은 클럭 신호를 고속화하거나 여러 주파수를 동시에 생성할 때 매우 유용하며, STM32 내부에서는 CPU, USB, ADC 등 블록별로 다른 클럭 도메인을 만들기 위해 사용됩니다.현업의 설계 예시로 보면, MCU의 시스템 클럭을 72 MHz로 동작시키기 위해 외부 8 MHz 크리스탈(Xtal)을 기준으로 PLL 블록을 통해 ×9배 증폭하여 사용하는 구성이 일반적입니다. 즉, Xtal은 ‘기준’ 클럭을 제공하고, PLL은 ‘변환’ 및 ‘분배’를 담당합니다. 하지만 모든 MCU 설계에서 반드시 두 블록을 함께 사용하는 것은 아닙니다. 저전력 애플리케이션이나 보드 공간이 제한된 설계에서는 내부 RC 오실레이터(예: HSI, High Speed Internal RC)를 기준으로 PLL을 동작시키거나, 반대로 PLL을 사용하지 않고 Xtal만으로 구동하기도 합니다.정리하자면, PLL과 크리스탈은 클럭 생성 체계의 서로 다른 단계에 속합니다. Xtal은 매우 안정적인 기준 클럭 소스이고, PLL은 그 기준을 다양한 속도로 변환·분배하는 회로입니다. 따라서 두 블록은 자주 함께 쓰이지만, 회로의 용도와 성능 요구(예: USB 동작 48 MHz, ADC 샘플링 정확도, 저전력 모드 등)에 따라 단독으로 쓰이는 경우도 충분히 있습니다.예를 들어 산업용 모터 제어 보드의 경우, 8 MHz 크리스탈을 기반으로 PLL을 통해 72 MHz 시스템 클럭과 36 MHz ADC 클럭을 동시에 생성해 안정성과 정밀도를 모두 확보합니다. 반면 IoT 센서 노드처럼 저전력 중심 설계에서는 내부 RC 오실레이터만으로 구동하고 PLL을 끄는 방식으로 소비전력을 약 20~30% 절감하기도 합니다.따라서 요약하면, PLL과 Xtal은 동시에 쓰이는 경우가 많지만, 서로 대체 가능한 관계는 아니며, 회로의 목적과 정확도, 전력 요건에 따라 선택적으로 사용됩니다.
- 0
- 1
- 20
질문&답변
이더넷 고속 신호 아트웍 문의 건
안녕하세요, 답변 남겨드립니다.이더넷 고속 신호 아트웍 관련 내용은 현재 「PCB HW설계 실무 : STM32를 활용한 Mixed-signal 보드 설계 프로젝트」 강의 내에서도 Ethernet PHY 블록의 레이아웃(섹션 8, 강의 67)에서 일부 다루고 있으나, 임피던스 매칭이나 종단 처리, 전송선로에서의 반사 및 스큐·지터 등의 고속 신호(Signal Integrity) 관점의 심화된 내용은 추가 보충 계획 중에 있습니다.다만, 인프런 카페 이벤트를 통해 제공되는 「KiCAD를 활용한 DDR4 DIMM(OpenDIMM) 설계 마스터 가이드」 자료에는 고속 인터페이스(DDR4) 기반의 임피던스 매칭, Stub 처리, 라인 길이 보정 및 차동쌍 라우팅 규칙 등 이더넷에도 동일하게 적용 가능한 고속 신호 처리 원리가 포함되어 있습니다. 이 자료를 통해 우선적으로 고속 신호의 PCB 설계 관점(예: Zo = √(L/C), 반사계수 Γ = (Zl - Zo)/(Zl + Zo))을 학습하실 수 있으며, 실제 Ethernet differential pair 라우팅 시에도 동일한 개념을 적용할 수 있습니다.또한 현재 기획 중인 차기 프로젝트인 「DDR4 검증용 보드 설계 강의」에서는 DDR4 신호 무결성(SI) 중심의 전송선로 모델링, 리턴 패스, Crosstalk 및 Length matching까지 포함하여 보다 정량적인 설계 기준을 다룰 예정입니다. 이 과정에서도 이더넷 고속신호 아트웍 가이드라인과 동일한 SI 접근법이 적용될 예정이므로, 추후 수강하시면 도움이 되실 것입니다.따라서, 우선 인프런 카페 이벤트에 참여하셔서 OpenDIMM 설계 마스터 가이드를 받아보시길 권장드립니다. 이 자료로부터 임피던스 매칭 및 라우팅 처리 개념을 선행 학습하시면, 향후 예정된 강의에서 이더넷을 포함한 다양한 고속신호 설계 내용을 보다 체계적으로 이해하실 수 있을 것입니다.
- 0
- 2
- 25
질문&답변
active load differential amp 설계
안녕하세요, 답변 남겨드립니다.회로 가장 아래쪽에 VSS를 안붙여서 전류가 빠져나갈데가 없어서 높아지는 것이니 확인해보시기 바랍니다.
- 0
- 2
- 20
질문&답변
Motor Driver Schematic 질문
안녕하세요, 답변 남겨드립니다.네, 맞습니다. 실제로 자세히 비교해보면 두 회로 모두 SP와 SN 단자 사이에 전류 검출 저항(Rsense)이 존재하는 동일한 동작 원리를 갖습니다. 데이터시트나 애플리케이션 회로에서는 Rsense가 명확히 “SP–SN 사이에 위치”하는 형태로 도식화되어 있지만, 어떤 회로도에서는 기호 표현상 SP와 SN이 바로 이어진 것처럼 보이기도 합니다. 그러나 실질적으로는 Low-side MOSFET 소스 노드와 GND 사이에 저항이 존재하고, 그 양단이 SP와 SN으로 연결되어 있기 때문에 동일한 기능을 수행합니다.이런 착시는 주로 회로도 심볼 배치나 그라운드 심볼 처리 방식 때문입니다. 예를 들어 SN이 GND 심볼로 직접 내려가 있는 것처럼 보이더라도, 실제 Net 이름이 Rsense 하단 노드(GND_SENSE 등)로 따로 지정되어 있다면, 내부적으로 SP–Rsense–SN 구조가 유지됩니다. 즉, 전류 루프 상에서는 완전히 동일한 경로입니다.따라서 현재 회로가 Rsense를 통해 Low-side 전류 검출이 이루어지고, 그 양단이 SP/SN으로 연결되어 있다면, 기능적으로 전혀 문제가 없는 정상적인 설계로 보셔도 됩니다. 이런 경우에는 오히려 데이터시트의 단순화된 블록 표현이 오해를 불러일으킬 수 있습니다.혹시 nFAULT나 SNSOUT의 Pull-up 관련 회로를 함께 확인하신다면, 그것들은 Open-drain 출력이므로 외부 풀업 저항(보통 10kΩ 내외)을 추가해야 하며, MCU 입력핀 전압 레벨(VIO, 보통 3.3V 또는 5V)에 맞춰 풀업 전원을 연결해 주셔야 합니다. 예를 들어 nFAULT → 10kΩ → 3.3V, SNSOUT → 10kΩ → 3.3V 형태로 설계하시면 MCU 인터페이스 레벨과 정확히 매칭됩니다.
- 0
- 2
- 19
질문&답변
AHB, APB 차이 질문입니다!
안녕하세요, 답변 남겨드립니다.핵심은 “속도가 느리다”라는 표현이 단순히 클록 주파수만을 의미하지 않고, “버스의 구조적 특성과 접근 방식에 따른 실질적인 데이터 전송 효율”을 의미한다는 점입니다.AMBA(Advanced Microcontroller Bus Architecture) 계열 버스는 계층적으로 구성되어 있으며, 일반적으로 AHB → APB 순으로 하위 레벨 버스로 확장됩니다. AHB는 주로 CPU, DMA, 메모리(예: Flash, SRAM)처럼 대용량 데이터를 빠르게 주고받아야 하는 블록을 연결하는 고속 버스입니다. 반면 APB는 GPIO, UART, SPI, I2C, Timer 등 저속 주변 장치와의 제어 신호 전달용으로 설계되어 있습니다.이제 ‘AHB가 느리다’는 표현이 나온 이유를 기술적으로 풀어보겠습니다. AHB는 파이프라인 구조와 버스트 전송(burst transfer)을 지원하지만, 이러한 고기능 구조로 인해 주소 단계(Address Phase)와 데이터 단계(Data Phase)가 분리되어 있고, 마스터 간의 중재(Arbitration)나 슬레이브 응답(Ready/Wait signal)에 따른 지연이 발생할 수 있습니다. 즉, 실제 단일 트랜잭션(예: 한 번의 Read/Write 요청)에 대해 초기 오버헤드가 존재합니다. 반면 APB는 단일 싸이클 기반의 매우 단순한 프로토콜을 가지며, Address → Enable → Data 단계로 끝나기 때문에 구조적으로 단순하고 latency가 짧습니다. 따라서 “단일 접근 기준으로는” APB가 빠르게 느껴질 수 있습니다.예를 들어 STM32F4 시리즈에서 AHB는 CPU(ARM Cortex-M4)와 SRAM, Flash를 연결하고, 그 아래 APB1, APB2 버스가 존재합니다. AHB 클록이 168 MHz로 동작하고 APB1이 42 MHz, APB2가 84 MHz로 동작하더라도, 단일 레지스터 접근 시 AHB는 내부적으로 여러 신호 핸드셰이크를 거치기 때문에 몇 사이클이 소모될 수 있습니다. 반면 APB는 단순히 Peripheral Register에 직접 접근하기 때문에 오히려 “단일 명령 실행 시간”만 보면 빠르게 반응할 수 있습니다. 그러나 AHB는 연속된 대량 데이터 전송에서 버스트 모드(예: 8-beat, 16-beat 전송)를 지원하므로, 실제 데이터 전송 효율(Throughput)은 APB보다 압도적으로 높습니다.정리하자면,AHB는 고속 대역폭을 위한 구조이지만 파이프라인·중재 오버헤드 때문에 단일 접근 지연(latency)은 클 수 있습니다.APB는 단순 제어용 버스로 구조가 간단해 latency가 짧지만, 대량 데이터 전송에는 부적합합니다.실제 MCU 내에서는 AHB 클록이 더 높지만, 주변장치 접근 시 APB 브리지 단을 거치므로 체감 속도는 APB가 더 단순하게 동작하는 것처럼 보일 수 있습니다.따라서 “AHB가 느리다”는 표현은 클록 속도나 전송 대역폭이 아니라, 단일 접근의 효율과 구조적 단순성을 비교한 문맥에서 나온 표현으로 이해하시면 됩니다.
- 0
- 2
- 35
질문&답변
DataMem 스펙 질문
안녕하세요, 답변 남겨드립니다.말씀하신것처럼 의도가 헷갈릴수있어서 몇가지 관점들을 설명드려볼게요.지금 보신 선언은 reg [31:0] mem [127:0]; 이라서 32비트짜리 공간이 128개 있는 셈입니다. 그런데 실제로는 주소를 6비트(Address[5:0])만 쓰고 있어서 0번부터 63번까지만 접근이 됩니다. 즉, 전체 중 절반(64개)만 쓰고 나머지 64개는 실제로는 아무 역할도 하지 않습니다.그럼 왜 굳이 128개로 선언했을까 하는 부분인데, 보통 두 가지 이유가 있습니다. 하나는 나중에 주소를 7비트(Address[6:0])로 확장해서 128개 다 쓰려고 미리 크게 잡아둔 경우이고, 또 하나는 원래 설계 스펙이 128이었는데 실제 구현은 64까지만 쓰도록 변경되면서 코드가 정리되지 않은 경우입니다.이렇게 “선언된 크기”와 “실제로 쓰는 크기”가 다르면 몇 가지 불편함이 생깁니다. 예를 들어 합성 도구가 자동으로 최적화를 하면 사용하지 않는 64개는 버려주기도 하지만, 경우에 따라서는 버리지 못하고 그대로 회로 자원이 낭비될 수도 있습니다. FPGA 같은 데서는 64워드만 쓰면 2,048비트 메모리가 필요한데, 128로 선언해두면 4,096비트짜리 메모리 블록이 잡혀버려서 2배를 차지하는 경우도 생깁니다. 또, 시뮬레이션에서는 쓰이지 않는 공간이 초기화되지 않고 X(알 수 없는 값) 상태로 남아 있어서, 혹시 잘못된 주소로 접근하면 디버깅이 어려워질 수 있습니다.그래서 실제로는 선언 크기와 사용하는 크기를 일치시켜 주는 게 가장 깔끔합니다. 즉, 지금처럼 64개만 쓸 거라면 reg [31:0] mem [63:0]; 으로 줄이고, 혹시 128개를 쓰고 싶다면 주소를 7비트로 바꾸고 초기화도 128개 전체를 돌도록 수정하는 것이 좋습니다.정리하면, 현재 코드에서는 64개만 쓰니까 128로 선언한 건 사실상 의미가 없고, 그냥 크기를 줄여서 맞추는 게 더 안전하고 효율적입니다. 혹시 나중에 확장을 염두에 둔 거라면 그때 가서 주소폭을 넓히고 선언 크기를 늘리는 방식이 일반적으로 권장됩니다.
- 0
- 1
- 24
질문&답변
PHY칩 schematic 설계 관련해서 궁금한점이 있습니다.
안녕하세요, 답변 남겨드립니다.PHY 칩 schematic 설계 시 TX, RX, 그리고 클럭 관련 포트 방향성이 혼동되기 쉬운데, 이는 단순히 이름에만 의존하지 않고, 실제 데이터 흐름과 데이터시트의 정의를 함께 이해해야 합니다.먼저 TX_DO, TX_EN은 PHY 칩 입장에서 보면 MCU가 PHY로 데이터를 보내는 신호입니다. 즉, MCU는 송신부이므로 이 신호들을 출력(output)으로 내보내고, PHY는 이를 입력(input)으로 받아 처리합니다. 따라서 데이터시트에서는 PHY 입장에서 “Input”으로 정의되어 있으며 schematic에서도 그렇게 설정하는 것이 맞습니다. 같은 맥락으로 RX 관련 포트는 PHY가 데이터를 만들어서 MCU로 보내주는 신호입니다. PHY는 Output, MCU는 Input으로 정의되는 이유가 바로 이 데이터 방향성 때문입니다.다음으로 RX_DV(/CRS_DV)와 같은 신호는 상태에 따라 방향이 달라지는 양방향 성격을 가집니다. Reset 시에는 내부 회로가 초기화되므로 외부에서 신호를 강제로 입력받는 구조를 취하지만, 정상 동작(active state)에서는 PHY가 데이터를 수신할 때 MCU로 유효 신호(valid)를 알려주는 출력 신호로 동작합니다. 그래서 데이터시트와 schematic에서 Bidirectional 혹은 I/O로 표시되는 경우가 많습니다.TX_CLK와 RX_CLK의 차이는 프로토콜 구조 때문입니다. 보통 MII/RMII/RGMII 같은 인터페이스에서 TX_CLK는 송신 데이터 전송을 위해 MCU와 PHY가 모두 클럭을 주고받을 수 있는 구조로 설계되어 있어 양방향 가능성을 염두에 둡니다. 반면 RX_CLK는 PHY가 수신된 데이터에 맞춰 생성하는 클럭이므로 일방향 출력만 존재합니다. 예를 들어 25MHz MII 클럭이나 50MHz RMII 클럭은 PHY가 기준 클럭을 만들어 MCU에 공급합니다. 따라서 RX_CLK는 PHY Output → MCU Input으로 고정됩니다.실제 설계 경험을 예로 들면, STM32F407과 LAN8720 PHY를 연결할 때 RMII 모드에서는 TXD[1:0], TX_EN이 MCU Output → PHY Input, RXD[1:0], CRS_DV, RX_CLK은 PHY Output → MCU Input으로 연결됩니다. 그리고 MDIO/MDC 같은 관리 인터페이스는 양방향(MDIO) 또는 단방향(MDC, MCU Output)으로 동작하는 구조를 보입니다.정리하면, schematic의 방향성은 단순히 “TX라서 Output” 또는 “RX라서 Input”이라는 규칙이 아니라, 누가 데이터를 생성하고 누가 소비하는지, 어떤 상태에서 역할이 바뀌는지를 데이터시트 기준으로 이해해야 합니다. 이렇게 해야 올바른 net 연결과 Pull-up/Pull-down, 그리고 시뮬레이션에서의 Signal Integrity 검증까지 일관성을 유지할 수 있습니다.
- 0
- 1
- 31