富士通MB95F636H输出PWM


终于毕业了,想想要不是毕设导师不让我实习,我可能也不会进入这一行。还好之前做过一些竞赛,所以逃脱导师魔爪后很快就找到了一份单片机的工作。

PWM

进入公司的第一个任务是做软启动,就是让电机慢慢转起来。学过单片机的可能马上就能想到,这不就是单片机吗!然后我就屁颠屁颠的去看这款富士通636H的数据手册了。

PPG

手册上说636H芯片使用PPG输出PWM波。然后万事找百度,好像只有富士通的单片机有PPG。。。好在官方给出了说明。

The 8/16-bit PPG is an 8-bit reload timer module that uses pulse output control based on timer operation to perform PPG output. The 8/16-bit PPG also operates in cascade (8 bits + 8 bits) as 16-bit PPG.

用我蹩脚的英语翻译一下大概意思是,8位/ 16位PPG是一个8位重载定时器模块,它使用基于定时器操作的脉冲输出控制来执行PPG输出。 8位/ 16位PPG也以16位PPG级联(8位+ 8位)。

然后看他如何产生PWM,和一般产生PWM的方法是一样的!

寄存器配置

这款单片机一共有3个通道,6个输出,分别是PPG00、PPG01、PPG10、PPG11、PPG20、PPG21,下图显示了各个寄存器的功能。

PPS寄存器用来配置PWM周期,PDS寄存器用来配置PWM的占空比,即占空比=PDS/PPS。PPGS和REVC的每一位都代表一个输出,即bit0表示PPG00,bit1表示PPG01,以此类推。当PPGS对应的位为1时启动该输出的计数,即开启PWM模式。REVC表示输出是否反相,对应位为1则该输出反相,否则不反相。

PC寄存器是最重要的寄存器。PCn1和PCn0的配置略有不同,毕竟PCn1是能成为16位PPG高位的存在。

下图是PCn1配置寄存器的各位功能,其中bit6和bit7无意义。

下图展示了PCn0的各个位的功能。

配置好这些寄存器就能输出PWM波了。

PC11 = 0x0b;
PPS11 = 100;
PDS11 = 20;
REVC_REV11 = 0;
PPGS_PEN11 = 1;

上述代码就演示了如何利用PPG11输出一个8分频,占空比为20%的PWM波。
需要注意的是,636H提供了两套引脚输出PPG。对SYSC_PPGSEL进行配置。下图显示了不同的配置对应的引脚 。

利用定时器产生PWM

虽然产生了PWM,用示波器看也没问题,但是!驱动不了电机!看了原理图,不知道是不是一段高电平,一段PWM所以无法驱动原因。可是板子都打好了,我又不能改引脚,怎么办。只能自己造PWM了啊。

其实自己造PWM很简单,就是使用定时器,在定时器中翻转点评就可以了,我写了两种方法。

第一种,定义一个短时间t的定时器,然后定义进入多少次定时器为一个周期。比如定义100次为一个周期,前20次输出高电平,后80次输出低电平,那么该PWM的周期就为100×t,占空比为20%。这种方法的优点是无需重复配置定时器,缺点是无法实现无级调节占空比。

第二种,进入定时器中断后输出高电平,然后配置定时器时间,改变下一次进入定时器中断的时间,下一次进入定时器中断后输出低电平,然后重新配置定时器时间。比如这一次进入定时器,先置高电平,然后配置定时器时间为20ms,下一次进入定时器中断后置低电平,然后配置80ms,这样就能产生一个周期为100ms,占空比为20%的PWM波了。这种方法的优点是能够实现无级调节占空比,缺点是每次都需要重新配置定时器,有些单片机在定时器运行过程中是无法更改定时器配置的。

经过测试,第一种方法能够完美实现软启动的要求,第二种方法会使灯先亮,然后变暗再缓缓变亮,分析原因可能是发光二极管导通电压比较大,而第一种方法一开始就输出比较大的占空比(5次中断为一周期,最低也有20%的占空比),所以没有这种现象。

富士通MB95F636H输出PWM相关推荐

  1. stm32 输出PWM

    脉冲宽度调制(PWM),是英文"Pulse Width Modulation"的缩写,简称脉冲调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术.STM32的定 ...

  2. STM32通用定时器输出PWM控制舵机 —— 重装载值、比较值、当前值

    参考:stm32 定时器输出PWM原理及工作原理+控制舵机 作者:点灯小哥 发布时间: 2021-03-09 23:17:52 网址:https://blog.csdn.net/weixin_4601 ...

  3. STM32H743+CubeMX-定时器TIM输出PWM(Out Compare模式) + 中断

    文章目录 一.前言 二.CubeMX 2.1.NVIC Settings 2.2.生成代码 三.代码 3.1.tim.c 四.DEBUG 五.细节补充 一.前言 STM32H743+CubeMX-定时 ...

  4. STM32H743+CubeMX-定时器TIM输出PWM(PWM Generation模式)+ 中断

    文章目录 一.前言 二.CubeMX 2.1.Mode and Parameter Settings 2.2.NVIC Settings 2.3.生成代码 三.代码 3.1.tim.c 3.2.mai ...

  5. STM32H743+CubeMX-低功耗定时器LPTIM输出PWM波

    文章目录 一.前言 二.CubeMX 2.1.Clock Configuration 2.2.LPTIM2 Mode and Configuration 2.3.Parameter Settings ...

  6. STM32H743+CubeMX-定时器TIM输出PWM(PWM Generation模式)

    文章目录 一.前言 二.CubeMX 2.1.Clock Configuration 2.2.TIM8 Mode and Configuration 2.3.Parameter Settings Co ...

  7. STM32H743+CubeMX-定时器TIM输出PWM(Output Compare模式)

    文章目录 一.前言 二.CubeMX 2.1.Clock Configuration 2.2.TIM8 Mode and Configuration 2.3.Parameter Settings Co ...

  8. STM32通用定时器输出PWM

    1 .TIMx简介 通用定时器是一个通过可编程预分频器驱动的16位自动装载计数器构成. 它适用于多种场合,包括测量输入信号的脉冲长度(输入捕获)或者产生输出波形(输出比较和 PWM). 使用定时器预分 ...

  9. stm32F051系列 单片机引脚定时器输出pwm波形控制风扇转速

    概述:stm32的每个引脚都有其自带的特殊功能,有定时器输出功能的引脚可以输出pwm.如果没有的也可以io口模拟输出,如果非要较真的话,理论上可以算是每个引脚都能输出PWM,但一般我们都使用带定时器输 ...

  10. STM32F103 PA8不能输出PWM波问题

    在调试STM32F103单片机输出PWM波时,单独测试PA8和PA11输出PWM波(也就是TIM1_CH1和TIM1_CH4),输出PWM波正常.然后用串口1输出数据时,发现一个问题,串口输出正常,但 ...

最新文章

  1. 西门子stl语言指令_STEP7项目的JL跳转指令你会用吗?
  2. bigquery_在BigQuery中链接多个SQL查询
  3. leetcode 877. 石子游戏(dp)
  4. NOIP 2011 Day2
  5. 码上用它开始Flutter混合开发——FlutterBoost
  6. MySQL笔记-删除session,删除阻塞任务
  7. 虚拟机机操作系统已禁用 cpu。请关闭或重置虚拟机。_黑科技教学丨Win10竟然内置了一台虚拟机?教你如何玩转它...
  8. Java核心技术卷I基础知识1.2.7 可移植性
  9. Hybrid 通信方式
  10. Spring配置补充
  11. java中的控制执行流程
  12. mac monterey、big sur、Catalina原生heic、jpg壁纸,并将壁纸拷贝到系统文件夹下教程
  13. H5如何返回微信小程序
  14. 云erp系统、进销存软件、仓储管理系统之间有哪些区别
  15. 有哪些值得推荐的好的算法书?
  16. 一生不要瞎忙,只要做对三件事
  17. 干细胞研究最新进展(2022年4月)
  18. 传奇盗号木马清除手记(转)
  19. 微信公众号怎么添加附件?
  20. extract($_POST, EXTR_SKIP)讲解

热门文章

  1. 数字图像处理概述PPT学习1
  2. 我对jeecg-boot项目的理解、使用心得和改进建议
  3. iOS 字体大小适配
  4. linux 记账软件下载,净蓝记账app手机版下载-净蓝记账软件官方版v1.0.02-Linux公社...
  5. 金蝶财务软件有哪些缺点
  6. 分子动力学软件LAMMPS学习--常见错误运行
  7. pcap文件linux怎么打开,pcap文件用什么打开
  8. 2018尚硅谷Git和GitHub视频教程
  9. java汉字拼音首字母的获取解决方案
  10. 直播app开发必备五步流程