使用一片CY7C64215和一片74HC244(驱动隔离)设计的PSoC-ISSP编程器已经测试完成。
功能:
1。使用USB接口
2。支持RESET和POWER-ON方式编程
3。USB接口可提供4.8V,350mA供目标板使用。
4。操作界面采用VB编写,比CYPRESS的Miniprogramer的界面漂亮,编程速度至少快1倍(见下面证明)。
关键技术:
使用了PSoC的USBUART用户模块,直接跳过USB低层,按传统对于COM口的编程操作。具体见2009年第1期北航出版的《单片机与嵌入式系统应用》杂志,第45页**“嵌入式系统与PC机的USBUART通信设计”。
下一步是结构调整,要找到与SYPRESS的Miniprogramer相同的接插件,这样就可以接口兼容使用了(***:我寄了一个SYPRESS的Miniprogramer给你,你找到相同的那个编程插头吗?2.54间距、5针,一面是弯针焊在PCB上,另一面是孔,插在目标板上)。
该PSoC-ISSP_1编程器是配合我设计的“PSoC_kit多功能实验开发板”使用的,当然可以完全单独使用(只是手头芯片不多,不能做全部芯片支持的测试)。目前通过测试的芯片有:CY7C64215(编程器给编程器本身编程,是最好的测试了)、CY8C21534(这是我使用PSoC设计的一个触摸键控制盘产品)、CY8C29466、CY8C24894(这两片是“PSoC_kit多功能实验开发板”上使用的片子)。其它手里还有几片,过几天测试。
目前是把基本功能进行测试和完善。如果增加新的芯片,PC和PSoC-ISSP的程序都不用改动。只要在PC的“PSoC_Device.xml”文件中增加一行就行了。增加CY7C64215就用了2分钟时间:
<Family Name="CY7C64215">
<Chip Name="CY7C64215-28LFXI" Id="30" BankNum="2" BlockPerBank="128" SecurityDataPerBank="32" ProgramVectorType="1" ChecksumVectorType="3" UniqueInitVector="0" UniqueProgramVector="0" PowerCycleMode="0" ResetMode="1"></Chip>
</Family>
编程速度那叫一个爽!比使用原厂的Miniprogram快多了。证明:用我的编程器写CY7C64215的ISSP固件仅16秒,而用原厂的Miniprogram写同样固件需要34秒!
本编程器将会部分开源:提供完整的电路原理图和PCB图,提供手头所有的CYPRESS公司参考资料(编程协议,以及例程),提供我编写的上位机程序和CY7C64215的HEX文件。
以上提供大家学习参考,这本身就是PSoC的应用。如果使用“PSoC_kit多功能实验开发板”上的CY8C24894也能完成本设计。CY8C24894也带一个FULL USB口,功能比CY7C64215还要强大。
化了我约一个星期的时间,集中精力完成的。当中出现了问题,不稳定,最后发现是CYPRESS的开发环境的问题。
下载最新版的开发环境(2008.11)进行编译,它给出了警告提示:中断跳转够不到。因此我将CALL改成LCALL,问题解决。而老的版本没有任何提示。就这个问题耽误我3天时间。
问题出现在整个系统快完成时,程序代码多了,不能正常工作。最后找原因,调整到一个临界点时,发现多写一句话64215就不工作,(比如:将一个不用的变量做 TEMP = TEMP+1),感觉是开发系统有BUG或缺陷。赶快上网到CYPRESS公司站上,发现有11月的新版了。下载安装后,一编译,给出的警告,问题才得到解决。
|