DIY—USB学习板设计以及驱动开发
暑假在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学习板设计以及驱动开发相关推荐
- 【嵌入式Linux学习笔记】Linux驱动开发
Linux系统构建完成后,就可以基于该环境方便地进行开发了,相关的开发流程与MCU类似,但是引入了设备树的概念,编写应用代码要相对复杂一点.但是省去了很多配置工作. 学习视频地址:[正点原子]STM3 ...
- zedboard移植linux内核,[干货]手把手教你用Zedboard学习Linux移植和驱动开发
作者:殷建飞 本文是昨天发的文章<龙芯杯CPU设计竞赛与ZYNQ设计流程介绍>接续部分.重点介绍传统方式的Linux移植和Xilinx的Petalinux的快速移植开发两种. 部分硬件设计 ...
- 【Android底层学习总结】1. 驱动开发基础
0 目录 1 前言 2 驱动开发认识 2.1 驱动 2.1.1 设备驱动程序的主要功能 2.1.2 驱动程序的主要类型 2.1.3 设备文件 2.1.4 sys文件系统: 3 基础编程 3.1 内核模 ...
- linux can总线接收数据串口打包上传_「干货」手把手教你用Zedboard学习Linux移植和驱动开发...
本文是昨天发的文章<龙芯杯CPU设计竞赛与ZYNQ设计流程介绍>接续部分.重点介绍传统方式的Linux移植和Xilinx的Petalinux的快速移植开发两种. 部分硬件设计中需要CPU完 ...
- USB在WINDOWS下的驱动开发
编程架构 -------------------------------------------------------------------------------- USB可以使程序员在不了解总 ...
- 如何学习Linux驱动开发?
原文链接:https://blog.csdn.net/hwunion/article/details/41621655 Linux驱动开发,看起来是一份很高大上的职业,毕竟从事上层应用开发人员太多,而 ...
- 学习ARM架构,系统移植和驱动开发总结
本次结束了对ARM架构,系统移植和驱动开发的学习,它们都是属于底层,难度想对都比较的难一点,但先学习arm架构之后去学习系统移植和驱动开发,会使自己对系统移植和驱动开发容易理解点. arm架构 arm ...
- linux2.6驱动学习笔记之字符驱动
1.字符驱动组成 1.1字符驱动的模块加载与卸载 //设备结构体模板 struct xxx_dev_t { struct cdev cdev; ...... }xxx_dev; 在字符驱动模块加载函数 ...
- NT内核和驱动开发的基础知识-笔记
这是我在学习NT内核和驱动开发的基础知识时记录的一些笔记,不是连续的教程,欢迎指正错误的地方 ----------------------------------------------------- ...
最新文章
- CentOS7 搭建GIT环境
- python os 检查同名_2020Python 爬虫面试题,高薪就业Python面试必看
- Apache ZooKeeper - JMX监控 ZooKeeper 的运行状态
- 软件设计原则(六)迪米特法则 -Law of Demeter
- 华为s8600手机驱动_只有手机才能快充?华为MateBook X的灵巧快充解放你的续航焦虑-华为 ——快科技(驱动之家旗下媒体)-...
- scala 访问修饰符_Scala中的访问修饰符
- 第二季-专题16-LCD亮起来
- cache 的设计与实现
- 嵩天《Python网络爬虫与信息提取》实例4:股票数据定向爬虫
- 知乎18万赞回答:真正厉害的人,是怎么分析问题的?
- 一些比较好的国外IT网站
- Word中有些空行无法删除,我是这样解决的.............
- 《中国天气预报》城市编号一览表
- iNode用户win10开热点手机连接时总显示获取IP中的解决方法
- 厦门大学计算机近3年分数线,从近3年数据分析厦门大学在职研究生2018年录取分数线趋势...
- 冰河亲自整理的Git命令汇总,悄悄努力,然后惊艳所有人
- ERROR 1819 (HY000): Your password does not satisfy the current policy requirements问题解决
- Pycharm中显示Please select a valid Python Interpreter
- DSP-ADAU1452输出通道配置
- jetson tx2 安装pycuda
热门文章
- 如何判断一个点在任意四边形内
- BugkuCTF-MISC题where is flag2
- mysql锁场景_MySQL死锁系列-常见加锁场景分析
- 联想微型计算机电脑黑屏怎么做系统,联想电脑黑屏怎么办,5种方法轻松排除黑屏故障...
- 第三范式的作用_钟启泉:教学范式的转型,让一线教师面临三大挑战 | 头条
- datax oracle mysql_从 MySQL 到 Lindorm时序引擎 的数据迁移
- android接口类命名规范_超全面的UI基础设计规范来啦,还不收藏 ~
- linux添加物理卷编辑文件夹,Red hat Linux下的逻辑卷管理器LVM-上
- python中与label类似的控件是_python中tkinter的使用(控件整理)(一)
- ssh连接阿里云服务器遇到的坑