该板包含两个这样的电路,因为 Tri-Track 底盘有两个坦克式轨道,每个轨道都有一个电机。我们需要能够独立控制两个电机,以便我们可以通过改变一个轨道相对于另一个轨道的速度来转动机器人。
我喜欢设计自己的电路,但我也喜欢从高技能 IC 设计师提供的好处中获益。工程谦逊的一部分是接受这样一个事实:Maxim 的可以设计出远远超过我可能想出的任何电机控制器。因此,我们推出了MAX14870,这是一款高度集成、小尺寸、用户友好的器件,需要很少的外部元件,仅需要三个控制信号。
控制界面很简单:
nEN 引脚必须驱动为低电平才能启用电机驱动输出。
DIR 引脚的逻辑电平控制电机的旋转方向。
只要 PWM 引脚处于逻辑高电平,就会向电机施加驱动电压。顾名思义,电机的速度可以通过向 PWM 引脚施加脉宽调制信号来控制。
过流情况或热关断会将 nFAULT 引脚驱动至逻辑低电平。当电机控制情况出现问题时,这使得微控制器能够收到通知。它是开漏输出,因此多个 nFAULT 引脚可以连接在一起(尽管采用这种布置,无法确定哪个特定芯片正在生成故障条件)。
检测电流:V = IR
让我们花一点时间来了解一下检测电阻 R1 的情况。通过允许电流从 12 V 电源流经高侧 FET 之一、电机线圈、低侧 FET 之一,流至 COM 引脚来驱动电机。该电流需要流向接地节点,但我们不必将 COM 引脚直接接地。如果我们在 COM 引脚和地之间放置一个小电阻,COM 节点的电压将与流过电机线圈的电流成正比。换句话说,这个电流检测电阻使我们能够监控电机驱动电流。
通过添加检测电阻并将COM节点连接到MAX14870的SNS引脚,我们可以实现内部电流调节功能。MAX14870希望SNS引脚电压保持在100 mV以下;如果该电压开始变得过高,电机驱动电流会根
据需要中断,以将 SNS 电压保持在 100 mV 以下。因此,电机驱动电流由以下等式给出:
$$I_{MAX}=frac{100 mV}{R_{SENSE}}$$
C-BISCUIT 电机控制电路有一个 0.068 Ω 检测电阻;这意味着电机驱动电流被限制在约 1.47 A。Tri-Track 电机的数据表表明启动电流约为 1.5 A,因此 1.47 A 是一个保守的限制,仍允许电机正常启动。但考虑到我之前没有使用该电机或 MAX14870 的经验,如果发现 0.068 Ω 不是 R SENSE的值,我不会感到惊讶。
需要记住的重要一点是,该检测电阻会消耗一些严重的功率。这是一个容易犯重大错误的地方,因为低压设计人员通常不需要仔细考虑电阻器的额定功率。尽管启动电流高于稳态电流,但为了安全起见,我们假设该电阻器可能会长时间承受 1.5 A 的电流。这意味着
$$P_{MAX}=(1.5 A)^2 imes0.068 欧米茄=0.153 W$$
我喜欢两倍的安全裕度,因此电阻器的额定功率应至少为 1/4 W。我选择了 1/2 W 部件,因为这让我更有信心电阻器不会因以下原因而烧毁:设计者错误。
如果不需要自动电流调节,只需将 SNS 引脚接地即可禁用此功能,这(显然)可以确保 SNS 上的电压永远不会超过 100 mV。MAX14870仍然具有其通用的过流保护功能,但只有当流经电机驱动线路之一的电流大于约6 A且持续时间超过1 ?s时,该保护才会启动。
电机电流——EFM8 应该知道的
由于我决定添加一个用于自动电流调节的检测电阻器,因此我还可以添加一些额外的组件,使 EFM8 微控制器能够收集有关电机在各种工作条件下需要多少电流的信息。这就是运算放大器电路的用途,它只是一个增益为 10 的同相放大器,用作 R SENSE两端的电压与 EFM8 的 ADC 电路之间的接口电路。