我正在尝试使用3个 ECAP 输入来测量电机霍尔反馈时序、但在每次霍尔边沿转换时、我都需要读取输入的逻辑值。 为了使用 ECAP、似乎我需要将引脚多路复用器分配为 ECAP (不是 N2HET)、但我没有在 ECAP 寄存器中看到读取 ECAP 输入上存在的逻辑值的能力。 此 ECAP 输入是否也需要路由到第二个 GPIO/N2HET 输入端以读取逻辑值?
谢谢。
吉姆
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.
我正在尝试使用3个 ECAP 输入来测量电机霍尔反馈时序、但在每次霍尔边沿转换时、我都需要读取输入的逻辑值。 为了使用 ECAP、似乎我需要将引脚多路复用器分配为 ECAP (不是 N2HET)、但我没有在 ECAP 寄存器中看到读取 ECAP 输入上存在的逻辑值的能力。 此 ECAP 输入是否也需要路由到第二个 GPIO/N2HET 输入端以读取逻辑值?
谢谢。
吉姆
您好、Jim、
是的、回答正确。 引脚只能执行一项功能、这意味着如果我们对某个引脚启用 eCAP 功能、则将在相应的引脚上禁用其他功能。
此 ECAP 输入是否也需要路由到第二个 GPIO/N2HET 输入以读取逻辑值?
是的、这是一种实现方法。
然而,我想建议你再一个方法,我从来没有测试过,但它应该工作. 优点是这种方法不需要任何额外的引脚、但缺点是它不能用于高频。
1.首先禁用预分频器、因为这将更改波形。

因此、要获得 eCAP 模块的原始波形、我们应该禁用预分频器。
2.现在按如下所示配置捕获极性

CAP1-上升
CAP2-下降
CAP3-提升
CAP4-下降
3。现在启用全部四个捕捉的捕捉中断

这意味着、我们将在输入的第一个上升沿(低到高事务)获得 CAP1中断、在输入的第一个下降沿(高到低事务)获得 CAP2中断、在第二个上升沿(低到高事务)获得 CAP3中断 输入信号、并在输入的第二个下降沿(高电平到低电平事务)发生 CAP4中断。 该序列每次都会继续。
4.现在只需假设有一个 Input_Value 标志来指示输入状态。

现在我要做的是、 每当我收到 CAP1或 CAP3中断时、我都会在中断处理程序中将 "CAP"设置为1、因为 Input_Value 或 CAP3中断是一个上升沿中断、并且输入值会从低电平转移到高电平、这意味着我的输入波形现在处于逻辑高电平。 相比之下、每当我收到 CAP2或 CAP4中断时、我都会在中断处理程序中将"CAP2"复位为0、因为 Input_Value 或 CAP4中断是下降沿中断、并且输入值会从高电平变为低电平、这意味着我的输入波形现在处于低电平。
现在、我将在代码中使用此 Input_Value、并根据需要执行必要操作。
--
谢谢。此致、
Jagdish。