FOC PMSM 矢量控制 STM32 高级定时器TIM8 配置 代码原理分享

6 篇文章 0 订阅

这里使用STM32F407,其他系列可能略有差异

 

1.IO配置

2定时器配置,FOC必须使用中心对齐模式

重点说明

1.OC输出模式选择,这里只介绍常用的2种

TIM_OCMode_PWM1 :TIMx->CNT小于CCRx值时输出高电平,否则输出低电平(输出极性为高选项时)
TIM_OCMode_PWM2 :TIMx->CNT小于CCRx值时输出低电平,否则输出高电平(输出极性为高选项时)

2.频率设定计算

见另一篇文章https://blog.csdn.net/yuyan7045/article/details/118388326?spm=1001.2014.3001.5501

3.输出极性

PMSM电机控制时,输出极性是要求高电平有效,才能使MOS导通

4.空闲输出状态

PMSM电机控制时,空闲状态输出为低电平,不能让MOS导通

5.刹车与其极性、

6.死区时间计算

 死区时间有TIMx_BDTR决定,我实际控制电机时死区=800ns,计算后选择DTG[7:5]=10x......这一项,计算过程如下:

800 =(64+DTG[5:0])*tdtg,tdtg=2*tDTS,tDTS在我的设计中是168MHz,可见代码;

这样算出DTG[5:0]=3.2,向上取整=4;即DTG[5:0]=00 0100,最后DTG[7:0]=1000 0100

代码分享

/******************************************************************************
  * 功能:吸气通道控制任务
  *
******************************************************************************/

void TIM_Foc_IO_Init(void)
{
    GPIO_InitTypeDef GPIO_InitStre;
    
    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);
    
    GPIO_InitStre.GPIO_Pin=GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8;
    GPIO_InitStre.GPIO_Mode=GPIO_Mode_AF;
    GPIO_InitStre.GPIO_OType=GPIO_OType_PP;
    GPIO_InitStre.GPIO_PuPd=GPIO_PuPd_NOPULL;
    GPIO_InitStre.GPIO_Speed=GPIO_Fast_Speed;
    GPIO_Init(GPIOC,&GPIO_InitStre);
    
    GPIO_PinAFConfig(GPIOC, GPIO_PinSource6, GPIO_AF_TIM8);
    GPIO_PinAFConfig(GPIOC, GPIO_PinSource7, GPIO_AF_TIM8);
    GPIO_PinAFConfig(GPIOC, GPIO_PinSource8, GPIO_AF_TIM8);
}

/******************************************************************************
  * 功能:吸气通道控制任务
  *
******************************************************************************/

void TIM_Foc_PWM_Init(void)
{
    TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStre;
    TIM_OCInitTypeDef TIM_OCInitStre;
    TIM_BDTRInitTypeDef TIM_BDTRInitStre;
    
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM8,ENABLE);
    
    TIM_TimeBaseInitStre.TIM_Prescaler=0;//168/1/2/4200=20khz
    TIM_TimeBaseInitStre.TIM_Period=4200-1;//频率=20kHz
    TIM_TimeBaseInitStre.TIM_CounterMode=TIM_CounterMode_CenterAligned1;//中心对齐模式1
    TIM_TimeBaseInitStre.TIM_ClockDivision=TIM_CKD_DIV1;//不分频
    TIM_TimeBaseInitStre.TIM_RepetitionCounter=0;//不重复计数
    TIM_TimeBaseInit(TIM8,&TIM_TimeBaseInitStre);//初始化
    
    TIM_OCInitStre.TIM_Pulse=1000;//实际初始化为0,这里是实验是否正确输出
    TIM_OCInitStre.TIM_OCMode=TIM_OCMode_PWM2;//PWM模式2
    TIM_OCInitStre.TIM_OCPolarity=TIM_OCPolarity_High;//有效输出极性高
    TIM_OCInitStre.TIM_OCIdleState=TIM_OCIdleState_Reset;//空闲输出低
    TIM_OCInitStre.TIM_OutputState=TIM_OutputState_Enable;//输出使能

    TIM_OCInitStre.TIM_OCNPolarity=TIM_OCNPolarity_High;//互补有效输出极性高
    TIM_OCInitStre.TIM_OCNIdleState=TIM_OCNIdleState_Reset;//互补空闲输出低    
    TIM_OCInitStre.TIM_OutputNState=TIM_OutputNState_Enable;//互补输出使能
    
    TIM_OC1Init(TIM8,&TIM_OCInitStre);//初始化
    
    TIM_OCInitStre.TIM_Pulse=2000;//实际初始化为0,这里是实验是否正确输出
    TIM_OC2Init(TIM8,&TIM_OCInitStre);//通道2
    
    TIM_OCInitStre.TIM_Pulse=3000;//实际初始化为0,这里是实验是否正确输出
    TIM_OC3Init(TIM8,&TIM_OCInitStre);//通道3
    
    TIM_OCInitStre.TIM_Pulse=0;
    TIM_OC4Init(TIM8,&TIM_OCInitStre);//暂定通道4进行ADC触发,在电机中间相后延时1-2us再触发ADC

    TIM_BDTRInitStre.TIM_DeadTime=132;//800ns死区时间  
    TIM_BDTRInitStre.TIM_LOCKLevel=TIM_LOCKLevel_OFF;//电平锁定关闭???
    TIM_BDTRInitStre.TIM_AutomaticOutput=TIM_AutomaticOutput_Disable;//自动输出失能
    TIM_BDTRInitStre.TIM_Break=TIM_Break_Enable;//使能刹车
    TIM_BDTRInitStre.TIM_BreakPolarity=TIM_BreakPolarity_High;//刹车有效极性高???
    TIM_BDTRInitStre.TIM_OSSIState=TIM_OSSIState_Disable;//
    TIM_BDTRInitStre.TIM_OSSRState=TIM_OSSRState_Disable;//
  TIM_BDTRConfig(TIM8, &TIM_BDTRInitStre);//初始化
    
    TIM_OC1PreloadConfig(TIM8, TIM_OCPreload_Enable);
    TIM_OC2PreloadConfig(TIM8, TIM_OCPreload_Enable);
    TIM_OC3PreloadConfig(TIM8, TIM_OCPreload_Enable);
    TIM_OC4PreloadConfig(TIM8, TIM_OCPreload_Enable);

    TIM_CtrlPWMOutputs(TIM8,ENABLE);//PWM输出使能
    TIM_ARRPreloadConfig(TIM8,ENABLE);//自动重装载
    TIM_Cmd(TIM8,ENABLE);
}
 

  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值