暑假在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

DIY—USB学习板设计以及驱动开发相关推荐

  1. 【嵌入式Linux学习笔记】Linux驱动开发

    Linux系统构建完成后,就可以基于该环境方便地进行开发了,相关的开发流程与MCU类似,但是引入了设备树的概念,编写应用代码要相对复杂一点.但是省去了很多配置工作. 学习视频地址:[正点原子]STM3 ...

  2. zedboard移植linux内核,[干货]手把手教你用Zedboard学习Linux移植和驱动开发

    作者:殷建飞 本文是昨天发的文章<龙芯杯CPU设计竞赛与ZYNQ设计流程介绍>接续部分.重点介绍传统方式的Linux移植和Xilinx的Petalinux的快速移植开发两种. 部分硬件设计 ...

  3. 【Android底层学习总结】1. 驱动开发基础

    0 目录 1 前言 2 驱动开发认识 2.1 驱动 2.1.1 设备驱动程序的主要功能 2.1.2 驱动程序的主要类型 2.1.3 设备文件 2.1.4 sys文件系统: 3 基础编程 3.1 内核模 ...

  4. linux can总线接收数据串口打包上传_「干货」手把手教你用Zedboard学习Linux移植和驱动开发...

    本文是昨天发的文章<龙芯杯CPU设计竞赛与ZYNQ设计流程介绍>接续部分.重点介绍传统方式的Linux移植和Xilinx的Petalinux的快速移植开发两种. 部分硬件设计中需要CPU完 ...

  5. USB在WINDOWS下的驱动开发

    编程架构 -------------------------------------------------------------------------------- USB可以使程序员在不了解总 ...

  6. 如何学习Linux驱动开发?

    原文链接:https://blog.csdn.net/hwunion/article/details/41621655 Linux驱动开发,看起来是一份很高大上的职业,毕竟从事上层应用开发人员太多,而 ...

  7. 学习ARM架构,系统移植和驱动开发总结

    本次结束了对ARM架构,系统移植和驱动开发的学习,它们都是属于底层,难度想对都比较的难一点,但先学习arm架构之后去学习系统移植和驱动开发,会使自己对系统移植和驱动开发容易理解点. arm架构 arm ...

  8. linux2.6驱动学习笔记之字符驱动

    1.字符驱动组成 1.1字符驱动的模块加载与卸载 //设备结构体模板 struct xxx_dev_t { struct cdev cdev; ...... }xxx_dev; 在字符驱动模块加载函数 ...

  9. NT内核和驱动开发的基础知识-笔记

    这是我在学习NT内核和驱动开发的基础知识时记录的一些笔记,不是连续的教程,欢迎指正错误的地方 ----------------------------------------------------- ...

最新文章

  1. CentOS7 搭建GIT环境
  2. python os 检查同名_2020Python 爬虫面试题,高薪就业Python面试必看
  3. Apache ZooKeeper - JMX监控 ZooKeeper 的运行状态
  4. 软件设计原则(六)迪米特法则 -Law of Demeter
  5. 华为s8600手机驱动_只有手机才能快充?华为MateBook X的灵巧快充解放你的续航焦虑-华为 ——快科技(驱动之家旗下媒体)-...
  6. scala 访问修饰符_Scala中的访问修饰符
  7. 第二季-专题16-LCD亮起来
  8. cache 的设计与实现
  9. 嵩天《Python网络爬虫与信息提取》实例4:股票数据定向爬虫
  10. 知乎18万赞回答:真正厉害的人,是怎么分析问题的?
  11. 一些比较好的国外IT网站
  12. Word中有些空行无法删除,我是这样解决的.............
  13. 《中国天气预报》城市编号一览表
  14. iNode用户win10开热点手机连接时总显示获取IP中的解决方法
  15. 厦门大学计算机近3年分数线,从近3年数据分析厦门大学在职研究生2018年录取分数线趋势...
  16. 冰河亲自整理的Git命令汇总,悄悄努力,然后惊艳所有人
  17. ERROR 1819 (HY000): Your password does not satisfy the current policy requirements问题解决
  18. Pycharm中显示Please select a valid Python Interpreter
  19. DSP-ADAU1452输出通道配置
  20. jetson tx2 安装pycuda

热门文章

  1. 如何判断一个点在任意四边形内
  2. BugkuCTF-MISC题where is flag2
  3. mysql锁场景_MySQL死锁系列-常见加锁场景分析
  4. 联想微型计算机电脑黑屏怎么做系统,联想电脑黑屏怎么办,5种方法轻松排除黑屏故障...
  5. 第三范式的作用_钟启泉:教学范式的转型,让一线教师面临三大挑战 | 头条
  6. datax oracle mysql_从 MySQL 到 Lindorm时序引擎 的数据迁移
  7. android接口类命名规范_超全面的UI基础设计规范来啦,还不收藏 ~
  8. linux添加物理卷编辑文件夹,Red hat Linux下的逻辑卷管理器LVM-上
  9. python中与label类似的控件是_python中tkinter的使用(控件整理)(一)
  10. ssh连接阿里云服务器遇到的坑