PWM Subsystem
PWM 子系统 PWM 原理 利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,其本质是一种对模拟信号电平进行数字编码的方法。在嵌入式设备中,PWM 多用于控制马达、LED、振动器等模拟器件. 脉冲周期(T),单位是时间,ns, us ,ms。 脉冲频率(f),单位是赫兹(Hz),与脉冲周期成倒数关系,f=1/T。 脉冲宽度(W),简称“脉宽”,是脉冲高电平持续的时间。单位是时间,ns, us, ms。 占空比(D),脉宽除以脉冲周期的值。 W = ton T = ton + toff = 1/f D = ton / (ton+ toff) = ton / T PWM consumer /* include/linux/pwm.h */ int pwm_config(struct pwm_device *pwm, int duty_ns, int period_ns); int pwm_enable(struct pwm_device *pwm); void pwm_disable(struct pwm_device *pwm); int pwm_apply_state(struct pwm_device *pwm, const struct pwm_state *state); pwm_config,用于控制 PWM 输出信号的频率和占空比,其中频率是以周期(period_ns)的形式配置的,占空比是以有效时间(duty_ns)的形式配置的。 pwm_enable/pwm_disable,用于控制 PWM 信号输出与否。 pwm_apply_state需要定义一个pwm_state,可以一下子修改period/duty_cycle/polarity/enabled。...