分享
 
 
 

用HT82J97E实现带震动的USB Joystick的设计

王朝厨房·作者佚名  2007-01-04
窄屏简体版  字體: |||超大  

本文主要介绍了HT82J97E针对USB Joystick而设计的硬件功能。

USB低速设备发展到现在已经相当成熟。带震动的Joystick在市场上將會越來越普遍,为了让开发者更能简化程序和提高开发效率,盛群半导体设计出了HT82J97E,用以开发USB DEVICE。

功能及特点

图1.方框图

HT82J97E为八位高性能精简指令集单片机。专为USB产品而设计的。集成了USB SIE,支持USB和PS2端口复用。适用于Joystick和Mouse设备。主要功能和特点如下:

1. 工作电压:Fsys=6M/12MHz : 4.4V~5.5V;

2. 支持USB低速标准,有USB中断,可以从每个endpoint读取8*8位资料;

3. 最多可有20个双向输入/输出口,都可以通过选择是否带有上拉电阻,这样可以节省成本;

4. 2K*14位程序存储ROM、96*8位数据存储RAM和4层硬件堆栈;

5. PWM输出PWM1,PWM2(频率范围是23Hz~23KHz);

6. 16位可编程定时/计数器,具有溢出中断;

7. 6通道8位A/D转换器;

8. HALT功能和唤醒功能能减小功耗;

9. 低电压复位功能和Watch Dog定时器;

10. 3.3V标准输出,可以连接到USB D-,PC就可以判断其为USB低速设备;

USB和PS2端口共享

通过寄存器实现USB和PS2端口的切换

SELPS2=1BH.4 , SELUSB=1BH.5

SELPS2=1,SELUSB=0,工作在PS2状态;

SELPS2=0,SELUSB=1,工作在USB状态;

USB中断

USB中断是由USB以下列出事件触发,相关的中断请求位(USBF:INTC.4)被置位。

1. PC访问USB FIFO;

2. 接受来自PC的USB暂停信号;

3. 接受来自PC的USB恢复信号;

4. USB复位信号

为Joystick震动设计的PWM输出

PWM1DR(0CH)为PWM1占空比缓存器,PWM2(0DH)为PWM2占空比缓存器

PWMBR(18H)为PWM基础周期缓存器

PWM占空比计算:

基础周期=(4/Fsys)*(PWMBR+1)或(1/Fsys)*(PWMBR+1) (PWMBR=1~255)

4/Fsys或1/Fsys通过PORT_PC(16H)的PWM_S来定义。

PWM_S为1,1/Fsys;PWM_S为0,4/Fsys。

PWM周期=256*基础周期

PWM1占空比=(PWM1DR+1)/256*100% (PWM1DR=0~255)

PWM2占空比=(PWM2DR+1)/256*100% (PWM1DR=0~255)

通过设定PORTC_PC(16H)的PWM1_EN位或PWM2_EN位来允许PWM功能。

PWM1_EN为1,允许PWM1输出;PWM1_EN为0,不允许PWM1输出;

PWM2_EN为1,允许PWM2输出;PWM2_EN为0,不允许PWM2输出。

由以上方法,可以输出不同频率和Duty的PWM,输出控制给电机后得到的转动速度不同,这样使Joystick有不同的震动效果。

A/D转换

参考电压可以通过USR(0X1B) VRSEL位来进行选择。

VRSEL为0,VRH=PB7口电压,VRL=PB6口电压;

VRSEL为1,VRH=VDD,VRL=0。

这样让A/D转换更加灵活,能更好的适用于开发者使用。

软件设计

USB协议很复杂,遵循“PC提出问题,device回答”,由于篇幅有限,不详细介绍,这里只对如何读取和写入FIFO资料进行阐述。

(一)如何读取FIFO资料

1. 选择一组FIFO,设定为读取mode(MISC TX bit=0),设定REQ bit为1;

2. 检查Ready bit直到状态=1;

3. 透过FIFO指针Register读取FIFO资料,同时记录已读取资料数目;

4. 重复步骤2,3,直到Ready bit为0,标示FIFO资料已读完;

5. Set MISC TX bit=1;

6. 将REQ bit清除为0,完成读取动作;

故程序员在读取FIFO资料,是透过FIFO指针Register一个byte一个byte读取,同时要自行记录一Package读取有几个byte。HT82J97E最多只允许同一Package读取资料长度为8个bytes。

(二)如何写入FIFO资料

1. 选择一组FIFO,设定为写入mode(MISC TX bit=1),设定REQ bit为1;

2. 检查Ready bit直到状态=1;

3. 透过FIFO指针Register写入,同时记录已写入资料数目;

4. 重复步骤2,3直到资料已经写完或Ready bit为0,标示FIFO不允许写入资料;

5. Set MISC TX bit=0;

6. 将REQ bit清除为0,完成写入动作。

故程序员在写入FIFO资料,是透过FIFO指针Register一个byte一个byte写入,同时要自行记录一Package写入有几个byte。HT82J97E最多只允许同一Package写入资料长度为8bytes。

应用电路

图2.应用电路

X1能用6MHz或12MHz。

带*元件用于EMC。

带**元件只用于震荡器。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有