尊敬的所有人:
我尝试配置模拟比较器以实现过流保护、但我遇到了一些问题。 以下是我测试的步骤。
我配置了 FaultMux 寄存器。 我使用外部电源为相应的 ADC 引脚提供电压。 当电压低于阈值时、PWM 开启且高于阈值、PWM 关闭。 这意味着我的配置正常。
下面是配置:
FaultMuxRegs.ACOMPCTRL0.bit.ACOMP_B_THRESH = 85;
FaultMuxRegs.ACOMPCTRL0.bit.ACOMP_EN = 1;//启用模拟比较器
FaultMuxRegs.ACOMPCTRL0.bit.ACOMP_B_SEL = 0;//将模拟比较器 B 的基准配置为 ACOMP_B_THRESH
FaultMuxRegs.ACOMPCTRL0.bit.ACOMP_B_POL = 1;//检测到事件时比较器的极性。FaultMuxRegs.DPWM0FLTABDET.bit.ACOMP_B_EN = 1;
FaultMuxRegs.DPWM0FLTADDET.bit.ACOMP_B_EN = 1;
Dpwm0Regs.DPWMFLTCTRL.bit.ALL_FAULT_EN = 1;
Dpwm0Regs.DPWMFLTCTRL.bit.AB_MAX_COUNT = 4;
2.我测试了双向电流感测放大器。 电流感应放大器的输出与模拟比较器之间没有连接。 当我的转换器运行时、我检查了电流感应放大器的输出、它工作正常。 我的意思是、当没有电流流动时、它提供了1.25V 的偏移。 我在电流方面对其进行了双向测试、并提供了正确的输出。 所以这里没有问题。
我连接了电流感应放大器和模拟比较器的输出、但我注释了最后两行 DPWM0Regs 行。 如下所示。 同样没有问题。 我再次得到1.25V 偏移、当我操作转换器时、将获取适当的输出值。
FaultMuxRegs.ACOMPCTRL0.bit.ACOMP_B_THRESH = 85;
FaultMuxRegs.ACOMPCTRL0.bit.ACOMP_EN = 1;//启用模拟比较器
FaultMuxRegs.ACOMPCTRL0.bit.ACOMP_B_SEL = 0;//将模拟比较器 B 的基准配置为 ACOMP_B_THRESH
FaultMuxRegs.ACOMPCTRL0.bit.ACOMP_B_POL = 1;//检测到事件时比较器的极性。FaultMuxRegs.DPWM0FLTABDET.bit.ACOMP_B_EN = 1;
FaultMuxRegs.DPWM0FLTADDET.bit.ACOMP_B_EN = 1;
//Dpwm0Regs.DPWMFLTCLL.bit.ALL_FAULT_EN = 1;
//Dpwm0Regs.DPWMFLTCLL.bit.AB_MAX_COUNT = 4;
在最后一步中、上一步中的注释行未注释、电流感测放大器和模拟比较器的连接仍然存在。 当我只向电流感应放大器供电而不向转换器供电时、电流感应放大器的输出突然跳至4V、所有 PWM 都关闭。
是配置问题还是由电流感应放大器引起的问题?
如果有人帮助我、我将不胜感激。 非常感谢您的参与。
此致、
Merih