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

BLDC, 三相无刷直流电机驱动-STC32G-无HALL 或 带HALL,例子打板测试已OK

 火.. [复制链接]
已绑定手机

872

主题

1万

回帖

2万

积分

管理员

积分
25432
发表于 2026-1-3 10:47:49 | 显示全部楼层
Jaso*** 发表于 2025-11-14 08:46
这个开发板在哪里购买

https://www.stcaimcu.com/thread-21202-1-1.html

截图202601031045188514.jpg



截图202601031046418064.jpg

截图202601031046589341.jpg

截图202601031047159406.jpg

STC-BLDC-中功率-V1.0-20251017
本开发板支持FOC电机控制:              无感、有感外接编码器转子位置反馈方案 !
本开发板支持方波六步换相电机控制: 无感、有感外接编码器转子位置反馈方案 !
为了通用性和考虑到机械装配问题,没有板载磁编码器传感器芯片,

磁编码传感器通过CN6外接,ABZ增量编码器通过CN7外接
支持多种接口的磁编码器,
如SSC(单数据线半双工SPI)接口的TLE5012、SSI接口的MT6701、
SPI接口的MT6816、I2C接口的AS5600等

为增加ABZ增量编码器,驱动电机的PWM改为P22~P27,
P20、P21使用PWM5、PWM6接ABZ增量编码器的AB相信号,INT0接Z信号

为避免六步换相采样和磁编码器冲突,六步换相采样改为CMP+、CMP+_2、CMP+_3
此时六步换相采样和串口3冲突,但还有串口2和串口4可用,影响不大

修改后,FOC采样和六步换相采样的U相采样电阻重复,
原理图的FOC采样U相采样电阻编译屏蔽,共用R21、R30,
由于只有INT0、INT1两个外部中断支持双边沿触发,

可使用CN6的P05~P07或CN7接三相霍尔
此时因32G12K128的I/O中断边沿触发不可用,

不要使用32G12K128,可以使用 STC32G8K64
某些磁编码传感器除I2C或SPI外还有一些其他的IO,如CE和模拟信号输出,
都可以接到CN6,其中P05、P06有ADC功能



回复

使用道具 举报 送花

已绑定手机

1

主题

166

回帖

227

积分

中级会员

积分
227
发表于 2026-1-27 14:22:34 | 显示全部楼层
梁工您好!请帮介绍一下带霍尔传感器的无刷电机控制器中自学习功能的原理及相关程序。
回复

使用道具 举报 送花

已绑定手机

1

主题

166

回帖

227

积分

中级会员

积分
227
发表于 2026-2-11 10:59:27 | 显示全部楼层
梁工您好!请问方波控制电机,控制器工作的频率8K与10K有多大区别

点评

这得看电机的线圈电感和内阻。电机模型等效一个反电动势、电感、电阻串联,如果电感小,PWM频率低,则电机电流脉动太大,不合理,并且会进入音频范围,可能会增加听觉范围的噪音。而太高的PWM频率则会增加开关损耗,  详情 回复 发表于 2026-2-12 16:32
回复

使用道具 举报 送花

已绑定手机

1

主题

166

回帖

227

积分

中级会员

积分
227
发表于 2026-2-11 10:59:41 | 显示全部楼层
效率上有多大区别
回复

使用道具 举报 送花

83

主题

8317

回帖

1万

积分

超级版主

积分
17932
 楼主| 发表于 2026-2-12 16:32:58 | 显示全部楼层
haimin*** 发表于 2026-2-11 10:59
梁工您好!请问方波控制电机,控制器工作的频率8K与10K有多大区别

这得看电机的线圈电感和内阻。电机模型等效一个反电动势、电感、电阻串联,如果电感小,PWM频率低,则电机电流脉动太大,不合理,并且会进入音频范围,可能会增加听觉范围的噪音。而太高的PWM频率则会增加开关损耗,发热大,效率低。
所以,一般电机使用15~50KHz之间的PWM频率,我一般使用20~25KHz,超过听觉值,而又不会导致开关损耗变高。
回复

使用道具 举报 送花

已绑定手机

1

主题

166

回帖

227

积分

中级会员

积分
227
发表于 2026-2-20 09:19:31 | 显示全部楼层
梁工您好!请问stc32G12k128做三相无刷电机驱动时,PWM输出频率按照资料中给的公式计算:边沿对齐PWM频率 = SYSclk/((PSCR+1)*(AAR+1)),晶振频率24M,PSCR=3, ARR=255,计算出的PWM频率:24000000/4/256 =  23437.5Hz ,但是用示波器观察IO输出的PWM信号波形时,显示频率只有将近8KHz左右。而不是23KHz多。这是什么原因。到底实际的PWM频率应该是多少

点评

因为PWM是间歇工作的,一个电周期6拍,只输出2拍,所以你测频是1/3,你只看一个周期时间试试。  详情 回复 发表于 2026-2-24 11:50
回复

使用道具 举报 送花

已绑定手机

1

主题

166

回帖

227

积分

中级会员

积分
227
发表于 2026-2-20 13:21:41 | 显示全部楼层
是不是要把算出来的频率值除以3才能得到每相输出的PWM频率值
回复

使用道具 举报 送花

83

主题

8317

回帖

1万

积分

超级版主

积分
17932
 楼主| 发表于 2026-2-24 11:50:16 | 显示全部楼层
haimin*** 发表于 2026-2-20 09:19
梁工您好!请问stc32G12k128做三相无刷电机驱动时,PWM输出频率按照资料中给的公式计算:边沿对齐PWM频率 = ...

因为PWM是间歇工作的,一个电周期6拍,只输出2拍,所以你测频是1/3,你只看一个周期时间试试。
回复

使用道具 举报 送花

已绑定手机

1

主题

166

回帖

227

积分

中级会员

积分
227
发表于 2026-2-27 13:39:49 | 显示全部楼层
谢谢梁工!我用示波器看了波形一个周期约42us多,计算后频率是应该是23KHz多,示波器上面显示的频率值是不正确,大约有实际频率的1/3.
回复

使用道具 举报 送花

19

主题

85

回帖

1128

积分

金牌会员

积分
1128
发表于 2026-3-15 22:04:32 | 显示全部楼层
启动依赖霍尔中断:代码在启动时只执行一次 StepMotor() 设置初始导通状态,如果电机静止且负载较大,,霍尔信号不变化,导致电机卡死无法启动。 增加开环启动(强制换相)阶段--》按固定的换相时序逐步提高换相频率,同时缓慢增加PWM占空比。在此过程中监测霍尔信号,一旦检测到稳定的霍尔变化(即电机已转动),立即切换到闭环模式(由霍尔中断驱动换相)。  这样可行么

点评

只需要释放定时器中断里的一句换相调用就可以了。带霍尔传感器的,并且反电动势是正弦波的,最好使用正弦波驱动。 [attachimg]133759[/attachimg]  详情 回复 发表于 2026-3-16 09:45
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-11-8 01:35 , Processed in 0.080081 second(s), 86 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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