【B-G431B-ESC1-无刷电机板】2-工程配置篇
<div class='showpostmsg'> 本帖最后由 qiao--- 于 2025-1-22 11:07 编辑<p>由于本期电机控制的电机部分代码我打算全部手搓或者移植,所以工程配置显的尤为重要。本期着重讲解一下电机工程的配置。</p>
<p> </p>
<p><strong><span style="font-size:16px;">1.定时器配置</span></strong></p>
<p>定时器作为PWM的输出源头,也是电机驱动重头,下方是我的电机定时器配置。</p>
<p> </p>
<p>我打算让我的电流环工作在20k中断里,所以我这里配置的定时器是按照20k来的。</p>
<p>因为配置的是中央对齐模式,所以重复计数器配置的为1,当产生两次溢出事件的时候发生更新事件中断。</p>
<p> </p>
<p>其他的配置参考可以参考下面的介绍,参考资料为:<a href="https://blog.csdn.net/demonneverhunts/article/details/135001314">STM32CubeIde中互补PWM配置项的详细解读_ch idle state-CSDN博客</a></p>
<p> 接着配置更新事件,用于触发后面的ADC采样。</p>
<p> </p>
<p>然后配置死区时间,死去时间是为了防止PWM更新过快,然后上下管导通的情况,用原理图来解释就是防止V+短接到地的情况,这里可以参考文章<a href="https://blog.csdn.net/weixin_65470396/article/details/137787655?ops_request_misc=%257B%2522request%255Fid%2522%253A%252246436650fdd6b03d08a28699d74c8896%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=46436650fdd6b03d08a28699d74c8896&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-23-137787655-null-null.142^v101^control&utm_term=%E7%94%B5%E6%9C%BA%E6%8E%A7%E5%88%B6pwm%E4%B8%BA%E4%BB%80%E4%B9%88%E8%A6%81%E9%85%8D%E7%BD%AE%E6%AD%BB%E5%8C%BA%E6%97%B6%E9%97%B4&spm=1018.2226.3001.4187">STM32高级定时器实现:两路互补PWM输出,精准死区时间控制_stm32互补pwm-CSDN博客</a></p>
<p> </p>
<p>然后设置几个pwm输出模式,这里怎么设都可以,我设置的是通道4为pwm_mode2,其他的为pwm_mode1。</p>
<p>通道4的pulse设置为4240,因为ADC中断的时候要保持上管全部导通,这样测出的电流才算是稳定有效的,而上管全部导通的情况就是无限接近中央对齐模式中点的位置,所以我这里设置为4250 - 10</p>
<p> </p>
<p> </p>
<p><strong><span style="font-size:16px;">2.ADC和运放配置</span></strong></p>
<p>ADC在无刷控制中用于采样电流,因为G4是有内部可编程运放的,所以我把内部运放配置成16倍,下方是我的配置:</p>
<p> </p>
<p>ADC相关资料可以参考:<a href="https://blog.csdn.net/m0_61973119/article/details/143055637?ops_request_misc=&request_id=&biz_id=102&utm_term=stm32ADC%E9%85%8D%E7%BD%AEcubemx&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-143055637.nonecase&spm=1018.2226.3001.4187">STM32Cubemx 配置ADC(HAL库)_stm32cubemx adc-CSDN博客</a>,<a href="https://zhuanlan.zhihu.com/p/643925776">STM32G4 电机驱动配置方法参考(B-G431-B) - 知乎</a></p>
<p>我这里配置的如下,注意注入通道的触发源配置成我们前面定时器的通道4,与前面对应。</p>
<p> </p>
<p>通过观察原理图发现下面这个电路可能是偏置电路,所以我把这三个引脚配置成了ADC采样引脚。</p>
<p> </p>
<p> </p>
<p><strong><span style="font-size:16px;">3. Hall配置</span></strong></p>
<p>原理图上hall引脚为PB6\7\8,如下:</p>
<p> </p>
<p>我们把他们配置成输入模式。</p>
<p> </p>
<p>如果还需要其他的配置,请自行配置,我这里就配置这么多,后面需要什么再配置什么。</p>
</div><script> var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;" style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
if(parseInt(discuz_uid)==0){
(function($){
var postHeight = getTextHeight(400);
$(".showpostmsg").html($(".showpostmsg").html());
$(".showpostmsg").after(loginstr);
$(".showpostmsg").css({height:postHeight,overflow:"hidden"});
})(jQuery);
} </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>
页:
[1]