尊敬的 TI 支持团队/论坛:
我使用的是 DRV8718S-Q1 电机驱动器、希望在通过集成电流检测放大器监测电机电流方面提供指导。 具体而言、我有以下问题:
-
如何使用此 IC 检测正常工作电流并检测失速电流?
-
为了获取电流检测 ADC 值、应读取或写入哪些 SPI 寄存器?
-
电机正常运行和失速情况下的预期 ADC 值范围是多少?
-
如何校准或解读 ADC 值以可靠地检测失速情况?
用于正常电流与失速电流的任何 SPI 命令示例、寄存器地址或参考值都将非常有用。
感谢您的帮助。
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.
尊敬的 TI 支持团队/论坛:
我使用的是 DRV8718S-Q1 电机驱动器、希望在通过集成电流检测放大器监测电机电流方面提供指导。 具体而言、我有以下问题:
如何使用此 IC 检测正常工作电流并检测失速电流?
为了获取电流检测 ADC 值、应读取或写入哪些 SPI 寄存器?
电机正常运行和失速情况下的预期 ADC 值范围是多少?
如何校准或解读 ADC 值以可靠地检测失速情况?
用于正常电流与失速电流的任何 SPI 命令示例、寄存器地址或参考值都将非常有用。
感谢您的帮助。
尊敬的 Shahajahan:
感谢您的发布。
如何使用此 IC 检测正常工作电流并检测失速电流?
通过数据表或进行测量、您的应用中有刷直流 (BDC) 电机的正常工作电流和失速电流是多少? 根据此电流值、您可以区分正常稳态电流与失速电流、后者通常远高于 BDC 电机中的稳态电流。
]为了获取电流检测 ADC 值、应读取或写入哪些 SPI 寄存器?
DRV8718S-Q1 没有 ADC。 它具有一个具有模拟输入和输出的集成电流检测放大器 — 见下文的数据表。 外部电流分流电阻器和负载电流与 CSA_DIV_x 和 CSA_GAIN_x 的 CSA_CTRL1 寄存器设置相结合、有助于确定 SOx 上的模拟输出。 我假设您将 DRV8718S-Q1 的 SOx 输出连接到外部 ADC 输入。
当负载电流为 0 时、SOx 将是选定的 VAREF/2 或 VAREF/8 电压输出。 当存在负载电流时、输出电压会更低或更高、具体取决于电流极性、Rshunt 值和 GAINx 设置。 您 可以根据应用的设置值和硬件设计来计算预期的模拟输出电压。

电机正常运行和失速情况下的预期 ADC 值范围是多少?
这取决于您的电机特性、工作电压、Rshunt、VAREF 设置和增益以及外部 ADC 特性、我们对这些特性一无所知。 您可以根据我们在数据表中提供的信息以及上面的前两点来计算此值。
如何校准或解释 ADC 值以可靠地检测失速情况?
这取决于使用的外部 ADC 和比例因子。 我们无法对此作出评论。 ADC 供应商也许可以指导您如何校准 ADC 以获得准确的结果。
此致、Murugavel
您好 Murugavel、
关于电流检测、我还有一个问题:
在顺时针旋转的正常操作期间、可以得到 0.45–0.52V 监测周围的热电偶。 当 motor1 达到其最大位置(失速条件)时、ADC 读数将变为 接近 0V SO1 上、我要发送 SPI 数据 地址 0x26 和 数据 0x30 。
在逆时针旋转的正常操作过程中、我得到了 0.65V 至 0.72V 监测周围的热电偶。 当 motor1 达到其最大位置(失速)时、ADC 读数变为 1.1V 至 1.22V 、我将使用发送 SPI 数据 地址 0x26 和 数据 0x30 。
在顺时针旋转的正常操作期间、可以得到 0.45–0.52V 微控制器。 当 motor2 达到其最大位置(失速条件)时、ADC 读数将变为 接近 0V SO1 上、我要发送 SPI 数据 地址 0x26 和 数据 0x06 。
在逆时针旋转的正常操作过程中、我得到了 0.65V 至 0.72V 微控制器。 当 motor2 达到其最大位置(失速)时、ADC 读数变为 1.1V 至 1.22V 、我将使用发送 SPI 数据 地址 0x26 和 数据 0x06 。
这些值是否正确?
尊敬的 Shahajahan:
我无法对 ADC 读数进行注释、因为我不知道您是如何通过偏移和调节进行 ADC 数学运算的。 这在 DRV8718S-Q1 外面。 您提到 CSA_CTRL 寄存器设置为 0x06。 这意味着 CSA1 设置为 AREF / 2、10V/V 增益、CSA2 设置为 AREF / 8 和 40V/V 增益。
当电机电流为零时、SO1 将为 AREF / 2 伏、SO2 将为 AREF / 8 伏。 我不知道无论与电机串联还是在低侧 FET 处、电流分流器是如何连接的。 基于此、输出电压会发生变化。 假设 采用直列式连接、当电机分别以 CW 或 CCW 的方式运行时、SO1 将高于或低于 Aref/2 值。 同样、SO2 会高于或低于 AREF / 8 值。

在顺时针旋转的正常操作期间、可以得到 0.45–0.52V 监测周围的热电偶。 当 motor1 达到其最大位置(失速条件)时、ADC 读数将变为 接近 0V SO1 上、我要发送 SPI 数据 地址 0x26 和 数据 0x30 。
在逆时针旋转的正常操作过程中、我得到了 0.65V 至 0.72V 监测周围的热电偶。 当 motor1 达到其最大位置(失速)时、ADC 读数变为 1.1V 至 1.22V 、我将使用发送 SPI 数据 地址 0x26 和 数据 0x30 。
在顺时针旋转的正常操作期间、可以得到 0.45–0.52V 微控制器。 当 motor2 达到其最大位置(失速条件)时、ADC 读数将变为 接近 0V SO1 上、我要发送 SPI 数据 地址 0x26 和 数据 0x06 。
在逆时针旋转的正常操作过程中、我得到了 0.65V 至 0.72V 微控制器。 当 motor2 达到其最大位置(失速)时、ADC 读数变为 1.1V 至 1.22V 、我将使用发送 SPI 数据 地址 0x26 和 数据 0x06 。
这些值是否正确?
[/报价]我可以说、假设采用直列式电流检测和适当的 ADC 读数比例、趋势看起来是正确的。
此致、Murugavel