S3C2410的PWM控制.ppt

上传人:sh****n 文档编号:6410655 上传时间:2020-02-25 格式:PPT 页数:28 大小:592.55KB
返回 下载 相关 举报
S3C2410的PWM控制.ppt_第1页
第1页 / 共28页
S3C2410的PWM控制.ppt_第2页
第2页 / 共28页
S3C2410的PWM控制.ppt_第3页
第3页 / 共28页
点击查看更多>>
资源描述
第十一章S3C2410的PWM控制 主要内容 11 1PWM定时器概述11 2PWM输出电平控制11 3PWM定时器控制寄存器11 4PWM参考程序 11 1PWM定时器概述 11 1 1什么是脉宽调制 Pulse WidthModulation 在嵌入式控制系统中 有许多场合需要直流电机做驱动 我们知道 直流电机给定直流电压就可以旋转 给定的电压高 电机转速就高 给定的电压低 电机转速就慢 这样控制给定电压大小就可以控制电机的转速 11 1 2S3C2410的脉宽调制和PWM控制 S3C2410有5个16位定时器 其中定时器0 1 2 3具有脉冲宽度调制 PWM 功能 定时器4具有内部定时作用 但是没有输出引脚 定时器0具有死区生成器 可以控制大电流设备 定时器T0和T1共用一个8位预定标器 定时器T2 T3和T4共用另一个8位预定标器 每个定时器都有一个时钟分频器 信号分频输出有5种模式 1 2 1 4 1 8 1 16和外部时钟TCLK 定时器结框如图11 1所示 每一个定时器都有一个自己的用定时器时钟驱动的16位减法计数器 当减法计数器减到0时 就会产生一个定时器中断来通知CPU 定时器操作完成 当定时器减法计数器减到0时 相应的TCNTBn的值被自动重载到减法计数器中继续下次操作 然而 如果定时器停止了 比如在运行时通过清除TCON中定时器使能位来中止定时器的运行 则TCNTBn的值不会被重载到减法计数器中 TCMPBn的值用于脉冲宽带调制 PWM 当定时器的减法计数器的值和TCMPBn的值相等时 定时器输出改变输出电平 因此 比较寄存器决定了PWM的占空比 11 1 3S3C2410定时器特性 5个16位定时器 2个8位预定标器和2个4位分频器 可编程改变PWM输出占空比 自动重载模式或者单个脉冲输出模式 具有死区生成器 自动重载与双缓冲 S3C2410具有双缓冲功能 能在不中止当前定时器运行的情况下 重载下次定时器运行参数 所以尽管新的定时器的值被设置好了 当前操作仍能成功完成 定时器值可以被写入定时器计数缓冲寄存器 TCNTBn 当前计数器的值可以从定时器计数观察寄存器 TCNTOn 读出 读出的TCNTBn值并不是当前计数器的值 而是下次重载的计数器值 TCNTn的值等于0时 自动重载 把TCNTBn的值装人TCNTn 只有当自动重载允许并且TCNTn的值等于0时才会自动重载 如果TCNTn 0 自动重载禁止 则定时器停止运行 具体如图11 2所示 以下几个步骤给出了更新过程 向TCNTBn和TCMPBn写入初始值 置位相应定时器的手动更新位 不管是否使用倒相功能 推荐设置倒相位 启动定时器 清除手动更新位 11 1 4定时器操作示例定时器操作示例如图11 3所示 A 允许自动重载功能 TCNTBn 160 TCMPBn 110 置位手动更新位 配置倒相位 手动更新位被置位后 TCNTBn和TCMP Bn的值被自动装人了TCNTn和TCMPn 之后 设置TCNTBn和TCMPBn分别等于80和40 B 启动定时器清零手动更新位 取消倒相功能 允许自动重载 定时器开始启动减法计数 C 当TCNTn和TCMPn的值相等时 TOUT输出电平由低变高 D 当TCNTn的值等于0时产生中断 并在下一个时钟到来时把TCNTBn的值装人暂存器中 E 在中断服务子程序中 把80和40分别装入TCNTBn和TCMPBn F 当TCNTn和TCMPn的值相等时 TOUT输出电平由低变高 G H 当TCNTn 0时 产生中断 把TCNTBn 80 和TCMPBn 60 的值分别自动装入TCNTn和TCMPn 并在在中断服务子程序中 禁止自动重载和中断请求来中止定时器运行 I 当TCNTn和TCMPn的值相等时 TOUT输出电平由低变高 J K 尽管TCNTn 0 但是定时器停止运行 也不再发生自动重载操作 因为定时器自动重载功能被禁止 不再产生新的中断 11 1 5死区生成器当PWM控制用于电源设备时需要用到死区功能 这个功能允许在一个没备关闭和另一个设备开启之间插入一个时间间隔 这个时间间隔可以防止两个设备同时关闭 同时开启或一个关闭的同时另一个开启 TOUT0是定时器0的PWM输出 假定nTOUT0是TOUT0的倒相信号 如果死区功能被允许 TOUT0和nTOUT0的输出波形就变成了TOUT0 DZ和nTOUT0 DZ 如图11 4所示 nTOUT0 DZ可在TOUT1脚上产生 有了死区间隔 TOUT0 DZ和nTOUT0 DZ关闭和开启就不会同时进行 死区间隔时间可以通过软件设定 达到防止两个设备同时动作目的 11 2PWM输出电平控制 11 2 1PWM工作原理 当我们把一个数值放入TCNTBn后 启动定时器 使能重载功能 TCNTBn把该数放入减法计数器 减法计数器开始按分频值进行减1操作 减法计数器到0时 相应的TCNTBn的值被自动重载到减法计数器中继续下次操作 这样在定时器的输出会产生连续的锯齿波 如图11 5中Vtcnt 当我们把比较值放入TCMPBn后 该值会在定时器的输出产生一个负的电压 如图11 5中Vtcmpb所示 TCMPBn越大 Vtcmpb的绝对值越小 定时器的输出电压Vtout Vtcnt Vtcmpb 当Vtcnt大于Vtcmpb时Vtout输出电压变正 当Vtcnt小于Vtcmpb时Vtout输出电压变负 我们可以在程序中如计数器到0中断服务程序中随时修改TCMPBn 使Vtcmpb大小改变 进而控制Vtcnt的正负比率 也就是改变PWM的占空比 11 2 2PWM输出控制1 输出电平倒相PWM在不改变占空比情况下 输出电平还可以倒相 即把输出电平取反 在PWM控制寄存器中有一个逆变位 通过修改逆变位值可方便的实现倒相 2 编程改变输出频率PWM的输出频率很容易改变 具体见下面程序 3 编程改变输出占空比 11 3PWM定时器控制寄存器 11 3 1定时器配置寄存器0 11 3 2定时器配置寄存器1 定时器输入时钟频率 fTCLK fPCLK Prescaler 1 divider其中 Prescaler为预定标值 0 255 分频器divider 表11 3中的4选1开关 的分频值为2 4 8和16 PWM输出时钟频率 定时器输入时钟频率 fTCLK 定时器计数缓冲器值 TCNTB PWM输出占空比 定时器比较缓冲器值 TCMPB 定时器计数缓冲器值 TCNTB 11 3 3减法缓冲寄存器和比较缓冲寄存器定时器减法缓冲寄存器 TCNTBn 和比较缓冲寄存器 TCMPBn 定义如表11 4所列 11 3 4定时器控制寄存器定时器控制寄存器 TCON 如表11 5所列 11 4PWM参考程序 参考程序涉及到SMDK2410开发板 该板是三星公司为配合S3C2410开发而推出的实验板 国内各公司研制的开发板大多参照该板 SMDK2410TOUT配置 GPB4 TCLK0 GPB3 TOUT3 GPB2 TOUT2 GPB1 TOUT1 GPB0 TOUT0 GPG11 TCLK1 GPH9 CLKOUT0 在程序中对B口 H口要初始化 详细程序见书
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!