找回密码
 立即注册
查看: 59|回复: 7

8h1k08驱动无刷电机。求解

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2025-08-04 09:37:22
已绑定手机

1

主题

12

回帖

43

积分

新手上路

积分
43
发表于 前天 13:23 | 显示全部楼层 |阅读模式
把定时器3,4换成了1,2.

上桥臂是PMOS,下桥臂是NMOS.
目前无法驱动电机。
求各位大佬指导。

是在梁工的提供案例代码上直接修改的。https://www.stcaimcu.com/forum-49-1.html
PixPin_2025-08-03_13-19-24.png

STC8H1K28-无HALL-电位器调速.c

14.24 KB, 下载次数: 2

回复

使用道具 举报 送花

3

主题

2097

回帖

1042

积分

等待验证会员

积分
1042
发表于 前天 13:28 | 显示全部楼层
尊敬的用户,您好!

感谢您对国芯人工智能的关注与支持。关于您提到的“STC8H1K08驱动无刷电机,将定时器3、4更换为1、2后无法驱动电机”的问题,以下是我们根据技术原理和常见故障点进行的专业分析与建议:

一、背景说明

STC8H1K08是一款基于增强型8051内核的高性价比单片机,具备多个定时器资源(如T1、T2、T3、T4),可用于PWM控制、电机驱动等应用。在无刷直流电机(BLDC)控制中,通常使用两个互补PWM信号控制三相桥式电路,其中上桥臂常用PMOS,下桥臂常用NMOS。

您提到已将原本使用的定时器3、4替换为1、2,可能是出于资源分配或功能适配的考虑。但更换后无法驱动电机,这可能涉及多个方面的问题。

二、可能原因分析

1. 定时器配置不匹配
定时器1和定时器2的功能与定时器3、4存在差异,尤其是在PWM输出模式、死区时间设置、互补通道配置等方面。
若未正确配置定时器的工作模式(如PWM模式、双路互补输出等),可能导致PWM信号异常,从而无法驱动电机。

建议:
检查定时器1/2是否配置为PWM输出模式,并确认其是否支持互补输出。
确保上下桥臂的PWM信号具有合适的死区时间,防止直通短路。

2. 引脚复用冲突
STC8H1K08的某些引脚可能被其他功能占用(如UART、SPI等),若未正确配置GPIO为PWM输出模式,可能导致信号无法正常输出。
尤其是当使用定时器1/2时,需确认对应引脚是否被正确映射为PWM输出。

建议:
查阅STC8H1K08数据手册,确认定时器1/2对应的PWM引脚是否可用。
在代码中检查GPIO初始化是否正确,确保PWM引脚处于输出模式。

3. 上下桥臂逻辑错误
上桥臂为PMOS,下桥臂为NMOS,其驱动逻辑需严格区分,避免同时导通。
若PWM信号未正确设计为互补信号,可能导致上下桥臂同时导通,造成电源短路,导致电机无法启动甚至损坏硬件。

建议:
检查PWM信号是否为互补输出,且具有足够的死区时间。
确保软件逻辑中不存在上下桥臂同时导通的情况。

4. 代码逻辑问题
您提到是在梁工提供的案例代码基础上修改的,可能存在代码逻辑未完全适配新定时器配置的问题。
如定时器中断处理、占空比计算、换相逻辑等均可能因定时器更换而失效。

建议:
仔细对比原代码与修改后的代码,特别是定时器初始化部分。
确保换相逻辑、速度控制、电流检测等模块与新定时器配置兼容。

三、解决方案建议

1. 重新配置定时器1/2为PWM输出模式
设置定时器工作模式为PWM模式,并启用互补输出。
配置死区时间,防止上下桥臂直通。
确认PWM频率与电机驱动需求匹配。

2. 验证PWM信号波形
使用示波器或逻辑分析仪观察PWM输出波形,确认信号是否正常。
检查上下桥臂PWM是否互补,是否存在重叠或缺失。

3. 检查引脚配置
确保PWM输出引脚已正确配置为输出模式。
避免与其他外设功能冲突。

4. 参考官方例程
参考STC官方提供的BLDC驱动例程,尤其是使用定时器1/2的版本。
对比代码逻辑,确保关键部分(如换相、速度控制)正确实现。

四、总结

STC8H1K08驱动无刷电机时,定时器的选择对系统稳定性至关重要。将定时器3、4更换为1、2后出现无法驱动问题,可能源于定时器配置不当、引脚冲突、PWM信号异常或代码逻辑错误等多方面原因。建议从定时器配置、PWM信号验证、引脚设置及代码逻辑四个方面逐一排查。

如您需要进一步的技术支持或代码调试帮助,欢迎联系国芯人工智能技术团队,我们将竭诚为您提供专业服务。

如您有更多具体代码片段或硬件连接图,也可提供,我们将为您做更详细的分析。  
感谢您的提问!

[本文内容由国芯人工智能辅助生成,仅供参考]
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:61
  • 最近打卡:2025-08-05 10:09:43

25

主题

435

回帖

2708

积分

超级版主

积分
2708
发表于 昨天 11:49 | 显示全部楼层

无刷电机开源,参考这个帖子:
https://www.stcaimcu.com/thread-1822-1-1.html
电话:0513-55012946 QQ:2195591714  微信:  19952583740
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2025-08-04 09:37:22
已绑定手机

1

主题

12

回帖

43

积分

新手上路

积分
43
发表于 昨天 14:19 | 显示全部楼层
32G12*** 发表于 2025-8-4 11:49
无刷电机开源,参考这个帖子:
https://www.stcaimcu.com/thread-1822-1-1.html

参考的是这个帖子。现在对定时器做过修改之后。依然没办法驱动
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:535
  • 最近打卡:2025-08-05 10:03:02
已绑定手机
已实名认证

116

主题

2676

回帖

6654

积分

版主

积分
6654
发表于 昨天 14:24 | 显示全部楼层
内部有多处操作T3和T4的代码,并非仅仅是修改初始化即可

截图202508041423182000.jpg
例如277行左右的这些代码,T4T3M寄存器即操作定时器3和定时器4的寄存器,也需要根据使用情况进行相应的修改
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2025-08-04 09:37:22
已绑定手机

1

主题

12

回帖

43

积分

新手上路

积分
43
发表于 昨天 14:31 | 显示全部楼层
王*** 发表于 2025-8-4 14:24
内部有多处操作T3和T4的代码,并非仅仅是修改初始化即可

这个问题后来也发现了。现在已经修改过了。现在下管依旧无法导通

STC8H1K28-无HALL-电位器调速-V2.c

22.02 KB, 下载次数: 0

点评

可以手动给IO口高低,测量一下IO口是否有输出,如果有输出且MOS仍不导通,可以考虑是否是MOS管需要导通电压较高的缘故。 还有一种可能是供电电流不足,下管开启的时候出现了过流导致保护。 亦或者是出现了上下管直通  详情 回复 发表于 昨天 17:28
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2025-08-04 09:37:22
已绑定手机

1

主题

12

回帖

43

积分

新手上路

积分
43
发表于 昨天 14:39 | 显示全部楼层
王*** 发表于 2025-8-4 14:24
内部有多处操作T3和T4的代码,并非仅仅是修改初始化即可

大佬。我看梁工的代码中已经将引脚设置为了推挽输出。为什么还会出现驱动能力不够的问题呢
PixPin_2025-08-04_09-34-37.png
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:535
  • 最近打卡:2025-08-05 10:03:02
已绑定手机
已实名认证

116

主题

2676

回帖

6654

积分

版主

积分
6654
发表于 昨天 17:28 | 显示全部楼层
骑鹅*** 发表于 2025-8-4 14:31
这个问题后来也发现了。现在已经修改过了。现在下管依旧无法导通

可以手动给IO口高低,测量一下IO口是否有输出,如果有输出且MOS仍不导通,可以考虑是否是MOS管需要导通电压较高的缘故。
还有一种可能是供电电流不足,下管开启的时候出现了过流导致保护。
亦或者是出现了上下管直通导致的电流过大单片机重启
可以从以上方向进行排查
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-8-5 15:23 , Processed in 0.150785 second(s), 89 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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