震撼!!!超强教程!!! 打造自己的专属鼠标——鼠标DIY教程(三)

标签:
安捷伦单片机芯片炼狱蝰蛇鼠标教程it |
分类: 鼠标DIY教程 |
本套教程作者为外设天下论坛
声明:文章是版权所有,未经许可,请不要转载。
“活着本来没有什么意义,但是活着,就可以找到有趣的事情。就像你发现了这朵花,而我有发现了你一样。”
上期讲了我们将要用到的RTOS的整体架构,这期的主角是我们经常提起的安捷伦ADNS-3080,这里将比较详细地根据官方PDF的资料解释,理解了这部分以后,我们会对这块光学芯片比较熟悉了。这段时间,看到论坛上又有关于使用3060的EC2
什么1800dpi的事情,相信大家在了解adns-3080后会有一个基本的判断。大家要学习如何去使用一块光学芯片,在这个教程的最后,我们要运用这套方法去做ADNS-9500。
四、安捷伦 ADNS-3080
1、ADNS-3080的工作环境
http://lcwava.blu.livefilestore.com/y1pJ8e5yxH8G3ggdfBwh2GyWPM-CehoaJKtmb65q7j11Fj-QEpXe0CxmgkPDqE4lTkZZlG7wpQYULvay2WM3D1Wjdpn0iIjxTXZ/T31.jpg?psid=1打造自己的专属鼠标——鼠标DIY教程(三)" />
如上图, 一块ADNS-3080一共有20个脚,下图是从正面看的顺序,注意芯片上的圆点表示的是1脚的位置。
1:spi的NCS脚,用来控制spi通信接口是否可用(google
spi串行通信,了解一下)
2:spi Master IN Slave OUT
3:spi 时钟信号
4:Matser OUT Slave IN
5:LED 控制
6:光学芯片复位脚
7:待机脚 No Power Down
8:震荡信号脚 OUT
9:屏蔽(用来屏蔽谐振器)
10:震荡信号脚 IN
11:无作用
12:连接到 VDD3脚
13:连接参考电容 +
14:连接参考电容 -
15:VDD3
16:GND 接地脚
17:VDD3 电源
18:无作用
19:接地
20:无作用
http://lcwava.blu.livefilestore.com/y1p2UO0tviH-NmQiin2EjirWx-_3MySeU-Nvd81DkQ98hQiIcf6fTYRKYqjQKyGjVdEuKvlFDTYlp5zGVaPh1EOMSgkHHFuz3tm/T32.jpg?psid=1打造自己的专属鼠标——鼠标DIY教程(三)" />
a. 3.3v的电源,与17、15、19、16脚有关
b. 单片机至少要有6个脚与ADNS-3080连在一起,与1、2、3、4、6、7有关
c. ADNS-3080需要一个24Mhz的陶瓷谐振器,连接10、8,屏蔽可不连接
d. ADNS-3080通过一个BS170的场效应管去控制LED,5脚
2、ADNS-3080的工作
a. 通过spi传输SROM, SROM相当于A3080的固件,不传输SROM也可以,A3080就工作在默认条件下,据实际测试,有SROM的情况下表现好些。
b.传输完SROM,就可以开始进行移动数据的读取了。
3、与A3080的通信
http://public.blu.livefilestore.com/y1pZdMULcvL1oHHCT8pDLXkqs-jQ56uhxyE1zJ9b2WSeMy5MO_cFMPCD2jDrH8DDiad2wHmzi6SVQKyYJudnOoX7A/T33.jpg?psid=1打造自己的专属鼠标——鼠标DIY教程(三)" />
我们可以获得这样的关键信息:
a. 读或写操作要靠发送的数据的最高位来区别,“1”是写,“0”是读。
b. SPI的工作模式,从主控端出发,应该是
send out on SCLK rising edge, sampled
on SCLK falling edge 这个要和文中的描述反过来,它是从Sensor的角度来描述的,而我们要考虑主控的角度。另外,我们还要结合PDF中的图来进行设置的判断。
c. 250ns是SCLK的最小high状态,那么周期是500ns,那么最高频率是2Mhz,
但是 实际上,到后面会发现我们的固件将以大概3Mhz的SCLK来通信,。没用示波器来看信号,
但是读写A3080一切正常,这个算是“超频”了....
我们与A3080通信就是通过主控单片机的SPI接口发出读或者写操作的命令,这些命令都体现成二进制的数据流,简单来说,就是两块芯片在互相发电报,发短信。
再通过对比18f14k50
http://public.blu.livefilestore.com/y1pAQC9-vMwCIgaJKcUhxpEyQIzhq08LPKvrtLXiV40fpn4A2xcGFr2Gf_UYSU6ysuYAeT3kKqARrC9Pu8GWoeEhA/T34.jpg?psid=1打造自己的专属鼠标——鼠标DIY教程(三)" />
4、ADNS-3080的各种延时
http://public.blu.livefilestore.com/y1pBQ8Ed7GSlBAz9cy6diV95zuMGkG03DqeywD25ata8lOTLlRLAxFbnA_J-ZI_rJh6TuTaiDrAkbo-3yuWGvp8vw/T36.jpg?psid=1打造自己的专属鼠标——鼠标DIY教程(三)" />
基本上
比较特殊的是读操作,地址0x02,
motion这个寄存器需要75us的延时,到后面真正编写鼠标固件的时候会看到这些延时的操作,现在先留个印象。
ADNS-3080的SROM传输, Moion Burst读取模式也是比较特殊,
建议到PDF的P18页开始大概浏览一下就可以了,同样会在写鼠标固件的时候讲解一下
5、ADNS-3080的参数与设置
暂时A3080能挖掘的也就这几个东西了,不过肯定会有更有想象力的人把A3080榨干,这里写的东西只是抛砖引玉,大家掌握以后可以充分发挥自己的创造力。我们下期再继续!