本帖最后由 beckham 于 2012-1-17 08:43 编辑
初学赛普拉斯的USB控制器,看了N遍USB基础知识,很是头大,第一次接触USB应用,而且发现CY7C63***的参考资料真少,折腾了几个礼拜,一度失去信心,真想换个其他厂商的USB控制器,但做事贵在**,希望大虾能一路给予指导,让我少走弯路,在此先谢过了。也希望自己用这个帖子能够详细记录CY7C63***系列USB控制器初学乍练的过程(包括CY7C63***硬件、软件、USB基础知识、CY3217开发工具),完成第一个USB控制的应用项目,给后来者快速入门提供一点点参考。
USB方面的书我主要看了两本:圈圈教你玩USB、USB外围设备设计与应用(台湾许永和编著2002年)。许永和的书介绍的正好是CY7C63系列USB控制器,可惜当时63813还没有出来,而且书上的程序都是汇编语言版,开发环境和开发工具已经过时,现在都用PSOC designer,C编程,烧录用的是CY3217。尽管如此,许永和的书还是值得一看,想想人家2002年就把USB研究的很透了,而且确实是在编书,有个人的理解,不是在翻译技术手册。圈圈的书和他有异曲同工之妙,只不过圈圈以51+D12的方式介绍。手头没有圈圈书配套的电路板,没动手照着做,只是照着例程看,总算是对USB包结构、传输类型、标准设备请求、各类描述符的结构有了初步认识(过程真是痛苦啊,这是必经之路,逃也逃不掉)。
再来说说我演的这出戏的主角CY63803/813,它价格在3-4元左右,很有价格优势,比起其他带有USB控制器的单片机要便宜多了,在做一些低成本应用时,确实是个好选择。CY63803/813属于encoreII系列,好像是CYPRESS目前最低档的USB控制器芯片,勉强属于PSOC吧,用户模块很少。其实我对PSOC不大了解,完全是因为要开发一个USB项目才接触到CYPRESS的产品,才知道了PSOC,真感慨技术发展的真快,自己不懂的东西太多了,呜呜。
进入正题,现在进行第一步,实现USB设备(鼠标或键盘都行,HID类的,上手容易一些)的枚举。我用CY7C63813搭了简单电路(当然,这芯片什么内置了,也没什么电路,直接连了个USB接口,呵呵)。(1)新建PSOC DESIGNER 工程,添加USB用户模块,在USB 设置向导里面进行各描述符的设置(具体设置见附件,我也是参考别人给的一个例子,应该是没有问题的)。(2)编程。这就有些无从下手啦,哈哈。像圈圈书上用的51+D12的方式,各个函数都是用户自己编写的,虽然比较繁琐,但是D12的例子铺天盖地。我感觉CY7C63813应该不会这么麻烦吧。关键是没什么参考的例子,惨。仅仅实现枚举的话,主函数是不是不需要写什么东西,关键是中断函数里?端点0和端点1的中断函数?PSOC DESIGNER这个软件是不是很多东西自己就做了?
今天先写到这里吧,明天继续……
|