Pick up any chip datasheet and you will find three sections, labeled Absolute Maximum Ratings, DC Electrical Characteristics, and AC Electrical Characteristics. These are vitally important, but often poorly understood. So let's see what it all means, and how you work with that information to produce a reliable and effective embedded system. Let's look at the Absolute Maximum Ratings first.
The very first thing you'll see in the electrical characteristics section is something labeled Absolute Maximum Ratings . A chip will be designed to operate under certain nominal conditions, and exceeding those conditions during normal operation is not advised. But what happens if you do go beyond those parameters? At just what point will you really kill the chip? The Absolute Maximum Ratings tell you just that. They show you how far you can stress the chip, and (sometimes) for how long, before the device will fail.
An example of the Absolute Maximum Ratings for a chip, in this case a Dallas Semiconductor DS87C550 microcontroller, is shown in Table 4-1.
Table 4-1. Absolute Maximum Ratings for a DS87C550 microcontroller
Parameter |
Rating |
---|---|
Voltage on any pin relative to ground |
-0.3 V to (VCC + 0.5V) |
Voltage on VCC relative to ground |
-0.3 V to 6.0 V |
Operating temperature |
-40°C to +85°C |
Storage temperature |
-55°C to +125°C |
Soldering temperature |
160°C for 10 seconds |
So what does it all mean? Let's work through it. The first row of the table refers to the voltage range any pin of this microcontroller can tolerate. Normally, the voltage applied to a pin (be it signal or power) will range from zero volts (ground) to VCC (in the case of the DS87C550, this is +5 V). The Absolute Maximum Ratings tell us that if a pin falls to below -0.3 V (in other words, pretty much any negative voltage), the chip may be damaged. Similarly, if a pin has an applied voltage greater than VCC + 0.5 V, then it will also be damaged. Now, a lot of people would interpret VCC + 0.5 V to be +5.5 V since the nominal VCC is +5 V. This is not necessarily the case. VCC + 0.5 V means 0.5 V above the actual VCC that you're using to power the chip, not the nominal value of +5 V. If you're running a DS87C550 from a supply of +4.5 V (perfectly valid), then the absolute maximum rating for an input is not +5.5 V but +5 V. The design engineer (that's you) must ensure that no device connected to this microcontroller will exceed those parameters.
Tip
Note that not all chips have an Absolute Maximum Rating for input voltage as tight as the DS87C550. I can think of one memory chip that operates from a +2.7 V supply voltage but can tolerate signals as high a +6 V on its inputs. As always, it's vitally important to check the datasheet for each device you are using to see what is and what is not possible.
Let's look at an example where we have two embedded systems, each using an identical 87C550 microcontroller, cooperating as part of a larger system. In the first embedded system, designed by Company A, the 87C550 is powered from a +4.5 V supply. In the second embedded system, produced by Company B, the 87C550 is running on a +5.5 V supply. Both of these supply voltages are valid, and perfectly allowable within the specifications of these chips. Now, an output high from the second embedded system may be (and probably will be) +5.5 V. (The datasheet only gives a minimum value for an output high of +2.4 V, meaning that in reality, a high could be anywhere in the range +2.4 V to VCC.) An input high to the first embedded system's microcontroller cannot exceed VCC + 0.5 V:
Max input = VCC + 0.5V = 4.5V + 0.5V = 5V
So, an output high from the second embedded system could very well exceed the maximum input rating of the first, even though they are based on identical chips. This illustrates the importance of checking everything carefully and thinking about what is going on within the system. An engineer assuming that both systems will work together since they use the same microcontroller would be wrong and would very likely kill the first system.
The second row of the table tells us the maximum power supply the chip can tolerate. In the case of this processor, although its nominal operating voltage is +5 V (listed elsewhere in the datasheet), it can actually run off a supply as high as +6 V. However, exceeding +6 V on the power pins will probably damage the chip. Similarly, applying a negative voltage to a power pin will also damage the chip.
The operating temperature (row three in our table) specifies the temperature range at which this chip will operate reliably. If it is colder than -40°C, then the chip may physically fail, or the software it is executing may crash. Similarly, if the microcontroller is run in an environment where the temperature exceeds +85°C, then the chip will also fail. Now, the operating temperature is different from the storage temperature (row four of the table). The device can be stored reliably at any temperature between -55°C and +125°C without stressing the chip and potentially causing it to fail.
Tip
In some datasheets, you'll see operating temperature listed as junction temperature, referring to the temperature within the semiconductor. It effectively means the same thing.
The final entry in the table indicates the maximum soldering temperature that the chip can tolerate. In this case, it can withstand +160°C for 10 seconds. Now, 160 degrees is not that hot as far as soldering irons go. In truth, the chip can probably tolerate much higher temperatures than this, but only for significantly shorter periods of time. So, if I was to solder this chip using a standard iron, the final row of the table tells me that I need to be quick when soldering each pin, and that I should let the device cool down between soldering each pin. Holding a hot iron against each pin for several seconds will build up temperature within the chip and will turn a complicated, functioning integrated circuit into a mere ornament in the middle of the circuit board.
The DC characteristics specify the voltages and currents pertaining to the chip during normal operations. In datasheets, you'll often see the DC characteristics (and sometimes the Absolute Maximum Ratings) referred to as commercial grade, industrial grade, or military grade. These indicate the robustness of a particular part and its ability to withstand harsh environments. A military-grade part will be able to withstand higher temperatures, have better noise immunity, and have a longer operating life. In some cases, the military-grade part will have radiation hardness, meaning that it can survive and continue to operate after exposure to radiation. The downside is that a military-grade part will be more expensive, sometimes harder to get, and may not operate at as high a speed as its commercial-grade cousin. Now, you may think that unless you're designing military hardware, you'll have no need of military-grade parts. However, if you're designing equipment that will be used in space, at high altitude, or in the Arctic or Antarctic, where temperature variations are extreme and radiation levels can be high, military grade may be the better choice.
The DC characteristics data is presented in a table format. An example, showing some typical entries (for an imaginary chip), is given in Table 4-2. Now, I say "typical" in the loosest sense of the word. For each chip manufacturer, there is a different way of presenting the data. But you'll work it out, as it's not that hard once you know what to look for.
Table 4-2. Sample DC characteristics
Parameter |
Symbol |
Min |
Typ |
Max |
Unit |
---|---|---|---|---|---|
Supply voltage[a] |
VDD |
3 |
- |
5.5 |
V |
Input-low voltage |
VIL |
VSS |
- |
0.15VDD |
V |
Input-high voltage |
VIH |
0.25VDD |
- |
VDD |
V |
Output-low voltage[b] |
VOL |
- |
- |
0.6 |
V |
Output-high voltage[b] |
VOH |
VDD - 0.7 |
- |
- |
V |
Supply current[c] |
IDD |
- |
0.8 |
1.4 |
mA |
Sleep current[d] |
Isleep |
- |
10 |
25 |
nA |
Input capacitance |
 |
 |
 |
TBD |
pF |
[a] Referenced to VSS [b] 3 ⤠VDD ⤠5.5 V [c] Oscillator = 4 MHz [d] Oscillator = 32 MHz |
The supply voltage tells us the operating voltage needed to supply the chip. The symbol is simply a label, used in other parts of the datasheet to refer to this parameter. In this case, the supply voltage is a minimum (Min) of 3 V and a maximum (Max) of 5.5 V. This means that we can run this chip using a supply voltage anywhere within this range. The typical (Typ) column is left blank, indicating that there is no preferred supply voltage within this range. Sometimes you'll see a chip with a minimum supply voltage of 4.5 V, a maximum of 5.5 V, and a typical supply voltage of 5 V. What this tells us is that this part requires a 5 V supply (indicated by the Typ value) but can tolerate a range of 0.5 V on either side of this. Some manufacturers will use nominal (Nom) in place of typical. It means the same thing. The footnote (a) pertaining to this entry indicates that the supply voltage is referenced to VSS. This may seem like an obvious thing, but it is important. VSS is typically ground (zero volts), but it need not be. In exceptional circumstances, the design may require that VSS be some voltage other than ground. Hence the footnote says that the supply voltage must be 3 V to 5.5 V above VSS. So, if VSS were 2 V, for example, our supply voltage would be 5 V to 7.5 V. (Remember that it is the voltage difference that is important.)
The next two rows show us what voltage levels are required on an input pin to register as a low (0) or a high (1). Note that these are not absolute values, but are referenced to VSS and VDD.
The output low voltage is given as a maximum of 0.6 V, with no minimum or typical values. This means that when this chip is outputting a low, it will be no greater than 0.6 V. Although no minimum is given, it can be assumed that the minimum is VSS. The chip would not output a low below this value. The footnote for this parameter and the next parameter indicates that the values given are for when the chip is operating from a supply voltage of between 3 V and 5.5 V. Such a range is typically written as "3 V ⤠VDD ⤠5.5 V." This just means that VDD lies between 3 V and 5.5 V.
The supply current has a typical value and a maximum value. For some manufacturers, the typical value is what you'll see in reality. For other manufacturers, the typical value could best be described as "wishful thinking." The real value is often closer to the maximum than the typical. The note tells us that the supply current given is for when the chip is running at 4 MHz. Since the current used by a device varies with speed, this parameter is only of limited use. Some manufacturers will give you an equation or a graph that allows you to determine supply current for any oscillator speed.
The sleep current shows how much juice this chip will draw when it is in "sleep" or "power down" mode. As you would expect, it is much less than the "awake" supply current given in the row above. But, look at the footnotes. The sleep current is given for an oscillator speed of 32 kHz, while the supply current is for an oscillator speed of 4 MHz. Some manufacturers do this deliberately to make their devices look better than they are, as this can mask the true nature of the part. (Remember that current drops with clock speed anyway.) This makes it hard to determine what the real current draw of the device will be in your application. Sure, the sleep current may be 10nA at 32 kHz, but it might be 0.5 mA at 4 MHz. Another trick manufacturers use is to provide a value for the supply current to the core (the CPU) but disregard the current used by all the onboard peripherals. It may look good on paper, but the reality could be quite different. The only way to be really sure is to build the thing into a system and measure it.
The final parameter in our example is input capacitance . Every input pin has a small capacitance, and this combines with the small inherent resistance of the signal traces (circuit board tracks) to act as an RC circuit. Earlier in this chapter, we saw how an input pulse into an RC circuit results in a rising voltage at the output. This means that although an input may quickly change from a low to a high, the input capacitance of the pin will provide a slight delay before the chip "sees" this change in input. You need to take this into account in your design, especially with respect to rapidly changing signals.
Now, in this particular example, the input capacitance is specified as "TBD." This is the bane of the system designer. "TBD" means "To Be Determined." In other words, this parameter wasn't known at the time the datasheet was written. TBD can pop up in all sorts of places in datasheets and can be a real problem if you're trying to design a machine. I remember one datasheet for a processor many years ago where every parameter, from supply voltage and current to voltage levels and timing, was listed as TBD!
Finally, be aware that technical data in some (not all) datasheets is theoretical only. In other words, the design engineers for the chip or part calculated what the values should be using their supercomputer (or abacus or Tarot cards). Other manufacturers actually go to great pains to measure their technical parameters, and even provide you with detailed explanations of the test conditions. They take a very thorough approach, and you can use their parts in confidence. Maxim and Texas Instruments are examples of two such companies, although there are many more.
A timing diagram is a representation of the input and output signals of a device and how they relate to each other. In essence, it indicates when a signal needs to be asserted and when you can expect a response from the device. For two devices to interact, the timing of signals between the two must be compatible, or you must provide additional circuitry to make them compatible.
Timing diagrams scare and confuse many people and are often ignored completely. Ignoring device timing is a sure way of guaranteeing that your system will not work! However, they are not that hard to understand and use. If you want to design and build reliable systems, remember that timing is everything!
Digital signals may be in one of three states: high, low, or high-impedance (tristate). On timing diagrams for digital devices, these states are represented as shown in Figure 4-59.
Transitions from one state to another are shown in Figure 4-60.
The last waveform (High-High/Low) indicates that a signal is high and, at a given point in time, may either remain high or change to low. Similarly, a signal line that is tristate may go low, high, or either high or low depending on the state of the system. An example of this is a data line, which will be tristate until an information transfer begins. At this point in time, it will either go high (data = 1) or low (data = 0), as shown in Figure 4-61.
The waveforms in Figure 4-62 indicate a change from tristate to high/low and back again. These symbols indicate that the change may happen anywhere within a given range of time, but will have happened by a given point in time.
The waveform in Figure 4-63 indicates that a signal may/will change at a given point in time. The signal may have been high and will either remain high or go low. Alternatively, the signal may have been low and will either remain low or go high.
The impression given in many texts on digital circuits is that a change in signal state is instantaneous. This is not so. A transition is never instant; it can be several nanoseconds in duration, and there is considerable variation between different devices (Figure 4-64). The datasheet for each component will detail the transition times for that particular device.
Datasheets from component manufacturers specify timing information for devices. A sample timing diagram for an imaginary chip is shown in Figure 4-65.
The diagram shows the relationship between input signals to the device (such as ) and outputs from the device (such as Data). The numbers in the diagram are references to timing information within tables. They do not represent timing directly. Table 4-3 shows how a datasheet might list the timing parameters.
Table 4-3. Sample timing parameters
Ref |
Description |
Min |
Max |
Units |
---|---|---|---|---|
1 |
CS Hold Time |
60 |
 |
ns |
2 |
CS to Data Valid |
 |
30 |
ns |
3 |
Data Hold Time |
5 |
10 |
ns |
Timing reference "1" (the first row of Table 4-3) shows how long must be held low. In this instance, it is a minimum of 60 ns. This means that the device won't guarantee that will be recognized unless it is held low for more than this time. There is no maximum specified. This means that it doesn't matter if is held low for longer than 60 ns. The only requirement is that it is low for a minimum of 60 ns.
Timing reference "2" shows how long it takes the device to respond to going low. From when goes low until this device starts outputting data is a maximum of 30 ns. What this means is that 30 ns after goes low, the device will be driving valid data onto the data bus. It may start driving data earlier than 30 ns. The only guarantee is that it will take no longer than 30 ns for this device to respond.
Timing reference "3" specifies when the device will stop driving data once has been negated. This reference has a minimum of 5 ns and a maximum of 10 ns. This means that data will be held valid for at least 5 ns, but no more than 10 ns, after negates.
Some manufacturers use numbers to reference timing; others may use a label (Figure 4-66).
Some manufacturers will specify timing from when a signal becomes valid until it is no longer valid. Others specify timing from the middle of a transition to the middle of the next transition (Figure 4-67).
Get Designing Embedded Hardware, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.