CC2430 Joystick硬件说明

 CC2430 Joystick 硬件说明

1 目标

         学习了CC2430的AD,UART和Timer之后,感觉自己有点入门了,接着做一点人机交互的内容。在这里我介绍一下Joystick的硬件连接。

刚开始看Joystick的硬件部分的时候,还很的觉得有点麻烦的,后来把这个电路分解为反相放大器,同相放大器之后,问题就好解决多了。

2 分解Joystick的4个按钮

         刚开始拿到原理图的时候,4个按钮“纠结”在了一起,让人实在是看不懂是。后来我“分解”了这四个按键,在Proteus中重新绘制原理图。Proteus可以进行一定的仿真,我还模拟仿真了一下。建立的模型如下:

编号和原来图纸有所出入,但是原件参数还是一样的。每次按某个按键,U1:B就会输出不同的电压。这下我也放心了,至少原理就那么回事——通过检测不同的电压判断按键是否被按下。

3 反相放大器

         观察图左边的放大器,本质上就是一个反相放大器。通过按下不同的开关,获得了不同的放大倍数。另外,放大器的正输入端还有一个参考电压,使得反相放大时不至于出现都负电压的情况(但后来的计算发现还是出现了负电压,不过没有关系)。输出和输入的关系如下图所示:

该图来自《嵌入式系统中使用单电源运算放大器》一文,在microchip官网上找到。microchip提供的资料,简单且易于理解,不乏经典的中文资料,应用手册条理清楚,堪称典范。

Vout1(左边放大器的输出)存在这样的关系:

Vout1 = -(R2/R1)*Vin + (1+(R2/R1))*VBIAS;

其中,Vin为3.3V,R1为800K,400K,200K和100K其中的一个;R2为50K。VBIAS有两个电阻分压得到,100/(100+220)*3.3V。这样就可以很简单的计算出4个按钮按下时,反相放大器的输出结果。但是需要注意的是,当R1为100K时,计算出的结果为-0.1V,小于0。由于放大器没有使用双电源,所以只能输出大于0V的部分,理论计算小于0的部分,只能委屈一点当0了。

4 同相放大器

         同相放大器电路就简单一点了,计算公式如下图所示。同样来自《嵌入式系统中使用单电源运算放大器》一文。

CC2430 Joystick硬件说明_第1张图片

         这个放大器的放大倍数为3。实际的Vout = 3*Vout1。

 

5 总结

看的懂的觉得很简单,但是“不说”。分析软件的人要比分析硬件的多。我觉得这很难,好不容易看懂了,我就分享一下。具体的结果如下

UP键按下                 2.67V

DOWN键按下         0V(-0.31V)

LEFT键按下下         1.39V

RIGHT键按下          2.24V

代码也写好了,一定公布。最近发现写博客还是很累人的,怪自己文笔太烂了。

 

最后,我的邮箱 [email protected]

你可能感兴趣的:(timer,嵌入式,UP)