暑假在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.??????擴展設計和改進。