APPLICATION NOTE A Complete Discussion of the S2Cwire™ Single-Wire Interface With tLAT Specification Introduction The S Cwire™ single-wire interface offers the simplest control possible for programmable power I/C devices. Using only a single wire, the S2Cwire interface is designed to be driven by a wide range of systems in a simplified and flexible way. This interface benefits system designers by bringing to market digitally programmable, high performance power I/Cs with minimal pinouts and tiny packaging. 2 S2Cwire is easily integrated into a wide range of portable systems. The interface does not have a strict timing protocol, simplifying integration for software systems and eliminating any need for specialized hardware. In its entirety, the interface is simple, flexible, and compatible with processor chips found in nearly all of today's portable systems. This Application Note provides details about programming Skyworks power management I/Cs with the S2Cwire single-wire interface. Insight is also provided for system integration. S2Cwire Details S2Cwire is not defined by a strict timing and signaling scheme, but rather by a simple mechanism of toggling a line to program an S2Cwire device. By avoiding strict timing requirements, the S2Cwire interface is kept flexible. The method for programming a device is simple; it consists of toggling the line of an I/O port so that rising edges are received by the EN/SET pin of an S2Cwire device. This can be done with the digital I/O ports found in many processors, or any other digital or analog output capable of sending a line high and low in a pulsed fashion. Toggling the line submits edges to the S2Cwire device, where each rising edge is counted. Timing is flexible due to the interface's generous tolerance level. The rising edges that program a part can be fast, slow, or inconsistently spaced. Timing of the edges is bound only by the loose timing specification. The S2Cwire interface is simple to integrate with complex, multi-tasking systems, as well as slow, isolated subsystems dedicated to system management. Voltage Levels Several voltage level specifications are associated with the S2Cwire serial interface. The high-impedance input at the EN/SET pin detects logic high and low levels when the high and low voltage level thresholds are achieved for the specified times. The high and low threshold levels are clearly defined in the product Data Sheets as a minimum and a maximum specification, respectively. Table 1 shows a example of the specifications found in most S2Cwire device Data Sheets. For VIH, the enable high threshold is given as 1.4 V. This means that the applied enable high signal must be 1.4 V or greater. For VIL, the enable low threshold is given as 0.4 V. This means that the enable low signal must be 0.4 V or lower. To submit a rising edge to the EN/SET pin, the line should be taken below 0.4 V and then taken above 1.4 V. To submit a set of rising edges, the line should be taken below 0.4 V and then above 1.4 V in a repetitive fashion. See Figure 1 for an illustration of this process. Table 1. Example of EN/SET Threshold Specifications Symbol Description Conditions VIL Enable threshold low VIN = 2.7 V VIH Enable threshold high VIN = 5.5 V Minimum Typical Maximum Units 0.4 V 1.4 V Skyworks Solutions, Inc. • Phone [781] 376-3000 • Fax [781] 376-3100 • [email protected] • www.skyworksinc.com 202738A • Skyworks Proprietary Information • Products and Product Information are Subject to Change Without Notice • March 19, 2013 1 APPLICATION NOTE • A COMPLETE DISCUSSION OF THE S2CWIRE™ SINGLE-WIRE INTERFACE WITH tLAT SPECIFICATION Figure 1. Voltage Level Thresholds Table 2. Example of EN/SET Timing Specifications Symbol Description Conditions tEN/SET_LO EN/SET low time VIN = 2.7 V tEN/SET_HI_MIN Minimum EN/SET high time VIN = 5.5 V tEN/SET_HI_MAX Maximum EN/SET high time Minimum Typical 0.3 Maximum Units 75 µs 50 ns 75 tOFF EN/SET off timeout 500 µs tLAT EN/SET latch timeout 500 µs Timing A few timing specifications are associated with the S Cwire interface. These relate to how fast or slow the interface can detect rising edges, as well as when to expect the data registers to update. Internally, a counter counts the rising edges and, after the line has been held high, the data is latched and the output is updated. 2 Table 2 provides an example of the EN/SET timing specifications found in most S2Cwire product Data Sheets. The specifications that correspond to edge detection are the tEN/SET_LO and tEN/SET_HI. For determining the tLO time, the Data Sheet gives a minimum and a maximum specification for tEN/SET_LO. This results in a straightforward set of limits. To ensure edge detection, be certain that the tLO time is at least the minimum time and no greater than the maximum time. If edges are submitted outside of this range, there is risk that the edges are not detected or that a latch timeout occurs when not intended (see Figure 2). For determining the tHI time, the Data Sheet gives two specifications. There is a typical value for tEN/SET_HI_MIN and a maximum value for tEN/SET_HI_MAX. To determine the minimum tHI time, double the typical value for tEN/SET_HI_MIN. To determine the maximum value for the tHI time, use the maximum value from the tEN/SET_HI_MAX specification. If edges are submitted outside of this range, there is risk that the edges are not detected or that a latch timeout occurs when not intended. The Data Sheet gives two additional specifications that detail the S2Cwire interface. One is tLAT, which is given as a maximum specification. This means that after submitting data and then holding the line high, the latch timeout is guaranteed to occur by this time. Typically, the tLAT timeout occurs more towards the middle of the window created by tEN/SET_HI_MAX and maximum tLAT (e.g., between 75 μs and 500 μs). The output updates after tLAT, as illustrated in Figure 2. The final relevant timing specification is tOFF. The tOFF time is given as a maximum specification. This means that after taking the line low, the part is guaranteed to enter shutdown within this time. Note that when the part is shut down, the data register is reset to zero, as illustrated in Figure 3. Skyworks Solutions, Inc. • Phone [781] 376-3000 • Fax [781] 376-3100 • [email protected] • www.skyworksinc.com 2 µs March 19, 2013 • Skyworks Proprietary Information • Products and Product Information are Subject to Change Without Notice • 202738A APPLICATION NOTE • A COMPLETE DISCUSSION OF THE S2CWIRE™ SINGLE-WIRE INTERFACE WITH tLAT SPECIFICATION Figure 2. Latch Time Figure 3. Shutdown Time Programming Programming an S2Cwire device is simple. This section details what is involved and is intended to be general so that it applies to all S2Cwire devices. A basic block diagram for a sample device, used to facilitate the programming discussion, is shown in Figure 4. The available operating modes for this device are presented in the same fashion as found in the Data Sheet for a real device. This example operates as a constant voltage source where the output voltage is programmable through the S2Cwire interface. There are 16 programmable settings available for this device, as defined in Table 3. In the Data Sheet of an S2Cwire device, the complete functionality of the device is listed in a Table similar to that shown in Table 3. Programming an output voltage is accomplished by submitting a burst of edges corresponding to the desired setting and then holding the EN/SET line high. The device remains in this programmed state for as long as the EN/SET signal remains high or until it is reprogrammed. Taking EN/SET low shuts down the device and resets the data register. If no edges are clocked in, but EN/SET is taken high, the device operates in the default state (Data 1). Following is a discussion of a few simple programming examples to illustrate some of the details of operation. As a first example, suppose an event occurs and it is necessary to enable the constant voltage output to 4.25 V. From Table 3, 4.25 V corresponds to Data 4. Therefore, four edges are required to turn on the output to this setting. To bring the device out of shutdown and turn on the voltage output to 4.25 V, clock-in four edges for Data 4 and hold the line high. After the latch timeout, the output updates to the programmed output level, as illustrated in Figure 5. Figure 4. Sample Device Block Diagram Table 3. Mode Settings Data Voltage (V) Data Voltage (V) Data Voltage (V) Data Voltage (V) 1 5.00 5 4.00 9 3.00 13 2.00 2 4.75 6 3.75 10 2.75 14 1.75 3 4.50 7 3.50 11 2.50 15 1.50 4 4.25 8 3.25 12 2.25 16 0 Skyworks Solutions, Inc. • Phone [781] 376-3000 • Fax [781] 376-3100 • [email protected] • www.skyworksinc.com 202738A • Skyworks Proprietary Information • Products and Product Information are Subject to Change Without Notice • March 19, 2013 3 APPLICATION NOTE • A COMPLETE DISCUSSION OF THE S2CWIRE™ SINGLE-WIRE INTERFACE WITH tLAT SPECIFICATION Figure 5. Turn-On Voltage Output Figure 6. Turn-Off Voltage Output Figure 7. Device Shutdown Suppose the device is operating with the output set to 4.25 V and an event occurs signaling that it needs to change to 5 V. This is accomplished by immediately clocking-in the appropriate number of edges (i.e., EN/SET does not need to be pulled low to reset the data register first). To change the output voltage from 4.25 V to 5 V, only 1 edge is needed because 5 V corresponds to data setting 1, as illustrated in Figure 6. Lastly, the device needs to be put into shutdown. The device has been in an operating state because the EN/SET pin has been held high. Simply bring the EN/SET line low to enter shutdown mode. After taking the line low, there is a delay time (tOFF) before shutdown mode is entered, as shown in Figure 7. Note that shutdown resets the data register to zero. A more general timing diagram, as shown in Figure 8, appears in many Data Sheets. All of the information that has just been covered is captured in this diagram. The general idea is that the user submits a set of edges to program an S2Cwire device. After the delay time (tOFF), the device is programmed and is updated to a particular operating state. To put the part into shutdown mode, simply take the EN/SET pin low. When tOFF has expired, the part enters shutdown and the data register is reset. In summary, programming or re-programming an S2Cwire device simply requires clocking in edges for the desired setting and then holding the EN/SET line high. To ensure that S2Cwire programming is successful, be certain that the signals fall within the timing specifications and that the signals achieve the voltage level thresholds. To turn the part off, the EN/SET pin is simply held low. Skyworks Solutions, Inc. • Phone [781] 376-3000 • Fax [781] 376-3100 • [email protected] • www.skyworksinc.com 4 March 19, 2013 • Skyworks Proprietary Information • Products and Product Information are Subject to Change Without Notice • 202738A APPLICATION NOTE • A COMPLETE DISCUSSION OF THE S2CWIRE™ SINGLE-WIRE INTERFACE WITH tLAT SPECIFICATION Figure 8. Typical Data Sheet Timing Diagram Figure 9. Example of Code Software Integration There are a number of practical ways to integrate S2Cwire functionality into embedded software systems. Many of today's cell phones and handheld devices are built around low-power, high performance 16- and 32-bit processors that are running a Real-Time Operating System (RTOS) and application Operating System (OS). These systems are balancing heavy loads with many hard, real-time deadlines that cannot be missed. As a result, careful consideration is given to every additional piece of code that is added to a system. In line with today's methodologies, S2Cwire is flexible so that it is easy to integrate. Due to the simplicity of the S2Cwire interface, very little code is needed (see the example in Figure 9). Routines can just write 1s and 0s to an I/O port to toggle the line that is connected to the EN/SET pin of the part. The code can be fast and small, allowing it to be implemented as a high priority task. A high priority task, dedicated to writing sets of edges, can run to completion extremely quickly since the S2Cwire timing specification allows for fast timing. This fast execution time results in minimal impact to the software system. During the actual burst of edges, the code should execute with high priority. If using a preemptive, multi-tasking system such as an RTOS, a high priority task could be used during the data burst. Then, the wait for tLAT can occur at the application level. Since the S2Cwire interface accepts fast timing, the high-priority task could toggle the I/O line quickly so that CPU time is minimized, as illustrated in Figure 10. Since the actual data burst is of primary concern, it is useful to estimate the execution time. The calculation focuses purely on the S2Cwire pulse timing and does not account for any OS latencies. To minimize execution time, the fastest EN/SET timing should be used (300 ns for tLO and 100 ns for tHI). With this timing, the longest execution time occurs for the highest data setting. The highest data setting requires 16 edges. This is the largest burst of edges and should be used to estimate the time. It can be calculated as follows: tRUN = max_edges х (tLO(MIN) + tHI(MIN)) tRUN = 16 х (300 ns + 100 ns) = 6.4 μs From this calculation, it can be seen that the necessary execution time for the longest burst of edges is 6.4 μs. A slow rate of edges can also be detected by the S2Cwire interface. This gives a task dedicated to S2Cwire a high degree of tolerance so that it can be preempted by more important code. However, a major concern to consider is whether the task has a high enough priority. Using the previous example, the task should have a high enough priority so that control returns within 75 μs (because this is the tEN/SET_HI_MAX and tLO maximum specifications). If the task is kept waiting for more than 75 μs, it could cause a delay within the burst of edges to exceed 75 μs. If tHI or tLO are allowed to exceed 75 μs, a tLAT or tOFF timeout may occur and interfere with the intended programming. For a simplified example, see Figure 11. The S2Cwire serial interface fits within the general multi-tasking RTOS environments commonly used, as well as the custom-rolled software solutions tailored to a specific application. With little effort, S2Cwire control can be easily integrated into today's software/hardware platforms. Skyworks Solutions, Inc. • Phone [781] 376-3000 • Fax [781] 376-3100 • [email protected] • www.skyworksinc.com 202738A • Skyworks Proprietary Information • Products and Product Information are Subject to Change Without Notice • March 19, 2013 5 APPLICATION NOTE • A COMPLETE DISCUSSION OF THE S2CWIRE™ SINGLE-WIRE INTERFACE WITH tLAT SPECIFICATION Figure 10. S2Cwire Code Implemented as a High Priority Task Figure 11. S2Cwire Code that is Preempted for a Short Duration Summary The S Cwire single-wire interface and possible approaches to software integration have been described in this Application Note. The overall discussion is intended to give additional insight into using the interface in the target application and has attempted to clarify the conceptual aspects of the S2Cwire single-wire interface. 2 With this knowledge, designers can more effectively take advantage of the features and benefits offered by Skyworks digitally programmable, high performance I/C devices. Skyworks Solutions, Inc. • Phone [781] 376-3000 • Fax [781] 376-3100 • [email protected] • www.skyworksinc.com 6 March 19, 2013 • Skyworks Proprietary Information • Products and Product Information are Subject to Change Without Notice • 202738A APPLICATION NOTE • A COMPLETE DISCUSSION OF THE S2CWIRE™ SINGLE-WIRE INTERFACE WITH tLAT SPECIFICATION Copyright © 2006-2012, 2013 Skyworks Solutions, Inc. All Rights Reserved. Information in this document is provided in connection with Skyworks Solutions, Inc. (“Skyworks”) products or services. These materials, including the information contained herein, are provided by Skyworks as a service to its customers and may be used for informational purposes only by the customer. Skyworks assumes no responsibility for errors or omissions in these materials or the information contained herein. Skyworks may change its documentation, products, services, specifications or product descriptions at any time, without notice. Skyworks makes no commitment to update the materials or information and shall have no responsibility whatsoever for conflicts, incompatibilities, or other difficulties arising from any future changes. No license, whether express, implied, by estoppel or otherwise, is granted to any intellectual property rights by this document. Skyworks assumes no liability for any materials, products or information provided hereunder, including the sale, distribution, reproduction or use of Skyworks products, information or materials, except as may be provided in Skyworks Terms and Conditions of Sale. THE MATERIALS, PRODUCTS AND INFORMATION ARE PROVIDED “AS IS” WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, INCLUDING FITNESS FOR A PARTICULAR PURPOSE OR USE, MERCHANTABILITY, PERFORMANCE, QUALITY OR NON-INFRINGEMENT OF ANY INTELLECTUAL PROPERTY RIGHT; ALL SUCH WARRANTIES ARE HEREBY EXPRESSLY DISCLAIMED. SKYWORKS DOES NOT WARRANT THE ACCURACY OR COMPLETENESS OF THE INFORMATION, TEXT, GRAPHICS OR OTHER ITEMS CONTAINED WITHIN THESE MATERIALS. SKYWORKS SHALL NOT BE LIABLE FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO ANY SPECIAL, INDIRECT, INCIDENTAL, STATUTORY, OR CONSEQUENTIAL DAMAGES, INCLUDING WITHOUT LIMITATION, LOST REVENUES OR LOST PROFITS THAT MAY RESULT FROM THE USE OF THE MATERIALS OR INFORMATION, WHETHER OR NOT THE RECIPIENT OF MATERIALS HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Skyworks products are not intended for use in medical, lifesaving or life-sustaining applications, or other equipment in which the failure of the Skyworks products could lead to personal injury, death, physical or environmental damage. Skyworks customers using or selling Skyworks products for use in such applications do so at their own risk and agree to fully indemnify Skyworks for any damages resulting from such improper use or sale. Customers are responsible for their products and applications using Skyworks products, which may deviate from published specifications as a result of design defects, errors, or operation of products outside of published parameters or design specifications. Customers should include design and operating safeguards to minimize these and other risks. Skyworks assumes no liability for applications assistance, customer product design, or damage to any equipment resulting from the use of Skyworks products outside of stated published specifications or parameters. Skyworks, the Skyworks symbol, and “Breakthrough Simplicity” are trademarks or registered trademarks of Skyworks Solutions, Inc., in the United States and other countries. Third-party brands and names are for identification purposes only, and are the property of their respective owners. Additional information, including relevant terms and conditions, posted at www.skyworksinc.com, are incorporated by reference. Skyworks Solutions, Inc. • Phone [781] 376-3000 • Fax [781] 376-3100 • [email protected] • www.skyworksinc.com 202738A • Skyworks Proprietary Information • Products and Product Information are Subject to Change Without Notice • March 19, 2013 7