本帖最后由 Cortex-M0 于 2011-10-19 20:43 编辑
PK 使人进步:51淘汰啦??? .......的疑问!
试问有哪一种价格低于十块大洋的MCU,在下列简单应用中,性价比超过51(淘宝上价格在6-7大洋的C8051F330)!
前言:
因玩DIY需要,想整个通用函数波型发生器,输出频率到100KHz即可,电工们都知道,专用模拟式函数发生器专用芯片ICL8038,能满足上述要求,前几年价格比较贵,现在价格下来了,约十块大洋,但是,ICL8038电路比较简单,功能也比较简单,无法显示工作频率,也体现不出电工的技能,因此,想搞个单片机搭一个电路,一则搞点非典在里面,弄点花头加点醋,二则可顺便带出个开源活动。
网上有盆友发了个贴子:
[侃单片机] 主题:电脑有双核,谁能用两片51单片机也搞个双核板出来?
电工们知道,函数发生器(正弦波)要做到100KHz,依靠纯软件很吃力,原因在于产生波型的主频频率锁定、MCU的查表计算输出速度等影响,看了上面盆友的贴子,产生了用两片,搞个山寨双核板MCU的想法,一片用于对输出波型的主频频率锁定及频率设定显示的,另一片速度要求极高,专门负责高速数据输出,用于产生正弦波或其他波型。
原构思硬件实现方法:
第一片MCU对速度要求比较低,像中颖的SH88F2051之类的3块大洋以下的MCU完全能实现,依靠外围硬件弄个RC压控频率发生器,通过MCU的PWM输出加RC滤波控制其振荡频率,再用MCU测其振荡频率,利用MCU的晶振频率为基准,调整并锁定外围RC压控频率发生器的振荡频率,将该振荡频率作为下一片MCU的外部输入工作频率,下一片MCU在此频率的节奏控制下,通过很简单的查表并输出数据,由于十块大洋以下的廉价MCU,印象中都不带硬件D/A,因此,只能通过外接R-2R电阻网络来模拟D/A转换器,达到输出特定的函数波型,由于输出函数的频率跟输入的工作频率同步,因此,只需改变MCU的输入工作频率,即可改变函数发生器的输出频率,缩减程序运行时间,以加快速度,达到最高输出100KHz频率的目的。
问题出在第二片产生波型的MCU上,尽管简化软件,提升了输出速度,但是,要达到最高输出100KHz的正弦波,对这第二片的查表及输出数据速度要求较高,经简单评估,AVR能胜任,像MCP,STC,中颖51之类的,由于对查表及将数据从I/O端口输出,速度并不很快,难以达到要求,像STM8,68HC908,PIC之类的,由于不是1T的,也难以达到要求,考虑过廉价的ARM,如Cortex-M0之类的,32位的优势在于整型和长整型数据的操作上,在8位数据查表及I/O输出上并没有比8位机更好的优势,在这方面应用的整体速度评估上,比不上AVR。
综上,得出,AVR在8位查表及负责将数据从I/O端口输出,速度是最快的了~~~
有盆友介绍说,C8051性价比不错,俺简单的查阅了一下,很快被其吸引,C8051F330仿佛就是为这个小玩意------通用函数波型发生器 量身定做的,片上集成了一路硬件D/A,能直接输出,省去了外接R-2R电阻网络来模拟D/A转换器,更给力的是D/A数据更新模式,支持定时器溢出中断装载更新D/A, 省去了高频率输出数据时,必须软件延时等待,循环输出数据的超低效率模式,解放了MCU,使得原先计划用两片MCU才能达到输出100KHz正弦波的函数发生器,轻轻松松仅用一片C8051F330就能搞定,而C8051F330在淘宝上仅卖6-7大洋,大大降低了成本及系统复杂性。
试问,除了C8051F330,还有哪种MCU,价格要求不高于十块大洋,能像C8051F330这样,用很简单的硬件,轻轻松松搞定这个100KHz的MCU软件模拟函数发生器。
菜农豪言:“尊惜脑浆,远离51 !” ........
俺小改成:“尊惜脑浆,熊抱51 !” ........ |