打印

用STM32是否能实现:输出一组频率占空比50%,100~150KHZ

[复制链接]
4846|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mikezhong|  楼主 | 2009-2-25 08:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好,用STM32是否能实现:输出一组频率占空比50%,100~150KHZ,可调步进精确到1Hz,就是最小可以1HZ的变化.
沙发
香水城| | 2009-2-25 08:41 | 只看该作者

对于STM32来说,可以很容易地产生100~150kHz的PWM波形

使用定时器的PWM输出模式即可。

使用特权

评论回复
板凳
zheng79| | 2009-2-25 11:11 | 只看该作者

最小可以1HZ的变化?

我也想知道怎么实现

使用特权

评论回复
地板
香水城| | 2009-2-25 11:58 | 只看该作者

对不起,只看到标题,没有看清这个1Hz的变化

1Hz/150kHz = 0.00000667 = 0.000667%;目前STM32做不到这个1Hz的调节精度。

使用特权

评论回复
5
mikezhong|  楼主 | 2009-2-25 13:24 | 只看该作者

谢谢.

这个1HZ的精确度,,,,确实是不好弄啊.

使用特权

评论回复
6
香水城| | 2009-2-25 14:03 | 只看该作者

最小可以1Hz的变化?楼主这个要求太高了吗?

通常MCU产生PWM波形的方法都是通过数一个时钟的脉冲实现,假定这个时钟是10GHz,我们可以算算是否能达到楼主的要求:

要产生150kHz的脉冲,时钟需要计数66666.67次,取整得到66667次,误差为:
   150,000 - (10,000,000,000 / 66667) = 0.75Hz

要产生150001Hz的脉冲,时钟需要计数66666.22次,取整得到66666次,误差为:
   150,001 - (10,000,000,000 / 66666) = 0.5Hz

通过计算可以看到误差太大,满足不了要求。

结论:10GHz的时钟频率不能达到PWM输出在1Hz精度变化的要求。

谁知道有超过10GHz的MCU吗?

使用特权

评论回复
7
mikezhong|  楼主 | 2009-2-25 17:58 | 只看该作者

哈哈.

呵呵.

使用特权

评论回复
8
lufeijian| | 2009-2-28 11:53 | 只看该作者

用STM32是可以实现100KHZ~150KHZ步进为1HZ的频率

150KHZ-100KHZ = 50000HZ
步进: 50000HZ/65536 = 0.762939453125HZ
方法是:

STM32去控制16位的DAC,DAC去控制VCO,再由STM32去检测VCO的输出,实现PID调节来稳定VCO的输出.但这样一来,设计重点就在VCO上面了.

哈哈,

使用特权

评论回复
9
haziyisi| | 2011-9-21 10:52 | 只看该作者
老板让我做一个步进为0.1k,中心频率200k,的方波,也是用STM32,步进只做到了1k,看来是不能实现了:(

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

51

主题

250

帖子

1

粉丝