加入收藏 | 设为首页 | 会员中心 | 我要投稿 | RSS
您当前的位置:首页 > 电子技术 > 单片机

自制USB键盘

时间:2012-11-25 20:29:16  来源:  作者:

自制USB键盘

转载于圈圈

实物图片(键盘是外接的):

 

下载USB键盘源程序及原理图

哈哈,终于搞了一回USB HID设备,做了一个USB键盘来玩玩~~~~其中的报告描述符让我晕了几天~~~~~几份HID相关的协议还是蛮长的~~~~~~明天再弄个USB鼠标设备玩玩~~~~~~~有空的话再搞个红外遥控器玩玩~~~
这回是拿以前做的Mass storage来改的,所以比较快,修改了一下描述符以及端点处理等,就行了。用了一个4*4的小键盘,有0-9十个数字键,Num Lock键,Caps Lock键,Shift键,Ctrl键,Alt键,回车键等。
最多可以有三个键同时按下,如果相交的话,最多只能两个键按下。
 
 
以下是通过串口返回的调试信息:
 
系统启动................................
断开USB连接........................
USBD12芯片初始化
设置地址.....................
地址为: 0
连接USB...............
USB总线复位................................
USB总线挂起................................
USB总线复位................................
USB总线挂起................................
USB总线复位................................
USB标准请求................................
获取描述符................................
获取设备描述符................................
USB总线复位................................
USB标准请求................................
设置地址.....................
地址为: 2
USB标准请求................................
获取描述符................................
获取设备描述符................................
USB标准请求................................
获取描述符................................
USB标准请求................................
获取描述符................................
获取配置描述符................................
USB标准请求................................
获取描述符................................
获取字符串描述符................................
获取语言ID................................
USB标准请求................................
获取描述符................................
获取字符串描述符................................
获取设备序列号................................
USB标准请求................................
获取描述符................................
USB标准请求................................
获取描述符................................
获取配置描述符................................
USB标准请求................................
获取描述符................................
USB标准请求................................
获取描述符................................
USB标准请求................................
获取描述符................................
获取字符串描述符................................
获取语言ID................................
USB标准请求................................
获取描述符................................
获取字符串描述符................................
获取产品字符串................................
USB标准请求................................
获取描述符................................
USB标准请求................................
获取描述符................................
USB标准请求................................
获取描述符................................
USB标准请求................................
获取描述符................................
USB标准请求................................
获取描述符................................
USB标准请求................................
获取描述符................................
获取字符串描述符................................
获取语言ID................................
USB标准请求................................
获取描述符................................
获取字符串描述符................................
获取产品字符串................................
USB标准请求................................
获取描述符................................
USB标准请求................................
获取描述符................................
USB标准请求................................
获取描述符................................
USB标准请求................................
获取描述符................................
USB标准请求................................
获取描述符................................
USB标准请求................................
获取描述符................................
获取设备描述符................................
USB标准请求................................
获取描述符................................
USB标准请求................................
获取描述符................................
获取配置描述符................................
USB标准请求................................
获取描述符................................
获取配置描述符................................
USB标准请求................................
获取描述符................................
USB标准请求................................
获取描述符................................
USB标准请求................................
设置配置................................
USB类请求................................
设置空闲................................
USB标准请求................................
获取描述符(从接口)..............................
获取报告描述符................................
USB标准请求................................
获取描述符(从接口)..............................
USB标准请求................................
获取描述符(从接口)..............................
USB标准请求................................
获取描述符(从接口)..............................
USB标准请求................................
获取描述符(从接口)..............................
USB标准请求................................
获取描述符(从接口)..............................
USB标准请求................................
获取描述符(从接口)..............................
USB标准请求................................
获取描述符(从接口)..............................
端点2输出................................
端点2的数据是 0x01
端点2输出................................
端点2的数据是 0x03
端点2输出................................
端点2的数据是 0x01
端点2输出................................
端点2的数据是 0x00
端点2输出................................
端点2的数据是 0x02
端点2输出................................
端点2的数据是 0x03
 
在设备管理器里看到的图:

 
 
原理图
(用的是以前做IDE转USB的板,所以上面还有个IDE接口和573锁存器,可以不用理会它们):
(注意:原理图上所标的晶体值是以前的,这个程序中使用的是22.1184M的晶体.它关系到串口波特率,如果你不使用串口,那么可以不用理会它.)
 
 
注意:图中串口电平转换部分的C8和C10接反了,C11负端应接VDD。D12的SUSPEND(12脚)应该接地。USB接头的D+和D-跟芯的D+和D-之间应该串联22欧姆的匹配电阻。片由于图得比较匆忙,所以没留意。右击选择图片另存为可以看到完整图片了.

来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
推荐资讯
1W功率的FM广播发射机
1W功率的FM广播发射机
远距离FM调频发射电路
远距离FM调频发射电
1W功率的FM广播发射机
1W功率的FM广播发射机
相关文章
栏目更新
栏目热门