zoukankan      html  css  js  c++  java
  • BC1.2的一些心得

    什么叫DCD

    DataContact Detect(DCD)

     

     

    1.首先是DCD

    2.然后是Primary detection

    3.然后是Secondary detection

     

     

    检測充电的条件是VBUS>VOTG_SESS_VLD

    检測流程

    1.DCD 阶段

    打开IDP_SRCRDM_DWN,检測D+上的电压和VLGC_LOW比較.假设VDP小于VLGC_LOW,或者TDCD_TIMEOUTDCD阶段结束,这个时候应该关闭IDP_SRCRDM_DWN

    标准的CDPSDP都是支持DCD

     

    2.PRI阶段

    暂不考虑ACA

    打开D+上打开VDP_SRC。然后检查D-的电压和VDAT_REF比較,假设VDM 大于VDAT_REF,则能够是DCP或者是CDP,假设VDM小于VDAT_REF则是SDP

    关闭VDP_SRC

     

    3.SEC阶段

    D-上打开VDM_SRC,然后比較D+的电压与VDAT_REF。假设VDP大于VDAT_REFPD连接的是DCP,假设VDP小于VDAT_REFPD连接的是CDP.

    当检測到是DCP时。应该关闭VDM_SRC

    打开VDP_SRC或者通过RDP_UP上拉D+VDP_UP

    当检測到是CDP时。应该关闭VDM_SRC,使得D+D-都保持低位until ready to connect and be enumerated.

     

     

     

    SDPCDP都是可以通过DCD的检測的。大部分DCP也是可以通过DCD的检測的。

    DCP事实上是将D+D-中间加电阻短接。

    CDP来说可以觉得D+D-直接连接检測DCD的过程是将DP上的电流源IDP_SRCRDM_DOWN打开。检測D+上的电压值。标准的SDPCDP因为RDM_DOWN的电阻比較小,电压值不够VLGC_LOW。也就是说DP上的电压小于0.8V则觉得是通过了DCD的检測。

     

    能够觉得通过DCD的就是标准的DCP/SDP/CDP的充电器。没有通过的都是特殊的充电器

     

    其原理就是:

    一般能够觉得充电口D+/D-上的电阻值比較小,也没什么上拉的电阻把上面的电压值拉高,所以使用一个电流源IDP_SRC(Data Contact Detect CurrentSource 7~~13uA)DP上。这个电流源在没有连接充电器的时候会使得DP+上的电压值高于2.0V

    而假设PD和充电port连上的时候,因为D+/D-上面有接地电阻,并且该接地电阻一般最多也就24.8KR,这种电阻不能使得DP上的电压值达到VLGC_LOW=0.8V。这样推断VDP<VLGC_LOW就表示数据引脚连接上了。

     

    注意:

    DCD的时候不仅要看BC1.2也要看BC1.1,有助于理解为什么IDP_SRC的电流,以及DCD的原理

     

     

     

     

    检查当前的DP/DM的类型的方式:

    1.通过RX CMD

    2.通过读取ULPI 寄存器 DEBUGlinestate[Bit1 Bit0].

    3.TI有个Vendor specific的寄存器能够測量debouncedDP/DM

     

     

     

    检測充电器时,比方DCD阶段须要打开IDP_SRCRDM_DWN.这里RDP_DWN RDM_DWN各自是在chargerdetection moduleDPDM的下拉电阻。

    该电阻和由DPPULLDOWNDMPULLDOWNbit位控制的PHY blockDM 下拉电阻是物理上不同的电阻.

    检查充电的DP/DM下拉电阻和PHYDP/DM的下拉电阻是不一样的。事实上他们的电阻值的要求也是不一样的。

    Machine generated alternative text: USB 2.OHS-OTGTransceiver (PHY)RegistersS SW Charger DetectionitrolDPDMIDVBUSCHRG_DETCHRG_EN_NCHRG_POL

     

     

     

    USB charger detection前提条件PHY不再驱动DP/DMPHY上的DP/DM上的上拉下拉电阻必须关闭,处于全速模式状态

     

     

     

    问题:

    在插入的时候,快速设备的terminatorresistor 是否连上?D+D-上的电阻是否连上?

     

    充电检測的顺序和enumeration的顺序是如何的?

  • 相关阅读:
    Linux 磁盘与文件系统管理
    mysql join
    iostat
    解决TIME_WAIT过多问题
    mysql 数据库性能追踪与分析
    CHECKPOINT
    DTRACE -MYSQL
    ORCLE INNODB 博客与 innodb_lru_scan_depth
    innodb 变量
    mysql博客
  • 原文地址:https://www.cnblogs.com/tlnshuju/p/6970440.html
Copyright © 2011-2022 走看看