FOC控制中使用定时器触发ADC采样的一些问题及解决方案
创作时间:
作者:
@小白创作中心
FOC控制中使用定时器触发ADC采样的一些问题及解决方案
引用
CSDN
1.
https://m.blog.csdn.net/qq_44348981/article/details/139172395
在FOC(磁场定向控制)控制中,精确的电流采样是至关重要的。本文详细描述了在STM32平台上使用定时器触发ADC采样的具体实现方法,包括定时器配置、ADC设置以及遇到的问题和解决方案。对于从事电机控制和嵌入式开发的工程师具有较高的参考价值。
背景
在FOC控制中,电流采样需要使用STM32的ADC。采用低侧电流采样时,需要在半桥的上桥臂关闭、下桥臂打开时进行电流采样。之前使用的方法是在定时器更新中断中判断计数器计数方向来软件触发AD采样,但这种方法的数据采集实时性可能不够理想。最近参考了一些论坛帖子,尝试使用定时器的通道四输出(TRGO)触发ADC采样,遇到了一些问题。以下记录了解决过程,仅供参考。
问题描述
参考了一些帖子和视频的设置,具体配置如下:
- Prescaler(预分配系数):为了不损失定时器的分辨率,一般都设为0,但在实验中调大一些,方便逻辑分析仪捕捉。
- Counter Mode(计数模式):这里一定要选择中心对齐模式,具体是123无所谓,只会影响到捕获比较中断。
- Counter Period(装载值):根据具体需求设置。
其中:
- 通道1、2、3设置为PWM模式1,即CNT大于CCR时为低电平,反之高电平。通过逻辑分析仪可以知道高电平的中点为计数值0处。
- 通道4设置为PWM模式2,即CNT大于CCR时为高电平,反之低电平,用于触发ADC采样。
设置Trigger Out Event为OC4REF,理论上应该在通道1、2、3的两个高电平中间进行采样。但是实际情况并非如此。
ADC的设置如下:
- 使用ADC1和ADC2分别采集两相电流,配置为注入组,触发源为Timer 1 Trigger Out Event。
- 由于规则组有几项,包括母线电压和温度传感器,担心数据错位所以没有开启连续采样。
在main函数中进行如下初始化:
MX_GPIO_Init();
MX_ADC1_Init();
MX_ADC2_Init();
MX_TIM1_Init();
HAL_ADCEx_InjectedStart_IT(&hadc1);
__HAL_ADC_ENABLE_IT(&hadc1, ADC_IT_JEOC);
HAL_TIM_Base_Start_IT(&htim1);
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1);
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_4);
__HAL_TIM_ENABLE_IT(&htim1, TIM_IT_UPDATE);
在注入组转换完成回调函数里翻转GPIO的状态,方便逻辑分析仪采集。然而,并没有像预想的那样进入回调函数。
原因分析
调试时发现,将断点打在回调函数处,第一次执行时可以进入,将ADC输入接到3.3v数据为4090,一切正常,但是之后就卡死了。思考会不会是因为函数HAL_ADCEx_InjectedStart_IT(&hadc1)
只是开启了一次ADC注入组转换就停止了。由于规则组有母线电压和温度传感器,担心数据错位不能开启连续采样,规则组只能使用扫描+DMA传输的方式。
解决方案
在定时器的更新中断里调用HAL_ADCEx_InjectedStart_IT(&hadc1)
,在下一次的采样时刻之前再次打开注入组转换。使用逻辑分析仪测量波形,发现回调函数的GPIO翻转出现了。
具体配置如下:
- 设置RCR的值为1,因此在蓝色箭头处发生定时器的更新事件。
- 设置
TIM1->CCR4 = 980
,而ARR = 1000
,因此OC4REF触发注入组转换会出现在下图红色箭头处,也就是接近在计数器的上溢点,就能做到连续转换了。
热门推荐
纳米技术革新生活:医疗、环保、电子与纺织的四大应用揭秘
中东男孩的名字 中东男孩
游泳会得“红眼病”?如何有效预防?必备指南来了!
非洲战场的开辟:二战时期,德意在非洲的侵略扩张是怎样的?
惊艳亮相珠海航展,广东的军工实力藏不住了
白骨顶:一种适应力强的湿地鸟类
别让回南天“霉变”你的健康!科学防潮有妙招,速收藏→
2025年在澳洲留学需要多少钱?怎么节省费用?
原神七大主流最强阵容攻略
跑步10km消耗多少卡路里
郎咸平:中国企业发展的思维突破与战略创新
汽油发动机可以加酒精吗?
边缘计算如何降低数据延迟?
“科学”流言|儿童用药,按成人剂量减半就行?
家庭用电导线规格与载流量完全指南
明朝有多少开国功臣有丹书铁券?其中绝大多数下场很惨
轻度脑萎缩是什么意思
加拿大PGWP毕业工签常见问题汇总!
如何通过加拿大移民局获取最新的移民信息?
番茄和虾能一起吃吗
多吃一口糖,增加多种疾病风险?这样吃糖才健康
寒假生活小贴士:坚持每天运动一小时
废水重金属去除采用硫酸亚铁与熟石灰
如何防止长出眼袋
你以为是懒,其实已经过度疲劳的9种表现
申不害变法:一场改变韩国命运的改革运动
易经讨论二:周文王对易经的贡献
论文写作提纲出现的问题
银行电子银行业务功能整合与优化
合同工转劳务派遣:政策解读与操作指南