STM32 기반 동기 정류 Buck-Boost 디지털 전원 오픈소스

STM32G474 기반 4스위치 Buck-Boost 디지털 전원 공급장치, TypeC 인터페이스 PD 기만 입력 및 DC5.5 인터페이스 입력 지원, 입력/출력 최대 48V10A, 이것은 제 졸업 설계이며, 현재 오픈소스로 공개하고 있으며, 회로도, PCB, 프로그램 소스 코드, 외부 케이스 3D 모델 등의 자료를 포함합니다.

작품이 평범하니 비판하지 말아주시고, 친절한 교류를 환영합니다.

작품 시연 영상: https://www.bilibili.com/video/BV1Ui421y7ip/

CH32V307 기반 스마트 전자 부하 오픈소스, 임베디드 대회 작품 오픈소스: https://blog.zeruns.com/archives/785.html

본 프로젝트의 립크리에이션 오픈소스 플랫폼 오픈소스 링크: https://url.zeruns.com/noGf0

전자/마이크로컨트롤러 기술 교류 QQ 그룹: 2169025065

자료 다운로드 주소는 문서 끝에 있습니다.

하드웨어 회로는 지아리크리에이션 EDA 소프트웨어를 사용하여 설계했으며, 이 소프트웨어는 정말 사용하기 좋습니다.

소개

본 설계는 STM32 기반 동기 정류 Buck-Boost 디지털 전원 공급장치를 기반으로 하며, 이 전원 회로는 MOSFET 드라이버 회로, 4스위치 Buck-Boost 회로, 신호 조정 회로, PD 고속 충전 프로토콜 회로, 보조 전원 회로, 마이크로컨트롤러 제어 회로 등으로 구성됩니다.

이 전원 공급장치는 DC 인터페이스 또는 Type-C 인터페이스를 통해 전원을 공급받을 수 있으며, Type-C 인터페이스는 충전기와 PD 고속 충전 프로토콜을 통해 통신을 지원하고, 자동으로 최대 20V의 작동 전압을 요청하고 획득합니다. 이 전원 공급장치는 STM32G474 마이크로컨트롤러를 사용하여 입력 및 출력의 전압과 전류를 실시간으로 모니터링하고, PID 제어 알고리즘을 통해 출력 PWM 듀티 사이클을 조정하며, 과전압 및 과전류 보호를 구현하고, 메인보드 온도를 샘플링하여 과온도 보호를 구현할 수 있습니다. 또한 OLED 화면을 통해 전원 공급장치의 매개변수를 실시간으로 확인할 수 있으며, 회전 인코더와 버튼을 통해 출력 전압과 전류를 설정할 수 있고, 다른 Type-C 인터페이스를 통해 상위 컴퓨터와 통신할 수 있으며, 상위 컴퓨터 소프트웨어를 통해 전원 공급장치의 각 매개변수와 파형을 실시간으로 확인할 수 있습니다.

설계 성능 매개변수

전원 설계 성능 매개변수는 다음 표와 같습니다:

항목 매개변수 지표
입력 전압 범위 12Vdc~48Vdc
입력 전류 범위 0~10A
최대 출력 전력 450W
출력 전압 범위 0.5Vdc~48Vdc
출력 전류 범위 0~10A
출력 전압 리플 피크-피크값≤200mV
스위칭 주파수 181.333kHz

실물 사진

VOFA+를 상위 컴퓨터 소프트웨어로 사용하여 전원 공급장치의 각 매개변수(입력 전압 및 전류, 출력 전압 및 전류, 메인보드 온도, MCU 온도, 전원 변환 효율 등)와 파형 변화를 실시간으로 확인할 수 있습니다. 아래 그림과 같습니다.

시스템 프레임워크 다이어그램

하드웨어 회로 설계

부품 선택 계산

인덕터 계산

동기 BUCK-BOOST 전원 공급장치에서 인덕터의 계산은 BUCK 모드와 BOOST 모드에서의 작동 상황을 고려해야 하며, 두 모드 모두에서 회로의 작동 요구 사항을 충족하는지 확인해야 합니다. 일반적으로 인덕터의 선택은 두 모드 중 인덕터 요구 사항이 더 높은 모드를 기반으로 수행됩니다.

전원 공급장치가 BUCK 강압 모드에서 작동할 때, 입력 전압의 최대값이 48V이고 출력 전압의 최소값이 5V라고 가정하고, 최소 PWM 듀티 사이클을 계산합니다:

D_{min} = \frac{V_{out\\_min}}{V_{in\\_max}} = \frac{5V}{48V} = 10.417\\%

인덕터 전류 변동량을 정의합니다(최대 정격 전류의 25% 리플, 최대 정격 전류를 10A로 설정):

\\Delta I_L = 25\\% \\cdot I_{out\\_nom} = 25\\% \\times 10A = 2.5A

필요한 최소 BUCK 인덕터를 계산합니다:

L_{minBuck} = \\frac{V_{out\\_min} \\cdot (1 - D_{min})}{\\Delta I_L \\cdot f_{switch}} = \\frac{5V}{2.5A \\times 181333Hz} \\times (1 - 10.417\\%) \\approx 9.88\\mu H

전원 공급장치가 BOOST 승압 모드에서 작동할 때, 입력 정격 전압 24V를 계산 포인트로 하여 PWM 듀티 사이클을 계산합니다:

D_{Bo} = 1 - \\frac{V_{in\\_nom}}{V_{out\\_max}} = 1 - \\frac{24V}{48V} = 50\\%

Boost 모드에서 1A( I_{minb} )일 때 Boost가 연속 모드(CCM)로 진입하면 인덕터를 계산합니다:

L_{minBoost} = \\frac{V_{out\\_max} \\cdot D_{Bo}(1-D_{Bo})^2}{2 \\cdot I_{minb} \\cdot f_{switch}} = \\frac{48V \\times 50\\% \\times (1 - 50\\%)^2}{2 \\times 1A \\times 181333Hz} = 16.544\\mu H

공식으로부터 얻은 계산 결과를 기반으로 예정된 리플 전류 요구 사항을 충족하기 위해 필요한 최소 인덕터 값을 결정했습니다. 이 조건을 충족하기 위해 계산값보다 약간 높은 인덕터 값을 선택해야 합니다. 동시에 선택한 인덕터의 포화 전류가 회로의 최대 전류 피크값을 견딜 수 있는지 확인해야 합니다. 계산 과정에서 효율 요소를 고려하지 않았으므로 실제 듀티 사이클과 피크 전류는 이론적 계산값보다 낮을 수 있습니다. 따라서 선택할 때 실제 작동 조건에서 발생할 수 있는 다양한 상황에 적응하기 위해 특정 안전 마진을 고려해야 합니다.

위의 요소들을 종합적으로 고려하여, 본 설계는 1770 표면 실장 패키지의 포화 전류 10A 이상인 22μH 인덕터를 BUCK-BOOST 회로의 인덕터 소자로 선택했습니다.

커패시터 계산

더 나은 출력 전압 리플을 얻기 위해 설계된 전압 리플을 50mV로 설정합니다.

\\Delta V_{out} = 0.05V

위에서 선택한 인덕터는 22μH이므로, 여기서 계산할 때도 이 인덕터 값을 사용합니다:

L_{BB}=22\\mu H

각각 BUCK 강압 모드와 BOOST 승압 모드에서 작동할 때 필요한 최소 커패시턴스 $C_{minBuck}$과 $C_{minBoost}$를 계산합니다:

C_{minBuck}=\\frac{V_{out\\_min}\\cdot(1-\\frac{V_{out\\_min}}{V_{in\\_max}})}{8\\cdot L_{BB}\\cdot \\Delta V_{out}\\cdot {f_{switch}}^2}=15.48\\mu F
C_{minBoost}=\\frac{I_{out\\_nom}\\cdot(1-\\frac{Vin\\_min}{Vout\\_max})}{\\Delta Vout\\cdot fswitch}=413.6\\mu F

설계에는 특정 마진이 필요하며, 더 낮은 출력 리플을 위해 저 ESR 220μF 고정 커패시터 1개와 470μF 일반 전해 커패시터 1개를 선택하여 총 690μF입니다.

MOSFET 선택 계산

정격 입력 및 출력 전압 범위 내에서 MOSFET을 통과하는 전류의 유효값을 계산합니다:

i_{mos\\_rms}=7.098A

MOSFET 선택에서 MOSFET의 정격 전류값 $I_D$는 MOSFET을 통과하는 최대 전류의 2배 이상이어야 합니다(고장 또는 단락 상태에서 과전류로 인한 충격 손상을 방지하기 위해).

2×i_{mos\\_rms}=14.196A

MOSFET 선택의 정격 내압값 $V_{DS}$는 최대 입력 전압의 1.5배보다 커야 합니다(스파이크 파괴를 방지하기 위해).

1.5×Vin\\_max=72V

이전 계산을 참고한 후, 일반적인 응용 시나리오의 경우 정격 전류가 15암페어(A) 이상이고 내압 등급이 100볼트(V)인 MOSFET을 선택할 수 있습니다. 하단 MOSFET 선택은 상단과 동일하며, 발열을 고려하여 도통 및 스위칭 과정에서의 에너지 손실을 최대한 줄이기 위해 낮은 도통 저항(R_{DS(on)})과 낮은 출력 커패시턴스(Coss)를 가진 MOSFET을 우선적으로 선택해야 합니다.

본 설계에서 선택한 MOSFET 모델은 CJAC80SN10이며, 이 소자는 장쑤 창징 반도체 주식회사에서 생산하는 국산 MOSFET입니다. 100V의 드레인-소스 내압(V_{DS})과 최대 80A의 드레인-소스 전류(I_D)를 갖추고 있습니다. 도통 저항(R_{DS(on)})은 단 6.2mΩ이며, 이러한 낮은 저항 특성은 소자의 도통 상태에서의 전력 손실을 줄이는 데 도움이 됩니다. 동시에 이 소자의 출력 커패시턴스 Coss는 420pF의 전형값을 가지고 있으며, 이러한 낮은 커패시턴스는 스위칭 변환 과정에서의 동적 손실을 줄이는 데 도움이 됩니다. 따라서 CJAC80SN10은 프로젝트에 필요한 전기적 특성을 충족하면서도 에너지 손실을 효과적으로 줄이고 시스템의 전체 효율을 향상시킬 수 있습니다.

전원 보드 회로 설계

주 전력 회로

아래 그림은 동기 BUCK-BOOST 전원 주 전력 회로도이며, 좌측이 입력입니다. 동기 BUCK 강압 회로는 MOSFET Q2 및 Q4와 인덕터 L1로 구성되고, 동기 BOOST 승압 회로는 MOSFET Q3 및 Q5와 인덕터 L1로 구성되며, 각 MOSFET의 게이트와 소스 사이에는 10kΩ의 저항이 병렬로 연결되어 있어 MOSFET의 게이트가 떠있지 않도록 하고 오작동 도통을 방지합니다.

주 전력 회로는 전체적으로 좌우 대칭 구조이며, 입력 및 출력 끝에는 각각 1개의 470μF/63V 알루미늄 전해 커패시터와 1개의 220μF/63V 고정 알루미늄 전해 커패시터가 있습니다. 또한 10μF/50V 매개변수를 가진 2개의 작은 표면 실장 MLCC(다층 세라믹 커패시터)가 있어 포트의 고주파 노이즈 간섭을 필터링합니다. R9 및 R10은 입력 및 출력 포트의 더미 부하로 작용하여 전원이 차단될 때 회로 내 남은 에너지를 빠르게 소산할 수 있습니다. R13 및 R14는 고정밀 5mΩ 저항이며 전류 샘플링에 사용되고, 후단에는 차동 증폭 회로가 연결되어 입력 및 출력 전류 신호를 증폭합니다. CNT1 및 CNT2는 출력 단자입니다. L1 및 L2는 각각 표면 실장 1770 패키지 및 직결 자기 환 인덕터 패키지이며, 그 중 하나를 납땜하면 되고, 둘 다 그리는 이유는 다양한 인덕터의 효과와 성능을 테스트하기 위한 편의성 때문입니다.

전원 입력 및 고속 충전 프로토콜 회로

아래 그림은 전원 입력 인터페이스 및 PD 고속 충전 프로토콜 통신 회로도입니다.

전원 입력은 DC5.5*2.5mm 암 포트와 TypeC 암 포트 두 가지 인터페이스를 채택했으며, 그 중 TypeC 인터페이스는 BC1.2, PD3.0/2.0 등 다양한 고속 충전 프로토콜을 지원하며, 사용되는 고속 충전 프로토콜 칩 모델은 CH224K이며, 고속 충전 충전기와 통신하여 충전기가 최대 20V의 전압을 출력하도록 할 수 있으며, 최대 100W 전력을 지원합니다.

D1, D3, D4 다이오드는 DC 포트 전압이 TypeC 포트로 역류하는 것을 방지하는 역할을 하며, 설계상 두 포트를 동시에 연결하는 것은 허용되지 않습니다. D5는 역접 보호용 다이오드입니다. FH1은 전원 입력 퓨즈 홀더이며, 12A 퓨즈를 삽입합니다.

드라이버 회로

동기 BUCK-BOOST 전원 공급장치의 설계에서 BUCK 회로와 BOOST 회로 모두 고측 N-MOSFET을 포함합니다. 전통적으로 이러한 고측 N-MOSFET의 드라이버는 일반적으로 변압기 격리 드라이버 방식을 사용하지만, 이 방법은 회로의 복잡성을 증가시키고 회로 보드의 크기를 확대합니다.

본 설계는 자체 부트스트랩 회로 기능이 있는 2개의 MOSFET 드라이버 칩 EG3112를 선택하여 BUCK 회로 및 BOOST 회로의 MOSFET을 드라이브합니다. EG3112는 비격리형 상보 이중 채널 드라이버 칩입니다. 2A의 출력 드라이브 전류 능력은 MOSFET이 빠르게 도통되도록 보장합니다. 칩에는 또한 내장된 데드 타임 제어 기능이 있어 출력 드라이브 신호의 직통을 방지하여 시스템의 안정성을 향상시킵니다. 구체적인 회로는 아래 그림과 같습니다.

BOOST 승압 회로의 MOSFET 드라이버를 예로 들면, PWM2L 및 PWM2H는 STM32G474 마이크로컨트롤러에서 출력되는 PWM 신호이며, EG3112 드라이버 칩의 LIN 및 HIN 핀으로 전송되고, LO는 하단 드라이버 신호 출력이며, 드라이버 저항값은 10Ω이고, HO는 상단 드라이버 신호 출력이며, 드라이버 저항값은 10Ω이고, D7은 상단 드라이버 회로 부트스트랩 다이오드이며, D9 및 D11 다이오드는 게이트 전하를 빠르게 방출하여 MOSFET의 차단 속도를 높이는 데 사용되고, C14는 부트스트랩 커패시터입니다.

드라이버 저항의 역할은 MOSFET 스위칭 과정에서 드라이버 신호가 PCB 배선, 분산 커패시턴스, 인덕터 등 소자에서 반사 및 진동을 생성할 수 있으므로, 직렬 저항을 통해 이러한 진동을 줄이고 시스템의 안정성과 신뢰성을 향상시킬 수 있습니다.

보조 전원

아래 그림은 전원 보드 보조 전원 공급 회로 원리도입니다.

1단계 12V 출력 보조 전원 회로는 고측 MOSFET이 통합된 BUCK형 전원 칩 TPS54360B를 선택했습니다. 칩 설명서에 따라 RT 핀에 풀다운 저항을 연결하여 스위칭 주파수를 설정할 수 있으며, 여기서 110kΩ 저항을 선택하면 스위칭 주파수는 876.5kHz이고, 더 높은 스위칭 주파수는 더 작은 인덕터를 선택하여 공간을 절약할 수 있으며, 이 주파수에 따라 계산한 인덕터값은 9.75μH 이상이어야 하므로 여기서 10μH 인덕터를 선택하고, SS310을 속행 다이오드로 선택합니다. C26 및 C27은 입력 필터 커패시터입니다. 피드백 분압 저항 R19 및 R25는 칩의 FB 핀에 0.8V 기준 전압을 분압하여 출력 전압이 12V일 때를 보장합니다. C18 및 C19는 1단계 12V 출력 보조 전원의 필터 커패시터입니다. 1단계 12V 출력은 주로 2단계 6V 강압 회로의 입력, MOSFET 드라이버 회로 및 냉각 팬에 전원을 공급합니다.

2단계 6V 출력 보조 전원 회로는 MOSFET이 통합된 동기 정류 BUCK형 전원 칩 SY8205를 선택했습니다. 칩 설명서에 따라 칩의 스위칭 주파수는 500kHz로 고정되며, 보조 전원 BUCK 회로의 인덕터를 10μH로 선택합니다. C21 및 C22는 입력 필터 커패시터입니다. 피드백 분압 저항 R23 및 R26은 칩의 FB 핀에 0.6V 기준 전압을 분압하여 출력 전압이 6V일 때를 보장합니다. C24 및 C25는 2단계 6V 출력 보조 전원의 필터 커패시터입니다. 선형 레귤레이터를 사용하여 12V에서 5V로 직접 강압하면 상당한 손실이 발생하므로, 먼저 스위칭 전원을 사용하여 5V에 가까운 전압으로 강압한 후 선형 레귤레이터를 사용하여 목표 전압으로 강압하면 높은 효율과 낮은 출력 리플을 보장할 수 있습니다.

2단계 출력의 6V 전압은 선형 레귤레이터 칩 AMS1117-5를 통해 5V로 강압되어 3단계 보조 전원이 되며, 전압 기준 칩 REF3033은 신호 조정, OLED 디스플레이, USB 통신 등 기능 회로에 전원을 공급합니다.

5V 직류는 선형 레귤레이터 칩 AMS1117-3.3을 통해 3.3V로 강압되어 4단계 보조 전원이 되며, MCU, 부저, Flash 칩 등 회로에 전원을 공급합니다.

전압 기준 칩 REF3033은 3.3V의 기준 전압을 출력하여 MCU의 VREF 포트에 공급되며, MCU 내장 ADC의 기준 전압으로 작용하여 ADC의 샘플링 정확도를 향상시킵니다.

신호 조정 회로

위 그림과 같이, 본 설계의 입력 및 출력 전압 샘플링 및 신호 조정 회로는 차동 증폭 기술을 채택했습니다. 차동 증폭 토폴로지는 스위칭 전원의 고주파 노이즈가 신호 조정 회로에 미치는 간섭을 효과적으로 줄일 수 있으며, 신호 안정성과 신뢰성을 향상시킵니다. 이 회로에서는 변환 정확도를 향상시키기 위해 낮은 오프셋 바이어스 연산 증폭기 GS8558-SR을 선택했습니다. GS8558-SR 연산 증폭기는 우수한 직류 정확도와 낮은 바이어스 전류 특성을 가지고 있으며, 이는 전체 신호 조정 회로의 성능을 향상시키는 데 매우 중요합니다.

차동 증폭 회로의 피드백 저항:

R_{38}=4.7kΩ
R_{36}=75kΩ

차동 증폭 배수를 계산합니다:

K_V=\\frac{R_{38}}{R_{36}}=0.062667

MCU의 ADC 최대 샘플링 전압은 전압 기준 칩이 출력하는 3.3V이므로, 샘플링할 수 있는 입력 및 출력 전압의 최대값을 계산할 수 있습니다:

V_{max}=\\frac{3.3V}{K_V}=52.66V

스위칭 전원의 고주파 노이즈가 차동 증폭 회로에 미치는 간섭을 더 잘 억제하기 위해 연산 증폭기의 전원 핀에 디커플링 커패시터 C40 및 C41을 추가하여 필터링하며, 커패시터는 MLCC(다층 세라믹 커패시터)를 선택합니다. MLCC는 낮은 ESR과 ESL을 가지고 있어 고주파 노이즈 필터링에서 더 나은 효과를 가지며, 동시에 출력 끝에 R35 저항과 C39 커패시터로 구성된 RC 저역통과 필터 회로를 추가하여 고주파 노이즈를 필터링합니다.

위 그림과 같이, 입력 및 출력 전류 조정 회로는 차동 증폭 방식을 채택하며, 출력 전류 샘플링 저항은:

R_{14}=5mΩ

차동 증폭 회로의 피드백 저항:

R_{48}=6.2kΩ
R_{46}=100Ω

차동 증폭 배수를 계산합니다:

K_I=\\frac{R_{48}}{R_{46}}=62

즉, 1A 전류 출력은 310mV 전압을 출력합니다.

MCU의 ADC 최대 샘플링 전압은 전압 기준 칩이 출력하는 3.3V이므로, 샘플링할 수 있는 입력 및 출력 전류의 최대값을 계산할 수 있습니다:

I_{max}=\\frac{3.3V}{K_I \\times R_{14}}=10.65A

MCU 제어 회로

본 프로젝트의 디지털 전원 공급장치 설계는 STM32G474RET6 칩을 컨트롤러로 선택했으며, 이 컨트롤러는 주변 회로가 간단하고, 제어 방식이 다양하며, 확장 능력이 우수한 등의 뚜렷한 특징을 가지고 있습니다. 정확한 클록 신호를 구현하기 위해 컨트롤러는 외부 크리스탈 X1, 즉 25메가헤르츠(MHz) 주파수의 석영 크리스탈 발진기를 사용합니다. 또한 회로에는 C45, C51, C56, C46 및 C52를 포함한 여러 필터 커패시터가 포함되어 있으며, 이들은 각각 마이크로컨트롤러(MCU)의 다양한 디지털 전원 핀에 사용되어 전원의 안정성을 보장하고 노이즈 간섭을 줄입니다. R49 저항과 C49 커패시터는 전원 온 리셋 회로를 구성하며, SW1은 MCU 리셋 버튼입니다. U11은 USB-직렬 포트 칩이며, 모델은 CH340C이고, 두 번째 TypeC 인터페이스에 연결되며, 직렬 포트는 MCU의 USART1 인터페이스에 연결됩니다. U10은 Flash 저장 칩이며, 모델은 W25Q64이고, 매개변수 설정 등의 정보를 저장하는 데 사용되며, MCU의 SPI3 인터페이스에 연결됩니다. Q6은 부저의 드라이버 MOSFET이며, 부저를 제어하는 데 사용되고, MOSFET 게이트는 MCU의 PB5 포트에 연결됩니다. H1 접선 끝은 SWD 프로그래밍 포트입니다. H2 및 H4는 PH2.0 접선 좌석이며, 제어 패널과 연결하는 데 사용되고, 접선 좌석은 USART2 인터페이스를 예비하고 있어 제어 패널 방안을 직렬 포트 화면으로 쉽게 변경할 수 있으며, ESP32를 추가하여 네트워킹 및 무선 제어 등의 기능을 추가할 수 있습니다. D13은 5V 역접 보호 다이오드입니다.

냉각 팬 드라이버 및 메인보드 온도 샘플링 회로

메인보드 온도 샘플링 회로 및 냉각 팬 드라이버 회로 원리도는 아래 그림과 같습니다. 전원 메인보드 온도 샘플링의 원리는 NTC 열감지 저항 R2와 풀다운 저항 R4를 직렬로 분압하여 MCU의 ADC 포트로 출력하여 샘플링하는 것입니다. 사용되는 NTC 열감지 저항의 저항값은 10kΩ이고, B값은 3950K입니다.​ 산열 팬은 N-MOS 트랜지스터를 사용하여 구동되며, 모델은 AO3400입니다. 산열 팬 인터페이스에는 역방향으로 병렬 연결된 다이오드 D2가 있어 모터에서 발생하는 역기전력(back EMF)으로 인한 손상을 방지합니다. 모터의 전원이 차단되면 회전 관성으로 인해 모터의 회전자가 즉시 멈추지 않고 계속 회전하면서 기전력을 발생시킵니다. 이 기전력은 특히 모터가 반도체 스위치(예: MOSFET)를 통해 이러한 소자들과 연결되어 있을 때 회로의 트랜지스터나 집적회로를 손상시킬 수 있습니다.

제어판 회로 설계

​ 제어판의 회로 원리도는 아래 그림과 같습니다. SW1은 로터리 인코더로 매개변수 설정 등에 사용되며, SW2와 SW3은 버튼으로 SW2는 설정 항목 전환에, SW3은 전원 출력의 켜기/끄기 제어에 사용됩니다. LED1은 시스템 실행 상태 표시등으로 정상 작동 시 500mS 간격으로 깜빡이며, LED2는 출력 상태 표시등으로 출력이 켜져 있을 때 점등되고 출력이 꺼져 있을 때 소등됩니다. OLED1은 OLED 화면으로 전원 매개변수 및 상태 등의 정보를 표시합니다.

PCB 스크린샷

전원판 상층

전원판 GND층

전원판 내층 2

전원판 하층

패널 상층

패널 하층

사용 설명서

​ 버튼과 로터리 인코더를 통해 출력 전압 및 전류값을 설정할 수 있습니다. 아래 그림과 같이 반전 표시된 수값이 현재 설정할 자리이며, 로터리 인코더를 회전하여 증가 또는 감소시킬 수 있고, 인코더를 누르면 다음 자리로 이동하여 설정할 수 있으며, SW2 버튼을 통해 설정할 항목을 전환할 수 있습니다. 설정된 데이터는 자동으로 Flash 저장 칩에 저장되며, 다음 부팅 시 저장 칩에서 데이터를 읽어옵니다.

​ SW3 버튼으로 전원 출력을 켜거나 끕니다.

​ 데이터 표시 페이지로 전환하여 전원의 현재 입출력 전압 및 전류, 메인보드 온도 및 MCU 온도 등의 정보를 확인할 수 있으며, 아래 그림과 같습니다.

​ 설정 페이지로 전환하여 과온/과전류/과전압 보호의 임계값을 설정할 수 있으며, 아래 그림과 같습니다. 설정된 데이터는 자동으로 Flash 저장 칩에 저장되며, 다음 부팅 시 저장 칩에서 데이터를 읽어옵니다.

리플 테스트

​ 전자 부하와 오실로스코프를 사용하여 전원 출력 성능 및 출력 리플을 테스트합니다. 아래 그림과 같이 36V 입력, 12V 2A 출력 시 리플 피크-피크값은 약 42mV로 측정되었습니다.

변환 효율 테스트

​ 20V 입력, 12V 10A 출력 시 전원 변환 효율을 테스트한 결과 92%이며, 아래 그림과 같습니다.

​ 아래 표는 다양한 입출력 전압에서의 변환 효율이며, 최고 효율은 94.3%입니다.

입력 전압(V) 입력 전류(A) 입력 전력(W) 출력 전압(V) 출력 전류(A) 출력 전력(W) 변환 효율(%)
20.003 4.035 80.712 15.010 5.000 75.050 92.985
47.999 5.335 256.075 24.040 9.900 237.996 92.940
48.000 7.875 378.000 36.020 9.900 356.598 94.338
48.000 9.860 473.280 45.030 9.900 445.797 94.193
23.998 8.835 212.022 48.070 4.000 192.280 90.689
23.998 9.830 235.900 35.998 6.001 216.024 91.574
12.099 9.166 110.899 24.070 4.000 96.280 86.817
20.008 2.645 52.921 4.970 9.000 44.730 84.522
20.008 10.550 211.084 24.030 8.000 192.240 91.073
36.000 6.418 231.048 24.010 9.000 216.090 93.526
36.000 10.540 379.440 35.950 9.800 352.310 92.850

MOS 트랜지스터 게이트 파형

​ 20V 입력, 24V 출력 시 각 MOS 게이트 파형을 테스트합니다.

​ BUCK 회로 상하 관의 대지 전압 파형도:

​ BOOST 회로 상하 관의 대지 전압 파형도:

발열 상황 테스트

무부하 시의 열화상 이미지:

10분간 10A 전류 출력 후의 열화상 이미지, MOS 트랜지스터 온도는 약 100도:

Uni-Trend UTi261M 열화상 카메라 언박싱 리뷰: https://blog.zeruns.com/archives/798.html

부품 구매 주소

이 프로젝트에 사용된 대부분의 부품 구매 주소는 여기에 있습니다:- 0805 저항 및 커패시터 샘플 북: https://s.click.taobao.com/begdskt

立创商城에서 부품을 구매하는 것을 권장합니다: https://activity.szlcsc.com/invite/D03E5B9CEAAE70A4.html

立创 오픈소스 링크의 BOM 표에서 "立创商城에서 즉시 주문"을 클릭하면 필요한 부품을 한 번에 장바구니에 추가할 수 있습니다.

자료 다운로드 주소

아래 링크에는 다음 자료가 포함되어 있습니다: 立创 EDA 프로젝트, 회로도 PDF 파일, 각 칩의 데이터시트, 소스 코드 프로젝트 압축 파일, 참고 프로그램 코드.

123 클라우드 드라이브 무제한 다운로드 주소: https://www.123pan.com/ps/2Y9Djv-8yevH.html

바이두 네트디스크 다운로드 주소: https://url.zeruns.com/MW2d1

프로젝트 프로그램 Gitee 오픈소스 주소: https://gitee.com/zeruns/STM32-Buck-Boost

프로젝트 프로그램 GitHub 오픈소스 주소: https://github.com/zeruns/Synchronous-Rectification-Buck-Boost-Digital-Power-Supply-Based-on-STM32

별 하나와 좋아요 하나 부탁드립니다.

알려진 문제점

  1. 보조 전원의 SY8205 칩이 저부하 시 PFM 모드로 진입하여 주파수가 낮아져 경미한 소음이 발생합니다.
  2. 정전류 모드의 PID 제어 프로그램이 좋지 않아 순수 저항 부하에서만 정전류가 안정적입니다. (정전압 모드는 문제없음)

기타 오픈소스 프로젝트 추천

추천 읽을거리

4개의 좋아요

대佬님, 스위칭 주파수 계산 방법 좀 알려주실 수 있나요? :grin:

1개의 좋아요

스위칭 주파수는 스스로 정하고, 그 주파수를 바탕으로 인덕턴스·커패시턴스 등 다른 파라미터를 계산한다.
스위칭 주파수가 높을수록 스위칭 손실(스위칭 소자의 턴온/턴오프 손실)은 일반적으로 증가한다(단위 시간당 스위칭 횟수가 많아지므로 손실이 주파수에 비례하기 때문). 반면 필터 소자(인덕터, 커패시터)의 부피는 줄일 수 있다(주파수가 높으면 동일한 리플 조건에서 필요한 인피던스/커패시턴스 값이 작아지기 때문). 반대로 주파수를 낮추면 손실은 줄어들지만 소자 부피가 커진다. 또한 스위칭 주파수는 소자의 스위칭 속도(예: MOSFET 최대 동작 주파수)와 EMI(전자기 간섭) 억제 난이도(고주파 EMI는 처리가 더 어려움)에도 제한을 받는다. 실제 설계에서는 효율, 부피, 비용, EMI 등을 절충해 적절한 스위칭 주파수를 선택해야 한다.

4개의 좋아요

안녕하세요, 이 작품이 양방향 동기 정류를 구현하려면 이를 기반으로 어떤 개선을 해야 하는지 궁금합니다. 감사합니다 :thinking:

1개의 좋아요

보조 전원은 입력단과 출력단 양쪽에서 동시에 전력을 공급받도록 변경(다이오드 추가), 전류 샘플링은 양방향으로 변경(전류 샘플링용 OP-AMP의 비반전단 전압을 1.25V 상승), 그리고 코드도 수정해야 하며, 나머지는 크게 바꿀 필요가 없습니다.

2개의 좋아요

좋은 프로젝트예요 :+1:

정말 좋네요 :+1:

좋은 걸 배웠어! :smiley:

안녕하세요, 저자님. 이 스위칭 주파수를 왜 일반적으로 정수가 아닌 소수점이 있는 181.333kHz로 설정하셨는지 여쭤보고 싶습니다. 보통은 정수를 사용하는 것으로 아는데, 특별한 이유가 있는지요? 감사합니다!

타이머의 배수/분주로 생성된 주파수는 수정할 수 있습니다.

아하, 알겠어요. 감사합니다.

이 PID 매개변수를 처음에 어느 정도로 설정해야 하는지 어떻게 판단할 수 있나요, 대가님?

안녕하세요! 이런 디지털 전원 공급 장치의 초기 PID 튜닝 시, 저는 일반적으로 시스템의 예상 동작 특성에 기반한 보수적인 값들로 시작합니다. 예를 들어 오버슈트를 피하기 위해 Ki는 낮게 설정하고, 진동 없이 응답을 얻을 수 있을 정도로만 Kp를 설정하는 것이죠. 그런 다음 오실로스코프로 출력을 모니터링하면서 실시간으로 조정합니다. 안정성을 주의 깊게 확인하면서요. STM32는 실시간으로 매개변수를 조정할 수 있어 추측에 의한 작업 시간을 크게 줄일 수 있습니다. 항상 작은 값에서 시작해서 점진적으로 조정하세요. 믿으세요, 이렇게 하면 “아차, 이득이 너무 높았네!” 하는 순간을 피할 수 있답니다! :grinning_face_with_smiling_eyes:

선배님, MOSFET에서 왜 전류의 실효값(RMS)을 계산해야 하나요? 그냥 인덕터의 피크 전류만 확인한 다음, 그 피크 전류보다 ID가 더 큰 MOSFET을 선택하면 되는 것 아닌가요?

예의 바르게 여쭤보는 것인데, 구체적인 디버깅 과정에서 따로 지켜야 할 절차가 있을까요? 예를 들어 개방 루프(open-loop) 상태에서 디버깅을 해야 하는지, 닫힌 루프(closed-loop)는 어떻게 디버깅해야 하는지, 혹은 주의해야 할 사항이 무엇이 있는지 알고 싶습니다. 저는 비슷한 수치제어 전원장치를 제작 중인데, 정확히 어떻게 디버깅을 진행해야 할지 몰라서요. 제가 개방 루프 상태에서 테스트할 때 두 차례 MOS 소자를 파손시켰습니다. 처음에는 인덕터 포화 현상 또는 MOS 소자의 내전압 초과 때문인 것으로 보이며, 두 번째는 부하를 연결하지 않아 인덕터의 전압이 너무 높아져 MOS 소자가 파손된 것으로 추정됩니다. 첫 번째 고장은 소스-드레인 간 파손이었고, 세 번째 고장은 게이트, 드레인, 소스 모든 단자가 다 파손되었습니다.

부스트 승압 부분은 무부하에서 개방 루프로 작동하면 안 되며, 그렇지 않으면 전압이 내압을 초과할 때까지 계속 상승하게 됩니다.

이는 스위치 전원 공급 장치/전원 설계에서 가장 고전적인 오해이다:
인덕터의 피크 전류만 보고 MOSFET를 선택하면, 단기적으로는 터지지 않지만 장기적으로는 반드시 타버린다. 실제로 MOSFET가 과열되어 손상되거나 파손되는지를 결정하는 것은 피크 전류가 아니라 전류의 실효값(RMS) 이다.


1. 한 문장으로 핵심 정리

  • 인덕터 피크 전류: 순간적인 파괴 및 인덕터 포화 방지용
  • 전류 실효값(RMS): MOSFET 발열, 온도 상승, 수명 계산용

MOSFET 파손의 90%는 열적 실패이며 순간 과전류 때문이 아니다.


2. 왜 발열은 '피크’가 아니라 '실효값’으로 보는가?

MOSFET 도통 시의 손실 전력:
\[
P_{loss} = I_{rms}^2 \times R_{ds(on)}
\]
여기서 사용되는 I는 반드시 실효값이어야 하며, 피크 전류와는 무관하다.

  • 피크 전류: 단지 순간 최대값일 뿐이며, 지속 시간이 매우 짧아 평균 발열을 반영하지 못함
  • 실효값: 마치 직류 전류가 계속 흐르는 것과 동등한 열 효과를 가지며, 실제 온도를 결정

예를 들어:

  • 인덕터 피크 전류: 10A
  • 그러나 실효값은 4~6A에 불과할 수 있음

너는 10A라는 피크만 보고 MOSFET를 선택하지만, 실효값에 의한 온도 상승을 고려하지 않으면 온도가 임계점을 초과하여 MOSFET이 즉시 열적 파손된다.


3. 피크 전류와 실효값, 각각의 역할은?

① 인덕터 피크 전류(Ipk)

다음 두 가지에만 관련됨:

  1. 인덕터 포화 방지
  2. MOSFET의 순간 과전류 파괴 방지 (데이터시트의 I_DM 펄스 전류 참조)
    발열 계산에는 전혀 관여하지 않음.

② 전류 실효값(I_rms)

오직 하나의 목적을 담당하지만 이것이 가장 중요함:

  • MOSFET이 얼마나 뜨거워지는가, 온도가 얼마나 상승하는가, 결국 탈 것인가
    → 따라서 필요한 R_ds(on) 크기, 방열 크기, 전류 등급을 결정하게 됨.

4. 당신이 실제로 따라야 할 소자 선정 로직 (올바른 절차)

  1. 인덕터 피크 전류(Ipk) 계산
    I_DM > Ipk 확보하여 순간 파손 및 자성포화 방지
  2. MOSFET 전류 실효값(I_rms) 계산
    → 전력 손실 및 온도 상승 계산하여 장기 운전 안정성 확보
  3. 그 후 I_D(정격 전류), R_ds(on) 값 선택

피크만 보고 실효값을 무시한다 = 맨몸으로 출전하는 꼴.


5. 초간단 요약

  • 피크 전류: 순간 죽음 방지
  • 실효값(RMS): 천천히 열로 죽는 것 방지

전원 회로 설계는 전류 피크 우선이 아니라 열 설계 우선이다.

대만, 상전 후 멀티미터로 출력 전압을 측정해 보니 5V인데, 화면에 표시된 입력/출력 전압 및 전류 값이 모두 정상적이지 않은 이유가 뭔지 알고 싶습니다.

용접 검사

예의 바르게 여쭤보면, 루프 보상 파라미터는 어떻게 계산합니까?