USB type-A power extension to support high power modules

A method includes detecting, by a hardware processor and over a universal serial bus (USB) Type-A connection, whether a client controller is present in a client device. The method also includes supplying power to the client device over the USB Type-A connection by selecting between one of a first power source or a second power source depending on whether the client controller is detected.

TECHNICAL FIELD

Embodiments presented in this disclosure generally relate to power control. More specifically, embodiments disclosed herein relate to power control over a universal serial bus (USB) Type-A interface.

BACKGROUND

Certain circuits (e.g., optical circuits) use a USB Type-A interface to power and communicate with an external component (e.g., a filter). As these external components have advanced, so have their power requirements.

DESCRIPTION OF EXAMPLE EMBODIMENTS

Overview

According to an embodiment, a method includes detecting, by a hardware processor and over a universal serial bus (USB) Type-A connection, whether a client controller is present in a client device. The method also includes supplying power to the client device over the USB Type-A connection by selecting between one of a first power source or a second power source depending on whether the client controller is detected. Other embodiments include an apparatus for performing this method.

According to another embodiment, a method includes receiving, by a hardware processor and over a USB Type-A connection, a data signal from a host controller and communicating, by the hardware processor and over the USB Type-A connection a security key or a security certificate to the host controller in response to the data signal. The method also includes receiving power over the USB Type-A connection from the host controller. The power is supplied using one of a first power source or a second power source depending on whether the security key or the security certificate is valid.

Example Embodiments

Certain circuits (e.g., optical circuits) use a USB Type-A interface to power and communicate with an external component (e.g., a filter). The 5V source of a USB Type-A interface was sufficient to power many of these external components over the USB Type-A interface. As these external components have advanced, however, so have their power requirements. There now exists components for which the 5V source of the USB Type-A interface provides insufficient power. As a result, these components do not function when plugged into a conventional USB Type-A interface.

This disclosure describes a USB Type-A interface that can supply power from two different power sources (e.g., a 5V source and a 12V source) depending on the type of component connected at the interface. The interface may include a host controller (e.g., a host inter-integrated circuit (I2C) controller). In one embodiment, two wires in the interface (e.g., a USB Receive wire and a USB Transmit wire of a USB 3.0 interface on a Type-A connector) are used to communicate clock and data signals to and from the host controller. The host controller determines which power source to use by detecting the presence of a client controller (e.g., client I2C controller) in the connected component. For example, if the host controller detects the client controller, the host controller may use a 12V source to supply power over a power wire of the interface. Otherwise, the host controller may use a 5V source to supply power over the power wire of the interface. Two wires (e.g., a USB receive wire and a USB transmit wire) are used to communicate clock and data signals to and from the client controller. The host controller may detect the presence of the client controller through identification messages communicated by the client controller to the host controller. In this manner, the USB Type-A interface may supply additional power (e.g., 20 W to 25 W of power) when needed.

FIG. 1illustrates an example system100. As seen inFIG. 1, the system100includes a host device102and a client device104. Generally, the host device102provides electric power to the client device104over a USB Type-A connection. The host device102varies the amount of electric power provided to the client device104, depending on whether the host device102detects the presence of a particular client controller in the client device104. In this manner, the host device102provides sufficient electric power to the client device104, in particular embodiments.

The host device102includes one or more USB Type-A ports106and a host controller108. The host controller108supplies electric power through the one or more USB type A ports106. In particular embodiments, the host controller108can change or adjust the amount of electric power supplied through the USB Type-A ports106depending on whether the host controller108detects the presence of a particular client controller in a connected client device104.

The host device102includes one or more USB Type-A ports106. In the example ofFIG. 1, the host device102includes USB Type-A ports106A,106B, and106B. Each USB Type-A port106forms an interface through which a USB connection may be made over a USB Type-A connector or cable. The connector or cable may engage the USB Type-A port106such that the USB Type-A port106may communicate electric signals over the connector or cable. For example, clock signals, data signals, and electric power signals may be communicated through the USB Type-A port106and over the connector or cable.

The host controller108communicates signals through the USB Type-A ports106. In particular embodiments, the host controller108adjusts electric power signals communicated over the USB Type-A ports106based on whether the host controller108detects a particular client controller in a connected client device104. As seen inFIG. 1, the host controller108includes a processor110and a memory112, which are configured to perform any of the functions or actions of the host controller108described herein.

The processor110is any electronic circuitry, including, but not limited to microprocessors, application specific integrated circuits (ASIC), application specific instruction set processor (ASIP), and/or state machines, that communicatively couples to memory112and controls the operation of the host controller108. The processor110may be 8-bit, 16-bit, 32-bit, 64-bit or of any other suitable architecture. The processor110may include an arithmetic logic unit (ALU) for performing arithmetic and logic operations, processor registers that supply operands to the ALU and store the results of ALU operations, and a control unit that fetches instructions from memory and executes them by directing the coordinated operations of the ALU, registers and other components. The processor110may include other hardware that operates software to control and process information. The processor110executes software stored on memory to perform any of the functions described herein. The processor110controls the operation and administration of the host controller108by processing information (e.g., information received from the client device104or the memory112). The processor110may be a programmable logic device, a microcontroller, a microprocessor, any suitable processing device, or any suitable combination of the preceding. The processor110is not limited to a single processing device and may encompass multiple processing devices.

The host controller108supplies electric power through a USB Type-A port106using one or more power source. In the example ofFIG. 1, the host controller108supplies electric power using power sources114or116(e.g., power rails). The host controller108selects one of the power sources114or116to supply electric power. The power sources114and116provide different amounts of electric power. For example, the power source114may be a 5-volt source and the power source116may be a 12-volt source. The host controller108selects one of the power sources114or116to supply electric power to a connected client device104depending on whether the host controller108detects the presence of a particular client controller in the client device104. For example, if the host controller108detects the presence of the particular client controller, the host controller108may supply electric power using the 12-volt power source116. If the host controller108does not detect the presence of the client controller, then the host controller108may supply electric power using the 5-volt power source114. The host controller108supplies the electric power through a USB Type-A port106.

The client device104connects to the host device102to receive electric power from the host device102. As seen inFIG. 1, the client device104includes one or more USB Type-A ports118, a client controller120, and one or more USB ports122. Generally, the client device104connects to the host device102through the USB Type-A ports118. The client device104powers the USB ports122using the electrical power supplied by the host device102.

The USB Type-A ports118form an interface through which a USB Type-A connection may be made with the host device102. For example, a USB Type-A connector or cable can engage the USB Type-A ports118to form a USB Type-A connection with a USB Type-A port106in the host device102. Electric signals, including electric power and data signals, may then be communicated over the USB connector or cable through the USB Type-A port118. As seen inFIG. 1, the client device104includes a USB Type-A port118A and a USB Type-A port118B. In particular embodiments, the client device104connects to the host device102using multiple USB Type-A ports118. For example, the client device104may connect to the host device102by forming a USB Type-A connection between USB type A port118A and USB type A port106A and by forming USB Type-A connection between USB Type-A port118B and USB Type-A port106B. The connection between the USB Type-A port118A and the USB Type-A port106A may supply electric power and electric signals (e.g., data signals) between the host device102and the client device104. The connection between USB Type-A port106B and USB Type-A port118B may supply supplemental electric power from the host device102to the client device104.

The client device104may use the electric power supplied by the host device102to power the one or more USB ports122or one or more devices connected to the USB ports122. The supplemental power supplied through the USB Type-A port118B may be supplied to the USB ports122.

The client controller120may communicate signals to the host device102that notify the host device102of the presence of the client controller120. As seen inFIG. 1, the client controller120includes a processor124and a memory126, which are configured to perform any of the functions or actions of the client controller120described herein.

The processor124is any electronic circuitry, including, but not limited to microprocessors, application specific integrated circuits (ASIC), application specific instruction set processor (ASIP), and/or state machines, that communicatively couples to memory126and controls the operation of the client controller120. The processor124may be 8-bit, 16-bit, 32-bit, 64-bit or of any other suitable architecture. The processor124may include an arithmetic logic unit (ALU) for performing arithmetic and logic operations, processor registers that supply operands to the ALU and store the results of ALU operations, and a control unit that fetches instructions from memory and executes them by directing the coordinated operations of the ALU, registers and other components. The processor124may include other hardware that operates software to control and process information. The processor124executes software stored on memory to perform any of the functions described herein. The processor124controls the operation and administration of the client controller120by processing information (e.g., information received from the host device102and the memory126). The processor124may be a programmable logic device, a microcontroller, a microprocessor, any suitable processing device, or any suitable combination of the preceding. The processor124is not limited to a single processing device and may encompass multiple processing devices.

The client controller120communicates data signals over the USB Type-A port118A to the host device102to indicate to the host device102of the presence of the client controller120. In particular embodiments, the host device102determines from these data signals whether the client controller120is a particular client controller120. The host device102then determines which power source114or116to use to provide electric power to the client device104. For example, the client device104may communicate a security key or certificate128to the host device102through the USB Type-A port118A. The host device102may validate the security key or certificate128. If the security key or certificate128is valid, the host device102supplies electric power to the client device104using a 12-volt power source116. If the security key or certificate128is not valid, the host device102supplies electric power to the client device104using a 5-volt power source114. In some embodiments, the client controller120communicates an identifier of the client controller120to the host device102rather than the security key or certificate128. The host device102analyzes the identifier to determine whether the client device104needs a lower electric power, such as 5 volts or a higher electric power such as 12 volts. The host device102then provides electric power to the client device104using the appropriate power source114or116.

FIG. 2illustrates example components of the system100ofFIG. 1. Specifically,FIG. 2shows the interface between the host controller108and the USB Type-A port106and the interface between the client controller120and the USB Type-A port118. In particular embodiments, the host controller108connects to two wires in the USB Type-A port106, and the client controller120connects to two wires in the USB Type-A port118. The host controller108communicates with the client controller120using the two wires in the USB Type-A port106and the two wires in the USB Type-A port118.

As seen inFIG. 2, the USB Type-A port106includes two ground wires, two data wires (Data− and Data+), a power wire, two Receive wires (Receive− and Receive+), and two Transmit wires (Transmit− and Transmit+). The host controller108connects to the USB type A port106using two of the wires (e.g., a Receive wire and a Transmit wire). In the example ofFIG. 2, the host controller108connects to the USB Type-A port106using the Receive+ wire and the Transmit+ wire. The host controller108may instead connect to the USB Type-A port106using the Receive− wire or the Transmit− wire. The host controller108communicates or receives a clock signal over the connected Transmit wire (e.g., the Transmit+ wire or the Transmit− wire). The host controller108communicates or receives a data signal over the connected Receive wire (e.g., the Receive+ wire or the Receive− wire). Alternatively, the host controller108may communicate or receive the data signal over a connected Transmit wire (e.g., the Transmit+ wire or the Transmit− wire) and the clock signal over a connected Receive wire (e.g., the Receive+ wire or the Receive− wire).

A USB cable202engages the USB Type-A port106and the USB Type-A port118to form a USB Type-A connection between the USB Type-A port106and the USB Type-A port118. The USB cable202may be a USB Type-A cable that has USB Type-A connectors on both ends of the USB cable202. The host controller108may communicate with the client controller120over the USB cable202.

The client controller120connects to the USB Type-A port118using two wires of the USB Type-A port118. For example, the client controller120may connect through a Receive wire and a Transmit wire of the USB Type-A port118. In the example ofFIG. 2, the client controller120connects to the USB Type-A port118through the Receive+ wire and the Transmit+ wire. The client controller120may instead connect to the USB Type-A port118using the Receive− wire or the Transmit− wire. The client controller120communicates or receives a clock signal over the connected Receive wire (e.g., the Receive+ wire or the Receive− wire). The client controller120communicates or receives a data signal over the connected Transmit wire (e.g., the Transmit+ wire or the Transmit− wire). Alternatively, the client controller120may communicate or receive the clock signal over a connected Transmit wire and the data signal over a connected Receive wire.

The host controller108and the client controller120use the clock signal to synchronize communications with one another. The host controller108and the client controller120may communicate data signals according to the clock signal. For example, the client controller120may communicate a security key or certificate128or an identifier to the host controller108over a Transmit wire of the USB Type-A port118. The host controller108may receive the security key or certificate128or the identifier over a Transmit wire of USB Type-A port106. The host controller108then determines, based on the security key or certificate128or the identifier, how much electric power to supply to the client device104.

The host device102supplies electric power to the client device104through a power wire of the USB Type-A port106. The client device104receives the electric power over a power wire of the USB Type-A port118. The host controller108controls the amount of electric power supplied to the power wire of the USB Type-A port106and received over the power wire of the USB Type-A port118. For example, if the host controller108detects the presence of the client controller120the host controller108may supply power over the power wire of the USB Type-A port106using a 12-volt power source. If the host controller108does not detect the presence of the client controller120, the host controller108may supply electric power over the power wire of the USB Type-A port106using a 5-volt power source. The USB Type-A port118may receive the electric power and distribute that electric power to the components of the client device104. In the example ofFIG. 2, the electric power is supplied to the client controller120and the USB ports122.

FIG. 3is a flowchart of an example method300in the system100ofFIG. 1. The host controller108performs the method300. In particular embodiments, by performing the method300, the host controller108supplies sufficient electric power to a client device104.

In block302, the host controller108connects to a client device104over a USB Type-A connection. The host device102includes a USB Type-A port106and the client device104includes a USB Type-A port118. The USB Type-A connection may be formed by engaging a USB cable202to the USB Type-A port106and the USB Type-A port118.

In block304, the host device102detects whether the client device104includes a particular client controller120. For example, the host controller108may analyze an identifier communicated by the client device104over the USB Type-A connection. Based on the analysis of the identifier, the host device102determines whether the client device104includes the client controller120. If the identifier does not properly identity the controller120, if the identifier identifies a different controller, or if the identifier is not communicated, then the host controller108determines that the client controller120is absent from the client device104.

If the host controller108determines that the client device104includes the client controller120, the host device102determines that the client device104needs additional electric power. In response, the host controller108supplies power to the client device104using a first power source116(e.g., a 12-volt power source) in block306. If the host controller108determines that the client device104does not include the client controller120, the host controller108supplies power to the client device104using a second power source114(e.g., a 5-volt power source) in block308. In this manner, the host controller108supplies sufficient electric power to the client device104in particular embodiments.

FIG. 4is a flowchart of an example method400in the system100ofFIG. 1. The host controller108performs the method400. In particular embodiments, by performing the method400, the host controller108supplies sufficient electric power to a connected client device104.

In block402, the host controller108connects to a client device104over a USB Type-A connection. For example, a USB cable202may engage with a USB Type-A port106at a host device102and a USB Type-A port118at the client device104to form the USB Type-A connection. In block404, the host controller108receives a security key or a certificate128from a client controller120in the client device104. The host controller receives the security key or certificate128over the USB Type-A connection.

In block406, the host controller108determines whether the security key or certificate128is valid. If the security key or a certificate128is valid, then the host controller108determines that the client device104should be supplied with additional electric power. In response, the host controller108supplies power to the client device104using a first power source116(e.g., a 12-volt power source) in block408. If the host controller108determines that the security key or certificate128is invalid then the host controller108may determine that the client device104should be supplied with less electric power. In response, the host controller108supplies power to the client device104over a second power source114(e.g., a 5-volt source) in block410. In this manner, the host device102supplies sufficient electric power to the client device104, in particular embodiments.

FIG. 5is a flowchart of an example method in the system100ofFIG. 1. The client device104performs the method500. In particular embodiments, by performing the method500, the client device104receives sufficient electrical power.

In block502, the client device104receives a data signal from a host controller108over a USB Type-A connection. The data signal may include a request to identify a client controller120in the client device104. The USB Type-A connection may be formed by engaging a USB cable202to a USB Type-A port106at a host device102and a USB Type-A port118at the client device104. In block504, the client device104communicates a security key or certificate128to the host controller108over the USB Type-A connection. The client device104may communicate the security key or certificate128in response to the data signal. In block506, the client device104receives power over the USB Type-A connection. The amount of power received over the USB Type-A connection depends on whether the security key or certificate128is valid or invalid. If the security key or certificate128is valid, the client device104receives additional electric power (e.g., power over a 12-volt source) over the USB Type-A connection. If the security key or certificate128is invalid, the client device104receives lower electric power (e.g., power over a 5-volt source) over the USB Type-A connection.

In summary, a host controller108determines how much power to supply to a client device104over a USB Type-A connection depending on whether the client device104includes a particular client controller120. Two wires in the interface (e.g., a USB Receive wire and a USB Transmit wire of a USB 3.0 interface on a Type-A connector) are used to communicate clock and data signals to and from the host controller108. The host controller108determines whether to use a low power source or a high power source by detecting the presence of the client controller120(e.g., client I2C controller) in the connected client device104. For example, if the host controller108detects the client controller120, the host controller108supplies power over a 12-volt source. Otherwise, the host controller108supplies power over a 5-volt source. Two wires (e.g., a USB Receive wire and a USB Transmit wire) are used to communicate clock and data signals to and from the client controller120. The host controller108may detect the presence of the client controller120through identifiers or security keys or certificates128communicated by the client controller120to the host controller108. In this manner, the USB Type-A interface may supply additional power (e.g., 20 W to 25 W of power) when needed.