找回密码
 立即注册
楼主: 梁工

BLDC三相无刷直流电机驱动-8H系列/32G系列-无HALL, 12万转, 视频讲解,改进启动算法

 火... [复制链接]
  • 打卡等级:以坛为家III
  • 打卡总天数:666
  • 最近打卡:2025-10-13 10:57:01

13

主题

208

回帖

1034

积分

金牌会员

积分
1034
发表于 2024-10-24 10:49:57 | 显示全部楼层
我也复刻了一个,很好!
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:26
  • 最近打卡:2025-09-29 09:31:59
已绑定手机

9

主题

29

回帖

1016

积分

版主

积分
1016
发表于 2024-10-24 13:13:32 | 显示全部楼层
这个例子,如果P00也做PWM输出(其它用途,调光),会不会冲突

点评

单片机的各种外设都是独立的,怎么会有冲突?只要安排好IO没有冲突即可。  详情 回复 发表于 2024-10-24 20:17
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:198
  • 最近打卡:2025-10-13 10:34:53

77

主题

6767

回帖

1万

积分

超级版主

积分
14340
发表于 2024-10-24 20:17:15 | 显示全部楼层
芯*** 发表于 2024-10-24 13:13
这个例子,如果P00也做PWM输出(其它用途,调光),会不会冲突

单片机的各种外设都是独立的,怎么会有冲突?只要安排好IO没有冲突即可。
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-10-14 14:50:18

1

主题

4

回帖

35

积分

新手上路

积分
35
发表于 2024-10-26 11:37:28 | 显示全部楼层
本帖最后由 vcakva 于 2024-10-26 17:10 编辑
梁*** 发表于 2023-4-28 11:47
正反转,步骤反过来就可以了。刹车,3个PWM同时输出,可以有踩刹车踏板的刹车效果,或者将3个下管同时导 ...

感谢梁工的程序,受益匪浅
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2024-12-10 18:14:16

0

主题

28

回帖

154

积分

注册会员

积分
154
发表于 2024-10-26 15:16:44 | 显示全部楼层
本帖最后由 zwf33335 于 2024-10-26 15:18 编辑

梁工你好!我想按你的电路和开源程序做一个无霍尔的无刷直流电机控制器,画PCB时有什么特别注意的地方吗、麻烦老师指导一下,做中功率的,24V供电

点评

注意大电流与小电流部分分开布板即可。  详情 回复 发表于 2024-10-27 08:38
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:198
  • 最近打卡:2025-10-13 10:34:53

77

主题

6767

回帖

1万

积分

超级版主

积分
14340
发表于 2024-10-27 08:38:59 | 显示全部楼层
zwf3*** 发表于 2024-10-26 15:16
梁工你好!我想按你的电路和开源程序做一个无霍尔的无刷直流电机控制器,画PCB时有什么特别注意的地方吗、 ...

注意大电流与小电流部分分开布板即可。
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-09-06 11:15:32

0

主题

18

回帖

130

积分

注册会员

积分
130
发表于 2024-10-28 00:49:16 | 显示全部楼层
本帖最后由 mark_lhm 于 2024-10-28 00:51 编辑

梁工,您好~!
有两个问题请教一下:
一,例子里面为什么是设置为400?我在低速驱动的时候,有感觉到强起转闭环的时候会卡一下。不知道是不是因为换相时间和400 不匹配导致的。

                        if(!B_RUN && (PWW_Set >= D_STOP_PWM))        // 占空比大于设定值, 并且电机未运行, 则启动电机
                        {
                                B_start = 1;                //启动模式
                                for(i=0; i<8; i++)        PhaseTimeTmp = 400;

二,有看到您说 使用15W做过无30度换相的方案。能分享一下材料吗?
       顺便多问一下,如果不使用30度,在比较器能识别到过零信号的情况下,直接过零换相,会不会更顺利的启动?从而可以避免盲起?

点评

1、这是初始换相时间,仅仅用于计算刚进入闭环时的30度角延时,启动时速度慢,30度角误差大也不影响,设置较小值就等效于没有30度角延时。8次换相之后就能得到正确的30度角延时时间。 “感觉到强起转闭环的时候  详情 回复 发表于 2024-10-28 10:11
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:198
  • 最近打卡:2025-10-13 10:34:53

77

主题

6767

回帖

1万

积分

超级版主

积分
14340
发表于 2024-10-28 10:11:26 | 显示全部楼层
本帖最后由 梁工 于 2024-10-28 10:14 编辑
mark*** 发表于 2024-10-28 00:49
梁工,您好~!
有两个问题请教一下:
一,例子里面为什么是设置为400?我在低速驱动的时候,有感觉到强起 ...

1、这是初始换相时间,仅仅用于计算刚进入闭环时的30度角延时,启动时速度慢,30度角误差大也不影响,设置较小值就等效于没有30度角延时。8次换相之后就能得到正确的30度角延时时间。设置为400,则30度角延时时间为100us,对于低速启动时,换相时间都在几个ms级别,100u的延时基本可以忽略,等效于没有30度角延时。
     “感觉到强起转闭环的时候会卡一下”,应该是启动转速跟刚进入闭环时转速不一致导致,让启动占空比与刚进入闭环时占空比一直就不会出现。

2、参考上述描述。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:462
  • 最近打卡:2025-10-13 06:19:30

0

主题

7

回帖

2126

积分

金牌会员

积分
2126
发表于 2024-10-31 19:31:36 | 显示全部楼层
梁*** 发表于 2023-5-6 16:29
初始化程序,是移植(拷贝)过来的,初始化时,随便选一个通道都可以,因为这时候并没有启动ADC,所以选 ...

梁工你好,最近才开始按照你的图画了一个板子,程序这块我有两个问题请教一下,一是电机转动时,只需要在case 4这里采adc11的值吗?二是 adc11 = ((adc11 *7)>>3) + Get_ADC10bitResult(11)中,(adc11 *7)>>3是一种迭代的算法吗?
谢谢梁工

点评

因为比较器也使用了ADC输入端,为了避免竞争冲突,启动电机后在换相程序里做ADC,电机停止后在主程序做ADC。 adc11 = ((adc11 *7)>>3) + Get_ADC10bitResult(11); //这个是一阶数字低通滤波器,等效硬件的RC一阶低  详情 回复 发表于 2024-10-31 21:46
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:198
  • 最近打卡:2025-10-13 10:34:53

77

主题

6767

回帖

1万

积分

超级版主

积分
14340
发表于 2024-10-31 21:46:57 | 显示全部楼层
大脸猫*** 发表于 2024-10-31 19:31
梁工你好,最近才开始按照你的图画了一个板子,程序这块我有两个问题请教一下,一是电机转动时,只需要在 ...

因为比较器也使用了ADC输入端,为了避免竞争冲突,启动电机后在换相程序里做ADC,电机停止后在主程序做ADC。

adc11 = ((adc11 *7)>>3) + Get_ADC10bitResult(11);  //这个是一阶数字低通滤波器,等效硬件的RC一阶低通滤波。
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-10-13 19:50 , Processed in 0.141121 second(s), 121 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表