资源库
AN-2621: Generating MIPI C-PHY and D-PHY Compatible Waveforms with ADATE334, a 2.3GHz High-Speed Dual Integrated DCL
Introduction
The ADATE334 is a complete dual-channel automatic test equipment (ATE) solution that performs the pin electronics functions of driver, comparator, and active load (DCL), and four-quadrant per pin parametric measurement unit (PPMU). Dedicated 16-bit DACs with on-chip calibration registers provide all necessary DC levels for operation of the device.
The high voltage driver features three active states: high (VIH), low (VIL), and terminate mode (VIT), as well as a high impedance inhibit state (HiZ). The inhibit state, in conjunction with the integrated dynamic clamps, facilitates significant attenuation of transmission line reflections when the driver is not actively terminating the line.
The open circuit drive capability is −1.5V to +7.0V to accommodate a wide range of ATE and instrumentation applications. The low voltage driver, working in conjunction with the high voltage driver, can provide 25mVpp to 600mVpp signals at up to 4.6Gbps in a 50Ω environment. Refer to the ADATE334 data sheet and functional block diagram for more information.
The MIPI Alliance provides a set of specialized physical layers with both complementary and unique features. MIPI C-PHY and MIPI D-PHY are mainly used for camera, display, and mobile applications. The ADATE334 high voltage and low voltage drivers can be used in combination to generate multilevel waveforms that are MIPI C-PHY and D-PHY compatible.
ADATE334 HIGH-SPEED MUX AND DRIVER CONTROLS
The ADATE334 utilizes internal high-speed multiplexers to map the high-speed inputs (DAT0, RCV0, DAT1, and RCV1) to the internal high voltage or low voltage driver control signals. The block diagram in Figure 1 shows the arrangement of the internal multiplexers and output drivers. The internal multiplexers (HV_DAT_x, HV_RCV_x, LV_VSWA_x, and LV_VSWB_x) generate the internal high-speed high voltage driver control signals (SELECTED_DAT_x and SELECTED_RCV_x) and low voltage driver control signals (SELECTED_VSWA_x and SELECTED_VSWB_x). Table 1 shows how the high voltage driver control signals determine the state of the high voltage driver output and Table 2 shows how the low voltage driver control signals determine the state of the low voltage driver output. The ADATE334 output is the sum of the high voltage driver and low voltage driver outputs
| SELECTED_RCV_X | SELECTED_DAT_X | High Voltage Driver Output |
| 0 | 0 | VIL |
| 0 | 1 | VIH |
| 1 | 0 | VIT |
| 1 | 1 | VIT |
| SELECTED_VSWB_X | SELECTED_VSWA_X | Low Voltage Driver Output |
| 0 | 0 | – ½ VSWA – ½ VSWB |
| 0 | 1 | −½ VSWB |
| 1 | 0 | −½ VSWA |
| 1 | 1 | −0(OFF) |
The internal multiplexer selection is controlled via Register 0x05 and is described in Table 3 to Table 6. Utilizing these internal multiplexers, different combinations of high voltage and low voltage driver outputs can be created using the high-speed inputs.

High-speed Multiplexers to Driver Input Selection
| HV_DAT_0[2:0] Address 0x05[15:13] | SELECTED_DAT_0 | HV_DAT_1[2:0] Address 0x05[15:13] | SELECTED_DAT_1 |
| 000 | DAT0 | 000 | DAT1 |
| 001 | DAT1 | 001 | DAT0 |
| 010 | DAT1 | 010 | DAT0 |
| 011 | Reserved | 011 | Reserved |
| 100 | Reserved | 100 | Reserved |
| 101 | Reserved | 101 | Reserved |
| 110 | Reserved | 110 | Reserved |
| 111 | High | 111 | High |
| HV_RCV_0[1:0] Address 0x05[12:11] | SELECTED_RCV_0 | HV_RCV_1[1:0] Address 0x05[12:11] | SELECTED_RCV_1 |
| 00 | RCV0 | 00 | RCV1 |
| 01 | RCV1 | 01 | RCV0 |
| 10 | RCV1 | 10 | RCV0 |
| 11 | Low | 11 | Low |
| LV_VSWA_0[1:0] Address 0x05[10:9] | SELECTED_VSWA_0 | LV_VSWA_1[1:0] Address 0x05[10:9] | SELECTED_VSWA_1 |
| 00 | DAT0 | 00 | DAT1 |
| 01 | DAT1 | 01 | DAT0 |
| 10 | Reserved | 10 | Reserved |
| 11 | High | 11 | High |
| LV_VSWB_0[2:0] Address 0x05[8:6] | SELECTED_VSWB_0 | LV_VSWB_1[2:0] Address 0x05[8:6] | SELECTED_VSWB_1 |
| 000 | DAT0 | 000 | DAT1 |
| 001 | DAT1 | 001 | DAT0 |
| 010 | RCV0 | 010 | RCV1 |
| 011 | RCV1 | 011 | RCV0 |
| 100 | Reserved | 100 | Reserved |
| 101 | Reserved | 101 | Reserved |
| 110 | Reserved | 110 | Reserved |
| 111 | High | 111 | High |
MIPI Alliance
MIPI Alliance supports a wide variety of application protocols requiring high performance, low-power serial interfaces. The MIPI C-PHY and D-PHY specifications are primarily used for the connection of cameras and display applications to a host processor. The PHY functionality includes a high-speed (HS) mode for fast-data traffic and a low-power (LP) mode for control purposes. C-PHY utilizes five signaling levels (LP-LOW, LP-HIGH, HS-LOW, HS-MID, and HS-HIGH), which can be combined across three lanes to generate the states described in Table 7. D-PHY utilizes four signaling levels (LP-LOW, LP-HIGH, HS-LOW, and HS-HIGH), which can combined across two lanes to generate the states described in Table 8.
| State Code | Line Voltage Levels | High-Speed | Low-Power | |||
| A Line | B Line | C Line | Burst Mode | Control Mode | Escape Mode | |
| HS_+X | HS-HIGH | HS-LOW | HS-MID | +x state | N/A1, 2 | N/A1, 2 |
| HS_–X | HS-LOW | HS-HIGH | HS-MID | –x state | N/A1, 2 | N/A1, 2 |
| HS_+Y | HS-MID | HS-HIGH | HS-LOW | +y state | N/A1, 2 | N/A1, 2 |
| HS_–Y | HS-MID | HS-LOW | HS-HIGH | –y state | N/A1, 2 | N/A1, 2 |
| HS_+Z | HS-LOW | HS-MID | HS-HIGH | +z state | N/A1, 2 | N/A1, 2 |
| HS_–Z | HS-HIGH | HS-MID | HS-LOW | –z state | N/A1, 2 | N/A1, 2 |
| LP-000 | LP-LOW | LP-LOW | LP-LOW | N/A1 | Bridge | Space |
| LP-001 | LP-LOW | LP-LOW | LP-HIGH | N/A1 | HS-Rqst | Mark-0 |
| LP-100 | LP-HIGH | LP-LOW | LP-LOW | N/A1 | LP-Rqst | Mark-1 |
| LP-111 | LP-HIGH | LP-HIGH | LP-HIGH | N/A1 | Stop | N/A1, 3 |
1 N/A means not applicable.
2 During high-speed transmission, the low-power receivers observe LP-000 on the lines.
3 If LP-111 occurs during escape mode, the lane returns to stop state (control mode LP-111).
| State Code | Line Voltage Levels | High-Speed | Low-Power | ||
| Dp-Line | Dn-Line | Burst Mode | Control Mode | Escape Mode | |
| HS-0 | HS-LOW | HS-HIGH | Differential-0 | N/A1, 2 | N/A1, 2 |
| HS-1 | HS-HIGH | HS-LOW | Differential-1 | N/A1, 2 | N/A1, 2 |
| LP-00 | LP-LOW | LP-LOW | N/A1 | Bridge | Space |
| LP-01 | LP-LOW | LP-HIGH | N/A1 | HS-Rqst | Mark-0 |
| LP-10 | LP-HIGH | LP-LOW | N/A1 | LP-Rqst | Mark-1 |
| LP-11 | LP-HIGH | LP-HIGH | N/A1 | Stop | N/A1, 3 |
1 N/A means not applicable.
2 During high-speed transmission, the low-power receivers observe LP-00 on the lines.
3 If LP-11 occurs during escape mode, the lane returns to stop state (control mode LP-11).
C-PHY Driver Example
The ADATE334 can be used to generate the five signaling levels utilized by C-PHY: LP-LOW, LP-HIGH, HS-LOW, HS-MID, and HS-HIGH. The HS signals have a smaller voltage swing at higher speeds and can be generated with the low voltage driver. The LP signals have a larger voltage swing at lower speeds and can be generated with the high voltage driver.
Figure 3 shows the C-PHY signaling levels and an example of corresponding ADATE334 output voltage levels. The internal high-speed multiplexers can be utilized to generate these output states with the high-speed inputs (DAT0, RCV0, DAT1, and RCV1). Table 9 shows how to configure the relevant ADATE334 registers to achieve this example configuration. Table 11 shows the corresponding truth table, mapping the high-speed inputs states to specific high voltage driver and low voltage driver output levels. Under this configuration, RCV0 and DAT0 control the high voltage driver, and DAT1b and RCV1b control the low voltage driver. Figure 4 shows an example scope capture of the ADATE334 in this configuration.
| Register Address | Name | CHx Value | CHx Mux Input |
| LOADCTL (0x05) [15:13] | HV_DAT_x[2:0] | 000 | DAT0 |
| LOADCTL (0x05) [12:11] | HV_RCV_x[1:0] | 00 | RCV0 |
| LOADCTL (0x05) [10:9] | LV_VSWA_x[1:0] | 01 | DAT1b |
| LOADCTL (0x05) [8:6] | LV_VSWB_x[2:0] | 011 | RCV1b |
| DRVCTL (0x03) [6] | DRIVE_VT_HIZ_x | 1 | N/A1 |
| DRVCTL (0x03) [5:3] | DRIVE_FORCE_STATE_x[2:0] | XXX | N/A1 |
| DRVCTL (0x03) [2] | DRIVE_FORCE_x | 0 | N/A1 |
| DRVCTL (0x03) [1:0] | DRIVE_ENABLE_x[1:0] | 1X | N/A1 |
| 1 N/A means not applicable. | |||
D-PHY Driver Example
The ADATE334 can be used to generate the four signaling levels utilized by D-PHY: LP-LOW, LP-HIGH, HS-LOW, and HS-HIGH. The HS signals have a smaller voltage swing at higher speeds and can be generated with the low voltage driver. The LP signals have a larger voltage swing at lower speeds and can be generated with the high voltage driver.
Figure 5 shows the D-PHY signaling levels and an example of corresponding ADATE334 output voltage levels. The internal high-speed multiplexers can be utilized to generate these output states with the high-speed inputs (DAT0, RCV0, DAT1, and RCV1). Table 10 shows how to configure the relevant ADATE334 registers to achieve this example configuration. Table 12 shows the corresponding truth table, mapping the high-speed inputs states to specific high voltage driver and low voltage driver output levels. Under this configuration, DAT0, DAT1, and RCV0 control the high voltage drivers, and RCV1 controls the low voltage drivers. Figure 6 shows an example scope capture of the ADATE334 in this configuration.
| Register Address | Name | CH0 Value | CH0 Mux Input | CH1 Value | CH1 Mux Input |
| LOADCTL (0x05) [15:13] | HV_DAT_x[2:0] | 000 | DAT0 | 000 | DAT1 |
| LOADCTL (0x05) [12:11] | HV_RCV_x[1:0] | 10 | RCV1 | 00 | RCV1 |
| LOADCTL (0x05) [10:9] | LV_VSWA_x[1:0] | 11 | High | 11 | High |
| LOADCTL (0x05) [8:6] | LV_VSWB_x[2:0] | 010 | RCV0 | 011 | RCV0b |
| DRVCTL (0x03) [6] | DRIVE_VT_HIZ_x | 1 | N/A1 | 1 | N/A1 |
| DRVCTL (0x03) [5:3] | DRIVE_FORCE_STATE_x[2:0] | XXX | N/A1 | XXX | N/A1 |
| DRVCTL (0x03) [2] | DRIVE_FORCE_x | 0 | N/A1 | 0 | N/A1 |
| DRVCTL (0x03) [1:0] | DRIVE_ENABLE_x[1:0] | 1X | N/A1 | 1X | N/A1 |
| 1 N/A means not applicable. | |||||
| HV_DAT_0[2 :0] Address 0x05[15:13] | HV_RCV_0[1:0] Address0x05[12:11] | LV_SWA_0[1 :0] Address 0x05[10:9] | LV_SWB_0[ 2:0] Address 0x05[8:6] | HV_DAT_1[2:0] Address0x05[15:13] | HV_RCV_1[1:0] Address0x05[12:11] | LV_SWA_1[1:0] Address0x05[10:9] | LV_SWB_1[2:0] Address0x05[8:6] | RCV 0 |
RCV 1 |
DAT 0 |
DAT 1 |
Low Voltage Driver State, Channel x | High Voltage Driver State, Channel x | C-PHY Lane Level |
| Load Control Register, 0x05 | High-Speed Inputs | |||||||||||||
| 000 (DAT0) |
00 (RCV0) |
01 (DAT1b) |
011 (RCV1b) |
X | X | X | X | 0 | 0 | 0 | 0 | 0 | VIL | LP-LOW |
| 0 | 0 | 1 | 0 | 0 | VIH | LP-HIGH | ||||||||
| 1 | 1 | X | 1 | – ½ VSWA ½ VSWB | VIT | HS-LOW | ||||||||
| 1 | 0 | X | 1 | – ½ VSWA | VIT | HS-MID | ||||||||
| 1 | 0 | X | 0 | 0 | VIT | HS-HIGH | ||||||||
| HV_DAT_0[2:0] Address0x05[15:13] | HV_RCV_0[1:0] Address0x05[12:11] | LV_SWA_0[1:0] Address0x05[10:9] | LV_SWB_0[2:0] Address0x05[8:6] | HV_DAT_1[2:0] Address0x05[15:13] | HV_RCV_1[1:0] Address0x05[12:11] | LV_SWA_1[1:0] Address0x05[10:9] | LV_SWB_1[2:0] Address0x05[8:6] | RCV 0 |
RCV 1 |
DAT 0 |
DAT 1 |
Low Voltage Driver State, Channel 0 | High Voltage Driver State, Channel 0 | Low Voltage Driver State, Channel 1 | High Voltage Driver State, Channel 1 | D-PHY State Code |
| Load Control Register, 0x05 | High-Speed Inputs | Dp-Line | Dn-Line | |||||||||||||
| 000 (DAT0) |
10 (RCV1) |
11 (High) |
010 (RCV0) |
000 (DAT1) |
00 (RCV1) |
11 (High) |
011 (RCV0b) |
0 | 0 | 0 | 0 | – ½ VSWB0 | VIL0 | 0 | VIL1 | LP-00 |
| 0 | 0 | 1 | 0 | – ½ VSWB0 | VIH0 | 0 | VIL1 | LP-10 | ||||||||
| 0 | 0 | 0 | 1 | – ½ VSWB0 | VIL0 | 0 | VIH1 | LP-01 | ||||||||
| 0 | 0 | 1 | 1 | – ½ VSWB0 | VIH0 | 0 | VIH1 | LP-11 | ||||||||
| 0 | 1 | X | X | – ½ VSWB0 | VIT0 | 0 | VIT1 | HS-0 | ||||||||
| 1 | 1 | X | X | 0 | VIT0 | – ½ VSWB1 | VIT1 | HS-1 | ||||||||
References
MIPI. 2022. https://www.mipi.org/.




