stb988 发表于 2024-10-24 10:49:57

我也复刻了一个,很好!

芯远航 发表于 2024-10-24 13:13:32

这个例子,如果P00也做PWM输出(其它用途,调光),会不会冲突

梁工 发表于 2024-10-24 20:17:15

芯远航 发表于 2024-10-24 13:13
这个例子,如果P00也做PWM输出(其它用途,调光),会不会冲突

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

vcakva 发表于 2024-10-26 11:37:28

本帖最后由 vcakva 于 2024-10-26 17:10 编辑

梁工 发表于 2023-4-28 11:47
正反转,步骤反过来就可以了。刹车,3个PWM同时输出,可以有踩刹车踏板的刹车效果,或者将3个下管同时导 ...
感谢梁工的程序,受益匪浅{:handshake:}

zwf33335 发表于 2024-10-26 15:16:44

本帖最后由 zwf33335 于 2024-10-26 15:18 编辑

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

梁工 发表于 2024-10-27 08:38:59

zwf33335 发表于 2024-10-26 15:16
梁工你好!我想按你的电路和开源程序做一个无霍尔的无刷直流电机控制器,画PCB时有什么特别注意的地方吗、 ...

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

mark_lhm 发表于 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度,在比较器能识别到过零信号的情况下,直接过零换相,会不会更顺利的启动?从而可以避免盲起?

梁工 发表于 2024-10-28 10:11:26

本帖最后由 梁工 于 2024-10-28 10:14 编辑

mark_lhm 发表于 2024-10-28 00:49
梁工,您好~!
有两个问题请教一下:
一,例子里面为什么是设置为400?我在低速驱动的时候,有感觉到强起 ...
1、这是初始换相时间,仅仅用于计算刚进入闭环时的30度角延时,启动时速度慢,30度角误差大也不影响,设置较小值就等效于没有30度角延时。8次换相之后就能得到正确的30度角延时时间。设置为400,则30度角延时时间为100us,对于低速启动时,换相时间都在几个ms级别,100u的延时基本可以忽略,等效于没有30度角延时。
   “感觉到强起转闭环的时候会卡一下”,应该是启动转速跟刚进入闭环时转速不一致导致,让启动占空比与刚进入闭环时占空比一直就不会出现。

2、参考上述描述。

大脸猫爱吃鱼 发表于 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是一种迭代的算法吗?
谢谢梁工

梁工 发表于 2024-10-31 21:46:57

大脸猫爱吃鱼 发表于 2024-10-31 19:31
梁工你好,最近才开始按照你的图画了一个板子,程序这块我有两个问题请教一下,一是电机转动时,只需要在 ...

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

adc11 = ((adc11 *7)>>3) + Get_ADC10bitResult(11);//这个是一阶数字低通滤波器,等效硬件的RC一阶低通滤波。
页: 38 39 40 41 42 43 44 45 46 47 [48] 49 50 51 52 53 54 55 56 57
查看完整版本: BLDC三相无刷直流电机驱动-8H系列/32G系列-无HALL, 12万转, 视频讲解,改进启动算法