您好、TI、
我正在进行一个项目、使用比例电磁阀控制线性控制阀。 我们在 PWM 模式(PWM 输出模式:7 - PWM 复位/设置)中使用 TimerA 来控制比例电磁阀相对于设定值的作用。 在这里、生成的 PWM 输出会导致电磁阀线圈的电流随着 PWM 占空比的增加或减少而增加或减少。 占空比的最小限制在35%至40%之间、任何占空比低于此值都会导致电磁阀关闭。 目前、在使用电磁阀测试控制时、观察到电磁阀在35%至40%的可变占空比下停止打开。 现在、根据比例电磁阀的数据表、生成的 PWM 还应包含叠加在 PWM 频率上的抖动频率、以实现更好的线性度和迟滞。 因此、我认为需要抖动频率、以便电磁阀在电磁阀数据表中给出的40%左右的固定占空比下停止打开。 因此、我可以根据设定的值准确地停止阀门、而不会出现任何控制波动
为了实现 PWM 和增加抖动频率、我将在软件中执行以下操作
如下所示初始化 TImerA:
TA0CCR0 =根据 PWM 的时间周期= 32000;
TA0CCTL1 = OUTMOD_7 + CCIE;//PWM 输出模式:7 - CCIFG 的 PWM 复位/设置和中断使能
TA0CTL = tassel_2 + MC_1 + TACLR + ID__4;//总时间周期 = SMCLK/4 = 16MHz/4 = 4MHz。 PWM 的定时器周期= TA0CCR0 /总时间周期= 32000/4M = 8ms。 PWM 频率= 125Hz
现在、 中断处理程序内的控制例程内(PWM 的每个定时器溢出事件后、针对 TImerA 的中断处理程序)
int16 x = TA0CCTL1;//存储旧 的 TA0CCTL1 值
TA0CCTL1 = OUTMOD_5 + CCIE;//保持输出复位以避免对 PWM 输出的任何干扰
TA0CCR1 =占空比;//占空比、根据计算结果和针对抖动添加的设置;
TA0CCTL1 = x;//恢复旧 的 TA0CCTL1 值
如上所示、为了增加抖动频率、我将在收到由 PWM 输出中的计时器溢出引起的中断后更新计时器处理程序内的占空比
这样做是为了将抖动频率作为 PWM 频率的倍数来实现
我有以下问题:
1) 1)我想知道是否能够使用上述方法将抖动频率叠加为 PWM 频率的多个因子。 PWM 已经实现、没有启用任何中断。在这里、我需要启用中断
2) 2)是否还有其他方法像上述方法一样添加抖动频率、这种方法在处理中断时会占用 CPU 时间、从而获得更高频率的 PWM
3) 3)我还想生成高达10KHz 的高频 PWM。 我无法实现、因为 使用的输出驱动器电路是高频固态继电器(SSR )、由于 SSR 电路中的延迟、我能够在螺线管线圈的输入端实现仅高达500Hz 的最大频率。 是否有任何可为比例电磁阀产生高频 PWM 的输出驱动器电路可用