谈谈使用CYPRESS PSOC的一些经验:本兄于2003年CYPRESS PSOC只诞生了CY8C25,CY8C26系列时开始用它,一直到后来的CY8C24系列,27系列,29系列,感觉PSOC的特点决定它的灵活性优于任何带外设的单片机,缺点是目前的运算处理能力稍逊色了一些,当然这与M8核的能力有关,我在好多控制检测产品上这些系列都用过,有的型号很熟悉。
并口仿真器3205以及目前的USB仿真器3215都用过,一个感觉,仿真器太贵且性能不太好,以至于近三年以来不再用仿真器了,问题特明显的就是仿真器调试通过的好多程序在烧入芯片后似乎BUG太多,不稳定。诸如I2C类的通信程序,SPI类的通信程序等等,曾经用SPI总线读写AD7793这种24位AD,仿真器通过了,实际烧到芯片确始终不行,最后干脆不用仿真了,用C写完编译直接烧写完成的。还有那EZI2C模块,一个典型大BUG就是在PSOC designer4.4下怎么也没玩转,后来我又在PSOC EXPRESS3.0下才发现了,4.4下API里还真缺了一条使能I2C从的语句,当然碰得更多可乐的甚至至今也没解决的问题,曾经找代理商的AE帮忙,解决能力毕竟有限,找CYPRESS直接解决问题效果有时也不好意思说了。诸如,为什么三个运放组成的仪表运放与ADINC(14位)连接时为什么运放增益始终没法达到指标给的93倍,尤其在27443里面,24423也存在。
兄弟私下里没招,在一些循环嵌套程序用CYPRESS数学运算库可没少吃亏,咱们开始只是想怎么实现算法,哪知上当太相信它的运算库了,被师傅骂得狗血喷头,还搞控制呢,连运算都错了,没法,16×16,16位除法,32位除法……都自己写了,单独做的函数,过去连个16×16动不动就给算错了,忠告弟兄们啊,如果用PSOC DESIGNER4.4中自带C编译器时小心单个函数内嵌套和分支层数要尽可能少于4层,否则运算出错概率大10倍以上,夸张点,自己看着办。
在放数字模块时一定要小心,通信模块类数字模块应该先放,至于说这样做好处自己体会。动态配置技术在用到连续模拟诸如DA时一定考虑清楚该不该用,用的后果如何。在E2ROM模拟模块时睁大眼睛,别忘它会耗你许多RAM,对于29系列的2K RAM的品种尚可考虑用,余下除了24X94可用外,别的只有256字节RAM的品种慎用,可以用FLASHBLOC WRTE READ类的函数,好像还凑合。
AD时钟问题是兄弟们如何把AD用到极限精度的关键点,大家体会。
PSOC让我写多少BUG文章呢,我没想过,以上还是我喝完酒能记起的,兄弟老大不小了,只感觉模拟设计高手如果掌握PSOC是一件可以发挥利器,单纯当成单片机用我觉得有点太糟蹋PSOC了,就像TONY哥哥讲得那样。兄弟可能还在想PSOC里运放两个输入端如何同时引出类的问题,毕竟是师傅曾经讲过这东西没准在算法进步方面会成为好的芯片,不用再去做设计运放线路板,再做厚膜电路,设计版图,到流片。
看到PSOC的不好是希望PSOC将来更好,已经期待两年的据说32位ARM结构的PSOC3至今连个屁响声都没有,得到的答复是PSOC目前等价于触摸键,开足马力在生产21系列触摸键呢,哈哈。兄弟俺是喜欢模拟设计,可说会PSOC也没用,大伙不买单啊,关键人不认,找工作也不好找,就像我说会做模拟硬件系统设计时公司往往想工资一定要得很高,用不起,恰恰我要少了时公司往往认为这小子年龄这么大,干这活要这么少的钱,一定是饭桶。
无论数字处理的光辉是多么亮,数字处理速度多么快,别忘了,数字处理是按条算的,模拟始终是按带宽算的,这两者的综合如果解决好了,进步了,否则在数字处理的光环下,搞模拟的经常都被社会的短浅认知噪声淹没了,而数字永远也还没能解决问题,在传统一些仪表测试行业这种问题凸现,但愿PSOC到来带来一点点曙光。