TI中文支持网
TI专业的中文技术问题搜集分享网站

从LPDS恢复后,发现CameraSensorInit的时间比以前长了,这是为啥?

有一个应用场景,cc3200设备在没任务的情况下时处于LPDS模式(CC3200设备作为STA连接这个Server),这个时候保持着wifi连接,当有拍照需求的时候,Server通过socket 发送指令给 设备端(这个时候cc3200应该从LPDS模式下被唤醒了吧?!),设备端收到指令后首先通过cc_app_putoff_pm() disable PM, 然后进入指令处理任务,首先打开配置摄像头(摄像头用的是MT9D111),然后获取数据,然后通过socket 传输jpeg数据,整个流程是可以跑通的 camera 使用的例子 采用的是sdk/example 里面的websock_camera 对camera的操作, 实际测试的过程中发现 当从LPDS模式下把设备唤醒后,对camera进行操作后 获取图像的时间明显变长了,通过debug 发现是 CameraSensorInit 写寄存器的时间变长了,这是为什么?有解决方案么?

PS:当设备从LPDS唤醒后 参考lp3p0_plat_ops.c 的例子,在lp3p0_restore_soc_data 里面重新配置了I2C_IF_Open(I2C_MASTER_MODE_FST);

另外 CC3200 的SDK里面有可以直接获取当前 系统时钟频率的 api么?

Viki Shi:

1、LPDS的唤醒时间是3ms,而且在该模式下会丢失状态信息及一些寄存器的数据

2、参考这边解答: https://www.deyisupport.com/question_answer/wireless_connectivity/wifi/f/105/t/89398.aspx

user4905330:

回复 Viki Shi:

谢谢回复,

1 LPDS模式下会丢失一些状态信息,但是在退出LPDS模式后,我在退出LPDS模式的回掉接口里面,又重新配置了,CameraSensorInit的配置时间长 感觉是I2C写寄存器的时间比以前长了,I2C配置的是fast(400K)模式,在没进入LPDS模式时,CameraSensorInit里面整个时间大概是6s中左右,当从LPDS模式唤醒后,重新配置I2C后,然后执行CameraSensorInit 这个操作 大概有12s左右。设备进入LPDS模式后 系统时钟频率会从80M降到32.76k,外设掉电,设备状态信息寄存器信息都会丢失,这些都明白,可是当退出LPDS模式后,系统时钟应该恢复到了80M,而且我又重新用I2C_IF_Open(I2C_MASTER_MODE_FST)配置了I2C,按逻辑上说这个时候M4应该处于Active状态了,CameraSensorInit 的配置时间,不应该那么慢才对,我想问我应该怎么去解决这种情况?

顺便说一下运行环境, 整个系统运行在FreeRTOS下,socket 运行在一个任务里面,Cameraservice运行在另外一个任务里面,socket接收到指令后,通过queue发送消息到 CameraService里面执行Camera的相关操作。

2 这个问题我想问的是获取系统时钟频率 不是运行时间。比如Active状态下是80M,LPDS下是32.76k,我想这些数据可以用来判断系统师傅进入或者退出了LPDS模式,所以我想在LOG中打印一下当前系统的运行时钟频率,可是一直没找到相关的API,所以想问问有没有相关的API可以调用打印这个数值。

赞(0)
未经允许不得转载:TI中文支持网 » 从LPDS恢复后,发现CameraSensorInit的时间比以前长了,这是为啥?
分享到: 更多 (0)