单极性PWM和双极性PWM

单极性与双极性PWM模式
从调制脉冲的极性看,PWM又可分为单极性与双极性控制模式两种。
  单极性PWM模式
  产生单极性PWM模式的基本原理如图6.2所示。首先由同极性的三角波载波信号ut。与调制信号ur,比较(图6.2(a)),产生单极性的PWM脉冲(图6.2(b));然后将单极性的PWM脉冲信号与图6.2(c)所示的倒相信号UI相乘,从而得到正负半波对称的PWM脉冲信号Ud,如图6.2(d)所示。


   双极性PWM模式
     双极性PWM控制模式采用的是正负交变的双极性三角载波ut与调制波ur,如图6.3所示,可通过ut与ur,的比较直接得到双极性的PWM脉冲,而不需要倒相电路。


     与单极性模式相比,双极性PWM模式控制电路和主电路比较简单,然而对比图6.2(d)和图6.3(b)可看出,单极性PWM模式要比双极性PWM模式输出电压中、高次谐波分量小得多,这是单极性模式的一个优点。

HAL (Hardware Abstraction Layer) 是许多嵌入式Linux平台提供的软件库,它简化了对硬件的访问,包括PWM (Pulse Width Modulation) 控制。默认情况下,HAL可能会提供极性PWM,即信号从0V到最大电压再到0V。如果你需要设置极性PWM,通常意味着信号只会从0V切换到某个非零的最大值,不会返回到0V。 要在HAL环境中设置极性PWM,你需要做以下几个步骤: 1. **初始化PWM组件**:首先,确保你在初始化HAL时指定了正确的PWM配置,比如选择半工模式(Half-DutyCycle mode),以便只支持向占空比变化。 ```c hal_pwm_config_t config; config.polarity = HAL_PWM_POLARITY_HIGH_TO_LOW; // 设置高电平到低电平极性 config.frequency = YOUR_DESIRED_FREQUENCY; hal_pwm_init(&h PWM handle, &config); ``` 2. **配置通道**:对于每个需要调整的PWM通道,设置其占空比范围仅在0%到100%,并确保不会超过最大幅值。 ```c uint16_t duty_cycle = hal_pwm_get_current_duty_cycle(&PWM handle); // 获取当前占空比 duty_cycle = MIN(duty_cycle + desired_change, hal_pwm_get_max_duty_cycle(&PWM handle)); // 更新占空比不超过最大值 hal_pwm_set_duty_cycle(&PWM handle, duty_cycle); ``` 3. **处理中断或回调**:如果PWM有中断功能,确保你的中断处理程序仅在上升沿检测到向变化,并相应地更新占空比。 4. **注意边沿控制**:为了保证极性,可能需要外部电路配合,例如在GPIO上添加一个Schmitt触发器来确保输出信号的正确边沿。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值