@工具人
角度旋转是传感器自带的功能,这个已经确认,雷蛇为什么不愿意加这个功能,那我就不知道了。
但是对于Motion sync这个,我就看不到任何与寄存器配置相关的描述。
雷蛇说是Hardware,但是,3395真没看到,所以,目前的3395 Motion sync是软件配置的?

如果是有,那么这玩意是哪个寄存器?
对于SYNC,我的看法是不可能是使用同步传输,所以就指的应该是SOF帧当作标志位。
主机每1ms发一次SOF,USB鼠标检测到SOF过来之后,再读按键、读滚轮、读传感器,然后发数据。
至于,Motion sync 让鼠标移动更加平滑,我想到的功能就是:帧平滑。
但是,肯定不是帧平滑那么简单。
对于雷蛇研发说的这句话:
"对于具有用于 motionsync 的专用硬件的 3399,它确保传感器在轮询事件之前的最晚可能时间将数据报告回 mcu,以便最新数据到达 PC,如果有的话,它有助于避免 1 轮询延迟,这与添加它相反。"
我的解读是:
在读取Motion寄存器的时候,数据被锁定,也就是MCU在读取传感器的移动数据的时候,传感器的数据是被锁死了,直到你结束读取,数据才更新。而锁死的情况下,鼠标还在运动,DSP一直在生成新的数据,那么这个数据到底是该销毁,还是保留 ?
3399有硬件存储,所以,会将DSP里面的数据存起来,然后放到下一个Motion_burst当中。
而,3360这种就没有这个机制,所以,它就可能会销毁数据。(我猜的,因为0x50这个寄存器就是,你读了之后就清零了,多半是不会给你放到下一个轮询读取了。)
看到EndgameGear的这条评论,证实了我的看法。
“Motion Sync synchronizes USB polling events and sensor data. Because 3370 has a pretty high frame rate you can have more than 2 data points per polling event. Motion sync makes sure that the last frame from that polling event is used but it will be pushed back to the next polling event. So you get more consistent data in exchange for 1ms higher input delay.”
所以,Motion sync真的sync了么?不知道了,哈哈哈。
到底3395是怎么实现的,我还是希望有人能给我解答一下,我这功能都调得七七八八了,就差这个了。
还有,不开Motion sync图片不会像左边那么难看,理论上应该是右边的图形,但是,开了Motion之后数据会更好看。
PMW3360代码结构,USB一直卡不对Flag,直接拿帧编号当标志位了,感觉还行,误差5ms以内。

PAW3395寄存器配置目录:

角度旋转是传感器自带的功能,这个已经确认,雷蛇为什么不愿意加这个功能,那我就不知道了。
但是对于Motion sync这个,我就看不到任何与寄存器配置相关的描述。
雷蛇说是Hardware,但是,3395真没看到,所以,目前的3395 Motion sync是软件配置的?

如果是有,那么这玩意是哪个寄存器?
对于SYNC,我的看法是不可能是使用同步传输,所以就指的应该是SOF帧当作标志位。
主机每1ms发一次SOF,USB鼠标检测到SOF过来之后,再读按键、读滚轮、读传感器,然后发数据。
至于,Motion sync 让鼠标移动更加平滑,我想到的功能就是:帧平滑。
但是,肯定不是帧平滑那么简单。
对于雷蛇研发说的这句话:
"对于具有用于 motionsync 的专用硬件的 3399,它确保传感器在轮询事件之前的最晚可能时间将数据报告回 mcu,以便最新数据到达 PC,如果有的话,它有助于避免 1 轮询延迟,这与添加它相反。"
我的解读是:
在读取Motion寄存器的时候,数据被锁定,也就是MCU在读取传感器的移动数据的时候,传感器的数据是被锁死了,直到你结束读取,数据才更新。而锁死的情况下,鼠标还在运动,DSP一直在生成新的数据,那么这个数据到底是该销毁,还是保留 ?
3399有硬件存储,所以,会将DSP里面的数据存起来,然后放到下一个Motion_burst当中。
而,3360这种就没有这个机制,所以,它就可能会销毁数据。(我猜的,因为0x50这个寄存器就是,你读了之后就清零了,多半是不会给你放到下一个轮询读取了。)
看到EndgameGear的这条评论,证实了我的看法。
“Motion Sync synchronizes USB polling events and sensor data. Because 3370 has a pretty high frame rate you can have more than 2 data points per polling event. Motion sync makes sure that the last frame from that polling event is used but it will be pushed back to the next polling event. So you get more consistent data in exchange for 1ms higher input delay.”
所以,Motion sync真的sync了么?不知道了,哈哈哈。
到底3395是怎么实现的,我还是希望有人能给我解答一下,我这功能都调得七七八八了,就差这个了。
还有,不开Motion sync图片不会像左边那么难看,理论上应该是右边的图形,但是,开了Motion之后数据会更好看。
PMW3360代码结构,USB一直卡不对Flag,直接拿帧编号当标志位了,感觉还行,误差5ms以内。

PAW3395寄存器配置目录:
