• 嵌入式学习笔记(39)蜂鸣器和PWM定时器编程实践


    7.4.1蜂鸣器的工作原理

    (1)蜂鸣器里边有2个金属片,离得很近但没挨着。没电的时候两个金属片在弹簧本身的张力作用下分开彼此平行,有电的时候两边分别充电,在异性电荷的吸力作用下两个片挨着。

    (2)我们只要以快速的频率给蜂鸣器的正负极供电、断电,进行这样的循环,蜂鸣器的两个弹簧片就会挨着分开挨着分开···形成敲击,发出声音。

    (3)人耳能听见的声音频率是有限的(20Hz~20000Hz),我们实验时一般给个2KHz的频率。

    (4)频率高低会影响声音的音频,一般音频越低声音听起来越低沉、音频越高听起来越尖锐。

    (5)据以上分析,只要用PWM波形的电压信号来驱动蜂鸣器,把PWM波形的周期T设置为要发出的声音信号的1/频率即可;PWM的占空比只要确保能驱动蜂鸣器即可(驱动能力问题,一般引脚驱动能力都不够,所以蜂鸣器会额外用三极管来放大来供电)。

    7.4.2原理图和硬件信息

    (1)查原理图知,开发板底板上的蜂鸣器通过GPD0_2(XpwmTOUT2)引脚链接在SoC上。

    (2)GPD0_2引脚通过限流电阻接在三极管基极上,引脚有电蜂鸣器就会有电(三极管导通);引脚没电蜂鸣器就会没电(三极管关闭)。我们软件只要控制GPD0_2引脚的电平产生PWM波形即可。

    (3)GPD0CON(0xE02000A0),要把bit8~bit11设置为0b0010(功能选择为TOUT_2,就是把这个引脚设置为PWM输出功能)。

    (4)从GPD0_2引脚可以反推出使用的是timer2这个PWM定时器。

    7.4.3 PWM定时器的主要寄存器

    TCFG0、TCFG1、CON、TCNTB2、TCMPB2、TCNTO2

    注:PWM定时器产生PWM波形是不需要中断干预的

    嵌入式物联网的学习之路非常漫长,不少人因为学习路线不对或者学习内容不够专业而错失高薪offer。不过别担心,我为大家整理了一份150多G的学习资源,基本上涵盖了嵌入式物联网学习的所有内容。在评论区输入“嵌入式”,即可0元领取学习资源,让你的学习之路更加顺畅!记得点赞、关注、收藏、转发哦!

  • 相关阅读:
    21.3 Python 使用DPKT分析数据包
    YAML 学习笔记
    面向对象设计原则-一句话总结设计原则
    微信小程序云开发入门详细教程
    MediaCodec源码分析 createByCodecName流程
    Spring MVC 接受参数用法 @RequestBody 接收数组、List 参数、@Deprecated 标记废弃方法
    openGauss 6.0.0 一主二备集群安装及使用zcbus实现Oracle到openGauss的数据同步
    写个俄罗斯方块,感受嵌入式linux应用开发
    【Redis】初识Redis
    4.8 playwright实现页面及接口的自动化
  • 原文地址:https://blog.csdn.net/m0_70888041/article/details/133456973