分享给准备学习PSoC朋友的建议:首先,各位想了解PSoC的朋友需要注意,尤其是新人,不要以为PSoC是完美无缺的,实际上它还在发展和变化当中,还存在许多的问题。不过它上面的一些理念、方法可能(注意,是可能)代表或体现出下一步一些技术的发展方向和趋势。还有是许多功能实现的算法本身,是非常值得研究和学习的。 因此关注本拦的朋友,希望您的目的首先是为自己做些技术储备,如果想马上应用在产品设计中,可能不会非常顺利的。
下面做几点具体的说明。
1。哪些人可以比较好的真正使用PSoC设计产品?
必须具备非常好的单片机应用的基础以及系统软件的设计能力。注意,我这里所指的,不是说点亮几个LED,PC通过USB口与PSoC交换字节数据等,这些可能在5分钟里就可以实现,但使用的产品设计中就不是那么简单了。
2。了解PSoC的困难点
目前PSoC里面的8位MCU,其结构比较独特,为大家所不熟悉的,加上众多的数字、模拟模块、系统资源等,因此从汇编角度看,比较复杂和麻烦。尽管CYPRESS提供了近百个专用的用户模块,并提供了API供上层使用。可是其低层基本上是汇编的代码。因此作为用户来讲,你可能还需要了解了算法(经常是模拟和数字混在一起)、看懂API的使用(要读代码了)的基础上,才能更好的,真正应用到你的设计中去。
3。目前PSoC在国内还在起步阶段,从芯片,到学习开发板,以及工具方面,不管是价格还是品种都有局限性,好的参考书也不多。尽管在CYPRESS官方站上有非常多的参考资料,而且中文的也非常多(这点上CYPRESS做的不错),但真正工程方面的,实际应用的经验,以及可以在技术方面深入提供支持的资料还是非常少的。
PSoC不是十全十美的,但它有些新的方法和技术值得学习。可能以后PSoC没有了,但这些新的东西或许出现在其它公司的器件中使用。
PSoC不适合哪些初级人员,以及没有真正坚实的8位单片机功底的人员学习和使用。如果你8位的工夫到家,2个星期就能上手PSoC.作为准备将来从事,和现在已经是的硬件工程师讲,多掌握学习些东西是没有坏处。一来有许多东西是相通的,同样可以提高你的整体水平;二来有原来的基础,也花不了多少时间(比如zhifeng,可能几个星期后就是PSoC的高手了);三是在经济危机的情况下,你有更多的本事和能力,找到自己的工作。
目前价格是比较贵,象当初AVR比51也贵至少一倍,而现在不是也有相当的市场吗?
做东西并不是AVR就能解决一切,或是最好的方案,举2个例子:
如果有个简单的产品,需要一般性的一个可程控的模拟放大功能,然后进AD,做处理和控制。那么AVR就不方便,需要外部加上运放、可编程数字电位器等。但使用一片PSoC就可能解决了。从总体成本上看,此时使用AVR并不一定合算。再小一点,假如AD的输入在PCB的左面,而AVR的AD口在右面,那么你的PCB就要绕线了。而PSoC,你只要定义芯片左边最靠近AD输入的引脚为AD输入口就可以了(PSoC内部的AD输入可以配置到芯片的任何(大部分的)一个脚上)。这个AVR也是无法做到的。
因此,当你的系统需要一些一般要求的模拟功能,如放大器,滤波,等等,可以考虑PSoC。
另外,AVR片内的资源是多,但是固定的,有很多在实际中浪费的。比如M16有3个T/C,你的产品只使用了一个,那么另外2个就闲置浪费的。而PSoC是配置的,此时你只要配置一个T/C,片内其它的数字资源可以配置它用,如配置两个UART输入口,一个UART输出口。这样你的挑选余地就更加多,而AVR,尽管M16内存、FLASH等资源够用,但此时你只能使用M128或M64了。算下来成本也不便宜。
我有许多学生问我,要测量温度、湿度,然后记录,最后通过SD卡拿数据到PC,说M16可以吗。我说不可以。尽管测量温度、湿度,然后记录等主要工作对于M16没有问题,但写SD卡就不行。因为这不是写一个或几个字节,而是要按文件方式写入SD卡,这样SD卡才能再PC上直接读出。而在M16中建立文件系统,其资源尤其是RAM就远远不能满足了。
当然,此时PSoC也不合适,最好选择使用M3、AVR32UC3B系列等32位的“单片机”了(这些东西也是近几年发展起来的吧)。 作为硬件工程师,你手里多几样武器,即有匕首,也有**,还有冲锋枪,甚至还配备了机关枪,你就是“勇士”。如果仅仅认为枪就是扣动扳机,发出子弹,而只配备一把**的话,你很难生存下来的。
PSoC的模拟部分的特点是其它8位MCU所没有的,可以满足一般场合的应用,省掉外面一些模拟运放等器件。再配合数字部分的有机结合,在用户模块的配合下,可以非常方便的实现一些比较复杂和智能的模拟功能。如可程控的智能放大等。有些东西,你就是自己设计模拟电路也很难实现的。因为PSoC有些东西实现的过程是模拟电路+数字电路+模型+算法的有机结合。一般水平的人完成这样的综合设计也是比较困难的。 但对于高精度,小信号的模拟应用,让PSoC完成确实有点勉为其难。如果真的具备这样高的性能,那AD就要关门了。 再讲回来,就是你使用非常好的模拟器件,自己设计的话,恐怕类似电容感应触摸键这样的东西未必能做出来的。至少目前我就没有100%的把握。PSoC不是什么都好,只是它的许多特点和采用方法等我认为都是比较新的。
我的观点是:对于刚开始学习嵌入式应用的人,不适合从PSoC入手。还是选择AVR、51等入门,把基础打好。当具备了一定的能力后,可以了解和学习一下PSoC。这样并不需要花费很多的时间,而且还可以扩大自己的知识面,提高自己的技术。
|