蜂鸣器的工作原理
有源蜂鸣器
:高电平响,低电平不响。一般使用GPIO来控制给高低电平。
无源蜂鸣器
:加交变电流后,高低电平频繁变化,高电平时线圈接通电生磁,吸引永磁铁,低电平时无电生磁,排斥永磁铁,以此产生永磁铁的振动,当振动频率在20-20000Hz之间人耳能听到声音。
什么是PWM
通过Delay和GPIO的控制产生高低电平,由于CPU主要去执行Delay函数,太耗资源,因此我们使用PWM的方式去产生高低电平。
PWM在SOC上,由PWM生产高低电平信号而不用使用CPU,节约CPU资源。
4412下的PWM控制器
电路原理图分析
:通过Dev电路原理图可知,蜂鸣器正极连着VSYS,负极通过三极管接地。只要三极管输出高电平就导通接地,输出低电平就断开接地。高低电平的控制由MOTOR_PWM
。
在4412上对应的是GPD0_0,timer0
4412有5个32位的PWM,timer 0,1,2,3包括了一个能驱动外部IO信号的功能,timer0有个可选的死亡区发生器的功能,它能支持一个大电流的设备。timer4没有外部引脚。
timers使用PCLK时钟源(100M)。timer0,1共享一个可编程的8位预分频器,它能为PCLK提供一级分频。timer2,3,4共享另一个8位的预分频器。每个timer各自有一个二级分频器,它能提供2,4,8,16倍的二级分频。
PWM的原理:先设置两个寄存器,分别是设置整个周期的和设置高电平时间的。把周期加载给递减计数器,并将输出变成低电平。递减完低电平时间后,将输出变成高电平。当递减到0,重新加载周期给递减计数器,如此往复产生高低电平。