搜索
bottom↓
楼主: xizi

激光鼠标传感器ADNS-9500采样源代码及遇到的问题

  [复制链接]

出0入0汤圆

发表于 2013-10-7 23:09:19 来自手机 | 显示全部楼层
不错收藏了

出0入0汤圆

发表于 2013-10-8 13:52:09 | 显示全部楼层
本帖最后由 egomcray 于 2013-10-8 14:22 编辑
xizi 发表于 2013-10-7 22:07
1. Pixart 继续使用Avago 的srom. srom-91 或者srom-b1都可以用。我一直在用srom-91。
2. 高于150ips的情 ...


多谢,已经下载了附件,和之前找到的一个SROM版本是一样的,说明是可用的没有问题~还有以下几个问题需要请教:
1. 另外我似乎还找到了一个A0版本的固件,不知道这些SROM固件有什么区别?不知道你有没有试过如果把B1版本的固件下载进去后有什么区别吗?
2. 根据芯片手册的说明, 150ips应该是在任何条件下都能正常工作的最大速度,另外上面特别说明了在某些特制的游戏鼠标垫表面可以达到200ips的速度,这个我还没有测试过,但可能是可信的,因为国外论坛有人测过ADNS-9500做核心的鼠标,最大的工作速度可以超过6m/s。另外关于Z轴距离的问题,芯片手册中有特别说明需要在传感器正上方提供一个压力,使其和透镜紧密锁定在一起,保证Z轴距离不会抖动,这样才能有稳定的工作效果,另外看芯片手册的描述,貌似Z轴距离大于2.4的时候效果比这个标准距离还要好一些,具体情况要等到过两天测试的时候再来验证。
3. 还有一个问题,9500传感器的上方留出了好多焊盘,看大小和尺寸正好是0603封装的焊盘,不知道这些焊盘是不是用于外围的电容电阻的?有没有相关的说明表明这几个焊盘分别对应的是哪几个管脚?

出0入0汤圆

发表于 2013-10-8 14:14:31 | 显示全部楼层

出0入0汤圆

发表于 2013-10-8 21:45:15 | 显示全部楼层
xizi 发表于 2013-10-7 22:07
1. Pixart 继续使用Avago 的srom. srom-91 或者srom-b1都可以用。我一直在用srom-91。
2. 高于150ips的情 ...

另外补充一下,刚才意外找到了AN5495,是关于A0版本的SROM的开发指南,看起来有不少信息,我会在近期进一步看一下

出0入0汤圆

 楼主| 发表于 2013-10-9 23:55:49 | 显示全部楼层
egomcray 发表于 2013-10-8 13:52
多谢,已经下载了附件,和之前找到的一个SROM版本是一样的,说明是可用的没有问题~还有以下几个问题需要 ...

1。srom-B1版本我试过,似乎squal寄存器的值不如srom-91稳定。
2。z轴距离对于我的情况不是正压力能解决的问题。我的情况是机械上无法保证被测纸张紧密接触透镜。虽然传感器与透镜紧密接触了,但z轴距离受被测对象位置的影响。
3。我没有在意那些空焊盘。
4。srom-A0没见到过,但关于它的手册AN5495我也下载过。
5。你测试后有什么收获的话,希望尽量发上来共享。

出0入0汤圆

发表于 2013-10-10 01:46:57 | 显示全部楼层
xizi 发表于 2013-10-9 23:55
1。srom-B1版本我试过,似乎squal寄存器的值不如srom-91稳定。
2。z轴距离对于我的情况不是正压力能解决 ...

好的,多谢分享经验,昨天芯片到手,今天仔细研究完了芯片手册,明天再看一下AN5495,顺利的话可以进行初步的可用性测试,如有新的心得和经验,随时放到这里分享。
其余的部分:
1. 机械上要保证透镜和被检测物体至少在5mm范围之内(我们初步测试采用9500芯片鼠标的结果,5mm高度之内有较稳定的输出),这个是比较重要的,所以如果是这个问题,恐怕真得动机械结构了;
2. 空焊盘昨天用万用表简单测试了一下,有些和GND是短路的,有些和一些电源管脚是短路的,另外8个很奇怪的完全没有连接,看到其他鼠标上面此处都留空,所以也只好把外围电路全部加在安装底板上了;
3. A0版的固件我放在附件里面了,是从一个开源项目里面抽取出来的,并不保证完全和官方一致,如果这两天能顺利验证,我回来这里说明一下。
如果您最近有什么新的心得体会的话,还望您不厌其烦,一起分享,我们可以互相学习~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2013-10-10 01:53:19 来自手机 | 显示全部楼层
好厉害啊   顶

出0入0汤圆

发表于 2013-10-10 02:05:23 | 显示全部楼层
xizi 发表于 2013-10-9 23:55
1。srom-B1版本我试过,似乎squal寄存器的值不如srom-91稳定。
2。z轴距离对于我的情况不是正压力能解决 ...

另外还有一个问题哈,看到芯片手册上写了一个SROM做CRC校验后输出的两个值是BE和EF,是所有的SROM校验结果都是这样还是这里只是给出了一个例子?

出0入0汤圆

发表于 2013-10-10 06:20:38 | 显示全部楼层
关注中..........................

出0入0汤圆

发表于 2013-10-10 09:34:53 | 显示全部楼层
最近也行研究下鼠标传感器呢。。。拿来做距离检测。。但是要求比较高啊

出0入0汤圆

 楼主| 发表于 2013-10-10 22:33:34 | 显示全部楼层
本帖最后由 xizi 于 2013-10-10 22:36 编辑
egomcray 发表于 2013-10-10 02:05
另外还有一个问题哈,看到芯片手册上写了一个SROM做CRC校验后输出的两个值是BE和EF,是所有的SROM校验结 ...


按照手册的描述,寄存器0x26给出的srom crc值是固定的BE EF (否则srom不正确)。我使用srom-91和srom-b1时,读出的srom crc值也确实是一样的。所以这不仅是例子,而是标准定义。

出0入0汤圆

发表于 2013-10-16 11:03:28 | 显示全部楼层
xizi 发表于 2013-10-10 22:33
按照手册的描述,寄存器0x26给出的srom crc值是固定的BE EF (否则srom不正确)。我使用srom-91和srom-b1时 ...

多谢前辈,按照您的描述和支持,最近ADNS9500已经调试成功,可以正常使用,具体的性能已经稳定性如何这两天正在做测试,要等进一步的结果。另外在使用的时候出现了几个奇怪的问题:
1. NCS管脚貌似有不稳定的现象发生,有非常大的概率初始化不成功(SPI通信完全没能建立),但是只要用金属物体在NCS的管脚上面碰一下,问题就解决了,这个诡异的现象我不是很好解释,可能和手工焊接出现的电抗有关系,但现在我还不好解释;
2. 按照A0固件的描述,新增加的是角度修正和最大分辨率的功能,貌似对非鼠标类的应用没什么价值,所以最后还是使用了91版本的固件,目前看来比较稳定。

出0入0汤圆

 楼主| 发表于 2013-10-16 22:11:24 | 显示全部楼层
egomcray 发表于 2013-10-16 11:03
多谢前辈,按照您的描述和支持,最近ADNS9500已经调试成功,可以正常使用,具体的性能已经稳定性如何这两 ...

1。NCS管脚的表现很像是虚焊,可另外再焊一根飞线来验证。
2。z轴距离我仍在调整中。我手上有35个传感器样片,做了一批母板。为了摸索z轴距离,单独制作了机械平台,可以用千分尺微调距离。初步完成了9个样片的测试。有的表现好,有的表现差。表现好的可以在2.0mm -- 4.5mm范围内工作;表现不好的只可以在一些离散的点工作正常。但没有一个可以在2.0mm以下或4.5mm以上工作正常的。
3。同意关于srom的理解。91版本已经具有了所有重要的功能,后续版本除了附加功能外,没有实质的改进。

出0入0汤圆

发表于 2013-10-18 23:47:14 | 显示全部楼层
xizi 发表于 2013-10-16 22:11
1。NCS管脚的表现很像是虚焊,可另外再焊一根飞线来验证。
2。z轴距离我仍在调整中。我手上有35个传感器 ...

1. 之前这个管脚就很奇怪,用金属物品点一下就好, 后来索性在管教上面焊了一条导线,另一端直接置空,然后就好用了,今天不甘心,索性新焊了一块板子,换了一块芯片,结果依然是同样的问题,现在我有点解释不清楚了,如果是虚焊的话,不知道有多大可能正好两块板子都出现了这样的问题……
2. 如果按照您的描述,芯片之间也会存在质量差异么?这个应该是一个很严重的问题,按照这个芯片在鼠标领域的表现来看应该不会有这样的问题才对,会是因为其他原因造成的不稳定么?比如与透镜之间的安装稳定性等等问题,这一点我还不是很确定,因为这两天还没有开始系统测试,仅仅是可用性测试阶段,我都是直接把透镜几乎贴在参考面上运行的,也就是说这样就相当于0的离地高度,诡异的是这个芯片貌似还能正常运行,并没有太大的抖动和不稳定现象,当然分辨率有所不同于设置,但其他还算正常;
3. 是的,我记得寄存器里面有一个CircuitID之类的东西,如果这个硬件ID是一样的,那么在硬性性能指标上,应该没有任何区别,固件也不可能升级这方面的性能,诸如FPS以及数据传输能力之类的指标肯定上限已经固定了,因此对于开发其他应用来说,还是稳定性大于一切吧。

出0入0汤圆

发表于 2013-10-20 20:10:35 | 显示全部楼层
xizi 发表于 2013-10-16 22:11
1。NCS管脚的表现很像是虚焊,可另外再焊一根飞线来验证。
2。z轴距离我仍在调整中。我手上有35个传感器 ...

今天又产生了一个很奇怪的现象。
依然是之前NCS管脚的问题,在数次尝试解决未果后,尝试将MOTION管脚强制连在3.3V电源上,结果突然间芯片正常了,可以正常下载SROM并使用,但奇怪的是这个管脚明明是ADNS9500的输出管脚,将其正常连接到STM32的输入管脚甚至接地都不能正常工作,不知您平时是如何使用这个管脚的?我现在对这个管脚和使用方式有很大的疑惑。

出0入0汤圆

 楼主| 发表于 2013-10-20 23:38:38 | 显示全部楼层
egomcray 发表于 2013-10-20 20:10
今天又产生了一个很奇怪的现象。
依然是之前NCS管脚的问题,在数次尝试解决未果后,尝试将MOTION管脚强制 ...

这个motion管脚我没有使用,一直让它悬空的。

出0入0汤圆

发表于 2013-11-13 15:55:35 | 显示全部楼层
xizi 发表于 2012-8-20 06:05
已经得到厂家的技术支持,问题已解决。
有两点不注意导致被卡住:
1。上电序列与SROM下载系列需要被看作 ...

xizi 你好,下载了激光鼠标传感器ADNS-9500采样源代码,但是我没用过ADNS-9500,程序有些看不懂,能请教一下吗?
比如: #include <aversive.h>, #include <aversive/wait.h>, #include <aversive/error.h>, #include <stdio.h>, #include <uart.h>; 这几个include,是不是ADNS-9500通用的?但是我没有这些include,你能发给我或者告诉我如何下载吗?谢谢!--雪儿(E-mail:704961224@qq.com)

出0入0汤圆

 楼主| 发表于 2013-11-14 19:11:50 | 显示全部楼层
雪儿 发表于 2013-11-13 15:55
xizi 你好,下载了激光鼠标传感器ADNS-9500采样源代码,但是我没用过ADNS-9500,程序有些看不懂,能请教 ...

这些include不用管它,直接删掉。其实我只是参考其核心代码,重写自己的程序。从来没有对其直接编译过。

出0入0汤圆

发表于 2013-11-15 03:31:19 | 显示全部楼层
今天把这个数据读出来了,按lz代码和相关讨论写的,特来表示感谢~

出0入0汤圆

发表于 2013-11-15 11:53:01 | 显示全部楼层
本帖最后由 雪儿 于 2013-11-15 12:40 编辑
xizi 发表于 2013-11-14 19:11
这些include不用管它,直接删掉。其实我只是参考其核心代码,重写自己的程序。从来没有对其直接编译过。 ...


xizi ,谢谢你! 激光鼠标传感器采样, “SPI接口速度是2MHz;每帧的字节数是900 byte,折算成位数是7200 bit;简单计算2000000/7200 = 278 帧/秒”。采用51做处理是不是只能这么慢,有没有办法提高处理速度?

出0入0汤圆

 楼主| 发表于 2013-11-16 01:09:29 | 显示全部楼层
雪儿 发表于 2013-11-15 11:53
xizi ,谢谢你! 激光鼠标传感器采样, “SPI接口速度是2MHz;每帧的字节数是900 byte,折算成位数是7200 b ...

这完全取决于SPI接口速度。据说SPI可以提高到18MHz,但没有试验过。

出0入0汤圆

发表于 2013-11-18 13:14:32 | 显示全部楼层
xizi 发表于 2013-11-16 01:09
这完全取决于SPI接口速度。据说SPI可以提高到18MHz,但没有试验过。

谢谢你!有问题再请教

出0入0汤圆

发表于 2013-11-18 13:24:00 | 显示全部楼层
669911 发表于 2013-5-6 08:44
网上查到了2个库文件,看看有没有用

你好,能建立联系吗,我的邮箱:704961224@qq.com,谢谢

出0入0汤圆

发表于 2013-11-18 14:53:25 | 显示全部楼层
我之前用3080做了一下测速测距,发现是用光流法来做的,也就是图像要有特征点才能捕获移动,所以你的5%精确度可能和光照度和镜头有关,可以查看一下表面质量的寄存器值 如果值太小 误差就越大 也就越不准了,可以通过调整镜头焦距和更换不同焦长的镜头来适应自己的使用需求。我用来做车辆测距 重复误差1%以内

出0入0汤圆

发表于 2013-11-18 22:31:44 | 显示全部楼层
maxwelllls 发表于 2013-11-18 14:53
我之前用3080做了一下测速测距,发现是用光流法来做的,也就是图像要有特征点才能捕获移动,所以你的5%精确 ...

你好,你“用来做车辆测距”,指的是什么我不太懂,是两辆车之间的动态距离吗?谢谢

出0入0汤圆

发表于 2013-11-20 14:48:51 | 显示全部楼层
雪儿 发表于 2013-11-18 22:31
你好,你“用来做车辆测距”,指的是什么我不太懂,是两辆车之间的动态距离吗?谢谢 ...

车辆里程计,非接触五轮仪

出0入0汤圆

发表于 2013-11-26 11:42:13 | 显示全部楼层
请问一下,我直接连接ADNS-9500模块,而没有添加激光等外围电路的情况下,读写9500没有反应,是不是这样做不可以?

出0入0汤圆

 楼主| 发表于 2013-11-26 20:51:55 | 显示全部楼层
nicholasdlut 发表于 2013-11-26 11:42
请问一下,我直接连接ADNS-9500模块,而没有添加激光等外围电路的情况下,读写9500没有反应,是不是这样做 ...

没有外围电路,它会自锁的。所以一定要完整的外围电路才可以试验。

出0入0汤圆

发表于 2013-11-26 21:55:14 | 显示全部楼层
本帖最后由 nicholasdlut 于 2013-11-26 21:57 编辑
xizi 发表于 2013-11-26 20:51
没有外围电路,它会自锁的。所以一定要完整的外围电路才可以试验。


VCSEL+-、XYLASER、LASER_NEN这四个引脚的外围电路必须要接上,芯片的SPI控制器才能读写吗?我翻了数据手册,好像有没有这样的要求啊?

出0入0汤圆

 楼主| 发表于 2013-11-27 06:14:18 | 显示全部楼层
nicholasdlut 发表于 2013-11-26 21:55
VCSEL+-、XYLASER、LASER_NEN这四个引脚的外围电路必须要接上,芯片的SPI控制器才能读写吗?我翻了数据手 ...

那倒不是。但读到的数据是垃圾。

出0入0汤圆

发表于 2013-11-27 09:13:46 | 显示全部楼层
xizi 发表于 2013-11-27 06:14
那倒不是。但读到的数据是垃圾。

哦,看样子这就是困扰我的问题。十分感谢!

出0入0汤圆

发表于 2013-12-7 13:10:15 | 显示全部楼层
egomcray 发表于 2013-10-20 20:10
今天又产生了一个很奇怪的现象。
依然是之前NCS管脚的问题,在数次尝试解决未果后,尝试将MOTION管脚强制 ...

你好,我最近用stm32加载ADNS9500固件库,怎么都不成功,还望大神赐教!

出0入0汤圆

发表于 2013-12-17 10:48:53 | 显示全部楼层
669911 发表于 2013-5-6 20:45
我也不懂,应该不是绝对值,只是相对值。另外我感兴趣的是adns9500的图像功能,这几天我在打样

根据这个打 ...

你好 问您一下 9500的图像是不是传过是一个900字节的数 对应着每一个像素 01代表的是像素点的黑白 我也在做9500 是我的研究生课题

出0入0汤圆

发表于 2013-12-17 10:53:06 | 显示全部楼层
xizi 发表于 2013-5-6 20:50
cpi的意思是count per inch,也就是每英尺的移动距离产生多少个计数。5670cpi是说每英尺的移动距离会产生 ...

您好 看到这个帖子 对我的启发很大 但是还有些疑惑 我要用9500测速度 用在送丝机上 这个说明书25页上说y movement is count since last report 是不是意味着 这个寄存器 我只有读他才会清空 然后在我读它之前 他就相当与不停地进行数据的叠加 我是否需要设置读取的时间间隔 如果是的话 您设置的读取间隔是多少啊 万分感谢

出0入0汤圆

发表于 2013-12-17 10:54:14 | 显示全部楼层

结论是基本可用,精度在10%左右。

出0入0汤圆

 楼主| 发表于 2013-12-17 12:00:16 | 显示全部楼层
wangzitc333 发表于 2013-12-17 10:53
您好 看到这个帖子 对我的启发很大 但是还有些疑惑 我要用9500测速度 用在送丝机上 这个说明书25页上说y  ...

你理解的很对。我选择每2ms读取一次数据。

出0入0汤圆

发表于 2013-12-18 09:09:45 | 显示全部楼层
xizi 发表于 2013-12-17 12:00
你理解的很对。我选择每2ms读取一次数据。

那您对这个最高速度150ips怎么理解的,难道90cpi和5000cpi都会实现这个值吗

出0入0汤圆

 楼主| 发表于 2013-12-18 19:35:53 | 显示全部楼层
本帖最后由 xizi 于 2013-12-18 19:37 编辑
wangzitc333 发表于 2013-12-18 09:09
那您对这个最高速度150ips怎么理解的,难道90cpi和5000cpi都会实现这个值吗


我的理解是,最高速度与cpi无关。最高速度只受限于材质。两个极端例子是,白纸效果最差,速度远达不到150ips;标准鼠标垫效果最好,速度可以达到150ips。

出0入0汤圆

发表于 2013-12-25 16:05:27 | 显示全部楼层
我现在能够读到X,Y轴的数据,但是感觉X轴正方向的数据比X轴负方向的数据绝对值大,快速移动的时候数据不连续,突然会有个大数据出来,快速移动的偏差比慢速移动的偏差大很多。我的介质是树脂,想问下介质和速度关系图

出0入0汤圆

发表于 2013-12-25 17:23:34 | 显示全部楼层

谢谢把代码贴出来,方便了不是会员的人看

出0入0汤圆

发表于 2013-12-25 17:31:10 | 显示全部楼层

你这个是哪个手册?没看到这个寄存器么

出0入0汤圆

 楼主| 发表于 2013-12-26 03:35:26 | 显示全部楼层
gujiamao_love 发表于 2013-12-25 16:05
我现在能够读到X,Y轴的数据,但是感觉X轴正方向的数据比X轴负方向的数据绝对值大,快速移动的时候数据不连 ...

介质与速度的关系图,厂家似乎没有提供,我手头也没有。有关的言论只是我的经验之谈。

出0入0汤圆

发表于 2013-12-26 08:14:42 | 显示全部楼层
xizi 发表于 2013-12-26 03:35
介质与速度的关系图,厂家似乎没有提供,我手头也没有。有关的言论只是我的经验之谈。 ...

谢谢,你在国内吗?

出0入0汤圆

 楼主| 发表于 2013-12-28 00:23:12 | 显示全部楼层
gujiamao_love 发表于 2013-12-26 08:14
谢谢,你在国内吗?

虽不在国内,但是在地球村。

出0入0汤圆

发表于 2014-2-12 14:51:02 | 显示全部楼层
楼主,请教,为什么我按照参考例程和你的一些忠告,还是固件加载不了~烦死了都

出0入0汤圆

 楼主| 发表于 2014-2-13 01:18:17 | 显示全部楼层
luckywan 发表于 2014-2-12 14:51
楼主,请教,为什么我按照参考例程和你的一些忠告,还是固件加载不了~烦死了都 ...

不要着急,可详细道来。

若有逻辑分析仪,可以捕捉一下SPI信号,然后逐字节分析一下逻辑关系, 看是否能找到错误之处。

若没有逻辑分析仪,最好向站长买一个,刚上架不久。很有用处,可让黑盒子变白盒子。

出0入0汤圆

发表于 2014-3-7 10:02:11 | 显示全部楼层
xizi 发表于 2014-2-13 01:18
不要着急,可详细道来。

若有逻辑分析仪,可以捕捉一下SPI信号,然后逐字节分析一下逻辑关系, 看是否能 ...

你好,这段时间,仔细看文档和你们在论坛里的一些讨论,现在已经把固件库加载进去了,固件库检验什么的都正确,但是为什么我读不出来dx和dy的值啊,检测motion pin,一直没有low singal输出,能不能贴一段你处理这一块的函数代码给我参考参考~

出0入0汤圆

 楼主| 发表于 2014-3-8 09:34:24 | 显示全部楼层
luckywan 发表于 2014-3-7 10:02
你好,这段时间,仔细看文档和你们在论坛里的一些讨论,现在已经把固件库加载进去了,固件库检验什么的都 ...

一楼的附件就是参考代码,ADNS-9500-Sensor-Code-example.rar,是用rar压缩的。

出0入0汤圆

发表于 2014-3-11 09:36:29 | 显示全部楼层
egomcray 发表于 2013-10-20 20:10
今天又产生了一个很奇怪的现象。
依然是之前NCS管脚的问题,在数次尝试解决未果后,尝试将MOTION管脚强制 ...

你好,我现在也遇到你同样的问题,motion引脚检测无输出,用stm32去读取dx和dy,不管怎么移动都没有数值~跪求一解

出0入0汤圆

发表于 2014-3-14 10:06:57 | 显示全部楼层
xizi 发表于 2014-3-8 09:34
一楼的附件就是参考代码,ADNS-9500-Sensor-Code-example.rar,是用rar压缩的。

你好,目前怎么检测不到寄存器0x02被置位,但是人为的fault故障,却能读出值为0x40,不知道这块是什么原因~

出0入0汤圆

 楼主| 发表于 2014-3-16 20:47:40 | 显示全部楼层
luckywan 发表于 2014-3-14 10:06
你好,目前怎么检测不到寄存器0x02被置位,但是人为的fault故障,却能读出值为0x40,不知道这块是什么原因 ...

记得我一开始曾经把激光管电源接错,3.3v错接成5v,结果并没有烧坏器件,但是读出0x02地址的值总是0x40。你可以回头检查一下电路图。或者上传一个截图,让大伙帮你检查一下。

出0入0汤圆

发表于 2014-3-17 11:23:40 | 显示全部楼层
xizi 发表于 2014-3-16 20:47
记得我一开始曾经把激光管电源接错,3.3v错接成5v,结果并没有烧坏器件,但是读出0x02地址的值总是0x40。 ...

我这块的外围电路是我拆除雷柏V3鼠标主芯片之后的电路

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2014-3-18 19:49:30 | 显示全部楼层
luckywan 发表于 2014-3-17 11:23
我这块的外围电路是我拆除雷柏V3鼠标主芯片之后的电路

既然使用了现成的电路,似乎不会出现电源接错的情况。等等别人的高见吧。

出0入0汤圆

发表于 2014-3-19 11:20:56 | 显示全部楼层
xizi 发表于 2014-3-18 19:49
既然使用了现成的电路,似乎不会出现电源接错的情况。等等别人的高见吧。 ...


我想知道,你们正常工作时读出寄存器0x02的值是多少

出0入0汤圆

发表于 2014-3-31 16:32:17 | 显示全部楼层
请问你们当时读取Product_ID(0x00)和Reversion_ID(0x01)的值是多少?是默认的0x33和0x03吗?

出0入0汤圆

 楼主| 发表于 2014-4-8 13:07:02 | 显示全部楼层
baochuquan 发表于 2014-3-31 16:32
请问你们当时读取Product_ID(0x00)和Reversion_ID(0x01)的值是多少?是默认的0x33和0x03吗? ...

具体值不记得了。只是判断Product_ID与INVERSE_PID是否互逆。如果不互逆,则报告错误。

出0入0汤圆

发表于 2014-4-8 13:26:41 | 显示全部楼层
错收藏了

出0入0汤圆

发表于 2014-4-8 13:28:44 | 显示全部楼层
错收藏了。。

出0入0汤圆

发表于 2014-4-9 11:33:23 | 显示全部楼层
xizi 发表于 2014-4-8 13:07
具体值不记得了。只是判断Product_ID与INVERSE_PID是否互逆。如果不互逆,则报告错误。 ...

恩,谢谢楼主,问题我已经解决了,是硬件电路出现了问题。
我已经成功加载了SROM,CRC校验和SROM_ID读取都正确了,也就是说上电序列顺利完成了(其中也包括LASER的设置也完成了,我对其进行读取也证明我LASER设置好了),接下来就是间隔性的进行Motion Burst Read。
但是我现在遇到问题了,我进行读取,但是每次Motion寄存器都是0x00,Observation是0x33,Delta_X_L是0xff,Delta_X_H是0x33,Delta_Y_L是0xff,Delta_Y_H是0xff,不管我怎么移动芯片(加上了专用透镜),始终是这样,请问楼主,我是不是少了什么设置还是哪里出错了?

出0入0汤圆

发表于 2014-5-30 15:51:28 | 显示全部楼层
xizi 发表于 2014-3-18 19:49
既然使用了现成的电路,似乎不会出现电源接错的情况。等等别人的高见吧。 ...

你好,请教一下,我用这个来测位移,为什么微小移动检测不出数值,我知道跟移动速度有关,但是不知道这个移动速度下限,也不知道怎么计算,不知道你对这方面可有什么见解~

出0入0汤圆

 楼主| 发表于 2014-5-31 10:32:50 | 显示全部楼层
luckywan 发表于 2014-5-30 15:51
你好,请教一下,我用这个来测位移,为什么微小移动检测不出数值,我知道跟移动速度有关,但是不知道这个 ...

或许跟自动睡眠有关,没有试验过速度下限。

出0入0汤圆

发表于 2014-6-30 13:46:57 | 显示全部楼层
MARK一下 以后会用到

出0入0汤圆

发表于 2014-7-2 02:31:12 | 显示全部楼层
赞这种交流方式!关注,给大家顶贴!

出0入0汤圆

发表于 2014-7-28 10:05:06 | 显示全部楼层
maxwelllls 发表于 2013-11-18 14:53
我之前用3080做了一下测速测距,发现是用光流法来做的,也就是图像要有特征点才能捕获移动,所以你的5%精确 ...

请问你的镜头是什么标准的,定做的还是购买现成的

出0入0汤圆

发表于 2014-8-2 11:27:10 | 显示全部楼层
cuizheng_2004 发表于 2014-7-28 10:05
请问你的镜头是什么标准的,定做的还是购买现成的

淘宝现成买的镜头

出0入0汤圆

发表于 2014-8-4 22:24:24 | 显示全部楼层
xizi 发表于 2014-4-8 13:07
具体值不记得了。只是判断Product_ID与INVERSE_PID是否互逆。如果不互逆,则报告错误。 ...

请问这个芯片如果用来测位移误差有多大呢,现在我有一个物料三米长,如果这个物料以一米每秒运动,用这个芯片能不能做到测量只差一个厘米呢?

出0入0汤圆

发表于 2014-8-7 23:13:07 | 显示全部楼层
调了两天终于有点眉目了,设置CPI不能按楼主的程序来做,一定要在开激光器之前就设置好,要不然就没有效果了.

出0入0汤圆

发表于 2014-12-1 14:24:00 | 显示全部楼层
mark
.................

出0入0汤圆

发表于 2014-12-13 15:02:53 | 显示全部楼层
maxwelllls 发表于 2014-8-2 11:27
淘宝现成买的镜头

请问你买的什么镜头呢,我也想做一个类似的项目,但是距离可能要3-10cm。不知道你的透镜的淘宝链接或者关键词是什么?

出0入0汤圆

发表于 2014-12-16 12:15:10 | 显示全部楼层
jjkkty 发表于 2014-12-13 15:02
请问你买的什么镜头呢,我也想做一个类似的项目,但是距离可能要3-10cm。不知道你的透镜的淘宝链接或者关 ...

摄像头镜头+镜头螺纹直径

出0入0汤圆

发表于 2014-12-16 15:38:48 | 显示全部楼层
maxwelllls 发表于 2014-12-16 12:15
摄像头镜头+镜头螺纹直径

我最近也需要一个车辆速度的监测装置,能不能给个联系方式我们详细沟通

出0入0汤圆

发表于 2014-12-16 16:07:13 | 显示全部楼层
maxwelllls 发表于 2014-12-16 12:15
摄像头镜头+镜头螺纹直径

那你的激光是怎么解决的,是要另外加一束激光打在视区里面么?

出0入0汤圆

发表于 2014-12-20 15:39:21 | 显示全部楼层
留下qq我联系你

出0入0汤圆

 楼主| 发表于 2014-12-22 08:32:25 | 显示全部楼层

不好意思,只喜欢在这里交流,不喜欢qq交流。这也是站长推崇的。

出0入0汤圆

发表于 2014-12-22 18:30:23 | 显示全部楼层
我跟楼上的说。。。

出0入0汤圆

发表于 2014-12-22 18:30:51 | 显示全部楼层
jjkkty 发表于 2014-12-16 16:07
那你的激光是怎么解决的,是要另外加一束激光打在视区里面么?


私信我qq 我加你

出0入0汤圆

发表于 2014-12-23 19:09:41 | 显示全部楼层

1212 53679等级不够,私信不了..

出0入4汤圆

发表于 2014-12-23 20:17:42 | 显示全部楼层
看见过鼠标用的EMC的单片机,看来玩玩也很有意思

出0入0汤圆

发表于 2014-12-23 20:23:22 | 显示全部楼层
涨姿势了

出0入0汤圆

发表于 2015-1-29 17:44:20 | 显示全部楼层
本帖最后由 BraveRichard 于 2015-1-29 20:31 编辑

各位大神,关于motion_burst我有些疑惑。这个是我从别人的代码里面扒出来的。我想请教一下,这个代码是不是正确的。我看datasheet里面第17页之后就有些质疑这个代码了。为什么要再去做spi_transfer(ADNS9500_MOTION_BURST_ADDR)这一步。还有那个NCS怎么在这块才置成0,如果这块才置成0,上面的spi_write_sensor(ADNS9500_MOTION_BURST_ADDR, 0x50)这个函数在对什么进行操作!
附上这个函数。
void read_sensor_motion_burst(void)
{
        unsigned char temp;
        spi_write_sensor(ADNS9500_MOTION_BURST_ADDR, 0x50);
        delay_us(100);  // wait for Tsrad >100us (default 1 frame)
        NCS = 0;
        delay1();
        spi_transfer(ADNS9500_MOTION_BURST_ADDR);        //send address to sensor before start spi_read
        delay_us(50);

        ///// start motion burst /////
        temp                         = spi_transfer(0xff); //bit 0
        temp                        = spi_transfer(0xff); //bit 1
        motion_x.b[LSB] = spi_transfer(0xff); //bit 2
        motion_x.b[MSB] = spi_transfer(0xff); //bit 3
        motion_y.b[LSB] = spi_transfer(0xff); //bit 4
        motion_y.b[MSB] = spi_transfer(0xff); //bit 5
        ///// end motion burst /////

        NCS = 1;                                                       
}
谢谢啦!

出0入0汤圆

 楼主| 发表于 2015-2-2 04:53:05 | 显示全部楼层
BraveRichard 发表于 2015-1-29 17:44
各位大神,关于motion_burst我有些疑惑。这个是我从别人的代码里面扒出来的。我想请教一下,这个代码是不是 ...

这个取决于函数spi_write_sensor(ADNS9500_MOTION_BURST_ADDR, 0x50)里面做了什么。有可能这个函数是自治的,也就是内含NCS的置零和置一操作。
只有你把这个函数贴出来,其他人才看得清楚。
再者,datasheet里面第17页是什么,你对它的质疑是什么,最好多说一些,不厌其详。

出0入0汤圆

发表于 2015-2-2 10:21:48 | 显示全部楼层
xizi 发表于 2015-2-2 04:53
这个取决于函数spi_write_sensor(ADNS9500_MOTION_BURST_ADDR, 0x50)里面做了什么。有可能这个函数是自治 ...

spi_write_sensor的函数具体是这样的,
void spi_write_sensor(unsigned char addr, unsigned char data_in)
{
        NCS = 0;
        delay1();
        spi_transfer(addr | 0x80);
        delay_us(50);
        spi_transfer(data_in);
        delay_us(30);
        NCS = 1;
}
spi_transfer的函数是这样写的,
unsigned char spi_transfer(unsigned char data_in)
{
        dummy_bit = data_in;
        MOSI = dummy_bit7;
        SCLK = 0;        delay1();
        SCLK = 1;        delay1();
        dummy_bit7 = MISO;

        MOSI = dummy_bit6;
        SCLK = 0;        delay1();
        SCLK = 1;        delay1();
        dummy_bit6 = MISO;

        MOSI = dummy_bit5;
        SCLK = 0;        delay1();
        SCLK = 1;        delay1();
        dummy_bit5 = MISO;

        MOSI = dummy_bit4;
        SCLK = 0;        delay1();
        SCLK = 1;        delay1();
        dummy_bit4 = MISO;

        MOSI = dummy_bit3;
        SCLK = 0;        delay1();
        SCLK = 1;        delay1();
        dummy_bit3 = MISO;

        MOSI = dummy_bit2;
        SCLK = 0;        delay1();
        SCLK = 1;        delay1();
        dummy_bit2 = MISO;

        MOSI = dummy_bit1;
        SCLK = 0;        delay1();
        SCLK = 1;        delay1();
        dummy_bit1 = MISO;

        MOSI = dummy_bit0;
        SCLK = 0;        delay1();
        SCLK = 1;        delay1();
        dummy_bit0 = MISO;

        return dummy_bit;
}
我质疑的是代码本身,我觉得那个写的和datasheet描述的不对应,可是那个人说这个代码是可以用的,所以我很奇怪。我还没有做出来,所以在排查错误。就是第一次回复的时候加红那几条语句有些奇怪啊。

出0入0汤圆

发表于 2015-2-2 10:31:13 | 显示全部楼层
本帖最后由 BraveRichard 于 2015-2-2 20:01 编辑
xizi 发表于 2015-2-2 04:53
这个取决于函数spi_write_sensor(ADNS9500_MOTION_BURST_ADDR, 0x50)里面做了什么。有可能这个函数是自治 ...


抱歉啊,我刚刚又看了一下代码,确实像你说的那样,我没有看清楚,现在已经获取到数据了。那个函数那样写是正确的。
谢谢你啦!!!

出0入0汤圆

发表于 2015-3-13 15:02:16 | 显示全部楼层
楼主 你好,我想请教一下,你最后测出来的最优的z轴距离为多少啊?  我觉得应该是我Z轴距离做的不合适,所以数据现在飘得厉害啊。。

出0入0汤圆

 楼主| 发表于 2015-3-14 09:38:47 | 显示全部楼层
BraveRichard 发表于 2015-3-13 15:02
楼主 你好,我想请教一下,你最后测出来的最优的z轴距离为多少啊?  我觉得应该是我Z轴距离做的不合适,所 ...

最优的z轴距离2.4mm,包括透镜的厚度。如果使用厂家推荐的透镜ADNS-6190,那么介质到透镜的最佳距离在0.5--1mm。

出0入0汤圆

发表于 2015-4-10 16:46:44 | 显示全部楼层
楼主 看了你的帖子 很有用 我现在在做ADNS9800位移检测 使用5V模式,用REFB(Pin 12)给VDDIO(Pin 15)供电 但是这个电压总是不对,最开始上电总是4.2V左右(实际PIN12应该输出的是3V,Pin15理论上是接收最高3.3V),我把Pin 12和地短接了一下,这个电压变成3.85V,请问这是什么原因呢 对芯片运行有什么影响吗

出0入0汤圆

 楼主| 发表于 2015-4-11 23:51:49 | 显示全部楼层
xyn0116 发表于 2015-4-10 16:46
楼主 看了你的帖子 很有用 我现在在做ADNS9800位移检测 使用5V模式,用REFB(Pin 12)给VDDIO(Pin 15)供电 但 ...

无图无真相。请帖完整电路图上来。

出0入0汤圆

发表于 2015-4-13 15:22:12 | 显示全部楼层
xizi 发表于 2015-4-11 23:51
无图无真相。请帖完整电路图上来。

原理图是这样的,抱歉啊,今天才发。。。这种供电方式理论是可行的吧,DS里有一句说除了VDDIO(PIN15)以及VCSEL,不要用REFB(PIN12)给别的芯片供电。。。但是为什么我用REFB给VDDIO供电 电压就不对呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2015-4-13 20:28:37 | 显示全部楼层
我的问题还有一个情况,就是我接SPI通信线之前,Pin12输出电压是3V,把SPI四根通讯线接到单片机的四个口上,Pin12电压就不对了,这是什么原因呢?

出0入0汤圆

 楼主| 发表于 2015-4-14 08:28:41 | 显示全部楼层
本帖最后由 xizi 于 2015-4-14 08:30 编辑
xyn0116 发表于 2015-4-13 20:28
我的问题还有一个情况,就是我接SPI通信线之前,Pin12输出电压是3V,把SPI四根通讯线接到单片机的四个口上 ...


仔细看了一下你的电路图,确实没发现不对之处。也跟我的电路图对比了一下,除了原件摆放位置以及有些原件合并之外,没有本质区别。你说的电压变动情况,我以前没有留意,不知道在我的电路里是否存在。到实验室测试后再回复你。
把我的电路图发上来,欢迎其他高人参与鉴别。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2015-4-14 15:00:11 | 显示全部楼层
xizi 发表于 2015-4-14 08:28
仔细看了一下你的电路图,确实没发现不对之处。也跟我的电路图对比了一下,除了原件摆放位置以及有些原件 ...

好的,期待你的回复。

出0入0汤圆

发表于 2015-4-14 17:34:09 | 显示全部楼层
我今天又做了下测试(debugger还没到,只能简单的测试下SPI口),发现只要我设置SPCR(我用的ATmega32,有SPI口),那PIN12的输出电压就不对(从3V变到3.54V),当我拉高NCS,电压又会从3.54V变成3.85V左右,PIN12理论上是3V的regulator output,但它竟然随着单片机软件的改变而改变,什么情况。。。当然,如果不影响ADNS的使用就无所谓了。。。

出0入0汤圆

 楼主| 发表于 2015-4-15 07:51:26 | 显示全部楼层
我的电路PIN12的输出电压一直是3V。
我使用的是STM32F205,3.3V CPU。
估计差别就在这里,你的CPU是5V供电。SPI接口上的5V电压会对ADNS有影响。至于你的CPU能否正常读取ADNS,就看你的后续实验了。

出0入0汤圆

发表于 2015-4-20 19:24:45 | 显示全部楼层
本帖最后由 xyn0116 于 2015-4-20 20:18 编辑

楼主,我现在也是卡在固件下载这里,能读出PID,但是固件下载以后sromID和CRC校验的数值都很奇怪,分别是0xfe,0xff(lower),0xfe(upper)。。DS里说如果读PID可以用来验证串行通信是否成功,那么我读出PID是否就说明我的SPI口是可以正常读写的?那为什么我下载SROM就不对呢。。我注意到了你说的问题,把cs拉高拉低打包在了SPI发送接收函数中。。我的程序如下,可否帮我看一下哪里出错了呢:
       SPI_MasterInit();   //initialize SPI port
        ADNS_com_begin();
        _delay_ms(100);
        ////Power Up ADNS9800(including the firmware download)/////////////////////////////////////////
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////
        //1.Apply power to VDD5/VDD3 and VDDIO in any order
        //2.Drive NCS high, and then low to reset the SPI port.
        ADNS_com_end();
        //3. Write 0x5a to Power_Up_Reset register (address 0x3a).
        ADNS9800_SPI_transmit(REG_Power_Up_Reset, 0x5a);
        //4. Wait for at least 50ms time.
        _delay_ms(50);
        /*5. Read from registers 0x02, 0x03, 0x04, 0x05 and 0x06 (or read these same 5 bytes from burst motion register) one time
        regardless of the motion pin state. */
        ADNS9800_SPI_read(REG_Motion);
        ADNS9800_SPI_read(REG_Delta_X_L);
        ADNS9800_SPI_read(REG_Delta_X_H);
        ADNS9800_SPI_read(REG_Delta_Y_L);
        ADNS9800_SPI_read(REG_Delta_Y_H);
        //6. SROM download procedure begins////////////////////////////////////////////////////
        //6.1 Select the 3 K bytes SROM size at Configuration_IV register, address 0x39
        ADNS9800_SPI_transmit(REG_Configuration_IV, 0x02);
        //6.2 Write 0x1d to SROM_Enable register for initializing
        ADNS9800_SPI_transmit(REG_SROM_Enable, 0x1d);
        //6.3 Wait for one frame
        _delay_ms(10);
        //6.4 Write 0x18 to SROM_Enable register again to start SROM downloading
        ADNS9800_SPI_transmit(REG_SROM_Enable, 0x18);
        /*6.5 Write SROM file into SROM_Load_Burst register, 1st data must start with SROM_Load_Burst register address. All the
        SROM data must be downloaded before SROM start running.*/
        ADNS_com_begin();
        SPI_MasterTransmit(REG_SROM_Load_Burst|0x80);//first data
        ADNS_com_end();
        _delay_us(15);
        unsigned char c;
        ADNS_com_begin();
        for(int i=0; i< firmware_length; i++)
        {
                c = (unsigned char)pgm_read_byte(firmware_data + i);
                SPI_MasterTransmit(c);
                _delay_us(15);
        }
        ADNS_com_end();
        sromid = ADNS9800_SPI_read(REG_SROM_ID);
        ///perform crc test
        //1. Write 0x15 to SROM_Enable register to start SROM CRC test.
        ADNS9800_SPI_transmit(REG_SROM_Enable, 0x15);
        //2. Wait for at least 10 ms.
        _delay_ms(15);
        //3. Read the CRC value from Data_Lower and Data_Upper registers.
        datalower = ADNS9800_SPI_read(REG_Data_Out_Lower);
        dataupper = ADNS9800_SPI_read(REG_Data_Out_Upper);
        pid = ADNS9800_SPI_read(REG_Product_ID);

出0入0汤圆

发表于 2015-4-20 21:50:15 | 显示全部楼层
楼主,我又仔细看了下你的帖子,读了下InversePID,是0xff,而PID是0x33,显然不对啊。。。这会是什么原因呢?按帖子里以及DS的说法,这说明我的SPI硬件上出了问题,请问SPI的硬件有什么要求呢?该如何测试SPI的硬件?另外如果硬件不对,那我为啥能读出PID的值呢?打扰楼主了。。。先谢

出0入0汤圆

发表于 2015-5-8 23:21:59 | 显示全部楼层
xizi 发表于 2015-3-14 09:38
最优的z轴距离2.4mm,包括透镜的厚度。如果使用厂家推荐的透镜ADNS-6190,那么介质到透镜的最佳距离在0.5 ...

谢谢啊   最近一直没有上阿莫 才看到。。。

出0入0汤圆

发表于 2015-6-9 15:46:56 | 显示全部楼层
xizi 发表于 2013-12-17 12:00
你理解的很对。我选择每2ms读取一次数据。

楼主,我现在也是在测速,像你那样2ms读一次数据,一次读那4个位移寄存器,然后串口发送到电脑上,再把补码转换成十进制,然后那个十进制直接除以2ms就是速度了吗?我现在在用恒定速度标定,但是得到的结果很不稳定,不知道是不是我的安装误差导致的。。。请问楼主当时是怎么标定速度的呢?谢谢

出0入0汤圆

发表于 2015-6-10 19:31:00 | 显示全部楼层
xizi 发表于 2013-12-17 12:00
你理解的很对。我选择每2ms读取一次数据。

楼主 跪求回复啊。。。
我用串口发送Delta_X_L,Delta_X_H,Delta_Y_L,Delta_Y_L到PC上,用labview写的上位机,把两个16位二进制补码转化成原码,计算出十进制数值,怎么得到的结果就不对劲呢。。。快崩溃了 救命T_T
楼主你当时读deltaXY是怎么读的呀,读完通过什么发出去的呢?用什么接收的?怎么处理接收到的数据的?求回复T_T

出0入0汤圆

 楼主| 发表于 2015-6-11 07:52:37 | 显示全部楼层
xyn0116 发表于 2015-6-10 19:31
楼主 跪求回复啊。。。
我用串口发送Delta_X_L,Delta_X_H,Delta_Y_L,Delta_Y_L到PC上,用labview ...

就凭你花了这么多功夫,你遇到的障碍应该不再是简单的硬件接口与寄存器操作上了。建议你转到物理原理的深入理解上。
一条建议,暂时搁置速度的校准,转而做一下距离校准。

具体做法是:
1. 被测对象改造为固定长度的实空间隔。实区间是有效对象,传感器有数据;空区间是开阔地,传感器没数据(读数为0)。
2. 仍以2ms为周期读取数据,实区间累加每次读取的数据,空区间结束累加。
3. 重复实空过程,得到第二个、第三个、。。。。。第n个累加数据。
4. 原理上讲,由于每一个累加数据都对应同一个实区间的长度,因此这些数据都应该稳定、一致。

这就是距离校准。它与周期是2ms还是3ms没有关系,与你的速度是否稳定也没有关系,只与实区间的长度成正比。

甚至可以简单到用长纸板做距离校准,手持纸板从传感器底下经过,不怕速度慢,不怕不稳定,中间停顿都没有关系。每次累加数据应与纸板长度成正比。

出0入0汤圆

发表于 2015-6-11 15:35:13 | 显示全部楼层
xizi 发表于 2015-6-11 07:52
就凭你花了这么多功夫,你遇到的障碍应该不再是简单的硬件接口与寄存器操作上了。建议你转到物理原理的深 ...

感谢楼主回答!我今天去做实验,但我还有一个问题,看楼主之前的帖子,您应该是没有使用Motion管脚或者Motion寄存器来判断是否有移动,而是直接不停的读DeltaXY寄存器对么。我读这四个寄存器时是这样写的:
while(1)
{
        xydat[0]=ADNS9800_SPI_read(REG_Delta_X_L); //NCS的拉高拉低已打包到ADNS9800_SPI_read中
        xydat[1]=ADNS9800_SPI_read(REG_Delta_X_H);
        xydat[2]=ADNS9800_SPI_read(REG_Delta_Y_L);
        xydat[3]=ADNS9800_SPI_read(REG_Delta_Y_H);       
        USART_SendChar(xydat[0]); //串口依次发送,四个数据被Labview读出并两两组合,转化成原码,计算出十进制数值,记录在excel。
        USART_SendChar(xydat[1]);
        USART_SendChar(xydat[2]);
        USART_SendChar(xydat[3]);
        _delay_ms(2);               
}

请问楼主这样写可以吗?我之前是把读数和延时放在一个函数中,在while(1)里调用再通过串口依次发送,结果就和这样写的不一样。。请问楼主当时是怎么读数据的呢?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-9-28 11:18

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表