各位大虾,最近新接触瑞萨产品,碰到了一个小问题,就是我得不到500HZ的频率输出波形,希望各位指点一下
问题:MCU OSC =8MHZ,用定时器F实现输出频率F=500HZ ,T=1/F=2msec,占空比duty ratio(高/低)=20一个波形。
我是这样做的,当然碰到了问题
(1) 使用定时器F 的输出比较功能,从TMOFH 输出管脚进行PWM 输出。
(2) PWM 输出波形的周期由8 位定时器计数器FH(TCFH)的溢出周期设定。
(3) PWM 输出波形的High 电平宽度由8 位输出比较寄存器FH(OCRFH)设定。
我通过系统时钟分频TCFH=8MHZ/32=0.25MHZ,即4US的时间周期,(当然也可以使用16或者8等等分频,但是那更加达不到2MS了,最多32分频)
通过文档技术手册给出的公式
周期=256×4US=1.024MS,那么这样也就达不到2MS的我所希望的值,要想得到2MS我就必须有能够分后后得到7.8US左右的时间周期,即TCFH周期为7。8US左右。
谁能指点我一下啊,十分感谢。
1楼
先说明一下本人对H8不熟悉。 根据要求,频率为500Hz的占空比为20的波形,即高电平约为1904.76us,低电平为95.24us 通常我们作PWM波形,对8bit定时器而言,在周期定下之前,且定时器输入时钟要尽可能频率高,以满足波形精度要求。TimerF可以以CPU时钟的32,16,4,2分频输入. 正如您所说,因为您要求的周期比较长,2ms,不管选那个频率,都不能满足您500Hz的要求,您要用TimerF的该功能,此时必须选择更低的输入时钟,比如降低CPU时钟。
2楼
谢谢 renesasstk 回答,问题已经解决了,正如你所说的就是降低频率,MCU OSC =8MHZ ,其实得到的系统时钟还要在MCU OSC 的基础上两分频,也就是说后面的32,16,4,2分频是在4MHZ 基础上再分的 ,那么我需要的,7.8US就得到了,32分频就可以得到,32/4MHZ=8US,能到所需要的。
3楼
有参考设计把