暑假在Intel OTC做访问学者时,看到公司有两个小巧的USB设备-温度计和LED音乐播放器,用于交大学生的Linux Kernel教学中。但看似简单的这些设备,还是从国外购买而得。因此,从intel回来之后,我就告诉学生能否设计一种USB学习板,让USB驱动程序的设计和调试门槛降低。过了一段时间,学生们告诉我,几经赛选,他们看中了Cypress公司的cy7c68013a USB接口,打算从原理图设计做起,到PCB的布局布线,从0开始自己做一个板子。
又过了几天,学生们说他们设计的USB学习板已经制作好了,在我惊讶之时,他们已经动手调试插在USB口上的LED灯,当然,这是在自带的windows下调试,不管怎样,让灯亮起来,说明硬件设计的成功,那份喜悦从他们的神情中已经表露无疑了。
一个从零开始设计的东西,想怎么把玩就怎么把玩,因此,我建议他们在Linux下让驱动跑起来,几经折腾,在Linux下灯也闪烁起来了。于是,学生们把此作为一个简单的项目,引领后来者从零进行硬件到软件的设计,如果你感兴趣,可以按以下要求自己DIY:
1. 做一个USB接口的硬件,芯片选择Cypress公司的cy7c68013a,从原理图设计起,到PCB的布局布线,做一个完全的硬件
2. 在windows平台下,使用Cypress公司针对cy7c68013a提供的windows平台驱动,测试PCB板设计是否成功。
3. 使用Keil C51 工具写一个测试程序,下载到板子上,进行测试.
4. 了解USB硬件协议,达到会用的目的。
5. 研究Linux平台USB驱动的编写。
6. 编写针对开发板的USB驱动。编写用户程序,测试所写的驱动的正确性。
7. 设计具体的硬件设备,将其连接在开发板的接口上,编写具体的USB驱动和用户程序。
8. 扩展设计和改进。
原文地址:https://www.cnblogs.com/lucelujiaming/p/9467844.html