找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 515|回复: 5
打印 上一主题 下一主题
收起左侧

stc89c54rd单片机+接步进电机驱动器脉冲数量减半

[复制链接]
跳转到指定楼层
楼主
之前做电机控制项目的时候有个问题,用stc89c54rd+的p1的口(准双向且没有上拉电阻),没接步进电机驱动器输出脉冲800个是正常的,后来与步进电机驱动器相接的时候,脉冲数量直接减半而且示波器上看波形低电平的时候电压不在0v左右,而在2v左右。但是接p0口(开漏+上拉)就是正常的。芯片与步进电机驱动器接法是共阳的接法。后来猜测可能是io口模式不同导致的,就把所有脉冲口换到p0上。但是一直想不明白为什么会出现这样的现象的原理,请问有没有大佬解惑。

51hei20260528-145649.png (96.15 KB, 下载次数: 0)

51hei20260528-145649.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1064915 发表于 2026-5-26 15:48 | 只看该作者
什么驱动器
回复

使用道具 举报

板凳
ID:584814 发表于 2026-5-28 11:51 | 只看该作者
点上三柱香,向单片机三叩首,高呼好了好了好了,礼毕即成。
不需要任何电路图和代码附上,泄露天机是搞不成的
回复

使用道具 举报

地板
ID:1076739 发表于 2026-5-28 14:57 | 只看该作者
man1234567 发表于 2026-5-28 11:51
点上三柱香,向单片机三叩首,高呼好了好了好了,礼毕即成。
不需要任何电路图和代码附上,泄露天机是搞不 ...

加了加了
回复

使用道具 举报

5#
ID:1076739 发表于 2026-5-28 14:58 | 只看该作者

TB6600
回复

使用道具 举报

6#
ID:155507 发表于 2026-5-31 10:04 | 只看该作者
TB6600 步进驱动器上的逻辑输入(PUL、DIR、ENA)需要每条信号线的电流为 (8 mA) 至 (15 mA)。它们采用光耦合器隔离,并与标准 (3.3 V) 和 (5 V) 逻辑电平兼容。大多数模块都具有内置电阻器,可以安全地处理这些电压,而无需外部串联电阻器。

逻辑输入电流:(8 mA) – (15 mA)


STC89C54RD+ 的 I/O 口
输出低电平灌电流 (P0、ALE、PSEN)    最小值 5 mA   典型值 8 mA
输出低电平的灌电流 (P1、P2、P3、P4) 最小值 2.5 mA 典型值 4 mA
输出高电平的拉电流 (P1、P2、P3、P4) 最小值 40 uA  典型值 70 uA

根据提供的【技术手册内容】和【TB6600 参数】,我们可以从电路原理层面精确解释你遇到的“脉冲减半”现象。
核心原因:灌电流能力严重不匹配
TB6600 逻辑输入需求:

每路输入(PUL、DIR、ENA)要求 8 mA ~ 15 mA 电流(光耦导通条件)。

STC89C54RD+ I/O 口灌电流能力:

I/O 口                        输出低电平灌电流(典型值)
P0、ALE、PSEN                8 mA
P1、P2、P3、P4                4 mA


1. 为什么 P1 口(准双向)工作异常?

当 P1 口输出低电平时,需要吸收来自 TB6600 光耦回路的电流(共阳接法:5V → 光耦LED → 限流电阻 → P1口)。
光耦所需的 8~15 mA 已远超 P1 口的 4 mA 典型驱动能力。
P1 口内部的下拉 MOSFET 被强制输出过大电流,进入 线性区(类似于可变电阻),导致漏源电压 V_{DS} 显著上升。
实测低电平电压 2V,正是这个电压降的体现。此时光耦未能可靠导通(其低电平阈值通常需 < 0.8V),导致脉冲跳变被误判或部分丢失,最终 有效脉冲数减半。

2. 为什么 P0 口(开漏 + 上拉)工作正常?

P0 口在开漏模式下输出低电平时,内部下拉管具有更强的灌电流能力(典型 8 mA,最小保证 5 mA)。
虽然 8 mA 仍略低于 TB6600 的 8-15 mA 需求上限,但实际电路中的裕量足够:TB6600 的光耦通常有 1.2V-1.5V 正向压降,串联限流电阻后电流可低于 15 mA(例如 330Ω 电阻时电流约 10.9 mA)。P0 口能稳定吸收该电流,将低电平电压保持在 0.1V ~ 0.3V 以内。
外部上拉电阻保证了高电平的快速建立,整体脉冲信号波形完整,驱动器正常计数。

3. 高电平拉电流数据说明什么?
手册给出 P1、P2、P3、P4 的 输出高电平拉电流仅为 40~70 μA,这是非常弱的驱动能力。如果采用 共阴接法(驱动器由高电平触发),P1 口将完全无法驱动,问题会更严重。幸运的是您使用的是共阳接法,只需要低电平灌电流能力,但这一能力恰恰是 P1 口的短板。

结论与建议

你的分析和实验完全正确:问题根源就是 P1 口和 P0 口的 灌电流驱动能力差异,导致 TB6600 的输入光耦无法可靠工作。
当前解决方案(P0 口开漏 + 上拉)是最简单有效的,它利用了 P0 口更强的下拉能力。
若必须使用 P1 口,可通过外加 NPN 三极管(如 9013)或开漏缓冲器(如 74HC07) 来增强驱动,三极管基极限流电阻后由 P1 口控制,集电极开路输出至 TB6600。


以上就是“脉冲减半”现象的全部原理。请放心使用 P0 口方案继续开发,无需修改硬件设计。

回复

使用道具 举报

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

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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