FOC开发板需要用到的全部外设驱动(STM32F407ZGT6/DRV8301/DRV8303)

作者: 微微课嵌入式开发学堂分类: 计算机技术 发布时间: 2022-02-10 00:30:00 浏览:40760 次

FOC开发板需要用到的全部外设驱动(STM32F407ZGT6/DRV8301/DRV8303)

我是爱折腾的小白:
up主您好,首先对您的辛苦和付出以及视频的分享表示感谢,我也是重头到尾全部都认真观看了一边,讲的很好很是细致,本人受益匪浅,再次表示感谢,本人也很喜欢foc的驱动技术,尤其是霍尔传感器的驱动技术,一直没有弄得很明白他的角度估算方法,b站的教程很多但都是编码器的,可是恰恰霍尔角度传感器的算法最难理解,所以特别期待up主能把这一块能找点分享出来。谢谢up主的辛苦和付出。

【回复】感谢你的回复,知道有你这样从头到尾认认真真看完视频的朋友我觉得我辛苦录制的视频有了认可和回报,我对电机驱动技术十分有兴趣,去年9月开始网上四处查找相关资料,今年一月开始动手并录制视频,我试图在理解原理的基础上搭建一套FOC驱动方案,虽然网上有很多现成的方案可以使用,但是我认为有趣的恰恰就是从零开始构建到最后真正实现一套FOC控制方案,这其中数不清的细节才是最有趣的。这一周工作上的事情较多,周一周二没来得及录制视频,另外视频P45,P46虽然用STM32CUBEMX配置出了USB虚拟串口,但是因为CUBE采用HAL库,导致我另外的采用标准库的LWIP协议栈和外部SRAM代码无法移植进来,所以这两天有空的时候就在研究标准库下的USB虚拟串口驱动,已经有点眉目了,等搞定了我会继续录制视频,这一系列电机驱动相关的视频我会一直做下去,希望能够结交更多志趣相投的朋友,并一起去实现我们想要实现的各种功能
【回复】他这个看起来像BLDC是三霍尔 现在机械云台电机也有用霍尔获取位置但只需要两个 而且是采集线性数据
【回复】[doge]其实,搞不懂的话,不如放弃,直接无感搞起来
我是爱折腾的小白:
本人曾经入手一块odrive的双电机的驱动板。也尝试把他配置成霍尔传感器模式,驱动扭扭车的轮毂电机效果确实很好,怎奈本人水平有限,他的源码用了大量的结构体和虚实函数的风格,写的很简练,但是实在是太高级了,实在是看不懂,我看了一下他的原理图,他的左右两只电机传感器接口的左右A B 分别使用的是定时器3和定时器4的通道一和通道2,左右的分别是引脚分别使用的是pc9和pc15我还没有查资料这两个引脚能不能从新映射成定时器3和4 的通道3,我简单粗略表面看了一些貌似和定时器3和4没什么毛关系,如果是这样up主您用的是定时器中断方式读取角度还方便计算角速度,如果改成查询方式是不是还要增加难度,到时给个建议或意见看看我该怎么在我的硬件资源上跑您的代码。

【回复】你好,根据你的描述,你的odrive驱动板两个电机的HALL应该分别是用TIM3和TIM4来检测的,但是你只说了AB,不是还应该有一个C吗?PC9也PC15我也没有细看是否能重映射,如果跟定时器没关系的话,或许是用外部中断线EXIT实现的,我思考过外部中断线应该也是可以HALL检测的,而且可以摆脱多定时器的依赖,缺点是没有CCR捕获值还需要一个专门的方法来计时,HALL的分辨率只有60度,如果采用上一个60度的平均速度并在ADC触发信号TIM1_CH4的中断中对当前转子角度进行累加或许是个估计当前角度的办法,但是从原理上来讲我想HALL是无法做到像编码器一样精确的,比如在60度的范围内转子来回摆动,那么HALL将无法进行测量,所以我想HALL有它自身的局限性,或许不适合应用在低转速或者需要反复调整转速和角度的场合,不过我我还没有做到HALL这一步来,所以这些也只是我的推测
微微远:
非常感谢,up的电机foc SVPWM讲得非常棒,一步一步解释得非常清楚,忍不住一口气看完了,stm32 和驱动器的开发讲解也很喜欢,感谢up主!问下,驱动板是up自己设计的,那这个foc的stm32F4开发板是up自己设计的,还是用现成的呢,有没有这个板的原理图?想跟着一起做一下。

【回复】看到了,stm32和驱动板一起,不好意思!内容好丰富,这几天好好跟up主学习!
wordhslf:
up主你好! 关于18集《规则组DMA采集错位的原因和解决方法》 这个问题导致是因为你在adc.c代码中56行,ADC3->SQR1 |=0X04<<20错误导致的,你改成ADC3->SQR1 |=0X03<<20即可以了,因为L[3:0}规则通道序列长度0000代表1次转换,0100代表的是5次转换。。。

幻想鸟儿的:
想买一套,结合视频学习,老师有提供这样的平台吗

何丑之有:
最近期末,抽空把foc的硬件做完了。之前有过写32代码的经历,所以代码也还好,感谢up了[doge] 但是有一点,数据手册里面写,可以通过spi写drv8301/drv8303的寄存器,配置nOCTW和nFAULT这两个引脚。(手册上好像没说过流以后这两个引脚是高电平还是低电平,想尝试自己改一下) 这是啥意思啊,不太懂[笑哭][笑哭]up能教教我吗

bili_92325708012:
认真看了一遍up主前面关于FOC算法的两个合集,是我迄今为止在b站上找到的最全最清晰的讲解了,真是功德无量,会一直关注的,希望能保持持续更新,惊喜不断。。。btw,建议可以考虑找个方便一点的录频绘图工具,图示轻松,也更漂亮。。。太感谢了!对了,我写完留言就来投币充电,哈哈!

金罐加多宝sup:
up主跟着你的视频学了几天了,发现你的关注好多美女[doge]

【回复】看破不说破啊同学!!!!
war360xyz:
关于ADC触发,我想到了一种方法,利用TIM1_TGRO进行触发,这样每次都在所有下管开启上管关闭的中间时刻进行采样,配置ADC注入通道为TIM1_TGRO触发,然后配置TIM_CRC为1,这样仅在定时器下溢的时候产生UEV进而产生TGRO触发ADC采样,考虑到ADC采样需要一定时间,若这个时间超过,上述的采样窗口时间,那么可能会对采样数据造成影响,姑为了缩短时间还可以开启407具有的多重ADC同时采样,同时采样两相电流,还可以跟随占空比的大小修改ADC配置采样时间,达到在窗口期采样的目的。

【回复】你的回复后半截描述的关系采样窗口用多从ADC采样来增加采样效率这一点对我有帮助,因为我也思考过这个问题,万一采样时间超过了窗口时间数据不就不准了嘛,我还没来想到解决办法,你提供这个思路不错,我目前的方法是在定时器上溢点采样,这样只能得到二分之一的采样窗口时间,这样对进一步提高电机的转速是有影响的,如果能得到全部采样窗口时间,那么理论上转速可以提高一倍
【回复】用TRGO我觉得不如用我现在TIM1CH4做采样触发好,因为TIM1CH4是刚好在中心点二分之一处采样,少了一个触发过程也节省了一点窗口时间,你最后描述的随占空比大小调整采样窗口时间需要在采样的时候进行扇区判断,因为不同扇区abc三相的PWM高电平长短不同,必须将最短那一相作为窗口时间,再计算这个时间当前是多长,这计算本身也是要消耗时间的,所以目前的方法是不判断,直接用最短采样时间,但是因为只有一半窗口时间所以限制了转速,如果能够获取全部窗口时间转速理pwm频率可以翻倍,转速也可以翻倍,直到采样窗口时间等于ADC最小采样周期,但是这个时候407的cpu不知道在做svpwm解算的时候速度跟不跟得上,不过没关系,等整个流程完成后,可以进行测试!
华伞离殇:
up主您好,这个全外设驱动合集里少东西啦,drv8301没有哈。up讲的特别好,每个视频都投币点赞啦,希望up尽快更新(狗头保命)

【回复】回复 @专注智能分拣细分领域 :啊哈抱歉抱歉我说错啦,up用的是8303,感谢up回复[doge]
【回复】我用的是8303,8301要贵20块钱呢!这个合集只是外设驱动,所以没有8303,后面的合集写代码的时候会加上的
DJl大疆创新:
对比与江科大得那个,,,,还是有挺大区别

只圈茶啊:
你好博主,求stm32f407zgt6的原理图。期待您的回复

原创 自制 单片机 科技 嵌入式 视频教程 制作过程 STM32 ARM 开发板

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!