RK平台下USB_OTG提供的接口和返回的状态

RK平台下USB_OTG提供的接口和返回的状态
1、GADGET连接状态
        用于查询控制器工作于device模式时gadget连接HOST(PC机)状态,可用于判断外接为充电器还是PC;本接口目前仅支持kernel函数调用接口:int get_gadget_connect_flag(void) 
        返回值为:0  无PC连接
                         1   设备已经通过USB连接到PC

2、系统中VBUS状态
        控制器作为device功能时,一直通过VBUS_DET信号监控VBUS状态,VBUS如果为高,一般是设备通过USB线连接到PC。Kernel函数调用接口为:int dwc_vbus_status(void)
        VBUS状态查询节点:/sys/bus/platform/drivers/usb20_otg/vbus_status (read_only)
        vbus_status可能的值为:0   VBUS为低电平(0V)
                                              1  VBUS为高电平(5V)
                                              2  VBUS为高,且DP/DM信号均为高电平(国际标准充电器判断)

3、开机检测VBUS状态
        系统开机时可能会出现低电导致不能正常开机的情况,这时候无法使用系统正常运行的接口,又需要检测是否外接充电器来确定是否充电,所以提供kernel函数接口:int dwc_otg_check_dpdm(void)

4、设备主动连接PC使能
        /sys/bus/platform/drivers/usb20_otg/dwc_otg_conn_cn   (read & write)
        dwc_otg_conn_en可能的值为: 0   设备检测到VBUS后不发起USB连接
                                                        1   设备检测到VBUS后会发起USB连接

USB充电器检测
        USB模块提供的VBUS状态和PC连接状态变化情况如下,充电模块如需使用请务必了解状态的变化过程:
        1、无连接,VBUS状态为0,gadget连接状态为0;
        2、刚连接到PC或充电器,VBUS状态为1,gadget连接状态为0;
        3、device会发起连接,如果是信号较好的PC,可以很快连上(1、2s内),如果信号较差,设备会retry 3次,每次时间约为1s,连上后VBUS状态为1,gadget连接状态为1;
        4、如果外接不是PC,那么3次连接超时后,会给出DP,DM的状态,如果是标准充电器VBUS状态为2,gadget连接状态为0;如果非标准充电器,VBUS状态为1,gadget连接状态为0.
==============================================================================
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章