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.
==============================================================================
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章