PWM在ARMLinu中的原理和蜂鸣器驱动实例开发.docx
《PWM在ARMLinu中的原理和蜂鸣器驱动实例开发.docx》由会员分享,可在线阅读,更多相关《PWM在ARMLinu中的原理和蜂鸣器驱动实例开发.docx(14页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、PWM 在ARM Linux 中的原理和蜂鸣器驱动实例开发一、开发环境 主 机:VMWare-Fedora 9 开发板:Mini2440-64MB Nand, Kernel:2.6.30.4 编译器:arm-linux-gcc-4.3.2二、PWM 怎样工作在 ARM Linux 中1. 什么是 PWM?PWM(脉冲宽度调制)简洁的讲是一种变频技术之一,是靠转变脉冲宽度来掌握输出电压,通过转变周期来掌握其输出频率。假设还不是很清楚,好吧,来看看我们实际生活中的例子,我们的电风扇为什么扭一下按扭,风扇的转速就会发生变化;调一下收音机的声音按钮,声音的大小就会发生变化;还有待会儿我们要讲的蜂鸣器也
2、会依据不同的输入值而发出不同频率的叫声等等! !这些都是PWM 的应用,都是通过PWM 输出的频率信号进展掌握的。2. ARM Linux 中的 PWM依据 S3C2440的手册介绍,S3C2440A 内部有5个16位的定时器,定时器0、1、2、3都带有脉冲宽度调制功能(PWM),定时器4是一个没有输出引脚的内部定时器,定时器0有一个用于大电流设备的死区生成器。看以下图解释吧!由 S3C2440的技术手册和上面这幅构造图,我们来总结一下2440内部定时器模块的特性吧:1) 共5个16位的定时器,定时器0、1、2、3都带有脉冲宽度调制功能(PWM);2) 每个定时器都有一个比较缓存存放器 (TC
3、MPB)和一个计数缓存存放器(TCNTB);3) 定时器0、1共享一个8位的预分频器(预定标器),定时器2、3、4共享另一个8位的预分频器(预定标器),其值范围是0255;4) 定时器0、1共享一个时钟分频器,定时器2、3、4共享另一个时钟分频器, 这两个时钟分频器都能产生 5种不同的分频信号值 (即:1/2、1/4、1/8、1/16和TCLK);5) 两个8位的预分频器是可编程的且依据装载的值来对 PCLK 进展分频,预分频器和钟分频器的值分别存储在定时器配置存放器 TCFG0和TCFG1中;6) 有一个 TCON 掌握存放器掌握着全部定时器的属性和状态,TCON 的第07位掌握着定时器0、
4、第811位掌握着定时器1、第1215位掌握着定时器2、第1619位掌握着定时器3、第2022位掌握着定时器4。还是依据 S3C2440手册的描述和上图的构造,要开头一个 PWM 定时器功能的步骤如下(假设使用的是第一个定时器):1) 分别设置定时器0的预分频器值和时钟分频值,以供定时器0的比较缓存存放器和计数缓存存放器用;2) 设置比较缓存存放器 TCMPB0和计数缓存存放器 TCNTB0的初始值(即定时器0的输出时钟频率);3) 关闭定时器0的死区生成器(设置 TCON 的第4位);4) 开启定时器0的自动重载(设置 TCON 的第3位);5) 关闭定时器0的反相器(设置 TCON 的第2位
5、);6) 开启定时器0的手动更TCNTB0&TCMPB0功能(设置 TCON 的第1位);7) 启动定时器0(设置 TCON 的第0位);8) 去除定时器0的手动更TCNTB0&TCMPB0功能(设置 TCON 的第1位)。由此可以看到,PWM 的输出频率跟比较缓存存放器和计数缓存存放器的取值有关,而比较缓存存放器和计数缓存存放器的值又跟预分频器和时钟分频器的值有关;要使用 PWM 功能其实也就是对定时器的相关存放器进展操作。手册上也有一个公式:定时器输出频率 = PCLK / 预分频器值 + 1 / 时钟分频值。下面我们来通过一个蜂鸣器的实例来说明 PWM 功能的使用。三、蜂鸣器驱动实例1.
6、 蜂鸣器的种类和工作原理一、开发环境 主 机:VMWare-Fedora 9 开发板:Mini2440-64MB Nand, Kernel:2.6.30.4编译器:arm-linux-gcc-4.3.2二、PWM 怎样工作在ARM Linux 中蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。有的压电式蜂鸣器外壳上还装有发光二极管。多谐振荡器由晶体管或集成电路构成。当接通电源后 1.515V 直流工作电压,多谐振荡器起振,输出 1.52.5kHZ 的音频信号,阻抗匹配器推动压电蜂鸣片发声。电磁式蜂鸣器由振荡器、电磁线圈
7、、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。有源蜂鸣器和无源蜂鸣器的区分:这个“源”字是不是指电源,而是指震荡源, 即有源蜂鸣器内有振荡源而无源蜂鸣器内部没有振荡源。有振荡源的通电就可以发声,没有振荡源的需要脉冲信号驱动才能发声。额外学问:简洁蜂鸣器的制作方法1) 制备电磁铁 M:在长约6厘米的铁螺栓上绕100圈导线,线端留下5厘米作引线,用透亮胶布把线圈粘好,以免线圈松开,再用胶布把它粘在一个盒子上,电磁铁就做好了;2) 制备弹片P:从铁罐头盒上剪下一条宽约厘米的长铁片,弯成直角,
8、把电磁铁的一条引线接在弹片上,再用胶布把弹片紧贴在木板上;3) 用曲别针做触头Q,用书把曲别针垫高,用胶布粘牢,引出一条导线,如图连接好电路;4) 调整M 与 P 之间的距离通过移动盒子,使电磁铁能吸引弹片,调整触点与弹片之间的距离,使它们能恰好接触,通电后就可以听到蜂鸣声。2. 开发板上蜂鸣器原理图分析由原理图可以得知,蜂鸣器是通过 GPB0 IO 口使用 PWM 信号驱开工作的, 而 GPB0口是一个复用的IO 口,要使用它得先把他设置成 TOUT0 PWM 输出模式。3. 编写适宜开发板的蜂鸣器驱动程序,文件名:my2440_pwm.c/*=Name : my2440_pwm.c Aut
9、hor : Huang Gang Date : 25/11/09 Copyright : GPLDescription : my2440 pwm driver=*/#include #include #include #include #include #include #include #include #include #include #include #define PWM_MAJOR 0 /主设备号#define PWM_NAME “my2440_pwm“ /设备名称static int device_major = PWM_MAJOR; /系统动态生成的主设备号/翻开设备stati
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PWM ARMLinu 中的 原理 蜂鸣器 驱动 实例 开发
限制150内