zhonglvlin 发表于 2024-7-15 20:42:35

STC32G12K128 & 数字电源实验平台

STC32 !!{:5_332:}==数字电源实验平台==
                                                                                 -----------为高校建设奉献一份力量!!!!!
ELAB电源实验平台推出STC32G12K128为主控的BUCK电源板卡~~(已经有小伙伴成功申请到了~{:5_273:})
下面展示各项测试参数~
代码部分:(测试代码:)
各项配置~~

/******************** IO口配置 ********************/
void      GPIO_config(void)
{
      
      P0_MODE_IN_HIZ(GPIO_Pin_6)//ADC转换脚
      P7_PULL_UP_ENABLE(GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2);//p7.0 p7.1 p7.2上拉按键检测
}

void      GPIO_PWM_config(void)
{
      P6_MODE_IO_PU(GPIO_Pin_All);      //P6 设置为准双向口(启动PWM功能后输出脚自动设置为推挽输出模式)
}


/************************ 定时器配置 ****************************/
void      Timer_config(void)
{
      TIM_InitTypeDef                TIM_InitStructure;                                                //结构定义
      TIM_InitStructure.TIM_Mode      = TIM_16BitAutoReload;      //指定工作模式,   TIM_16BitAutoReload,TIM_16Bit,TIM_8BitAutoReload,TIM_16BitAutoReloadNoMask
      TIM_InitStructure.TIM_ClkSource = TIM_CLOCK_1T;                //指定时钟源,   TIM_CLOCK_1T,TIM_CLOCK_12T,TIM_CLOCK_Ext
      TIM_InitStructure.TIM_ClkOut    = DISABLE;                              //是否输出高速脉冲, ENABLE或DISABLE
      //TIM_InitStructure.TIM_Value   = (u16)(65536UL - (MAIN_Fosc / 2400UL));                //中断频率, 100次/秒100Hz
      TIM_InitStructure.TIM_PS      = 0;                                        //8位预分频器(n+1), 0~255
      TIM_InitStructure.TIM_Run       = ENABLE;                              //是否初始化后启动定时器, ENABLE或DISABLE
      Timer_Inilize(Timer0,&TIM_InitStructure);                              //初始化Timer0
      
      TIM_InitStructure.TIM_Value   = (u16)(65536UL - (MAIN_Fosc / 20000UL));                //中断频率, 20KHz
Timer_Inilize(Timer1,&TIM_InitStructure);      
      NVIC_Timer1_Init(ENABLE,Priority_0);                //中断使能, ENABLE/DISABLE; 优先级(低到高) Priority_0,Priority_1,Priority_2,Priority_3
      //定时器1开启
      
      
}


/***************PWM初始化函数 *****************/
void      PWM_config(void)
{
//      PWMx_InitDefine                PWMx_InitStructure;
      
      PWMA_Duty.PWM1_Duty = 600;//占空比0.5
      PWMx_InitStructure.PWM_Mode    =      CCMRn_PWM_MODE1;      
      PWMx_InitStructure.PWM_Duty    = PWMA_Duty.PWM1_Duty;//PWM占空比时间, 0~Period
      PWMx_InitStructure.PWM_EnoSelect   = ENO1P | ENO1N;//输出通道选择
      PWM_Configuration(PWM1, &PWMx_InitStructure);//初始化PWM1
      PWMx_InitStructure.PWM_Period   =(MAIN_Fosc/20000)-1;      //周期时间,   0~65535(MAIN_Fosc/频率)-1
      PWMx_InitStructure.PWM_DeadTime = 0x50;//死区发生器设置, 0~255
      PWMx_InitStructure.PWM_MainOutEnable= ENABLE;//主输出使能, ENABLE,DISABLE
      PWMx_InitStructure.PWM_CEN_Enable   = ENABLE;//使能计数器, ENABLE,DISABLE
      PWM_Configuration(PWMA, &PWMx_InitStructure);//初始化PWM通用寄存器,PWMA,PWMB
      PWM1_USE_P60P61();//PWM引脚
      NVIC_PWM_Init(PWMA,DISABLE,Priority_0);
}


/******************** ADC 配置 ********************/
void      ADC_config(void)
{
      ADC_InitTypeDef                ADC_InitStructure;                //结构定义

      ADC_InitStructure.ADC_SMPduty   = 32;//ADC 模拟信号采样时间控制, 0~31(注意: SMPDUTY 一定不能设置小于 10)
      ADC_InitStructure.ADC_CsSetup   = 0;      //ADC 通道选择时间控制 0(默认),1
      ADC_InitStructure.ADC_CsHold    = 1;      //ADC 通道选择保持时间控制 0,1(默认),2,3
      ADC_InitStructure.ADC_Speed   = ADC_SPEED_2X16T;//设置 ADC 工作时钟频率      ADC_SPEED_2X1T~ADC_SPEED_2X16T
      ADC_InitStructure.ADC_AdjResult = ADC_RIGHT_JUSTIFIED;//ADC结果调整,      ADC_LEFT_JUSTIFIED,ADC_RIGHT_JUSTIFIED
      ADC_Inilize(&ADC_InitStructure);//初始化
      ADC_PowerControl(ENABLE);      //ADC电源开关, ENABLE或DISABLE
      NVIC_ADC_Init(DISABLE,Priority_0);//中断使能, ENABLE/DISABLE; 优先级(低到高) Priority_0,Priority_1,Priority_2,Priority_3
}


硬件参数~~
板卡展示
STC32G12K128


ELAB电源实验平台自研BUCK板卡


输入参数


输出参数


计算效率:98.226%!!
纹波系数:0.02%


演示视频:
182

最后再次STCAI支持~~{:4_196:}

屿辰 发表于 2024-7-15 20:52:26

板子很好,系统很稳定

laonong 发表于 2024-10-14 07:17:27

有没有原理图

laonong 发表于 2024-10-14 07:17:34

有没有原理图

stb988 发表于 2024-11-9 10:34:11

很好,支持一下
页: [1]
查看完整版本: STC32G12K128 & 数字电源实验平台