大家好,用STM32是否能实现:输出一组频率占空比50%,100~150KHZ,可调步进精确到1Hz,就是最小可以1HZ的变化.
对于STM32来说,可以很容易地产生100~150kHz的PWM波形
使用定时器的PWM输出模式即可。
对不起,只看到标题,没有看清这个1Hz的变化
1Hz/150kHz = 0.00000667 = 0.000667%;目前STM32做不到这个1Hz的调节精度。
谢谢.
这个1HZ的精确度,,,,确实是不好弄啊.
最小可以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吗?
用STM32是可以实现100KHZ~150KHZ步进为1HZ的频率
150KHZ-100KHZ = 50000HZ
步进: 50000HZ/65536 = 0.762939453125HZ
方法是:
STM32去控制16位的DAC,DAC去控制VCO,再由STM32去检测VCO的输出,实现PID调节来稳定VCO的输出.但这样一来,设计重点就在VCO上面了.
哈哈,