This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TM4C123GH6PM:控制步进电机的 Launchpad Tiva TM4C123G 需要大量电流

Guru**** 1630180 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/886578/tm4c123gh6pm-launchpad-tiva-tm4c123g-controlling-a-stepper-motor-requires-a-lot-of-current

器件型号:TM4C123GH6PM

您好!

 我买了几辆这辆车,因为它很便宜(5欧元),包括司机:

https://www.electronicoscaldas.com/datasheet/ULN2003A-PCB.pdf

根据此数据表,数字序列为0x3 0x6 0xC 0x9。

我尝试了最简单 的程序、只将一个电机连接到 PB3-PB0:

while (1){
GPIO_PORTB_DATA_R =0x33;
SysTK_Wait10ms (2);
GPIO_PORTB_DATA_R =0x66;
SysTK_Wait10ms (2);
GPIO_PORTB_DATA_R =0xCC;
SysTK_Wait10ms (2);
GPIO_PORTB_DATA_R =0x99;
SysTK_Wait10ms (2);
} 

它会移动、但我觉得有问题、因为电流消耗非常高(请参阅 YouTube 视频)并且 电机的温度非常高

https://youtu.be/EWVaV74dKzs

对该问题有什么看法?

 TM4C123G 输出似乎正确(请参阅 Keil uVision 屏幕截图)

提前感谢

Marcos

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Marcos、

    我们在 E2E 上的角色是回答有关 TM4C 微控制器的特定器件问题。 很遗憾、您的问题超出了范围、因为您已表明 TM4C 工作正常。 鉴于您发布的文档中突出显示的一点、我们对您收到的电路板的了解不足、无法提供除检查电源电压和电机额定值之外的建议。

    我不确定什么是一个好的替代论坛、但也许您可以尝试 https://forum.43oh.com/?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    德州仪器是否提供任何驱动器+步进电机器件? 在本例中、我可以获得支持吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Marcos、

    我们有一个 TI 参考设计: http://www.ti.com/tool/TIDM-TM4C123STEPPERMOTOR

    回复:支持应该可以、但支持主要是针对电机驱动器、因为 MCU 已经配置好。 如果您有配置问题、当然可以向他们提问、否则、有关电机的问题需要转至 :https://e2e.ti.com/support/motor-drivers/f/38 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    感受您的痛苦-我的团队能够提供多项建议/指导。

    我们必须注意:"我买了几款这款电机、因为它很便宜..."   我们意识到、"财务可能有限、但这种"折扣购买"的运营和(尤其是)使用寿命通常会令人失望。"   这可能是您问题的(全部)原因...   (不值得信任和/或(以前损坏/有缺陷)电机(有时)"以此折扣出售。")

    我们建议采取以下行动:

    • 更换另一个电机-问题是否仍然存在?
    • 您测量了哪些电流?   您在哪里以及如何进行此类测量?   (我们没有时间"您管")
    • 您如何为步进电机板供电?   多大电压?   (通过(假设) LPAD 供电(一切)几乎可以确定是否"导致您注意到的问题"。   建议使用一个(足够的)电源(用于步进板)。
    • 在每次"步进"时、您的代码(继续)功耗为20ms。   是否需要该持续时间?   如果过度-这可能是电机过热的"主要原因"?
    • 我们没有找到步进电机的'sc'。   如果这是5V 电机-并由"Darlington ULN2003AN"驱动(如您所注意到的)、则电机的有效"驱动电压"为~ 3.5V。   (达林顿需要低电流驱动-但不会(完全)拉至接地!)  长期以来、我们一直使用"ULN200x 系列"-由于这种(减少)接地水平、这些 IC 在12V 或以上时效果最佳。   (输出电平)
    • 如果"123 LPAD 处于"运行状态"-您使用 PB0和 PB1 (可能)需要特别注意。   (与 USB 冲突-也许)  尝试另一个4位端口(但要注意 PD0/PD1和 PB6/PB7)、该端口"由鼠疫-抗议者加入" R9/R10。  (删除/删除这些...)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    感谢您的回答。

    • 是的、我尝试了不同 的电机、相同的型号、相同的功耗。
    • YouTube 视频的播放时间仅为12秒。 它显示了电机运动、电源和电源上显示的电流消耗:0.6A 单个电机。
    • 该电源与驱动器一起应用到印刷电路板上、其指示电源电压为5至12V。 我使用了10V
    • 我认为问题不在于端口。 事实上、我已经为不同的电机修改了 John Valvano 的 MOOC 代码(我找不到它、因此我选择了另一个)。

    我在阅读 了更多的网络之后的印象是、这种高电流消耗(根据我的标准)是"正常的"、实际上、与常识相反、移动得越慢 、消耗就越高。 问题可能是我非常缓慢地移动它(每步之间20ms)

    此致

    M.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、上一页、

    感谢您-出色且及时的响应-罕见且(非常)非常感谢。

    考虑以下问题-"单个步进脉冲是否应持续(超过)产生"全步进"所需的持续时间?   如果电源持续、"超过所需的持续时间"、是否"一定会导致发热?"   是否有可能-及时-证明具有破坏性?

    我们的经验是、多个变量将影响产生"完整/完整/正确步骤"所需的"最小步进脉冲持续时间"!

    这些变量可能包括:

    • 电机运行时的当前 RPM
    • 电机模式:从停止启动、加速、减速、(近)恒定速度、电机负载、 惯性效应等
    • 由于此类电机(通常)为"微步进"-上述变量的有效值甚至更高!   (导致一些"遗漏"微步进!)

    您应该能够通过实验来确定驱动脉冲的正确持续时间、并且在此过程中、您注意到的过热(应该)应该得到更好的管理。   或许已经解决了-从而赢得了"真正的解决方案"绿色印记...

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    这是什么意思?

    while (1){
    GPIO_PORTB_DATA_R =0x33;
    GPIO_PORTB_DATA_R =0x00;
    SysTK_Wait10ms (2);
    GPIO_PORTB_DATA_R =0x66;
    GPIO_PORTB_DATA_R =0x00;
    SysTK_Wait10ms (2);
    GPIO_PORTB_DATA_R =0xCC;
    GPIO_PORTB_DATA_R =0x00;
    SysTK_Wait10ms (2);
    GPIO_PORTB_DATA_R =0x99;
    GPIO_PORTB_DATA_R =0x00;
    SysTK_Wait10ms (2);
    } 

    缓慢移动的想法只是为了实现可视化。 否则、很难理解这些步骤

    此致

    好主意、下周我将在实验室中试一下、看看会发生什么情况

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    hi++;

    [引用 user="Marcos "]您是指这一点?

    GPIO_PORTB_DATA_R =0x33;
    GPIO_PORTB_DATA_R =0x00;
    SysTK_Wait10ms (2);

    几乎!   该(快速)代码模块的"缺点"。 您(可能)已经"过度校正"了驱动脉冲的持续时间!   (即步进驱动脉冲可能(现在)太窄 、步进无法识别和/或接受它...)   BTW -您的 MCU 与步进 IC 之间的接口为"4线制"-因此"0x03或0x30"就足够了。   (这将启用"4个额外的 GPIO"供您额外使用!)

    正如我们团队的几篇最新博文所述-您必须"通过实验确定"正确的步进驱动脉冲宽度(持续时间)并提供此信息!   步进电机接合其下一个"步进位置"后-可能不需要持续供电(甚至可能需要)、"证明具有破坏性!"   根据步进电机的不同、可能会提供"PWM 驱动信号"来代替"20ms 持续时间"信号-您已经注意到这会导致"过热"。   (同样、需要通过实验来确定 PWM 的频率和占空比)

    您提供的电机文档指出:"当特定输入组合由微控制器驱动时、电机步进。  这只是一个功率脉冲、足以让电机步进。"    这(非常)与我团队的建议是一致的-是不是吗?   

    员工、"跑过你的电机上的数字"(根据你提供的规格)

    • 每个全步进都会导致电机轴旋转5.625°
    • 并且电机输出端存在64:1减速
    • 因此、您(选择)的每步20ms 将在82秒内产生"一个传动系输出旋转"!   (这是我们所相信的... 下坡。)

    如果您(相反)以更"正常/习惯"的速度运行电机-则不需要"移除步进脉冲"-您可以按照正确的顺序简单地"从输出代码循环到输出代码..."。   是否可以询问"您是如何到达20ms/电机阶跃的?"   (在您的情况下-这意味着转速小于1 RPM!)   另请注意、"加热电机"最常会(早期)出现死亡和"步进失速"、而(仍然)仍在运行-但会出现"死亡螺旋!"

    个(可能改进/解决)代码图示如下:

    GPIO_PORTB_DATA_R =0x33;//  应用电机脉冲信号***(可选)&依赖于电机-您可以使用这2个输出中的每个输出进行"PWM 驱动"以减少发热
    SysTick 等待;(tbd)待确定(持续时间足以确保"完整步长")
    GPIO PORTB 数据 R = 0x00;//删除电机脉冲信号(电机现在可以冷却!)   ***如果您使用 PWM 信号驱动每个电机相位,则可以消除此步骤
    SysTick 等待;(tbd)该延迟(主要)产生步进驱动频率!
    GPIO PORTB 数据 R =(下一个值);//应用下一步电机脉冲信号

    这是否不是(首次)解决您当前、现实世界、论坛发布的问题的"真正解决方案"?   (绿色墨水肯定(更正确)现在可以流动...)