工具/软件:Code Composer Studio
您好!
我想使用 GPtimer 对电机的孔脉冲信号进行计数、并对驱动电机的方向信号进行计数
由电机驱动 IC 提供。
我想使用 GPtimer 作为"边沿计数"模式。
我想知道用于这个目的的方法、例如、使用方向信号= GPIO 输入的 GPtimer
信号(高电平或低电平)。
是否有应用手册?
高贵须
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.
工具/软件:Code Composer Studio
您好!
我想使用 GPtimer 对电机的孔脉冲信号进行计数、并对驱动电机的方向信号进行计数
由电机驱动 IC 提供。
我想使用 GPtimer 作为"边沿计数"模式。
我想知道用于这个目的的方法、例如、使用方向信号= GPIO 输入的 GPtimer
信号(高电平或低电平)。
是否有应用手册?
高贵须
[引用用户="hiroyasu Matsubara"]我们使用电机驱动 IC 和 FET 来驱动无刷电机,使用 TM4C PWM 模块,PWM 信号输出连接到电机驱动 IC 输入引脚。
谢谢-因此没有编码器。 我们是否可以要求您指定"电机驱动 IC "的制造商和型号? 我怀疑您(现在)所说的"电机驱动 IC"-更经常被称为"栅极驱动器! 此类栅极驱动器能够提供(尽管很短)高电流、以完全/正确增强(从而打开/关闭)功率 FET。 请确认我的理解。
确定"无刷电机速度"的传统方法是"计算在测量的时间间隔内发生的电机换向次数"。 这种方法早已成为"标准操作程序"-并且应该证明 Cortex M4 "简单"。 (我们和其他人通过更低成本、更简单的 Cortex M0 MCU 实现了"仅此而已"。)
您可能会"翻转"您的"换向表"以实现"方向改变"。 您(当然)知道何时完成此操作-因此"电机方向"应该提供最小(即不)的挑战。 大多数 MCU 设计提供一个 MCU 输入引脚-可将其切换(高电平或低电平)以"实现"此类"方向改变"。
如果您尝试"改变 BLDC 电机的方向-当它以"超过低速!"运行时、会有(一些)危险 我们公司的软件处理此类问题、要求 BLDC 电机"低于指定速度-然后才能启用(任何)"方向改变"。 怀疑您在"方向改变"后检测电机速度时可能会遇到的问题、这是因为您没有对"在测量的时间间隔内发生的电机换向次数"保持一致的测量。 这种情况应不受电机方向的影响。 请注意、"特定的" BLDC 电机会"偏置"以在一个方向上以更快的速度运行-如果您注意到这一点、则应咨询电机制造商。 您还应确认您的 PWM 包络波形是一致的-与电机方向无关。 (当然、电机在每个方向调整为"相同的速度"。。
我相信这篇文章能够合理地回答您的问题...
我的朋友-您的方法"不同于传统方法"-我更喜欢使用"kiss"(简单、直接、可测量)、并且仅一次偏离(根据需要/如果需要)、"一切正常"。 我们是否可以坚持这种方法?
让我们回顾一些 BLDC 电机基础知识-"典型的 BLDC 电机"(如果存在这种情况)可能具有4个磁极-并采用3个霍尔传感器-因此:
现在计算"频率"要求:
我们必须在所选的时间间隔内"启用此类计数"-(仅限)。 我们是否能同意这些陈述-支持这种(基本)测量方法?
您会说"电机持续脉冲计数"。 在我看来,这种情况最常证明是"过度杀戮"。 例如、如果我们"使霍尔信号计数持续0.5秒"-如果我们遇到"一个甚至几个"错误的计算、在我们的"120个读数"期间、每分钟都不会有太大的顾虑!
您描述的方法-其中包括:"重新配置计时器、更改其计数方向、然后"添加保存的值"-对我来说-增加了极大的复杂度-而(原谅)几乎没有达到...
霍尔脉冲的到达应"独立于方向"。 与计数脉冲的"定时周期"一样。 捕获的脉冲数越多、电机的速度就越快。
现在、您(必须)有"一些理由"认为这种"方向改变"至关重要。 然而、您并未分享这一信息、而是减去这一信息、我很少有动力提供比所介绍的更多的信息。
我所介绍的方法不是我的发明、它已被许多(大公司和小公司)"众所周知"、并且"经常"证明是足够的。 (当然、"对 Gov't 工作很好!" -我公司的(特许和持续)目标之一...)
您好!
感谢你的答复。
我们希望使用 GPTimer 来测量电机的精确位置(电机总旋转数)、而不是测量速度。
我尝试使用"边沿计数"模式来改变 GPtimer 的方向。
我阅读了 TM4C123GH6PM 手册(SPMS376E GPTimer)、当从"递减计数"更改为"递减计数"时、我们可以保存定时器计数值
递增计数"。 如手册中所述、当将方向从下变到上时、定时器重新开始从值"0"递增计数。
但是、当尝试"从上至下"改变方向时、我认为保存的定时器计数值不准确。
例如、在改变方向之前、计数值大约为22000、但是在改变方向后、定时器计数值立即为
10378、
我想、
将方向从向下更改为向上:重新开始计数从"0"
从上至下:从上一个计时器计数值重新启动
正确吗?
高贵须
[引用用户="hiroyasu Matsubara"]使用 GPTimer 测量精确位置 (电机旋转总数)
您之前的帖子说:“电机没有编码器,我们想通过使用两个信号来知道电机旋转的位置,一个信号是切换信号(在无刷电机的电相发生变化时切换), 另一个是由电机驱动 IC 驱动的电机方向信号。"
前面我问过您对"电机驱动 IC"的定义-您注意到了"A3930"、它执行的功能控制(远远超出正常的"栅极驱动器"。 (需要栅极驱动器来充分驱动/增强功率 FET -用于驱动 BLDC 电机的三个相位)。 我(现在)花了时间/精力来查看 A3930的数据-我相信它不能提供您所寻求的"准确的位置数据"。 不是很近! (我也不知道具有此功能的"其他"器件、除非有一个器件采用(正如我最初建议的)某种形式的"电机编码器!")
为清晰起见(&确认)-我介绍了从我对 A3930规范的回顾中得出的关键结论-这表明它"无法"满足您的"准确位置"检测要求: (请复制一份真实副本)
请注意、"转速"提供基于"电机速度"的信号-但远未实现(任何)"精确位置"检测/报告! 正如上面描述的那样:"在每个换向点上-转速输出改变!" 这些"换向点"会随每个霍尔信号的变化而发生-这些霍尔信号的变化是"许多电机旋转度分开!" 因此-来自 A3930的"转速"信号证明"太粗糙"、可提供任何"准确"(您的字/定义)位置信息。 (甚至"尝试这样做"也需要大量的软件工作!)
因此,正如我先前指出的那样,你的"攻击方法"(赦免)有缺陷,但成功的机会(很少)。 (您可能能够在霍尔脉冲之间"内插"、但这是(高度)非标准-并且超出了(此处的大部分)的关注范围。)
如前所述-电机编码器存在是出于"合理的理由"-您希望"精确的位置"成为"第一"、指示编码器的使用。 ("约定"-有时(大多数情况?) 确实有它的地方!)
鉴于这些发现、您在改变计时器方向方面的困难似乎"不再需要"。。