Patent Publication Number: US-10318394-B2

Title: USB TYPE-C to legacy USB cable detection

Description:
RELATED APPLICATION 
     This application claims priority to and the benefit of U.S. Provisional Application No. 62/380,139, entitled, “NON-COMPLIANT USB TYPE-C TO LEGACY USB CABLE DETECTION,” filed Aug. 26, 2016, which is incorporated herein by reference in its entirety. 
    
    
     FIELD 
     Embodiments relate to current being drawn from a universal serial bus (USB) power converter. 
     BACKGROUND 
     Charging devices can include a variety of components that are based on different Universal Serial Bus (USB) standards. For example, a computing device can be configured to use a one standard (e.g., USB TYPE-C) and the power converter used to power the computing device can be based on an older standard (e.g., USB TYPE-A). Components that are configured based on the newer standard (e.g., protective features, communication capabilities, and the like) may not function as designed in conjunction with components based on the older standard. 
     SUMMARY 
     In at least one general aspect, a port controller includes an advertise block configured to determine a cable assembly coupled to the port controller is not compliant with a standard used by the port controller, a comparator configured to determine a current drawn from a power converter coupled to the cable assembly exceeds a capability of the power converter based on comparing a bus voltage to a threshold voltage, and a protection block configured to, in response to determining the current drawn from the power converter exceeds the capability of the power converter, cause the current drawn from the power converter to be reduced. 
     In another general aspect, a method includes coupling a power converter to a device via a cable assembly configured to indicate incorrect information related to a capability of the power converter, drawing current from a power converter to at least one of charge a battery associated with a device or power the device, determining if a bus voltage on the device is less than a threshold voltage, and in response to determining the bus voltage is less than the threshold voltage, causing the current drawn from the power converter to be reduced. 
     In yet another general aspect, a device includes a battery, a battery charger configured to draw current from a power converter to at least one of charge the battery and power the device, and a port controller. The port controller is configured to determine a cable assembly coupled to the port controller is not compliant with a standard used by the device, determine a current drawn from the power converter coupled to the cable assembly exceeds a capability of the power converter based on comparing a bus voltage to a threshold voltage, and in response to determining the current drawn from the power converter exceeds the capability of the power converter, cause the current drawn from the power converter to be reduced. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIGS. 1 and 2  are block diagrams illustrating systems according to example embodiments. 
         FIG. 3  is a block diagram illustrating a port controller according to at least one example embodiment. 
         FIGS. 4 and 5  are flowcharts illustrating methods according to example embodiments. 
     
    
    
     It should be noted that these Figures are intended to illustrate the general characteristics of methods, structure and/or materials utilized in certain example embodiments and to supplement the written description provided below. These drawings are not, however, to scale and may not precisely reflect the precise structural or performance characteristics of any given embodiment, and should not be interpreted as defining or limiting the range of values or properties encompassed by example embodiments. For example, the relative positioning of regions and/or structural elements may be reduced or exaggerated for clarity. The use of similar or identical reference numbers in the various drawings is intended to indicate the presence of a similar or identical element or feature. 
     DETAILED DESCRIPTION OF THE EMBODIMENTS 
     A device can be configured to receive power from a power converter via a cable. The cable can have a connector on each end—one that can be plugged into the power converter and one that can be plugged into the computing device. The cable with connectors on each end can collectively be referred to as a cable assembly. Each of these components, the computing device, the cable assembly, and the power converter, can be based on different Universal Serial Bus (USB) standards. These components can be mechanically compatible such that, for example, the power converter can be coupled to the connector on one end of the cable assembly and the computing device can be coupled to the connector on the other end of the cable assembly. However, one or more of these components may not be electrically compliant with the same USB standards (e.g., more recent USB standards (e.g., USB TYPE-C may not be electrically compliant with older USB standards (e.g., USB TYPE-A)). Accordingly, a user of various USB components (e.g., computing device, cable assembly, power converter, etc.) may use (e.g., couple) a combination of the various USB components that are mechanically compatible, but not electrically compatible. 
     For example, a cable assembly and a power converter can be electrically configured based on an older USB standard (e.g., USB TYPE-A) and the computing device can be configured electrically based on a newer USB standard (e.g., USB TYPE-C). Even though electrically incompatible, the power converter based on the older USB standard may be mechanically coupled without an issue to the computing device based on the newer USB standard. The computing device can be configured, for example, to draw a current based on the newer USB standard at a rate greater than a rate that the power converter is capable of providing based on the older USB standard. This can result in damage to the computing device, cable, connectors and/or the power converter. 
     As a specific example, a cable assembly that is not compliant with the electrical portion of the USB TYPE-C standard may attempt to indicate (e.g., advertise, communicate) a current capability of a power converter when powering a USB TYPE-C capable computing device. The USB TYPE-C capable computing device using the cable assembly that is not compliant with the electrical portion of USB TYPE-C standard may thereby have incorrect information related to the capability of the power converter. As a result, the USB TYPE-C capable computing device may attempt to draw current based on an advertised capability that is not based on the capabilities of the coupled power converter. This current may exceed the actual capability of the coupled power converter, resulting in unsafe conditions and/or damage to the computing device, the cable and/or the power supply. 
     In example embodiments described herein, a USB TYPE-C capable computing device can be configured to detect when a cable assembly that is not compliant with the electrical portion of USB TYPE-C standard is used and/or detect when a current draw is above the capability of a coupled power converter. Further, in some example implementations described herein, the USB TYPE-C capable computing device can be configured to reduce the current draw when the current draw is above the capability of a coupled power converter. Thus, preventing unsafe conditions and/or damage to the computing device, cable, connectors and/or the power converter even when a user mechanically couples components based on different USB standards. 
     While example embodiments may include various modifications and alternative forms, embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that there is no intent to limit example embodiments to the particular forms disclosed, but on the contrary, example embodiments are to cover all modifications, equivalents, and alternatives falling within the scope of the claims. Like numbers refer to like elements throughout the description of the figures. 
       FIGS. 1 and 2  are block diagrams illustrating systems according to at least some example embodiments. As shown in  FIG. 1 , the system  100  can include a power converter  105  and a computing device  125 . The power converter  105  can be a travel adapter, a wall charger, a power brick, and the like. Therefore, the power converter  105  includes wall plug  140  used to couple the power converter  105  to a power source (e.g., a wall outlet) The power converter  105  can also be an element of a computing device including a battery as a source of power. 
     The power converter  105  can be configured to provide power (e.g., voltage and current) to the computing device  125  via cable  115 . The computing device  125  can be any computing device (e.g., mobile phone, laptop, smart watch, and the like). The computing device  125  can be configured for fast (e.g., quick, rapid, and the like) charging based on a new USB standard. For example, the computing device  125 , if configured with fast charging capability, can be configured to draw a larger amount of power (e.g., more current and/or a higher voltage) from the power converter as compared to older USB standards. The computing device  125  can be configured to draw a fixed and/or variable current and/or voltage. 
     Connector A  110  can be a first type of connector (e.g., USB TYPE-A) and connector B  120  can be a second type of connector (e.g., USB TYPE-C). The power converter  105  has a corresponding connector that is compatible with and can be coupled with connector A  110 . The computing device  125  has a corresponding connector that is compatible with and can be coupled with connector B  120 . The cable  115 , connector A  110  and connector B  120  together can be a cable assembly  145 . Connector B  120  can be, or can include, two (or more) elements. For example, connector B  120  can be a USB TYPE-A connector coupled to the cable  115  and a USB TYPE-C adapter coupled between the USB TYPE-A connector and the computing device  125 . 
     The computing device  125  includes a port controller  130 . The port controller  130  can be configured to determine whether a connector (e.g., connector B  120 ) coupled to the port controller  130  is not compliant with a standard (e.g., USB TYPE-C) used by the port controller  130  and/or determine whether a current drawn from a power converter (e.g., power converter  105 ) coupled to the connector exceeds a capability of the power converter. In response to determining the current drawn from the power converter  105  exceeds the capability of the power converter  105 , the port controller  130  can be configured to cause the current drawn from the power converter  105  to be reduced (e.g., reduce current drawn by computing device  125 ). 
       FIG. 2  is a more detailed view of the components of  FIG. 1 . As shown in  FIG. 2 , the system  100  can further include a pull-up resistor  205  coupled between a Configuration Channel (CC) node (e.g., coupled to a channel used for communicating configuration and status information between the power converter  105  and the computing device  125 ) and a Bus Power (V bus ) node (e.g., coupled to a bus used for transferring power from the power converter  105  to the computing device  125 ). The example shown in  FIG. 2  illustrates the pull-up resistor  205  as being included (e.g., located) in the cable  115 . In some implementations, the pull-up resistor  205  can be included in the connector B  120  or an adapter connected to connector B  120 . The pull-up resistor  205  (e.g., a resistance value thereof) can be based on a capability (e.g., current capacity) of the power converter  105 . For example, a processor can determine a voltage drop across the pull-up resistor  205  can determine a maximum current draw capability of the power converter  105  based on the pull-up resistor  205 . 
     As shown in  FIG. 2 , the port controller  130  included in the computing device  125  is configured to prevent a current draw that exceeds a current draw capability of the power converter  105  when a cable assembly that is not compliant with the electrical portion of the USB TYPE-C standard is used to transfer power (e.g., voltage and current) from the power converter  105  to the computing device  125 . Accordingly, by including the port controller  130  the computing device  125  can prevent unsafe conditions and damage to the computing device  125 , the cable  115 , connector A  110 , connector B  120  and/or the power converter  105 . 
     The port controller  130  can be implemented in a processor, include a processor, access a processor and/or be an application specific integrated circuit (ASIC) including processing capabilities. In an example implementation, the port controller  130  communicates signals to a processor  220 . The processor  220  can be configured to communicate an instruction to a battery charger  210 . The battery charger  210  can be configured to draw an amount of current via V bus . The battery charger  210  uses the current (or power based thereon) to charge the battery  215 . The battery charger  210  can also use the current (or power based thereon) to power the computing device  125  with or without charging the battery  215 . 
     The port controller  130  can be configured to compare V bus  to a threshold voltage value. If V bus  drops to a value below the threshold voltage value, the port controller  130  can be configured to communicate a signal indicating that V bus  is less than the threshold voltage value to the processor  220 . The processor  220  can then communicate an instruction to the battery charger  210  that causes the battery charger  210  to reduce the current draw, thus protecting the computing device  125 , the cable  115 , connector A  110 , connector B  120  and/or the power converter  105  from damage due to over current conditions. 
       FIG. 3  is a block diagram illustrating more details of the port controller  130  according to at least one example embodiment. As shown in  FIG. 3 , the port controller  130  includes an attach block  315 . The attach block  315  is configured to receive an output of a first comparator  305  coupled to the V bus  terminal and a V bus Valid  terminal. The V bus Valid  terminal can be coupled to a memory device storing a fixed or programmable value (e.g., V bus Valid ). The fixed or programmable value can be associated with a USB standard and/or the device  125 . For example, the fixed or programmable value can be a voltage value, minimum value, maximum value and/or range of values for charging battery  215 . The first comparator  305  is configured to compare a value associated with V bus  to a value associated with V bus valid  terminal. Each value can be a voltage value or level. In an example implementation, if V bus  is greater than or equal to the value associated with V bus valid  terminal, the attach block  315  can be configured to communicate a signal indicating the computing device  125  is coupled to a valid (e.g., capable of charging the battery  215 ) power converter (e.g., power converter  105 ) to the processor  220 . The processor  220  can then communicate an instruction to the battery charger  210  that causes the battery charger  210  to enable the computing device  125  as a power sink and to draw current based on the voltage drop across the pull-up resistor  205 . 
     As shown in  FIG. 3 , the port controller  130  includes a protection block  320 . The protection block  320  can be configured to cause the current drawn from the power converter  105  to be reduced in response to determining the current drawn from the power converter exceeds the capability of the power converter. A second comparator  310  can be configured to determine the current drawn from the power converter  105  exceeds the capability of the power converter  105 . The protection block  320  is configured to receive an output of the second comparator  310  coupled to the V bus  terminal and a V droop  terminal. The second comparator  310  is configured to compare the value associated with V bus  to a value associated with the V droop  terminal. Each value can be a voltage value or level. If V bus  is less than the value associated with the V droop  terminal, the protection block  320  can be configured to communicate a signal indicating the V bus  is less than the value associated with the V droop  terminal to the processor  220 . The processor  220  can then communicate an instruction to the battery charger  210  that causes the battery charger  210  to reduce the current draw, thus protecting the computing device  125 , the cable  115 , connector A  110 , connector B  120  and/or the power converter  105  from damage due to over current conditions. 
     As shown in  FIG. 3 , the port controller  130  includes an advertise block  325 . The advertise block  325  is configured to receive a communication from the power converter  105  (e.g., via the Configuration Channel (CC)). The communication can indicate at least one capability of the power converter  105 . For example, the communication can include information (e.g., a model number) that the advertise block  325  can use to look-up (e.g., in a memory) the at least one capability of the power converter  105 . The at least one capability of the power converter  105  can include a current capability of the power converter  105 . The advertise block  325  can be configured to communicate a signal to the processor  220  indicating a maximum current draw from the power converter  105  based on the communicated information. 
     If there is no communication channel between the power converter  105  and the computing device  125  (e.g., no Configuration Channel (CC)), the advertise block  325  is further configured to determine a voltage drop across resistor R d . As shown in  FIGS. 2 and 3 , current can be drawn from V bus  through the Advertise Block  325 , to ground via resistor R d  in order to determine voltage drop across resistor R d . If the voltage drop across resistor R d  is above a threshold value, the advertise block  325  can be configured to communicate a signal to processor  220  indicating the computing device  125  is coupled to a valid (e.g., capable of charging the battery  215 ) power converter (e.g., power converter  105 ) to the processor  220 . The advertise block  325  can be configured to communicate a signal to the processor  220  indicating a maximum current draw from the power converter  105  based on the voltage drop across the pull-up resistor  205 . 
     Still further, the advertise block  325  can be configured to determine a connector (e.g., connector B  120 ), a cable assembly and/or a connector adapter coupled to the port controller  130  is not compliant with a standard (e.g., USB TYPE-C) used by the port controller  130 . In other words, the advertise block  325  can be configured to determine cable assembly  145  and/or connector B  120  is a non-compliant USB TYPE-C cable assembly. For example, if there is no communication channel between the power converter  105  and the computing device  125  (e.g., no Configuration Channel (CC)) and if maximum current is determined based on a pull-up resistor (e.g., resistor R d ), the cable assembly  145  can be determined to be a non-compliant USB TYPE-C cable assembly. 
     The attach block  315 , the protection block  320 , and/or the advertise block  325  can be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and/or combinations thereof. These various implementations can include implementation in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which may be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device. These computer programs (also known as programs, software, software applications or code) include machine instructions for a programmable processor, and can be implemented in a high-level procedural and/or object-oriented programming language, and/or in assembly/machine language. 
     In response to communications and or signals received from the port controller  130 , the processor  220  can communicate an instruction to the battery charger  210  that causes the battery charger  210  to draw current from the processor if one or both of the attach block  315  and the advertise block  325  communicate a signal indicating the computing device  125  is coupled to a valid (e.g., capable of charging the battery  215 ) power converter (e.g., power converter  105 ). The signals described above can be a voltage level, a data packet, an instruction code (e.g., a binary value, a hex value, and the like), and/or the like. 
     In an example implementation, if the current capability of the power converter  105  is less than the advertised (e.g., as determined based on resistor R d ) current capability because a non-compliant USB TYPE-C cable is being used the voltage V bus  may droop (e.g., decrease due to an excess load) when the computing device  125  attempts to draw current based on the advertised current. The second comparator can be configured to determine if the voltage of the V bus  droops below a threshold value (e.g., V droop ). If the voltage of the V bus  droops below a threshold value, the computing device  125  can reduce the current draw and reduce functions such as battery charging. If the V bus  line voltage recovers above the threshold the computing device may continue to charge. If the V bus  line voltage does not recover, charging may be stopped (e.g., suspended, terminated). 
     The threshold value can be a fixed value (e.g., 2V, 3V, 4V, 10V, and the like). The threshold value can be user defined (e.g., a value configured by a user and stored on the computing device  125 ). The threshold value can be based on a delta from an initial bus voltage (e.g., from charge initialization). For example, the threshold can be initial V bus −0.5V. The threshold value can be determined as,
 
 V   droop   =V   bus   −R   loss   *I   HOST   −V   HYST  
 
where V bus  is the bus voltage, I HOST  is the actual current draw and V HYST  is a sampling of the voltage history used to filter out transient noise. V HYST  can be optional or set to zero (0). R loss  is an attenuation (e.g., cable assembly loss) and can be determined as:
 
 R   loss   =V   Bus     B     /I   B   −V   BUS     A     /I   A  
 
where I A  and I B  can be determined by varying the load. V BusA  and V BUSB  may be measured at the load variances determined for I A  and I B .
 
     When V bus  drops below the threshold value the port controller  130  can send an interrupt signal to a processor in order to report a low V bus . When V bus  drops below the threshold value (i.e. the value for V droop ) the port controller  130  can send a signal to change the advertised current to a lower value. When V bus  drops below the threshold value, the processor  220  can reconfigure the battery charger  210  to draw less current. When V bus  drops below the threshold value the port controller  130  can send a signal to stop drawing current. 
     A cable assembly that is non-compliant with the electrical portion of the USB TYPE-C standard does not provide a communication channel between the power converter and a computing device configured to implement the USB TYPE-C standard. Therefore, the power converter may not properly communicate, for example, capabilities (e.g., a maximum current capability) to the computing device when using the power converter to charge a battery of the device and/or to provide power for operation of the computing device. However, a cable assembly that is not compliant with the electrical portion of USB TYPE-C standard may include components (e.g., resistor  205  described above) used to cause the computing device to draw current from the power converter via the cable assembly even though the computing device has no information regarding the actual capabilities of the power converter. 
     For example, a cable assembly that is not compliant with the electrical portion of the USB TYPE-C standard may be packaged as a unit with a power converter capable of providing a current consistent with the components used to cause the computing device to draw current from the power converter. However, the cable assembly could be used with any power converter, including components based on the older USB standards, because the cable assembly is mechanically compatible with older USB standards. The cable assembly that is not compliant with the electrical portion of the USB TYPE-C standard can also be packaged as a standalone product without regard to a power converter that the cable assembly may be used with. Further, the components can be included in an adapter coupled between the device and a connector of the cable assembly such that any USB cable assembly can be converted to a cable assembly that is not compliant with the electrical portion of the USB TYPE-C standard. 
       FIGS. 4 and 5  are flowcharts illustrating methods according to at least one example embodiment. The steps described with regard to  FIGS. 4 and 5  may be performed due to the execution of software code stored in a memory and/or a non-transitory computer readable medium (e.g., memory included in computing device  125 ) associated with an apparatus (e.g., as shown in  FIGS. 1-3  (described above)) and executed by at least one processor (e.g., port controller  130  and/or processor  220 ) associated with the apparatus. However, alternative embodiments are contemplated such as a system embodied as a special purpose processor. Although the steps described below are described as being executed by a processor, the steps are not necessarily executed by a same processor. In other words, at least one processor may execute the steps described below with regard to  FIGS. 4 and 5 . 
       FIG. 4  is a flowchart illustrating a method for charging a computing device according to at least one example embodiment. As shown in  FIG. 4 , in step S 405  a cable being attached is detected. For example, the computing device (e.g., computing device  125 ) can detect a valid voltage on the cable configuration (CC) terminal of a USB TYPE-C interface. The voltage of the CC terminal can correspond to a voltage drop across a pull-down resistor (e.g., R d ). In an example implementation, the advertise block  325  determines a voltage drop across resistor R d . If the voltage drop across resistor R d  is above a threshold value, the advertise block  325  communicates a signal indicating the computing device  125  is coupled (e.g., attached) to a power converter (e.g., power converter  105 ). 
     In step S 410  a valid V bus  is detected. For example, a minimum bus voltage may be necessary to charge (operate, and/or provide power to). The minimum bus voltage may be a threshold or minimum voltage value or range (e.g., a minimum and maximum voltage value). The threshold value or range may be set based on a standard (e.g., USB standards, such as Type-A, Type-B, Mini-, Micro-USB or USB TYPE-C standards). In an example implementation, the attach block  315  receives an output of a first comparator  305  coupled to the V bus  terminal and a V bus Valid  terminal (e.g., the threshold value). If V bus  is determined to be greater than or equal to the value associated with V bus Valid  terminal, the attach block  315  can be configured to communicate a signal indicating the computing device  125  is coupled to a valid (e.g., capable of charging the battery  215 ) power converter (e.g., power converter  105 ). 
     In step S 415  a host current is determined. For example, the host current can be a maximum allowable current draw from the host (e.g., power converter). The host current can be determined based on a pull-up resistor. In an example implementation, a voltage drop across the pull-up resistor can be configured to indicate a capability (e.g., current capacity) of the power converter. For example, a voltage drop across the pull-up resistor  205  can indicate a maximum allowable current draw from the power converter  105 . The advertise block  325  can be configured to measure a voltage drop across the pull-up resistor  205  to determine the maximum current draw from the power converter  105 . As described above, when using a USB TYPE-C cable assembly that is not compliant with the electrical portion of the USB TYPE-C standard, an advertised host current can have no relationship to the actual current capability of the USB power supply (e.g., power converter  105 ). Accordingly, the computing device may attempt to draw current based on an advertised current maximum current draw that exceeds that capability of the USB power supply. This may result in unsafe conditions and/or damage to the computing device, the cable and/or the power supply. 
     In step S 420  data is communicated to a processor. For example, data including, at least one of, an indication that a cable assembly is attached, an indication that a valid V bus  is detected, and an indication of the host current can be communicated to the processor (e.g., processor  220 ). The data can be communicated as signals including a voltage level, a data packet, an instruction code (e.g., a binary value, a hex value, and the like), and/or the like. The data can be communicated individually, together and/or in combinations. The data can be communicated as the indications become available (e.g., when the host current is determined). The data can be communicated by one or more of the attach block  315 , the protection block  320 , and/or the advertise block  325 . 
     In step S 425  a battery charger is configured. For example, the processor (e.g., processor  220 ) can communicate instructions to a power management device (e.g., battery charger  210 ) indicating that a valid (e.g., capable of charging the battery  215 ) power converter (e.g., power converter  105 ) is coupled to (e.g., via cable  115 ) the computing device (e.g., computing device  125 ) and at least one of a maximum current draw and an amount of current to draw. The battery charger is then configured to draw current based on at least one of the maximum current draw and the amount of current to draw. 
     In step S 430  current is drawn from a power converter. For example, in response to receiving the instructions from the processor (e.g., processor  220 ), the power management device (e.g., battery charger  210 ) can draw current from the power converter (e.g., power converter  105 ). In an example implementation, the battery charger  210  uses the current (or power based thereon) to charge the battery  215 . The battery charger  210  can also use the current (or power based thereon) to power the computing device  125  with or without charging the battery  215 . In an example implementation, the current is draw is based on the attached non-compliant USB TYPE-C cable assembly. 
       FIG. 5  is a flowchart illustrating a method for preventing an over current condition while charging a computing device according to at least one example embodiment. As shown in  FIG. 5 , in step S 505  a bus voltage is compared to a threshold value. For example, V bus  can be monitored to determine if it drops below V droop . In an example implementation, the second comparator  310  is coupled to the V bus  terminal and a V droop  terminal. The second comparator  310  is configured to compare the value detected on V bus  to a value associated with the V droop  terminal. Each value can be a voltage value or level. 
     In step S 510  whether the bus voltage is greater than the threshold value is determined. In response to determining the bus voltage is greater than (or equal to) the threshold value, in step S 515 , drawing current from the power converter is continued. In response to determining the bus voltage is less than the threshold value, in step S 520  a signal is communicated to a processor. As described above, the threshold value can be a fixed value, a user configured value, and/or a variable value. Continuing the above example implementation, if V bus  is less than the value associated with the V droop  terminal, the protection block  320  can be configured to communicate a signal indicating the V bus  is less than the value associated with the V droop  terminal to the processor  220 . 
     In step S 525  the current draw from the power converter is reduced. For example, in response to receiving the signal that V bus  has dropped below the threshold value, the processor  220  can reconfigure (e.g., send an instruction to) the battery charger  210  to draw less current. The processor  220  can reconfigure the battery charger  210  to at least one of a change the maximum current draw and change the amount of current to draw. 
     In step S 530  whether the bus voltage is greater than the threshold value is determined. In response to determining the bus voltage is greater than (or equal to) the threshold value, in step S 535 , drawing current from the power converter is continued. In response to determining the bus voltage is less than the threshold value, in step S 540  a signal is communicated to the processor. Continuing the above example implementation, if V bus  continues to be less than the value associated with the V droop  terminal, the protection block  320  can be configured to communicate another signal indicating the V bus  continues to be less than the value associated with the V droop  terminal to the processor  220 . 
     In step S 545  the current draw from the power converter is stopped. For example, in response to receiving the signal that V bus  continues to be below the threshold value, the processor  220  can reconfigure (e.g., send an instruction to) the battery charger  210  to no (e.g., zero (0)) current. The processor  220  can reconfigure the battery charger  210  to at least one of a change the maximum current draw to zero, change the amount of current to draw to zero, indicate the that the power converter (e.g., power converter  105 ) is coupled to the computing device (e.g., computing device  125 ) is not a valid power converter, and/or indicate that the power converter has been disconnected from the computing device. 
     Although not shown in  FIGS. 4 and 5  described above, if at any time the power converter is disconnected from the computing device, the port controller  130  can communicate a signal to the processor  220  that the power converter  105  is disconnected from the computing device (e.g., V bus  is no longer valid as determined by the attach block  315 ). The processor  220  can then reconfigure the battery charger  210  to stop drawing current. In other words, detachment of the cable  115  can terminate the method steps described with regard to  FIGS. 4 and 5 . 
     In at least one general aspect, a port controller includes an advertise block configured to determine a cable assembly coupled to the port controller is not compliant with a standard used by the port controller, a comparator configured to determine a current drawn from a power converter coupled to the cable assembly exceeds a capability of the power converter based on comparing a bus voltage to a threshold voltage, and a protection block configured to, in response to determining the current drawn from the power converter exceeds the capability of the power converter, cause the current drawn from the power converter to be reduced. 
     In another general aspect, a method includes coupling a power converter to a device via a cable assembly configured to indicate incorrect information related to a capability of the power converter, drawing current from a power converter to at least one of charge a battery associated with a device or power the device, determining if a bus voltage on the device is less than a threshold voltage, and in response to determining the bus voltage is less than the threshold voltage, causing the current drawn from the power converter to be reduced. 
     In yet another general aspect, a device includes a battery, a battery charger configured to draw current from a power converter to at least one of charge the battery and power the device, and a port controller. The port controller is configured to determine a cable assembly coupled to the port controller is not compliant with a standard used by the device, determine a current drawn from the power converter coupled to the cable assembly exceeds a capability of the power converter based on comparing a bus voltage to a threshold voltage, and in response to determining the current drawn from the power converter exceeds the capability of the power converter, cause the current drawn from the power converter to be reduced. 
     Implementations can include one or more of the following features. For example, the current drawn from the power converter can exceed the capability of the power converter when the bus voltage is less than the threshold voltage. The threshold voltage can be one of a fixed value, based on a delta from an initial bus voltage, and based on the bus voltage, the current draw and an attenuation of the cable assembly. The advertise block can be configured to determine information related to a capability of the power converter, and the information related to the capability of the power converter is incorrect. The cable assembly and the power converter can be electrically configured based on a first USB standard, the port controller can be electrically configured based on an second USB standard, and the cable assembly, the power converter and the port controller are mechanically compatible. The port controller can be configured to communicate the current drawn from the power converter exceeds the capability of the power converter to a processor, and the processor instructs a battery charger to one of reduce the current drawn from the power converter or stop the current drawn from the power converter. The port controller can include an attach block configured to determine the cable assemble couples the power converter to the port controller based on the bus voltage exceeding a second threshold voltage, and in response to determining the cable assemble couples the power converter to the port controller, cause the current to be drawn from the power converter. The standard used by the port controller can be a USB TYPE-C standard, and the cable assembly can be determined to be not compliant with the USB TYPE-C standard if the cable assembly includes a pull-up resistor, a current capability of the power converter is based on the pull-up resistor and no communications are received from the power converter over a Configuration Channel (CC). 
     Various implementations of the systems and techniques described here can be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and/or combinations thereof. These various implementations can include implementation in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which may be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device. Various implementations of the systems and techniques described here can be realized as and/or generally be referred to herein as a circuit, a module, a block, or a system that can combine software and hardware aspects. For example, a module may include the functions/acts/computer program instructions executing on a processor (e.g., a processor formed on a silicon substrate, a GaAs substrate, and the like) or some other programmable data processing apparatus. 
     Some of the above example embodiments are described as processes or methods depicted as flowcharts. Although the flowcharts describe the operations as sequential processes, many of the operations may be performed in parallel, concurrently or simultaneously. In addition, the order of operations may be re-arranged. The processes may be terminated when their operations are completed, but may also have additional steps not included in the figure. The processes may correspond to methods, functions, procedures, subroutines, subprograms, etc. 
     Methods discussed above, some of which are illustrated by the flow charts, may be implemented by hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof. When implemented in software, firmware, middleware or microcode, the program code or code segments to perform the necessary tasks may be stored in a machine or computer readable medium such as a storage medium. A processor(s) may perform the necessary tasks. 
     Specific structural and functional details disclosed herein are merely representative for purposes of describing example embodiments. Example embodiments, however, be embodied in many alternate forms and should not be construed as limited to only the embodiments set forth herein. 
     It will be understood that, although the terms first, second, etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first element could be termed a second element, and, similarly, a second element could be termed a first element, without departing from the scope of example embodiments. As used herein, the term and/or includes any and all combinations of one or more of the associated listed items. 
     It will be understood that when an element is referred to as being connected or coupled to another element, it can be directly connected or coupled to the other element or intervening elements may be present. In contrast, when an element is referred to as being directly connected or directly coupled to another element, there are no intervening elements present. Other words used to describe the relationship between elements should be interpreted in a like fashion (e.g., between versus directly between, adjacent versus directly adjacent, etc.). 
     The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of example embodiments. As used herein, the singular forms a, an, and the are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms comprises, comprising, includes and/or including, when used herein, specify the presence of stated features, integers, steps, operations, elements and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components and/or groups thereof. 
     It should also be noted that in some alternative implementations, the functions/acts noted may occur out of the order noted in the figures. For example, two figures shown in succession may in fact be executed concurrently or may sometimes be executed in the reverse order, depending upon the functionality/acts involved. 
     Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which example embodiments belong. It will be further understood that terms, e.g., those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein. 
     Portions of the above example embodiments and corresponding detailed description are presented in terms of software, or algorithms and symbolic representations of operation on data bits within a computer memory. These descriptions and representations are the ones by which those of ordinary skill in the art effectively convey the substance of their work to others of ordinary skill in the art. An algorithm, as the term is used here, and as it is used generally, is conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of optical, electrical, or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like. 
     In the above illustrative embodiments, reference to acts and symbolic representations of operations (e.g., in the form of flowcharts) that may be implemented as program modules or functional processes include routines, programs, objects, components, data structures, etc., that perform particular tasks or implement particular abstract data types and may be described and/or implemented using existing hardware at existing structural elements. Such existing hardware may include one or more Central Processing Units (CPUs), digital signal processors (DSPs), application-specific-integrated-circuits, field programmable gate arrays (FPGAs) computers or the like. 
     It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise, or as is apparent from the discussion, terms such as processing or computing or calculating or determining of displaying or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical, electronic quantities within the computer system&#39;s registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices. 
     Note also that the software implemented aspects of the example embodiments are typically encoded on some form of non-transitory program storage medium or implemented over some type of transmission medium. The program storage medium may be magnetic (e.g., a floppy disk or a hard drive) or optical (e.g., a compact disk read only memory, or CD ROM), and may be read only or random access. Similarly, the transmission medium may be twisted wire pairs, coaxial cable, optical fiber, or some other suitable transmission medium known to the art. The example embodiments not limited by these aspects of any given implementation. 
     Lastly, it should also be noted that whilst the accompanying claims set out particular combinations of features described herein, the scope of the present disclosure is not limited to the particular combinations hereafter claimed, but instead extends to encompass any combination of features or embodiments herein disclosed irrespective of whether or not that particular combination has been specifically enumerated in the accompanying claims at this time.