전체 글
-
MOSFET body diode카테고리 없음 2025. 4. 25. 23:21
전력전자에서 MOSFET의 body diode 효과는 중요하다.프리휠링(인덕터 회로 스위칭 시에 서지 전압), 역극성 보호(실수로 반대 극성 연결), 역방향 전도(H bridge) 등등에서 유용하게 쓰이기 때문이다. MOSFET을 보면 symbol이 다음과 같은데 이상하다.MOSFET은 SOURCE DRAIN 대칭이 아니었나? 왜 다이오드가 한 방향이지?이유는 body와 source를 단락시켰기 때문이다.따라서 drain과 body의 pn접합만이 남고 이는 다이오드가 된다.N channel의 경우 body가 p형이기 때문에 drain 방향의 다이오드가 생기고P channel의 경우 drain이 p형이기 때문에 body(=source)방향의 다이오드가 생긴다.
-
Steve ward의 DRSSTC 1차 측 회로 해석카테고리 없음 2025. 4. 24. 00:31
내가 이 DRSSTC 회로를 처음 접한 지 족히 6년은 된 거 같다.이 회로의 1차 측 회로 해석에 성공하기 까지 6년 걸렸다...(낭만 지렸노)시간이 많은 것들을 해결해 주는 것 같다. 이 회로는 언뜻 보면 정공법을 따르지 않고 야매로 설계된 거 같다.하지만 고전압을 다뤄야 하는 DRSSTC 컨트롤러 특성상 꽤나 합리적으로 설계되었다는 것을 알게 될 것이다. 너무 복잡해 보인다!맞다! 이 회로는 다양한 과전압, 과전류 보호회로, 변조기, zero cross switching 등을 위한 회로들로 떡칠 되어 있어서언뜻 보기에 해석하려면 6년이 걸릴 거 같다.하지만 이미 6년 걸려 해석한 사람이 1차측 코일의 전압 펌핑 부분만 추려 놓은 간략화 된 회로가 있다. 이제 각 부분을 뜯어 보도록 하자. 피드..
-
CE (Common Emitter) bias 관련 휴리스틱카테고리 없음 2025. 4. 20. 22:12
다른 설계 영역도 마찬가지겠지만 바이어싱을 할 때에는 설계값을 결정하는 데에 휴리스틱 관계들의 도움을 많이 받을 거 같다.휴리스틱을 알면 설계 목표를 얻을 때 까지 시도하는 방향성을 알 수 있다. 여기서 $V_{bb} = \frac {R_{b2}} {R_{b1} + R_{b2}} V_{cc}$이고 $R_b = R_{b1} || R_{b2}$이다.$\beta I_B = I_C$이므로 연립방정식을 풀면,$$I_E = \frac {V_{BB} - V_{BE}} {R_E + \frac {R_B} {\beta + 1}}$$ $I_C$와 $g_m$은 비례한다$I_C = \frac {g_m} {V_T}$ $g_m$이 줄어서 좋을 건 없다.$R_e$(소신호 등가회로에 다는 것 $\neq R_E$)가 달려 있을 ..
-
op-amp + RLC 발진기 (간단한 예제) 해석카테고리 없음 2025. 4. 20. 11:02
루프 이득을 구하는 방법 (갑자기 루프? 정귀환 없이 혼자서 발산하는 시스템이 얼마나 되겠는가... 발진을 위해 정귀환을 사용하는 것은 자연스러운 발상이다.) 입력이 0인 폐루프 시스템으로 해석 가능하다.입력이 0인 폐루프 시스템의 루프이득을 구하는 과정은 다음과 같다. 1. $V_o$에서 회로를 오픈한다.2. 입력을 0으로 준다.3. $V_o$에서 $V_r$ 까지의 이득을 구한다. 그리고 이를 블록선도와 같이 보면 이해가 편한데, 다음과 같다. 루프 이득을 구하는 다른 방법 폐루프 시스템의 루프 이득을 구하는 다른 방법은 $V_o$에서 출발하지 않고 $V_i$에서 출발하는 것이다.과정은 다음과 같다. 1. $V_r$을 오픈한다.2. $V_i$에서 $V_r$ 까지의 이득을 구한다. 회로와 블록선도는 ..
-
gdb 실행중 pipe로 입력 받기카테고리 없음 2025. 2. 24. 11:25
gdb 실행중에 python이나 binary file을 통해 디버깅중인 프로그램에 표준 입력(stdin)을 주려면 어떻게 해야될까?나는 linux의 mkfifo를 이용해 보았다. 일단 mkfifo /path/to/myfifo 이렇게 해서 fifo 파일을 만든다. 그리고 다음 코드를 작성한다.#pipe.pyimport sysimport osfd = os.open("/path/to/myfifo", os.O_RDONLY | os.O_NONBLOCK)with os.fdopen(fd, "rb") as f: while True: data = f.read() if data == None: continue sys.stdout.buffer.write(data) sys.stdout.flus..
-
movaps %xmm0, 0x50(%rsp)카테고리 없음 2025. 2. 24. 11:16
포너블 해킹을 하다보면 알 수 없는 이유로 stack segment fault가 뜰 때가 있다.그럴 때 디버깅을 해봤는데, "movaps %xmm0, 0x50(%rsp)" 이런 명령어에서 segment fault가 뜨는 걸 확인했다면,0x50(%rsp) 주소가 0x10으로 정렬되어 있는 지 확인 해봐야한다.movaps 명령어는 Move Aligned Packed Single-Precision 명령어이다. 정렬이 필수다.그런데 xmm0 레지스터는 128bit 즉 0x10byte 레지스터이다.즉 0x10으로 정렬된 0x12345610은 괜찮지만, 0x12345618은 안된다는 뜻이다.