一、任务
以TI公司的降压控制器LM5117芯片和CSD18532KCS MOS 场效应管为核心器件,设计并制作一个降压型直流开关稳压电源。额定输入直流电压为𝑈IN = 16V时,额定输出直流电压为𝑈O = 5V,输出电流最大值为𝐼Omax = 3A 。测试电路可参考图 1。
二、要求
三、说明
GPT-4o给出的设计方案:
设计一个采用TI公司的降压控制器LM5117芯片和CSD18532KCS MOS场效应管为核心器件的降压型直流开关稳压电源。输入电压范围为16V至16.4V,输出电压固定为5V,最大输出电流为3A。方案包含输入滤波电路、降压转换电路、输出滤波电路及保护电路。
输出电压稳定性:
最大输出电流:
输出电压纹波峰值:
输出负载调整率与负载识别:
输入滤波电路:
LM5117降压控制器电路:
输出滤波电路:
负载识别电路:
LM5117降压控制器:
CSD18532KCS MOSFET:
滤波电路组件:
假设使用STM32 MCU进行负载识别和调节功能,提供核心C代码部分:
#include "stm32f4xx_hal.h"
ADC_HandleTypeDef hadc1;
TIM_HandleTypeDef htim3;
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_ADC1_Init(void);
static void MX_TIM3_Init(void);
int main(void) {
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_ADC1_Init();
MX_TIM3_Init();
HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_1);
uint32_t adc_value = 0;
float output_voltage = 0.0;
uint32_t load_resistor = 1000; // 初始为1kΩ
while (1) {
HAL_ADC_Start(&hadc1);
if (HAL_ADC_PollForConversion(&hadc1, HAL_MAX_DELAY) == HAL_OK) {
adc_value = HAL_ADC_GetValue(&hadc1);
load_resistor = (adc_value * 3300 / 4096); // 假定ADC值按电阻值计算
output_voltage = (float)5.0 * (float)(load_resistor) / 1000; // 根据负载电阻计算输出电压
}
HAL_ADC_Stop(&hadc1);
}
}
void SystemClock_Config(void) {
// 系统时钟配置
}
static void MX_GPIO_Init(void) {
// GPIO初始化
}
static void MX_ADC1_Init(void) {
// ADC初始化
ADC_ChannelConfTypeDef sConfig = {0};
hadc1.Instance = ADC1;
hadc1.Init.Resolution = ADC_RESOLUTION_12B;
HAL_ADC_Init(&hadc1);
sConfig.Channel = ADC_CHANNEL_0;
sConfig.Rank = ADC_REGULAR_RANK_1;
HAL_ADC_ConfigChannel(&hadc1, &sConfig);
}
static void MX_TIM3_Init(void) {
// 定时器初始化
TIM_ClockConfigTypeDef sClockSourceConfig = {0};
TIM_MasterConfigTypeDef sMasterConfig = {0};
TIM_OC_InitTypeDef sConfigOC = {0};
htim3.Instance = TIM3;
htim3.Init.Prescaler = 84 - 1;
htim3.Init.CounterMode = TIM_COUNTERMODE_UP;
htim3.Init.Period = 1024 - 1;
htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
HAL_TIM_Base_Init(&htim3);
HAL_TIM_PWM_Init(&htim3);
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
HAL_TIM_ConfigClockSource(&htim3, &sClockSourceConfig);
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig);
sConfigOC.OCMode = TIM_OCMODE_PWM1;
sConfigOC.Pulse = 0;
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_1);
}
这个题目考察的主要知识点: