打印
[MCU]

用新唐NUC123做了12路方波输出,求更好方案推荐

[复制链接]
1385|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Metalor|  楼主 | 2017-6-27 11:32 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

需求:MCU出12路频率不同且可调的方波,范围500Hz-3KHz。

目前暂用新唐NUC123的一个24位定时器计数,通过判断计数值和相应12个频率对应的分频表比较,符合条件的就翻转对应的Pin脚,然后再更新分频表以便下一次翻转。另一个计数器定时1ms做电位器ADC采样来调节频率。整个系统无中断(进出中断很耗时间),只在main里判断相应的寄存器状态。(感觉比较难表达,没看明白的忽略这段直接从需求入手吧……)
这个方法可以想象肯定效果不会好,目前2K频率处误差大概+/-10Hz。
进一步优化后用MCU自带的四路PWM做其中四个输出,另外八个IO继续沿用之前的方法。PWM输出频率当然无误差,非常准,CPU负担减轻另外8个输出准度也有改善,但无法做得更好了。

求助:
1. 在以上基础上是否还有更好的优化方案(具体实现的算法上自认为已经基本没有优化空间了)?
2. 求推荐更好的实现方案。如果有能输出12路PWM的MCU推荐最好(能有10路基本也可以),找了半天没找到合适的,要求能独立调节每一路PWM频率(很多标称12路24路的并不能独立调节每一路的频率),占空比不需要调保持50%就好。

希望有高人解答,感谢!

相关帖子

沙发
Metalor|  楼主 | 2017-6-27 14:33 | 只看该作者
几年不来,坛子里现在人很少啊

使用特权

评论回复
板凳
宇容创行| | 2017-6-27 15:17 | 只看该作者
直接用3片mcu 不就行了

使用特权

评论回复
地板
coody| | 2017-6-27 16:06 | 只看该作者
模拟DDS原理输出即可,使用32768或65536HZ采用。

使用特权

评论回复
5
Metalor|  楼主 | 2017-6-28 08:33 | 只看该作者
宇容创行 发表于 2017-6-27 15:17
直接用3片mcu 不就行了

也是一个办法,但想找一个更简单更便宜的方案。

使用特权

评论回复
6
Metalor|  楼主 | 2017-6-28 08:45 | 只看该作者
coody 发表于 2017-6-27 16:06
模拟DDS原理输出即可,使用32768或65536HZ采用。

能说的具体一点吗?不是很懂……谢谢~

使用特权

评论回复
7
heelary| | 2017-6-28 12:28 | 只看该作者
M451系列的

使用特权

评论回复
8
Metalor|  楼主 | 2017-6-28 13:10 | 只看该作者

谢谢,他标称的24路PWM其实只有6个timer,只能出6种频率 而我要的是12路不同的频率输出

使用特权

评论回复
9
heelary| | 2017-6-28 13:39 | 只看该作者
还有一个PWM1。

360截图20170628133911015.jpg (226.46 KB )

360截图20170628133911015.jpg

使用特权

评论回复
评分
参与人数 1威望 +3 收起 理由
Metalor + 3
10
Metalor|  楼主 | 2017-6-28 14:30 | 只看该作者

刚下载datasheet浏览了一下,确实如你所说,非常感谢!~我再仔细研究下~~

使用特权

评论回复
11
Metalor|  楼主 | 2017-6-28 14:36 | 只看该作者

M0518系列貌似也可以?这部分描述几乎一样。当然,篇幅较大没细看。

使用特权

评论回复
12
苏山人家| | 2017-7-2 09:32 | 只看该作者
stm32很多定时器

使用特权

评论回复
13
hanlie2345678| | 2017-7-14 10:22 | 只看该作者
更好的方案有的是啊!

使用特权

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

本版积分规则

2

主题

224

帖子

1

粉丝