CDP1020 Data Sheet April 1999 SMBus/I 2C ACPI Dual Device Bay Controller File Number Features The CDP1020 is an ACPI compliant Device Bay Controller (DBC) that can control two device bays. The controller interfaces to the host system through the industry standard I2C or System Management Bus (SMBus) and is fully compliant with Device Bay Specification 0.90. The CDP1020 is designed to be compatible with the integrated SMBus host controller of the PiiX4/PiiX6 in Intel Architecture platforms. The CDP1020 is designed to be placed on the host motherboard, on a riser, or adjacent to the Device Bay connectors. The required clock source is generated from an internal oscillator on the CLK pin, with an external RC to set the frequency. This lowers the system cost and allows the CDP1020 to remain active during S3-S5 system states where all clock generators have been stopped. One of the key features of this device is the on-chip level shifters that provide slew rate controlled, direct gate drive for external N-Channel MOSFETs (Intersil HUF76113DK8 recommended) to switch the device bay VID supplies. Switching an N-Channel device as opposed to a P-Channel reduces both device cost and device count, resulting in an overall lower system cost. Configuration data for the CDP1020, including subsystem vendor ID, subsystem revision, bay size and device bay capabilities are designed to be written into the CDP1020 by the system BIOS at power up. The registers for this data are write-once-only and thus become read-only after the initial BIOS write. The address selection pins (AD1 and AD0) allow the CDP1020 to occupy any one of four I2C/SMBus addresses. This enables up to four CDP1020 devices to coexist in a system. • Fully Compliant with Device Bay Specification 0.90 and ACPI Specification 1.0 • Industry Standard SMBus/I2C Interface • Controls for Two Device Bays • Onboard Level Shifting for Direct Drive of N-Channel MOSFET VID Switches • Integrated Pull-up Resistors on 1394PRx, USBPRx, SECUREx, and REMREQx Inputs • RC Type Oscillator - Low Cost and Low Power Consumption • Operational Voltage from 3.3 to 5.5V • “5V Tolerant” Inputs at all Operating Voltages • Write-Once BIOS/External Configuration • Removal Request Input for Each Bay • Security Lock Input for Each Bay • High Current Device Bay LED Indicator Drivers With Separate High-Side Power Input • Configurable Level/Pulse Bay Solenoid Drivers • Programmable Insertion Time Out Delay • HCMOS Technology; 28 Lead Plastic SOIC Pinout CDP1020 (SOIC) TOP VIEW RESET 1 TEST (VDD) 1394PR0 28 AD1 2 27 AD0 3 26 CLK USBPR0 4 25 VSS REMREQ0 5 24 VDD SECURE0 6 23 VLED 1394PR1 7 22 LEDA1 USBPR1 8 21 LEDG1 REMREQ1 9 20 LEDA0 SECURE1 10 19 LEDG0 SDA 11 18 SFTLOCK1 SCK 12 17 SFTLOCK0 For More Information Contact: ALRT 13 16 PWREN1 Mike Coletta (714) 433-0600 VGATE 14 15 PWREN0 The CDP1020 implements high current outputs for direct drive (with a limiting resistor) of the optional bay status LEDs. These indicators are two color (green/amber) common anode or anti-parallel LEDs that indicate the device bay status per the Device Bay Specification 0.90. Ordering Information PART NUMBER CDP1020 TEMP. RANGE (oC) 0 to 85 PACKAGE 28 Ld SOIC 4704 PKG. NO. M28.3 Terry Pierce (407) 729-5835 2-418 CAUTION: These devices are sensitive to electrostatic discharge; follow proper IC Handling Procedures. http://www.intersil.com or 407-727-9207 | Copyright © Intersil Corporation 1999 CDP1020 Pin Descriptions PIN NUMBER PIN NAME IN/OUT 1 RESET IN 2 TEST - 3 1394PR0 IN PIN DESCRIPTION Device Bay Controller Master Reset Schmitt Input Test pin used by manufacturer only. Must be externally connected to VDD Bay 0 1394 Presence Input with Active Pull-up 4 USBPR0 IN Bay 0 USB Presence Input with Active Pull-up 5 REMREQ0 IN Bay 0 Remove Request Input with Active Pull-up 6 SECURE0 IN Bay 0 Security Input with Active Pull-up 7 1394PR1 IN Bay 1 1394 Presence Input with Active Pull-up 8 USBPR1 IN Bay 1 USB Presence Input with Active Pull-up Bay 1 Remove Request Input with Active Pull-up 9 REMREQ1 IN 10 SECURE1 IN 11 SDA IN/OUT SMBus/I2C Data Schmitt Input/Open-Drain Output 12 SCK IN/OUT SMBus/I2C Clock Schmitt Input/Open-Drain Output 13 ALRT OUT Bay 1 Security Input with Active Pull-up SMBus Alert Open-Drain Output 14 VGATE - Power Supply Input for PWREN0/PWREN1 Drivers 15 PWREN0 OUT Bay 0 Power Enable 12V NMOS Gate Drive Output 16 PWREN1 OUT Bay 1 Power Enable 12V NMOS Gate Drive Output 17 SFTLOCK0 OUT Bay 0 Software Controlled Lock Mechanism Driver 18 SFTLOCK1 OUT Bay 1 Software Controlled Lock Mechanism Driver 19 LEDG0 OUT Bay 0 Status Indicator (Green LED) Driver 20 LEDA0 OUT Bay 0 Status Indicator (Amber LED) Driver 21 LEDG1 OUT Bay 1 Status Indicator (Green LED) Driver 22 LEDA1 OUT 23 VLED - Power Supply Input for LED Driver (LEDAx, LEDGx) 24 VDD - Power Supply Input (Power) Power Supply Return (Ground or GND) Bay 1 Status Indicator (Amber LED) Driver 25 VSS - 26 CLK IN External Clock Schmitt Input (for RC oscillator) 27 AD0 IN SMBus/I2C Address Configuration Bit 0 28 AD1 IN SMBus/I2C Address Configuration Bit 1 Block Diagram OSCILLATOR CIRCUITRY RESET AD1 AD0 SCK SDA CLK VENDOR - $00 I 2C/SMBus INTERFACE REVISION - $04 SUBSYS VENDOR - $08 DEVICE BAY CONTROLLER LOGIC SUBSYS REV- $0A DBCCR - $0C ALRT SFR - $FC 1394PR0 LEDA0 LEDG0 PWREN0 TIMER/ LEVEL SHIFTER LEVEL SHIFT SFTLOCK0 VLED VGATE BSTR0 - $10 BCER0 - $14 BSTR1 - $18 BCER1 - $1C DEVICE BAY 1 CONTROLLER SECURE0 DEVICE BAY 0 CONTROLLER USBPR0 REMREQ0 1394PR1 DEBOUNCE LOGIC and PULLUP Rs DEBOUNCE LOGIC and PULLUP Rs USBPR1 REMREQ1 SECURE1 TIMER/ LEVEL SHIFTER LEVEL SHIFT LEDA1 LEDG1 PWREN1 SFTLOCK1 VLED VGATE 2-419 CDP1020 Absolute Maximum Ratings Thermal Information Supply Voltage, VDD . . . . . . . . . . . . . . . . . . . . . . . . . . -0.5V to +6V Supply Voltage, VGATE . . . . . . . . . . . . . . . . . . . . . . . . . VDD to 13V Supply Voltage, VLED . . . . . . . . . . . . . . . . . . . . . . . . . -0.5V to +6V Input Voltage, VIN . . . . . . . . . . . . . . . . . . VSS - 0.3V to VDD + 0.3V Test Mode, VIN . . . . . . . . . . . . . . . . . . . . VSS - 0.3V to 2 x VDD + 0.3V Current Drain Per Pin Excluding VDD and VSS, I . . . . . . . . . . 40mA Thermal Resistance (Typical, Note 1) θJA (oC/W) 28 Ld SOIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Maximum Junction Temperature . . . . . . . . . . . . . . . . . . . . . . .150oC Maximum Storage Temperature Range (TSTG). . . . -65oC to 150oC Maximum Lead Temperature (Soldering 10s) . . . . . . . . . . . . .300oC (SOIC - Lead Tips Only) Operating Conditions Voltage Range . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +3.0V to +5.0V Temperature Range . . . . . . . . . . . . . . . . . . . . . . . . . . . 0oC to 85oC Input High Voltage . . . . . . . . . . . . . . . . . . . . . . . (0.8 x VDD) to VDD CAUTION: Stresses above those listed in “Absolute Maximum Ratings” may cause permanent damage to the device. This is a stress only rating and operation of the device at these or any other conditions above those indicated in the operational sections of this specification is not implied. NOTE: 1. θJA is measured with the component mounted on an evaluation PC board in free air. DC Electrical Specifications, 5.0V VDD = 5.0V ±10%, TA = 0oC to 85oC PARAMETER SYMBOL CONDITIONS MIN TYP MAX UNITS VOL - - 0.1 V VOH VDD - 0.1 - - V -10µA < ILOAD < 10µA Output Voltage All Outputs SFTLOCK0, SFTLOCK1 Output High Voltage LEDA0, LEDG0, LEDA1, LEDG1 VOH ILOAD = -16.0mA VLED - 1.0 - - V VOH ILOAD = -0.7mA VDD - 0.3 - - V VOL ILOAD = 1.6mA - - 0.4 V VOL ILOAD = 60µA - - 0.4 V Gate Output High Voltage PWREN0, PWREN1 VGOH ILOAD < 10µA VGATE -0.5V VGATE -0.3V VGATE V Gate Output Current Source PWREN0, PWREN1 IGATE -15 -35 -50 µA VIH 0.7•VDD - VDD V SCK, SDA VIH 0.7•VDD - VDD V RESET, CLK VIH 0.7•VDD - VDD V VIL VSS - 0.2•VDD V VIL VSS - 0.2•VDD V IIOL - - ±10 µA IIN 50 200 400 µA SFTLOCK0, SFTLOCK1 Output Low Voltage SCK, SDA, ALRT, SFTLOCK0, SFTLOCK1, LEDG0, LEDA0, LEDG1, LEDA1 PWREN0, PWREN1 Input High Voltage 1394PR0, USBPR0, REMREQ0, SECURE0, 1394PR1, USBPR1, REMREQ1, SECURE1 Input Low Voltage 1394PR0, USBPR0, REMREQ0, SECURE0, 1394PR1, USBPR1, REMREQ1, SECURE1, RESET, CLK SCK, SDA Input/Output Leakage Current: RESET, CLK, AD0, AD1, SCK, SDA, ALRT Input Pullup Current 1394PR0, USBPR0, REMREQ0, SECURE0, 1394PR1, USBPR1, REMREQ1, SECURE1 Input Hysteresis Voltage SCK, SDA VHYS 0.02 0.10 0.40 V CLK VHYS 0.6 1.0 1.3 V RESET VHYS 0.8 1.1 1.4 V 2-420 CDP1020 DC Electrical Specifications, 5.0V VDD = 5.0V ±10%, TA = 0oC to 85oC (Continued) PARAMETER SYMBOL Capacitance CONDITIONS COUT CIN Supply Current (RUN) IDD DC Electrical Specifications, 3.3V fCLK = 4.0MHz External MIN TYP MAX UNITS - - 12 pF - - 8 pF - 1.3 5.0 mA MIN TYP MAX UNITS VDD = 3.3V ±10%, TA = 0oC to 85oC PARAMETER SYMBOL Output Voltage CONDITIONS -10µA < ILOAD < 10µA All Outputs VOL - - 0.1 V SFTLOCK0, SFTLOCK1 VOH VDD - 0.1 - - V Output High Voltage LEDA0, LEDG0, LEDA1, LEDG1 VOH ILOAD = -6.0mA VLED - 1.0 - - V SFTLOCK0, SFTLOCK1 VOH ILOAD = -0.4mA VDD - 0.3 - - V SCK, SDA, ALRT, SFTLOCK0, SFTLOCK1, LEDG0, LEDA0, LEDG1, LEDA1 VOL ILOAD = 1.6mA - - 0.4 V PWREN0, PWREN1 VOL ILOAD = 50µA - - 0.4 V VGOH ILOAD < 10µA VGATE -0.5V VGATE -0.3V VGATE V IGATE -10 -20 -30 µA 1394PR0, USBPR0, REMREQ0, SECURE0, 1394PR1, USBPR1, REMREQ1, SECURE1 VIH 0.7•VDD - VDD V SCK, SDA VIH 0.7•VDD - VDD V RESET, CLK VIH 0.7•VDD - VDD V 1394PR0, USBPR0, REMREQ0, SECURE0, 1394PR1, USBPR1, REMREQ1, SECURE1, RESET, CLK VIL VSS - 0.2•VDD V SCK, SDA VIL VSS - 0.2•VDD V IIOL - - ±10 µA IIN 20 80 160 µA SCK, SDA VHYS 0.05 0.15 0.45 V CLK VHYS 0.4 0.8 1.1 V RESET VHYS 0.3 0.5 0.8 V COUT - - 12 pF CIN - - 8 pF IDD - 0.9 4.5 mA Output Low Voltage Gate Output High Voltage PWREN0, PWREN1 Gate Output Current Source PWREN0, PWREN1 Input High Voltage Input Low Voltage Input/Output Leakage Current: RESET, CLK, AD0, AD1, SCK, SDA, ALRT Input Pullup Current 1394PR0, USBPR0, REMREQ0, SECURE0, 1394PR1, USBPR1, REMREQ1, SECURE1 Input Hysteresis Voltage Capacitance Supply Current (RUN) 2-421 CDP1020 tLOW tHD:STA tHIGH SCK tHD:STA tSU:DAT tHD:DAT tSU:STO tSU:STA SDA tBUF STOP STOP START START FIGURE 1. CONTROL TIMING Control Timing VDD = 3.3V ±10%, TA = 0oC to 85oC PARAMETER Frequency Of Operation (4.0MHz nominal) (CLK Pin) Suspend Recovery Start-up Time SYMBOL MIN MAX UNITS fCLK 2.0 4.5 MHz tRSUS 0.9 1 ms RESET Pulse Width (RESET Pin) tRL 6 - tOSC Input Debounce Time (1394PRx, USBPRx, REMREQx, SECUREx Pins) tDB 50 - ms fSMB 10 100 kHz SMBus SCK and SDA Pins SCK Frequency tBUF 4.7 - µs tHD:STA 4.0 - µs Repeated Start Condition Setup Time tSU:STA 4.7 - µs Stop Condition Setup Time tSU:STO 4.0 - µs Data Hold Time tHD:DAT 300 - ns Data Setup Time tSU:DAT 250 - ns tTIMEOUT 25 35 ms tLOW 4.7 - µs SMBus Free Time Hold Time After (Repeated) Start Condition SCK Time-out Period SCK Low Period tHIGH 4.0 50 µs Slave SCK Extend Period (cumulative) tLOW:SEXT - 25 ms Master SCK Extend Period (cumulative) SCK High Period tLOW:MEXT - 10 ms SCK/SMBDAT Fall Time tF - 300 ns SCK/SMBDAT Rise Time tR - 1000 ns Notational Conventions The following conventions are used throughout this document: • Hexadecimal numbers are denoted with a “$” symbol preceding the number. • Binary numbers are represented with a “%” symbol proceeding the number, or a “b” following. • Because of the large mix of active-low and active-high signals used in connection with the CDP1020, the terms “asserted” and “de-asserted” will be used exclusively. An active low signal is asserted when it is at a logic 0 and deasserted when it is at a logic 1 state. Conversely, an active high signal is at a logic 1 state when asserted and at a logic 0 state when de-asserted. The terms reset, clear, 2-422 and “low” can also mean logic 0; set or “high” can also mean logic 1. • Active low signals are represented with an overline; active high signals have no overline. For example, REMREQ0 is active low, PWREN0 is active high. • There are many pins, signals, registers, and software bits common to both Bay 0 and Bay 1; these names may include the Bay number suffix (0 or 1), an “x” to represent either, or no suffix at all. For example, PWREN, PWREN0, or PWRENx may each be used to describe output pin(s). CDP1020 Functional Pin Descriptions This section provides a description of each of the 28 pins of the CDP1020 as shown in Figure 2. is tied to GND (active low); when a device is inserted or removed, these pins are monitored to reflect whether a device is present (or not), and which of the two busses it uses. All of these pins are CMOS inputs with internal active pull-ups to VDD. RESET 1 28 AD1 TEST (VDD) 2 27 AD0 1394PR0 3 26 CLK USBPR0 4 25 VSS REMREQ0 5 24 VDD The REMREQ0 and REMREQ1 inputs are driven from the “REMOVE REQUEST” buttons for bay 0 and bay 1, respectively. These pins are CMOS inputs, with internal active pull-ups to VDD . SECURE0 6 23 VLED SECURE0, SECURE1 1394PR1 7 22 LEDA1 USBPR1 8 21 LEDG1 REMREQ1 REMREQ0, REMREQ1 9 20 LEDA0 SECURE1 10 19 LEDG0 SDA 11 18 SFTLOCK1 SCK 12 17 SFTLOCK0 SECURE0 and SECURE1 are inputs which are integral to the bay security feature; each input should be connected such that it will be asserted when an optional hardware lock is engaged for the related bay. The state of these inputs are observable by the operating system through the SL_STS bits in the bay status registers. Both of these pins are CMOS inputs with internal active pull-ups to VDD. ALRT 13 16 PWREN1 SDA (I 2C/SMBus Data Input/Output) VGATE 14 15 PWREN0 FIGURE 2. PINOUT DIAGRAM FOR THE CDP1020 NOTE: The following pins are “5V Tolerant” Inputs at all Operating Voltages: CLK, RESET, SCK, SDA, ALRT. This means that the input voltages can range up to the maximum allowed (5V typical), regardless of the operating voltage of the IC. VDD , VGATE , VLED , and VSS (Power Supply) Power is supplied to the CDP1020 using these pins. VDD is connected to the positive logic supply (typically either 3.3V or 5V), VGATE is connected to the positive supply for the PWREN0 and PWREN1 gate drivers (typically 12V), VLED is connected to the positive power supply for the LED drivers (typically 5V), and VSS is connected to the negative supply (Ground). NOTE: VGATE and VLED power supplies should never be connected to the CDP1020 without the presence of the VDD and VSS supplies. Applying power to these inputs without the presence of the main power supply could result in a condition where all level-shifted outputs (PWRENx, LEDGx and LEDAx) track their power supply input voltage, thus enabling any of their output circuitry. RESET (Reset Input) The RESET input is a low level active input, which resets the CDP1020. Resetting the device forces ALRT high and forces the device to reset the state of each bay (see Effects Of Reset for more details). The RESET pin contains an internal Schmitt Trigger to improve noise immunity. 1394PR0, 1394PR1, USBPR0, USBPR1 These four pins are the device presence inputs to the device bay controller for both bay 0 (1394PR0 and USBPR0) and bay 1 (1394PR1 and USBPR1). If the (peripheral) device uses the 1394 or USB (or both), that pin(s) on its connector 2-423 The SDA pin is the serial data input to the SMBus interface logic of the CDP1020; it contains an internal Schmitt Trigger to improve noise immunity. When in slave-transmit mode, this pin is an open drain output. Input thresholds for the SDA input are fully compliant with SMBus Specification 1.0 (see Electrical Specifications). Refer to the I 2C/SMBus Interface text for more details. SCK (I 2C/SMBus Clock Input) The SCK pin is the serial clock input to the SMBus interface logic of the CDP1020; it contains an internal Schmitt Trigger to improve noise immunity. Since the CDP1020 never acts as a SMBus master, this pin is a dedicated clock input (except for clock-stretching protocol, where it uses an opendrain low-side output). Input thresholds for the SCK input are fully compliant with SMBus Specification 1.0 (see Electrical Specifications). Refer to the I 2C/SMBus Interface text for more details. PWREN0, PWREN1 PWREN0 and PWREN1 are the outputs from the gate drive level-shifter circuitry located on the CDP1020. These pins will output VGATE (typically 12V) to drive the gates of the VID control MOSFETs per Device Bay Specification 0.90. SFTLOCK0, SFTLOCK1 SFTLOCK0 and SFTLOCK1 are CMOS outputs designed to control the software locking mechanism installed in each bay. These outputs are designed to drive solenoid driver circuitry (such as an NFET), not a solenoid directly. The output can be programmed via the Special Function Register (SFR) to be a level or a pulse of a user defined duration. Refer to the Hardware text for more details. CDP1020 LEDG0, LEDA0, LEDG1, LEDA1 The LEDGx and LEDAx are the output LED drive pins for the device bay status LED located in each bay. The status indicators should be two color, green/amber, common anode or anti-parallel LEDs. These pins drive the LEDs directly through an external current limiting resistor; no additional buffering is necessary. The high side of these output drivers is powered directly from the VLED (typically 5V) power input and is not tied to the VDD rail of the device. CLK (Clock Input) The Clock input (CLK) provides the time base reference for operation of the device bay controller logic, including: debounce timing, state sequencing, LED timing, etc. SMBus transfers between the CDP1020 and the SMBus Host controller are not based on the clock input. The clock input of the CDP1020 has the circuitry necessary for oscillating an external resistor-capacitor circuit, as shown in Figure 3. External clock sources (like those from a can oscillator) should not be used with the CDP1020. VDD CLK 26 CDP1020 FIGURE 3. RC OSCILLATOR CONFIGURATION The CDP1020 is designed to operate optimally with an input frequency of 4MHz. All of the internal timing, including debounce, insertion delay, and solenoid pulse durations are based on a 4MHz input. While the CDP1020 will operate over a wide range of frequency, a nominal input frequency of 4MHz is strongly recommended. Refer to the Hardware Interface text at the end of this document for more information on the RC oscillator, including recommended RC values. ALRT (I 2C/SMBus Alert Output) The ALRT pin is the used by the CDP1020 to signal the SMBus Host Controller that an interrupt event within the controller has occurred and the device wishes to be read by the operating system. This pin is an open drain output. Refer to the I 2C/SMBus Interface text for more details. . AD0, AD1 AD0 and AD1 are sampled by the CDP1020 immediately after reset and are used as the 2 least significant bits of the I2C/SMBus slave address of the CDP1020. These pins are CMOS inputs, and should be tied to the same power plane as the device (VDD for a logic high; VSS for a logic low). 2-424 Through the use of these pins, up to four devices may be placed on the same bus (addresses $90, $92, $94, $96). TEST TEST is a CMOS input used only by Intersil for testing, and is not recommended for the user; it must be externally connected to VDD. I 2C/SMBus Interface The CDP1020 contains a standard implementation of an I2C/SMBus serial interface. The CDP1020 is always an I2C/SMBus slave device. Its serial interface supports single or burst mode reads and writes using standard I2C/SMBus mechanisms. Reading from and Writing to the CDP1020 The I2C/SMBus slave address of the CDP1020 is %10010XXY, where the “XX” bits are defined by the AD1:AD0 input pins, and the “Y” is the R/W (Read/Write) bit. Every access of the CDP1020 begins when the I2C/SMBus master generates a start condition (or repeated start condition) followed by transmitting an address/control byte with the address equal to the CDP1020’s slave address and the R/W bit set appropriately. Note that the R/W bit can be considered the 8th (Least Significant Bit) in the address, even though that may not be the standard I2C/SMBus notation. A write operation is defined as the condition when the I2C/SMBus master transmits the slave address with the R/W bit clear. A read operation is defined as the transmission of the CDP1020 slave address with the R/W bit set. Thus, when looked upon as an 8-bit address, write operations will have even addresses (for example, $90), while read operations will be odd ($91). For write operations, the command byte following the address/control byte is used to set the internal address pointer of the CDP1020. An I2C/SMBus send byte command will therefore behave as a “set the address pointer” command. The address pointer is initialized to $00 following a reset. The byte written to the CDP1020 immediately following an address/control byte with the R/W bit clear will always be used to set the CDP1020 internal address pointer. Subsequent bytes written to the CDP1020 in a transmission following the address/command and address pointer bytes are written directly into the register space of the CDP1020. The address pointer of the CDP1020 is auto-incrementing; once a byte is written into the register space, the address pointer increments to the next location. In this way multiple byte writes to adjacent address locations within the CDP1020 may be performed within a single I2C/SMBus transmission. Figure 5 shows examples for a single byte and a multiple byte write to the CDP1020. Read operations are performed when the I2C/SMBus master transmits a start condition and the CDP1020 slave address with the R/W bit set. Following the address/command byte CDP1020 the CDP1020 will transmit data to the master beginning at the CDP1020 register location pointer to by the internal address pointer. In accordance with I2C/SMBus protocols, the CDP1020 will continue to transmit data to the master until it receives a negative acknowledge from the master. NOTE: Due to the nature of the CDP1020 I2C/SMBus interface module, a master device cannot simply end a read operation by transmitting a stop condition. The master is required to notacknowledge the last byte of a read operation. Only when the CDP1020 detects this negative acknowledge will it end transmission and wait for another start condition. As with write operations, the internal address pointer of the CDP1020 will automatically increment after each byte is transmitted during a read operation. In this way multiple bytes can be read from the CDP1020 register space within a single I2C/SMBus transmission. Figure 4 demonstrates single and multiple byte read sequences, both of which begin with a send byte command followed by a restart and read command. This technique forces the address pointer to the desired address prior to the read(s) and, while not strictly necessary, is strongly recommended. Note that writing to un-implemented registers will be ignored (the data will not be stored anywhere). Reading unimplemented registers will produce undefined results. I 2C/SMBus Alert Function The CDP1020 is a slave only I2C/SMBus device. As such, it has no capability to start a transmission on the serial bus to notify the master of an interrupt event within the CDP1020 control logic (Interrupt events are described in more detail in the Device Bay Control Logic text). To notify the master of such an event, the CDP1020 implements the SMBus alert function as detailed in the SMBus specification. When an interrupt event (interrupt events are described in the Device Bay Control Logic text) within the CDP1020 occurs, it will assert its ALRT signal. The ALRT pin is an active low, open drain output that must have an external pullup resistor. The assertion of this signal is an indication to the master that an interrupt condition within the CDP1020 has occurred and needs service. REMREQ REMREQ_EN BAY 0 ALRT DEVSTSCHG DEVSTSCHG_EN REMREQ REMREQ_EN DEVSTSCHG DEVSTSCHG_EN BAY 1 FIGURE 4. ALRT OUTPUT LOGIC The master device may respond in two different ways to the assertion of the ALRT pin - one way using the SMBus Alert 2-425 feature of SMBus control modules (such as the PiiX4/PiiX6) and the other way using a general purpose I/O to monitor the ALRT signal of the CDP1020 and I2C messaging to service the alert. In the SMBus method, the ALRT pin of the CDP1020 should be tied to the general purpose SMBus alert signal going into the SMBus controller. This signal may have many other devices connected to it in addition to the CDP1020. When the SMBus alert line is pulled low by any of the SMBus devices, the SMBus controller will send out an Alert Response Address (ARA), %00011001 ($19, with the R/W bit set). Any slave device that is currently asserting its ALRT signal will respond to the ARA by sending the master its slave address. If there are multiple devices asserting the ALRT signal, they will use standard SMBus arbitration techniques to determine ownership of the bus. Once a slave successfully transmits a response to the ARA, it will deassert its ALRT signal. On the occurrence of any interrupt event, the CDP1020 will assert its ALRT pin. Once this pin is asserted, the CDP1020 will now respond to an SMBus ARA. NOTE: The present CDP1020 does not support the SMBus ARA response, but a future mask option fully implements it. The same is true for a General Call ($00 address to broadcast to all devices on bus). Thus, if the SMBus alert signal is used, the SMBus controller should poll the CDP1020 (similar to the description in the next paragraph) to determine if it created the interrupt (it can separately issue the ARA to see if any other device responds to it; the CDP1020 will not). For I2C systems or SMBus systems that do not implement the SMBus alert feature, the ALRT pin of the CDP1020 should be connected to a separate interrupt pin or general purpose input of the I2C/SMBus master and monitored. When the master detects that the ALRT signal of the CDP1020 has been asserted, it should perform a read operation on the CDP1020 using the standard read protocol described in the previous section. If multiple devices share the same input to the master, the software will have to check each device to determine which one caused the Alert. Note that if the ALRT pin is only monitored in software (instead of using a more immediate interrupt), then the latency needs to be considered, such that there is not a noticeable or objectionable delay in the response time (for example, if the user pushes the REMREQ button repeatedly, or inserts and removes a device repeatedly because of no apparent response). As shown in Figure 4, the CDP1020 will only de-assert its ALRT signal when the cause of the interrupt event is cleared (by clearing either the status or enable bit). This is true whether the SMBus ARA or the general purpose I/O method is used. CDP1020 1 2 3 4 5 4 6 4 7 SDA SCK FIGURE 5A. SINGLE BYTE WRITE OPERATION (WRITE $9A TO CDP1020 REGISTER $08) 1 2 3 4 5 4 6 4 8 4 7 SDA SCK FIGURE 5B. MULTIPLE BYTE WRITE OPERATION (WRITE $9A TO CDP1020 REGISTER $08, $55 TO REGISTER $09) 1 2 3 4 5 4 9 2 10 4 12 7 11 SDA SCK FIGURE 5C. SINGLE BYTE READ OPERATION (READ $9A FROM CDP1020 REGISTER $08) 1 2 3 4 5 4 9 2 10 4 11 13 14 12 7 FIGURE 5D. MULTIPLE BYTE READ OPERATION (READ $9A FROM CDP1020 REGISTER $08, $55 FROM REGISTER $09) FIGURE 5. CDP1020 I 2C/SMBUS TRANSMISSION PROTOCOLS TABLE 1. NUMBER 1 DESCRIPTION Start Condition, generated by I2C/SMBus master (defined NUMBER DESCRIPTION 8 2nd data byte written to the CDP1020. This data will be written to the register location set by the command byte, plus one. as negative edge on SDA while SCK is high). 2 CDP1020 I2C/SMBus slave address (7 bits) 9 Repeated start condition 3 R/W bit, cleared indicating a write operation 10 R/W bit, set indicating a read operation 4 Acknowledge from CDP1020 (ack; active low on SDA) 11 1st byte of data read from the CDP1020, read from the CDP1020 register location set by the command byte in the write portion of the transmission. 5 Command byte sent from I2C/SMBus master. This data will be used to set the internal address pointer of the CDP1020. 12 Negative master acknowledge. This signals to the CDP1020 that the master is done reading data and the CDP1020 should end transmission. 6 1st data byte written to the CDP1020. This data will be written into the register specified by the command byte. 13 Master Acknowledge. This is an indication from the master that the read data has been received and the CDP1020 should continue to transmit data. 7 Stop condition, generated by the I2C/SMBus master (defined as a positive edge on SDA while SCK is high). 14 2nd data byte of read transmission. This data is read from the CDP1020 register location set by the command byte during the write portion of the transmission, plus one. 2-426 CDP1020 1394PR0 USBPR0 REMREQ0 1394PR1 DEBOUNCE LOGIC AND PULLUP Rs DEBOUNCE LOGIC AND PULLUP Rs SECURE0 LEDA0 LEDG0 TIMER/ LEVEL SHIFTER PWREN0 LEVEL SHIFTER DEVICE BAY 0 STATE MACHINE LOGIC USBPR1 REMREQ1 SECURE1 DEVICE BAY 1 STATE MACHINE LOGIC TIMER/ LEVEL SHIFTER LEDA1 LEVEL SHIFTER PWREN1 LEDG1 SFTLOCK0 SFTLOCK1 31 0 31 0 15 31 BSTR0 BSTR1 VENDOR ID BCER0 BCER1 REVISION ID 0 SUBSYS VNDR SUBSYS REV DBCCR SFR SMBUS ALERT SMBUS ADDRESS BUS SMBUS DATA BUS FIGURE 6. CDP1020 CONTROL LOGIC BLOCK DIAGRAM Device Bay Control Logic The Device Bay Control Logic unit of the CDP1020 contains all of the state machine control logic for both device bays, the register set, debounce logic for the presence and remove request inputs, and the timer logic for the Device Bay status LEDs and software lock solenoids. All inputs from the Device Bays are received from the Input/Output Control Block. A block diagram of the Control Logic is shown in Figure 6. registers), the BIOS/operating system is not required to read or write entire registers. All reads and writes take place at a byte granularity. For example, to write to the DBCCR, the BIOS needs to only write a single byte to address location $0C. The other three bytes of the DBCCR register ($0D:$0F) do not have to be written to. ADDRESS POINTER $00-03 Programming Model There are ten registers within the CDP1020, all of which may be read by the operating system at any time through the serial interface. The first nine registers implement the ACPI-based register set compliant with Device Bay Specification 0.90. The tenth register (SFR) provides control of other features not explicitly defined in Device Bay Specification 0.90. A memory map of the CDP1020 register space is shown in Figure 7. The second byte transferred at the beginning of every SMBus write operation defines the address of a byte to access. Once the address is specified, it is stored in the CDP1020’s address pointer. Subsequent reads or writes will access the register selected by the address pointer. The address pointer will be incremented following each access facilitating burst mode accesses of sequential bytes in the CDP1020. Following access of the byte at $FF the address will increment to $00. Reading of unimplemented registers will produce undefined results. Although the CDP1020 memory map is organized into ten multi-byte registers (8 4-byte registers and 2 2-byte 2-427 VENDOR ID $04-07 REVISION ID $08-09 SUBSYSTEM VENDOR ID $0A-0B SUBSYSTEM ID $0C-0F DBCCR $10-13 BSTR0 $14-17 BCER0 $18-1B BSTR1 $1C-1F BCER1 $FC-FF SFR FIGURE 7. CDP1020 REGISTER SET/MEMORY MAP NOTE: It is strongly recommended that all write-once-only registers and bits are programmed after a reset operation, even if the bits happen to be reset to the desired state, so that a noise transient during the address of a later write operation doesn’t inadvertently write new data to any of those locations. CDP1020 NOTE: The register set in the CDP1020 is implemented in littleendian format, as specified in Device Bay Specification 0.90. As such, the least significant byte in any register is in the lowest memory address for that register; likewise the most significant byte is in the highest memory address. In the DBCCR, for example, the least significant byte (containing the configuration data) is at address $0C. The most significant byte (containing all 0’s) is at address $0F. The following subsections describe each of the registers within the CDP1020. define the device bay system revision or model number. Like the Subsystem Vendor ID, this register is implemented as a write-once-only register and is designed to be written by the system BIOS immediately after either the power-on-reset, or asserting the RESET pin, which enables a write to this register. Once written, this register becomes read-only. This register and the Subsystem Vendor ID register are the only 16-bit registers in the CDP1020. Vendor ID Register, $00 Bits 15:0 Per Device Bay Specification 0.90, the first register in the CDP1020 register set is the Vendor ID register. The contents of this register identify the manufacturer of the Device Bay Controller. This register is a read-only register that contains $1260, the 16-bit Intersil Corporation PCI SIG identification number. This number is contained in the lower two bytes of the register; the upper two bytes are always read as $0000. Bits 31:16 Bits 15:0 $0000 $1260 (Intersil PCI-SIG ID) $00 Revision ID Register, $04 The Revision ID register contains the 8-bit device bay controller manufacturer revision ID. This number is used to identify a particular Device Bay controller from the manufacturer specified in the Vendor ID register. The Revision ID is a read-only register that contains the 8-bit revision code for the CDP1020. This number is contained in the lower byte of the register; the upper three bytes are always read as $000000. Bits 31:8 Bits 7:0 $000000 Revision ID $04 The Subsystem Vendor ID Register is used to identify the manufacturer of the device bay system that the CDP1020 is installed in. This register is implemented as a write-onceonly register and is designed to be written by the system BIOS immediately after either the power-on-reset, or asserting the RESET pin, which enables a write to this register. Once written, this register becomes read-only and should contain the 16-bit subsystem manufacturer identification number. This register and the Subsystem ID register are the only 16-bit registers in the CDP1020. Bits 15:0 $08 Subsystem ID Register, $0A The Subsystem ID register contains a 16-bit subsystem vendor defined ID number. Typically, this number would 2-428 $0A Device Bay Controller Capabilities Register, $0C The Device Bay Controller Capabilities Register (DBCCR) is designed to allow the operating system to easily identify the features of the Device Bay system controlled by the CDP1020. This register contains five write-once-only bits, defined below. These bits, like those in the Subsystem Vendor ID Register, are designed to be written by the system BIOS immediately after power-on. Once written, they become read-only. The upper 27 bits of the DBCCR are always read as 0 This register is set to $00000002 at reset (two bays, no security locks). Bits 31:5 Bit 4 Bits 3:0 $00000 SECLOCK BAYCNT[3:0] $0C BITS 31:5 Reserved for future use. Always read as 0. SECLOCK Subsystem Vendor ID Register, $08 Subsystem Vendor ID Subsystem ID The SECLOCK bit indicates the presence of an optional physical security lock on at least one of the device bays controlled by the CDP1020. If set, then at least one of the device bays has the physical security lock, the state of which is available in the bay status register BSTRx. If clear, no physical security lock exists in the system. SECLOCK is implemented as a write-once-only bit intended to be written by the BIOS immediately after system power-on. Once written to, this bit becomes read-only. BAYCNT[3:0] The four BAYCNT bits represent the number of bays controlled by the CDP1020 in binary form. These bits, like the SECLOCK bit, are implemented as a write-once-only bits intended to be written by the BIOS immediately after system power-on. Once written to, they become read-only. Since the CDP1020 is a two bay controller, the only valid values that can be written to the BAYCNT[3:0] bits are 0, 1 and 2. If the OS tries to write any other value, the CDP1020 will write a value of 2 (%0010) to this bit field. CDP1020 Bay Control and Enable Register, BCERx BIT 3, REMREQ_EN The CDP1020 incorporates two separate bay control and enable registers, one for each bay. The organization of these two registers is identical. BCER0 is located at address $10; BCER1 is at $18. Both BCER registers are cleared at reset. This read/write bit allows the operating system to enable/disable internal CDP1020 interrupts and bay state transitions due to a logic “0” input value of the REMREQx pin. If this bit is clear, the CDP1020 will not notify the OS and will not transition the bay state to Removal Requested when the REMREQx button has been pushed. If this bit is set after the REMREQ_STS bit in the BSTR has been set, an interrupt event will be generated and a bay status change will occur. This bit is cleared by reset. BITS 31:8 Reserved. Always read as 0. BIT 7, LOCK_CTL The LOCK_CTL is a read/write bit that controls the software controlled solenoid interlock for each bay. This bit has two distinct modes of operation, depending on the value written into the SOL[3:0] bits in the SFR. If the SOL[3:0] bits in the SFR contain any nonzero value, the LOCK_CTL bit logic is in “pulsed” mode. In pulse mode, the SFTLOCK output will be asserted for a fixed time duration when the LOCK_CTL is changed from a logic 1 to a logic 0. Writing a 0 to this bit while it is already 0 has no effect. Writing a 1 to this bit while it is a 0 will set the bit, but will not affect the SFTLOCK output. The duration of the SFTLOCK pulse is controlled by the SPD and SOL[3:0] bits in the SFR. Refer to the Special Function Register text for more details. If the SOL[3:0] bit in the SFR are all 0, the LOCK_CTL circuitry is in “level” mode. In this case, the SFTLOCK output corresponding to the LOCK_CTL bit will simply follow the state of the LOCK_CTL bit. When the LOCK_CTL is set, the SFTLOCK output will be high; likewise, when the LOCK_CTL bit is clear, the SFTLOCK output will be low. Figure 7 shows the relationship between the LOCK_CTL bit and its corresponding SFTLOCK output in both level and pulsed modes. BITS 6:4, BAY_STREQ[2:0] This three bit field represents the state of the bay as requested by the operating system. It does not necessarily represent the actual state of the bay. The states are represented as such: BIT 2, DEVSTSCHG_EN This is a read/write bit that enables/disables internal CDP1020 interrupt events and bay state transitions due to the setting of the DEVSTSCHG bit in the BSTR. If this bit is clear, the CDP1020 will not notify the OS whenever the bay state has changed. The DEVSTSCHG bit in the BSTRx will still reflect a bay state change. The DEVSTSCHG_EN bit also allows the CDP1020 to automatically transition the bay state to Device Inserted when an insertion event is the cause of the DEVSTSCHG. Hardware transitions to the Bay Empty state will always occur on a device removal, regardless of the state of the DEVSTSCHG_EN bit. This bit is cleared by reset. BIT 1, REMEVTWAK_EN This bit enables/disables internal CDP1020 interrupt events due to device removal. This bit gates the device removal event in the DEVSTSCHG logic (see Bay Status Register, below). The intent is to conditionally allow device removal as a wake-up event. If clear, this bit will prevent the DEVSTSCHG flag in the BSTR from being set when a device is removed and the bay is in the Removal Allowed state. A hardware transition to the Bay Empty state will still occur. This bit does not affect any of the interrupt logic if the bay is not in the Removal Allowed state. This bit is cleared by reset. 000 No change requested 001 Request Bay State = Device Inserted BIT 0, PWR_CTL 010 Request Bay State = Device Enabled 011 Request Bay State = Removal Requested 100 Request Bay State = Removal Allowed 101 Reserved 110 Reserved 111 Reserved The PWR_CTL is the enable bit for the VID power rail. When set, the internal logic of the CDP1020 will output the VGATE voltage level on the PWREN pin associated with this register. (Refer to the Power Enable System text for more details) When clear, the PWREN pin will be pulled down to VSS by a standard N-Channel output driver. This allows the gate voltage of the VID control MOSFET to be discharged quickly and the device switched off. No external pull down resistor is necessary. If 000 is written, then no change to the current bay state is requested and the current nonzero value of this field is retained. This allows the operating system to modify other bits in this register without affecting the bay state. A bay state change will only occur when these fields are written if a device is inserted (1394PRx & USBPRx = 0). These bits may be read or written at any time by the operating system. These bits are cleared by any hardware transition to the Bay Empty State (i.e., device removal). 2-429 This bit is cleared by reset. This bit cannot be set if there is no device in the bay (1394PRx & USBPRx = 1) or if the LOCK_CTL bit is clear. If set and a device is suddenly removed (i.e., without OS permission), the CDP1020 will clear this bit and disable the PWRENx output. Note: A single write to the BCER may set both the LOCK_CTL and PWR_CTL bits at the same time. CDP1020 Bay Status Register, BSTRx Like the Bay Control and Enable register, there is one Bay Status register associated with each bay controlled by the CDP1020. The addresses for the BSTR registers are $14 (BSTR0) and $20 (BSTR1). Both BSTR registers are cleared at reset. BITS 31:11 Reserved, always read as 0. BITS 10:8, BAY_FF[2:0] This three bit field indicates the form factor of the controlled bay: 000 DB32 001 DB20 010 DB13 011- 111 Bay states and how they are controlled is described in the State Machine Logic text. BIT 3, REMREQ_STS This bit indicates that the removal request button for this bay has been pressed (REMREQx pin has been driven low). This bit is referred to as a “sticky status bit”; once set, the you must write a “1” to this bit position to clear it. If the REMREQ_EN bit in the associated control register is set, the CDP1020 will generate a REMREQ interrupt event when this bit is set. A REMREQ interrupt event will cause a hardware transition of the bay state to Removal Allowed and assert the ALRT pin of the CDP1020 to notify the OS of the REMREQx button press. BIT 2, DEVSTSCHG Reserved These bits are write-once only bits after a power-on reset and should be written by the system BIOS or the operating system at start-up. Once written, these bits become readonly. Subsequent internal and external resets do not affect the write status of these bits. The value of these bits is indeterminate at power on and are not affected by any type of reset. BIT 7, SL_STS The read only SL_STS indicates the state of the external security lock. This bit simply reflects the inverted state of the SECUREx pin. If clear, external security lock is disengaged. If set, the lock is engaged. The state of this bit depends on the external state of the SECUREx pin and the state of the SECLOCK bit in the DBCCR register (see above). If the SECLOCK bit is clear, this bit will always read as a “0”. If SECLOCK is set, the state of this bit will reflect the inverted state of the SECUREx pin. BIT 6:4, BAY_ST[2:0] This three bit field represents the actual state of the bay. These bits are read only. The bay state is represented as such: 000 Bay Empty 001 Device Inserted 010 Device Enabled 011 Removal Requested 100 Device Removal Allowed 101 Reserved 110 Reserved 111 Reserved 2-430 This bit indicates that a hardware event has occurred that has changed the status of the device bay. This could be caused by a device insertion or a device removal. This bit, like the REMREQ_STS bit, is a sticky status bit; once set, the OS must write a “1” to clear it. This bit will be set on all device removals except when the REMEVTWAK_EN bit in the BCER is clear and the bay is in the Removal Allowed state. If the DEVSTSCHG bit is set due to an insertion event and the DEVSTSCHG_EN bit in the BCER is set, the CDP1020 will hardware transition the bay state to Device Inserted and assert the ALRT pin to notify the system of the insertion. This bit is cleared by reset. BIT 1, 1394PRSN_STS This bit reflects the inverted state of the 1394PRx pin associated with this status register. If the 1394PRx pin is high, this bit will read cleared. If the 1394PRx pin is low (1394 device inserted) this pin will read high. The setting of this bit can generate a device status change event. This bit is cleared by reset. BIT 0, USBPRSN_STS This bit reflects the inverted state of the USBPRx pin associated with this status register. If the USBPRx pin is high, this bit will read cleared. If the USBPRx pin is low (USB device inserted) this pin will read high. The setting of this bit can generate a device status change event. This bit is cleared by reset. CDP1020 Special Function Register, $FC The Special Function Register (SFR) allows control of various features not explicitly defined in the Device Bay Specification 0.90. This register contains write-once-only bits, which are designed to be written by the system BIOS immediately after power-on. Once written, they become read-only. The upper 24 bits of the SFR are always read as 0. All bits are cleared on reset. BITS 31:8 Reserved for future use. Always read as 0... Bits 31:8 Bits 7:5 Bits 4:1 Bit 1 $000000 ITO[2:0] SOL[3:0] SPD $FC BITS 31:8 Reserved for future use. Always read as 0. If %0000 is written to the SOL[3:0] bits, the solenoid output is put into “level” mode. In level mode, the SFTLOCK output simply follows the state of the corresponding LOCK_CTL bit (see Figure 8). If a nonzero value is written to the SOL[3:0] bits, then the solenoid control output is put into “pulsed” mode. In this mode, the solenoid output is pulsed anytime the LOCK_CTL bit is written from a 1 to a 0 (refer to Figure 8). The length of the pulse is determined by both the value written into the SOL[3:0] bits and the SPD bit. With the SPD bit clear, the solenoid control circuitry is set to output short pulses. In terms of a prescaler, the solenoid pulse width is the value of the SOL[3:0] x 50ms. With the SPD bit set, the solenoid control is in long pulse mode. Here, the prescaler is set to SOL[3:0] x 800ms. The table below shows solenoid pulse widths for all values of SOL[3:0] and the SPD bit. BITS 7:5, ITO[2:0] SOLENOID PULSE WIDTHS (NOMINAL AT 4MHz) Bits 7, 6 and 5 define the Insertion Time-Out (ITO) bits field of the SFR. SOL[3:0] SOLENOID PULSE, SPD = 0 SOLENOID PULSE, SPD = 1 These bits allow the OS/BIOS to specify the amount of time the CDP1020 will wait, from when it detects the insertion of a device until it notifies the OS. The insertion time-out should be used to allow Device Bay devices time to settle mechanically into the bay before they are enabled. 0000 LEVEL LEVEL 0001 50ms 0.8ms 0010 100ms 1.6s 0011 150ms 2.4s 0100 200ms 3.2s The 3-bit ITO field defines the time-out in 8 discrete increments of 800ms (nominal at 4MHz). The table below shows typical time-out values. 0101 250ms 4.0s 0110 300ms 4.8s 0111 350ms 5.6s INSERTION TIME-OUT VALUES (NOMINAL AT 4MHz) 1000 400ms 6.4s 1001 450ms 7.2s 1010 500ms 8.0s 1011 550ms 8.8s ITO[2:0] TIME-OUT VALUE 000 0s 001 0.8s 1100 600ms 9.6s 010 1.6s 1101 650ms 10.4s 011 2.4s 1110 700ms 11.2s 1111 750ms 12.0s 100 3.2s 101 4.0s 110 4.8s 111 5.6s Please note that these time-out values do not account for the fact that all presence inputs are debounced for 50ms before any time-out period begins. The time-out defaults to 0 after reset. SOL[3:0] The SOL[3:0] bits, along with the SPD bit, control the configuration and duration of the software lock solenoid drive pulse. Once written to, these bits become read-only. 2-431 NOTE: Writing to SOL[3:0] bits will clear all LOCK_CTL bits and SFTLOCK outputs. Because these bits in the SFR are write-onceonly, this situation will only occur on the first write. Subsequent writes to these bits will not cause the LOCK_CTL bits to clear. SPD The SPD bit controls the length of the solenoid pulse when in pulse mode: long pulses If set, short pulses If clear. If the SOL[3:0] bits are clear, the SPD bit has no effect. CDP1020 State Machine Logic LOCK_CTL SFTLOCK LEVEL MODE SFTLOCK PULSE MODE SOLENOID PULSE WIDTH FIGURE 8. LOCK_CTL BIT/SFTLOCK OUTPUT RELATIONSHIP IN LEVEL AND PULSE MODES Effects of Reset Resets The CDP1020 has two reset modes: an active low external reset pin (RESET) and an internal power-on reset function. Both are logically OR’ed together internally. RESET Pin The RESET input pin is used to provide an orderly start-up procedure and return the CDP1020 to a known state. When using the external reset mode, the RESET pin must stay low for a minimum of six (6) oscillator cycles (typically 1.5µs with a 4MHz clock). The RESET pin contains an internal Schmitt Trigger to improve noise immunity. Power-On Reset The internal power-on reset occurs when a positive transition is detected on VDD. The power-on reset is used strictly for power turn-on conditions and should not be used to detect any drops in the power supply voltage. There is no provision for a power-down reset. The power-on circuitry provides a two oscillator cycle delay from the time that the oscillator becomes active. If the external RESET pin is low at the end of the time out, the CDP1020 remains in the reset condition until RESET goes high. The following list contains the actions of reset on internal circuits, but not necessarily in order of occurrence. • BCER0 and BCER1 reset to $00000000 • BSTR0 and BSTR1 reset to $00000000 • SFR reset to $00000000 • All PWREN, SFTLOCK, and LED outputs cleared • DBCCR set to two bays, no security locks - $00000002 • All Write-Once permissions reset • AD0 and AD1 inputs sampled for I2C/SMBus address • Internal address pointer reset to $00 2-432 The CDP1020 contains two functionally identical state machine logic blocks, one for each bay. Each of these blocks is responsible for monitoring external Device Bay events (i.e., device insertion, device removal, remove requests), controlling the locking mechanism and power enable signal for each bay, updating the state of the bay in response to OS commands and external events as shown in Figure 9. There are five separate functional states that each bay of the CDP1020 can be in at any one time. Each of the two bay controllers within the CDP1020 functions completely independently of the other. The following sections detail state machine operation in each of the five states, including state transitions, operating system responsibility, and I/O functions. In the following sections, the bay state controller will be referred to generically; that is as a bay “x” controller. Thus, bay “x” has a control register BCERx, a status register BSTRx, and so on. The state of the device bay controller is changed through either hardware events (device inserted, device removed) and software events (OS writes into CDP1020 registers can change the bay state under certain conditions). Interrupt Events An interrupt event is defined as one of the following: • The insertion of a device into a bay with the corresponding DEVSTSCHG_EN bit set • Removal of a device after the insertion time-out in any state other than Removal Allowed and the DEVSTSCHG_EN bit is set • Removal of a device in the Removal Allowed state with both the REMWAKEVT and DEVSTSCHG_EN flags set • User assertion of the REMREQ input when the associated REMREQ_EN bit is set and a device is present in the bay CDP1020 LED: OFF BAY EMPTY NOTE: THERE IS NO LED SOLID AMBER STATE. SN PR = SN PR 1 = PR SN = 0 0 %001 -> BAY_STREQ DEVICE REMOVAL %100 -> BAY_STREQ ALLOWED INSERTED Q TRE Q RE M RE 1 01 -> 0 T _S Y BA BAY _S 1 0 -> N= = N= PRS Q RE PRS Q TRE _S BAY 0 0 -> %10 % BA 010 Y_ -> ST RE Q LED: FLASH GREEN %01 LED: OFF % %010 -> BAY_STREQ LED: FLASH AMBER DEVICE REMOVAL REMREQ = 1 REQUESTED ENABLED LED: SOLID GREEN %011 -> BAY_STREQ FIGURE 9. CDP1020 BAY STATE DIAGRAM The first events listed above is known as an insertion interrupt event. On an insertion interrupt event, the bay state machine is transitioned to the Device Inserted state, the bay status LED is set to flash green, and the ALRT output is asserted to notify the OS of the device insertion. The second and third events are removal interrupt events. If the DEVSTSCHG_EN flag is set, the CDP1020 will assert its ALRT output to notify the OS of the device removal. Regardless of the state of the DEVSTSCHG_EN bit, the CDP1020 will always transition the bay state to Bay Empty, clear the PWREN flag, turn of the PWREN output, and clear the bay state request field of the associated BCER. The last event is a remove request event. When a user presses the REMREQ button on a bay with a device inserted, the CDP1020 will set the REMREQ_STS flag for that bay. If the REMREQ_EN bit is set, the CDP1020 will assert its ALRT output to notify the OS. 2-433 Figure 4 shows the output logic for the ALRT pin. As shown in this diagram, an interrupt event can be generated by setting an enable flag after the status bit has been set by some hardware event. For example, the REMREQ_EN flag is clear and a user presses the REMREQ button. The CDP1020 will set the REMREQ_STS flag, but will not generate an interrupt event. Now, the OS sets the REMREQ_EN flag. As soon as this occurs, the CDP1020 will assert its ALRT output and generate a REMREQ interrupt event. Insertion Time Out When a device is inserted into a bay, it will make electrical contact with device bay connector very quickly. However, in most systems there will need to a delay while the user releases the device and it settles into the bay itself. The insertion time out function of the CDP1020 allows a system designer to specify a delay time that the CDP1020 will wait before notifying the OS that a device has been inserted. This CDP1020 delay time is set at system power on whenever the CDP1020 is initialized by writing the appropriate value into the ITO[2:0] bit field of the SFR. As shown in the SFR text, the insertion timeout delay can range from 0s to 5.6s in increments of 800ms. The feature that makes the CDP1020 insertion time out function different from a simple insertion delay is that the CDP1020 will begin to flash the bay status LED green immediately after the device has been detected (if the DEVSTSCHG_EN flag for the bay is set). This is important because it gives the user instant feedback that the device has been recognized. It is important to note that even though the bay status LED is flashing, the CDP1020 has not responded to the device insertion. During the insertion time out period, the status bits (1394PRSN_STS and USBPRSN_STS) remain clear and the bay state is NOT transitioned in the Device Inserted state. Thus, if the OS were to read the CDP1020 during the insertion time out period, it would not know that a device was in the bay. Once the insertion time out period is over, the CDP1020 will generate an insertion event (assuming the DEVSTSCHG_EN flag is set) and the state controller will enter the Device Inserted state. It is important to note that while waiting for the insertion time out, the CDP1020 has not fully registered the device in the bay. Thus, if the device were forcibly removed during this time, a removal event would not be generated. The CDP1020 would simply reset the insertion time out counter and stop flashing the bay status LED. Bay Empty A bay empty state is defined exclusively as both the presence inputs for the bay (1394PRx and USBPRx) de-asserted. The state of these pins is controlled by the insertion and removal of devices in the bay. As shown in Figure 9, the insertion of a device (and the assertion of one or both of the presence pins) causes the CDP1020 to recognize that a device is in the bay. If the DEVSTSCHG_EN flag for the bay is set, an insertion interrupt event will be generated and the state machine to transition bay state from Bay Empty (%000) to Device Inserted (%001). Typically the Bay Empty state will be returned to from either the Device Inserted state (before the device has been enabled) or the Device Removal Allowed state (after the OS has powered down the device). However, the Bay Empty state can also be entered from Removal Requested and Device Enabled states if the device was forcibly removed from the system. In all cases, if the CDP1020 detects that both presence pins have been deasserted, the Bay Empty state will be entered and the PWREN output for the VID MOSFET gate driver will be disabled. The bay empty state is reflected by the bay state machine by setting BAY_ST[2:0] field (bits 6:4 of the bay status register) to %000. The bay empty state can be entered from any of 2-434 the other four bay states and is entered exclusively through hardware transitions controlled by the CDP1020; OS writing into the BCER cannot change the bay state to Bay Empty. Entering the Bay Empty state from any state other than Removal Allowed will cause the CDP1020 to generate a removal interrupt event if the DEVSTSCHG_EN bit in the BCER is set. A removal event will be generated if the bay was in the Removal Allowed state and both the REMEVTWAK the DEVSTSCHG_EN bits in the BCER are set. In both cases, the CDP1020 will notify the host system via the ALRT pin. In the Bay Empty state the bay status LED (LEDGx and LEDAx) outputs will be off. Device Inserted State The Device Inserted state, %001, is entered in one of two manners. When a device is inserted, the CDP1020 will transition to the Device Inserted state (after the insertion time out period) if the DEVSTSCHG_EN bit for the bay in question is set. In such a case, the CDP1020 will generate an insertion event, set the DEVSTSCHG bit in the BSTR, flash the bay status LED green and notify the OS through the ALRT pin. Alternately, the OS can transition the CDP1020 to the Device Inserted state by writing a %001 to the BAY_STREQ bit field in the BCER. This can only be done from any other bay state as long as a device is inserted in the bay. While in the CDP1020 is in the Device Inserted state the OS will typically engage the software controlled lock for the bay, enable VID to the bay and enumerate the device on its native communication bus. While in this state, the bay status LED will flash green at 1Hz. Device Enabled In the Device Enabled state, the device inserted into the bay has VID enabled and is fully functional. This state cannot be entered through hardware action; only the OS writing %010 to the BAY_STREQ bits in the BCER can transition the bay state to Device Enabled. In the Device Enabled state, if the presence pins are deasserted at any time, the CDP1020 hardware will automatically transition the bay state to Bay Empty, clear the PWR_CTL bit and disable the PWRENx outputs. The PWRENx and PWR_CTL states are not affected by the state transitions to the Device Enabled state. While in this state the bay status LED will be solid green. Device Removal Requested The Device Removal Requested state, like the Device Inserted state, can be entered either through an OS write to the BCERx or through hardware actions. Upon the assertion of the bay REMREQ input, the CDP1020 will set the REMREQ_STS bit in the BSTR if there is a device in the bay (i.e., 1394PRSN_STS or USBPRPRSN_STS = 1). A removal request interrupt event will be generated if the CDP1020 REMREQ_EN bit is set. This event will transition the bay into the Removal Requested state, flash the bay status LED amber, and assert the ALRT pin to notify the OS. The Device Removal Requested state is also entered when the OS writes a %011 to the BAY_STREQ field in the BCERx. In either case, the CDP1020 will enter the Device Removal Requested state only if a device is inserted into the bay (1394PRx & USBPRx = 0). While in this state the bay status LED will flash amber at 1Hz. Device Removal Allowed The Device Removal Allowed state is the last of the five bay states. This state can only be entered through an OS write to the BCERx register. The CDP1020 hardware cannot transition the bay state into Device Removal Allowed. through the LOCK_CTL bit, are available in this state. Typically, though, a device in the Removal Allowed state will be disabled with its VID supply off. From this state the OS may transition the CDP1020 state controller into any other state (except for Bay Empty, of course) by simply writing to the BAY_STREQ bits in the BCER. Also, removal request events will be generated if the REMREQ_EN bit is set and a user asserts the REMREQ input. Finally, when in the Removal Allowed state, the CDP1020 will NOT generate a removal event if the device is removed from the bay and the REMEVTWAK bit is clear. This allows the OS to not be disturbed by the removal of a device that has already been powered down. If the REMEVTWAK flag is set, the CDP1020 will generate a removal event when a device is removed (assuming the DEVSTSCHG_EN bit is set). In any case, the CDP1020 will always transition the bay state to Bay Empty upon the removal of a device, regardless of the state of any of the control or status bits. The CDP1020 will transition the bay state controller to the Device Removal Allowed state when the OS writes a %100 to the BAY_STREQ field of the BCERx register. The CDP1020 will enter this state if and only if there is a device detected in the bay (1394PRx & USBPRx = 0). State Transitions The Device Removal Allowed state is defined as the last state that a device is in before being removed by a user. All bay controls, including PWREN outputs and solenoid control The following tables illustrate the hardware (CDP1020 controlled) and software (OS controlled) state transitions for the CDP1020 bay state controllers. In the Device Removal Allowed state, the bay status LED (LEDGx and LEDAx) outputs will be off. TABLE 2. HARDWARE EVENT BAY STATE TRANSITION TABLE CURRENT STATE NEXT STATE HARDWARE EVENT CONDITIONS NOTES ---- Bay Empty (no device present) Power-On Reset Establish initial state. ---- Bay Empty (device present) Power-On Reset A device occupying a bay at power-on time will not necessarily cause DEVSTSCHG to be set. Furthermore, since DEVSTSCHG_EN defaults to ‘0’ no bay state transition will result. Either the system BIOS or the OS, upon loading, will automatically enumerate all occupied bays and MUST clear DEVSTSCHG if it was set. Device Inserted Bay Empty Device removed from the bay. Present bit(s) has transitioned from 1 to 0 independent of the state of DEVSTSCHG_EN. Unexpected user behavior. The device was removed prior to being properly enabled by the OS. In this case the software controlled interlock mechanism may have been overridden. Device Enabled Removal Requested User pressed the hardware removal request button, if present REMREQ_STS and REMREQ_EN are both set. User requested device removal through the hardware removal request button. Removal Requested Bay Empty Device removed from the bay. Present bit(s) has transitioned from 1 to 0 independent of the state of DEVSTSCHG_EN. Unexpected user behavior. The device was removed prior to completion of the proper removal request sequence. In this case the software controlled interlock mechanism may have been overridden. Device Removal Allowed Bay Empty Device was removed from the bay Present bit(s) has Completion of normal device removal sequence. transitioned from 1 to 0 independent of the state of DEVSTSCHG_EN. 2-435 CDP1020 TABLE 3. SOFTWARE ACTION BAY STATE TRANSITION TABLE CURRENT STATE NEXT STATE SOFTWARE ACTION NOTES Bay Empty (device is present) Device Inserted 001b -> BAY_STREQ This transition request could be the result of a device currently in the bay with DEVSTSCHG_EN cleared (as such the CDP1020 hardware could not transition to the bay state). Bay Empty (device is present) Device Enabled 010b -> BAY_STREQ This transition request is a result of a device that has been properly enumerated and enabled on its native bus(es). In all likelihood the DEVSTSCHG_EN bit was cleared so CDP1020 hardware could not first transition the bay state to Device Inserted. Bay Empty (device is present) Removal Requested 011b -> BAY_STREQ Unexpected OS behavior. Bay Empty (device is present) Device Removal Allowed 100b -> BAY_STREQ Unexpected OS behavior. Device Inserted Device Enabled 010b -> BAY_STREQ Device properly enumerated and enabled on its native bus(es). Device Inserted Removal Requested 011b -> BAY_STREQ Unexpected user behavior. User requested device removal through the UI before the device was enabled. Device Inserted Device Removal Allowed 100b -> BAY_STREQ OS could not enable the device. This could be a result of the OS’s failure to properly enumerate the device, lack of sufficient operational power, etc. Device Enabled Device Inserted 001b -> BAY_STREQ Unexpected OS behavior. Device Enabled Removal Requested 011b -> BAY_STREQ User request device removal through the UI. Device Enabled Device Removal Allowed 100b -> BAY_STREQ Unexpected OS behavior. Removal Requested Device Inserted 001b -> BAY_STREQ Unexpected OS behavior. Removal Requested Device Enabled 010b -> BAY_STREQ OS decided that device removal was not allowed. This could be the result of an active application disallowing the removal. Alternatively, the user could have cancelled the removal request through the UI. Removal Requested Device Removal Allowed 100b -> BAY_STREQ OS has completed the device removal sequence. Device Removal Allowed Device Inserted 001b -> BAY_STREQ User has requested to “re-use” the device through the UI. This state transition eliminates the need for the user to remove the device and then immediately re-insert it. This could be especially useful in the presence of an engaged physical security lock. This bay state transition might be used in order to provide user feedback (via the bay status indicator) while OS is performing steps necessary to reenable the device. Device Removal Allowed Device Enabled 010b -> BAY_STREQ User has requested to “re-use” the device through the UI. This state transition eliminates the need for the user to remove the device and immediately re-insert it. This could be especially useful in the presence of an engaged physical security lock. This state transition indicates that the device has been properly re-enumerated and reenabled on its native bus(es). Device Removal Allowed Removal Requested 011b -> BAY_STREQ Unexpected OS behavior. 2-436 CDP1020 Hardware Interface Presence Pins The hardware interface of the CDP1020 is designed to be fully compliant with the Device Bay specification 0.90 and includes many optional and value-added features that reduce system component count, system complexity and overall system cost. The CDP1020 has two device presence detect inputs (1394PRx and USBPRx) for each bay, for a total of four in all. These inputs are mandatory in the Device Bay specification and are the primary means of notifying the system that a device has been inserted into a bay. Figure 18 shows a typical connection of the CDP1020 presence pins. As stated at the beginning of this document, the Clock input (CLK) provides the basic time base reference for operation of all CDP1020 control logic (SMBus transfers between the CDP1020 and the SMBus Host controller are not based on the clock input). The clock input of the CDP1020 has the circuitry necessary for oscillating an external resistor-capacitor circuit, as shown in Figure 10. External clock sources (like those from a can oscillator) should not be used with the CDP1020. VDD = 5.0V 4.7kΩ CLK 26 100pF CDP1020 FIGURE 10. RC OSCILLATOR CONFIGURATION The input frequency of the CDP1020 will vary for different values of the oscillator resistor, the oscillator capacitor and VDD. The CDP1020 is designed to operate optimally with an input frequency of 4MHz. All of the internal timing of the CDP1020, including debounce, insertion delay, and solenoid pulse durations are based on a 4MHz input. While the CDP1020 will operate at any frequency in the 3.0MHz to 5.0MHz range, an input frequency of 4MHz is strongly recommended. Also, it is recommended that the value of the oscillator capacitor be fixed at 100pF for optimal operation of the oscillator. fOSC , OSCILLATOR INPUT FREQUENCY (MHz) Figure 11 shows a plot of oscillator frequency vs. resistance at 5.0V and 3.3V when the oscillator capacitance is held fixed at 100pF. Recommended values for the oscillator when VDD = 5.0V are 4.7kΩ and 100pF; 3.3kΩ and 100pF when VDD = 3.3V. 8 6 VDD = 5.0V 2 VDD = 3.3V 0 2.0 4.0 6.0 8.0 10.0 ROSC , OSCILLATOR RESISTOR (kΩ) FIGURE 11. OSCILLATOR FREQUENCY vs ROSC (COSC = 100pF) 2-437 Typical current vs. voltage curves for the presence pin pullup resistor are shown in Figure 12. Pin assignments for 1394PR0, USBPR0, 1394PR1 and USBPR1 are shown on the cover page and in Figure 2. 300 250 VDD = 5.0V 200 150 VDD = 3.3V 100 50 0 1.0 2.0 3.0 4.0 5.0 6.0 VI , INPUT VOLTAGE (V) FIGURE 12. TYPICAL ACTIVE PULL-UP CURRENT AT 25oC Remove Request (REMREQ) Inputs The REMREQ inputs connect to an external, panel mounted push button that allows the user to request removal of a device. The implementation of the REMREQ feature is an optional but encouraged feature of Device Bay specification 0.90. Each bay is assigned its own unique REMREQ input, as such the CDP1020 implements REMREQ0 and REMREQ1. Typical connection to a push button is shown in Figure 18. 10 4 The 1394 and USB presence lines are pulled up to the VDD of the CDP1020 through active pull-up resistors located on the CDP1020. These on chip resistors eliminate the need for external pull-ups. Whenever any device is inserted into a bay, that device must pull at least one (and possibly both) of the presence pins to ground. Doing so indicates to the CDP1020 that a new device has been inserted and what communications protocol it uses. Also, all presence pin inputs to the CDP1020 are debounced internally. The debounce time is set internally to approximately 1 second to allow for transitions in the presence pin state while the device is being inserted. IIL , ACTIVE PULL-UP DEVICE CURRENT (mA) CLK Input The REMREQ inputs, like the presence pins, incorporate integrated internal active pull-up devices. This allows the system designer to implement the push button as a simple momentary-on switch that pulls the input to ground when pressed. When pressed, the CDP1020 will debounce the switch press internally. No external pull-up resistors or lowpass debounce filters are necessary. CDP1020 SECURE Inputs ALRT - Master Alert Signal The SECURE0 and SECURE1 inputs are used by the CDP1020 to monitor the state of an external device security lock. The purpose of this lock is to prevent unauthorized removal or theft of a device in a device bay system. Like the REMREQ inputs, this is an optional feature of the device bay system. Typical connection of the SECURE inputs is shown in Figure 18. The ALRT pin of the CDP1020 is an open drain output used to signal the I2C/SMBus master that a device state change has occurred and that this state should be processed by the operating system. Unlike the presence, REMREQ and security inputs, there is no internal pull-up on the ALRT pin. As such, there needs to be one present in the external system. Typical connection of the ALRT pin is shown in Figure 18. Like the presence and REMREQ inputs, the SECURE inputs implement internal active pull-up devices. When the security lock is disengaged (i.e., the device may be removed from the bay), the lock switch should be in an open state, thus rendering the SECURE input at a logic high level. When the lock is engaged, the lock switch should then close and pull the SECURE input to ground. If the security lock function of the device bay system is not implemented, these pins should be tied to VDD of the CDP1020. Address Select Pins AD1 and AD0 The address select pins are used by the CDP1020 as the lower two bits of its 7-bit I2C/SMBus slave address. By making these two pins configurable externally, up to four CDP1020 devices can share the common bus. The upper five bits of the I2C/SMBus address are internally hard-wired to %10010xx. Note that the R/W bit can be considered the 8th bit (LSB) in the address. The AD0 and AD1 pins should be connected to the VDD or the VSS power supplies of the CDP1020, as appropriate. They should not be left floating; doing so will cause the CDP1020 to randomly configure its slave address on powerup. These pins are sampled immediately after reset. Serial Interface Connections IOL , STANDARD OUTPUT N-CHANNEL SINK CURRENT (mA) The serial interface connections of the CDP1020 include the SDA, SCK and ALRT pins. All three of these pins are opendrain when in the output mode and are +5V tolerant. The functionality of these pins is described in the I 2C/SMBus Interface text. Typical drive characterization is shown in Figure 13. 30.0 25.0 VDD = 5.0V VDD = 4.5V 20.0 15.0 VDD = 3.3V 10.0 5.0 0 1.0 2.0 3.0 4.0 5.0 6.0 VO , OUTPUT VOLTAGE (V) FIGURE 13. SDA, SCK AND ALRT OUTPUT N-CHANNEL SINK CURRENT AT 25oC 2-438 The functionality of the ALRT pin is described in the State Machine Logic text. RESET (Reset Input) The RESET pin can be connected in the following ways: • If not used, must be tied to VDD. • Connected to a system reset (such as from the PiiX4 South Bridge). Be sure it is an active low polarity. • Connected to an external RC (Resistor to VDD, Capacitor to Ground), to act as an additional power-on reset. The time constant should be chosen to be longer than the turnon ramp of the VDD power supply used. Power Supply The power supply input for the CDP1020 are the VDD (positive) and VSS (negative) pins. The VSS pin should be connected to the system ground. The VDD pin should be connected to a positive power supply from +3.3V to +5.0V. There are few differences in performance between voltages; in general, the higher voltage will allow more output drive current (LED pins, but the current should be limited by an external resistor anyway), and a higher gate voltage for the SFTLOCK pins (driving Logic-Level FETs). However, the higher voltage may also consume a higher supply current (the amount of available supply current may help decide which one to use). Keep in mind that the Oscillator RC needs to be chosen to match the VDD (in order to get the optimal 4MHz frequency). Power Enable System The Power Enable System enables the CDP1020 to directly drive the gate of the VID control MOSFETs. Logically, the PWRENx output matches the state of the PWR_CTLx bit in the corresponding BCER register. However, instead of being a logic level CMOS output, the PWREN outputs are “levelshifted” such that their output current is supplied directly from the VGATE power input pin. When the PWR_CTL bit is a logic 0, the PWREN output will sink current to VSS through its N-Channel output driver. However, when the PWR_CTL bit is a logic 1, the PWREN output will source current, limited to a maximum of 25µA, from the VGATE power input. The VGATE input is typically tied to the +12V power supply of the system. Figure 14 shows a block diagram of this system. CDP1020 VGATE 19 LEDA0 PWR_CTL (0-VDD) VGATE LEVEL SHIFTER 25µA CURRENT LIMITER 20 LEDG0 PWR_CTL (0-VGATE) A G PWREN OUTPUT 180Ω FIGURE 14. POWER ENABLE OUTPUT CIRCUITRY The result is a +12V signal that can be used to directly drive the gate of a N-Channel MOSFET used to control the VID to the bay. For best operation, a Intersil HUF76113DK8 Dual N-Channel Logic Level Power MOSFET is recommended for VID switching. VPWREN , PWRENx OUTPUT VOLTAGE (V) The CDP1020 controls the turn on time of the VID MOSFET by limiting the amount of current that can be drawn from the PWREN outputs. The constant current source capabilities of the PWREN pins is typically 25µA. For designs that require slower turn-on times, external capacitors can be added in parallel with the gate of the VID MOSFET. Figure 15 below shows the rise time of the PWREN outputs into the gate of a Intersil HUF76113DK8 MOSFET. 12 10 VDD = 5.0V 8 VDD = 3.3V 6 4 2 0 0 0.5 1.0 1.5 2.0 TRPWREN , PWREN RISE TIME (µs) FIGURE 15. PWREN OUTPUT INTO GATE OF HUF76113DK8 VGATE = 12.0V (TYPICAL, 25oC) FIGURE 16A. LED DRIVER CONNECTIONS TO A 3-TERMINAL AMBER/GREEN LED LEDG0 20 G A 180Ω LEDA0 19 FIGURE 16B. LED DRIVER CONNECTIONS TO 2-TERMINAL AMBER/GREEN LED As mentioned at the beginning of this document, the high side of the LED drive pins is switched directly to the VLED power input. Thus, all current used by the bay status LEDs is drawn from the VLED power input rather that VDD. This method is similar to that used on the PWREN outputs, except that there is no current limiting and the VLED input cannot rise above 5.0V. A block diagram of one of the LED drive pins (all four drive pins are identical) is shown in Figure 17. The purpose of VLED is to allow system architects to drive the bay status LEDs from a separate supply than that which is powering the CDP1020. For those systems that do not wish to drive the LED outputs from a separate supply, simply tie VDD and VLED together. VLED may be greater than, less than or equal to the VDD input of the CDP1020. VLED LED Drive Pins As discussed in the State Machine Logic and User Interface texts, the CDP1020 has the capability to directly drive two dual color bay status LED indicators. Each bay controlled by the CDP1020 has a green (LEDGx) and amber (LEDAx) drive pin. These pins are capable of sourcing or sinking 6mA at 3.3V and 15mA at 5.0V. Since their drive capability is symmetric, the LED drive pins can control three terminal common anode LEDs, three terminal common cathode LEDs, or two terminal two color LEDs. Note that external limiting resistors are required. Typical circuit connections are shown in Figures 16A and 16B. 2-439 LEDX (0-VDD) VLED LEVEL SHIFTER LEDX (0-VLED) LEDG/A OUTPUT FIGURE 17. LED DRIVER OUTPUT CIRCUITRY CDP1020 Solenoid Drivers charge-pumped, only the VDD voltage (3.3V to 5V) is available to drive a FET input gate; therefore, a logic level FET such as the Intersil HUF76113DK8 is recommended. For control of the device bay software controlled solenoids, the SFTLOCK pins have drive capability to gate an external, solenoid control MOSFET. Typical circuit configuration is shown in Figure 18. Note that since the output voltage is not SMBALERT# SMBDATA T20 R19 N17 CPURST M19 SMBCLK PIIX4 SOUTH BRIDGE SYSTEM RESET +3.3V (AUX) +3.3V (AUX) +12V VGATE 2 24 VDD TEST 1394PR0 11 12 13 USBPR0 SDA SCK PWREN0 3 4 A8 A10 15 HUF76113DK8 (1/2) VID ALRT A13 DEVICE BAY CONNECTOR BAY 0 14 +3.3V +3.3V (AUX) 1 3.3kΩ 26 REMREQ0 RESET CLK SFTLOCK0 100PF 5 REMOVE REQUEST (N.O.) 17 6 +5V (MAIN) 23 27 28 +12V SECURE0 BAY LOCK SOLENOID VLED LEDG0 AD0 LEDA0 AD1 19 20 BAY SECURITY LOCK/SWITCH VSS CDP1020 BAY STATUS LED 2 COLOR, COMMON CATHODE 25 180Ω FIGURE 18. TYPICAL CDP1020 SYSTEM HARDWARE CONNECTIONS - PiiX4 BASED INTEL ARCHITECTURE PLATFORM (ONLY BAY 0 SHOWN) All Intersil semiconductor products are manufactured, assembled and tested under ISO9000 quality systems certification. Intersil semiconductor products are sold by description only. Intersil Corporation reserves the right to make changes in circuit design and/or specifications at any time without notice. Accordingly, the reader is cautioned to verify that data sheets are current before placing orders. Information furnished by Intersil is believed to be accurate and reliable. However, no responsibility is assumed by Intersil or its subsidiaries for its use; nor for any infringements of patents or other rights of third parties which may result from its use. No license is granted by implication or otherwise under any patent or patent rights of Intersil or its subsidiaries. For information regarding Intersil Corporation and its products, see web site http://www.intersil.com 2-440