Thursday, 24 May 2012

Schottky diode

Consider, a case where you want to isolate a battery supply with mains supply or incase you want to isolate two supplies, schottky diode is suitable for this application.

Schottky diode or surface barrier diode or hot carrier diode is a majority carrier, metal-semiconductor junction diode with very less reverse recovery time. The reverse recovery time is in picosec as compared to normal diodes that have reverse recovery in nanosec. Schottky conduts when forward biased. In many applications, we see schottky diode used in series with supply. Another advantage of schottky is less EMI noise. For normal diodes due to some reverse current flowing, in high-power applications EMI noise is a problem.

Advantages:
1. Less reverse recovery time and hence fast switching
2. Low EMI noise and hence preferred for high frequency applications
3. Smaller device area
4. Low forward drop (0.15 to 0.45V)
5. Low junction capacitance
6. High current density
7. Less power dissipation and hence small size heat sinks in high power applications

Disadvantages:
1. Low reverse voltage rating
2. Reverse current variation with temperature

Applications:
1. RF detector
2. Switching regulators
3. Diode mixer
4. Solar cell

Monday, 7 May 2012

SMBus versus I2C


Did you hear about Smart Battery system (SBS)? Or did you at least see a system in which you get a display of battery manufacturer, type, model number, discharge rate, remaining capacity? If your answer is yes, then you must have listened about SMBus too.  SMBus is the underlying bus used for communication with power sources like battery. The modern smart batteries have an integrated circuit which communicates with the processor over SMBus sending the required battery data.

SMBus defined by INTEL is a 2-wire protocol like I2C. It can be said like a low speed bus and operates over a range of 10-100 KHz. In other words, SMBus is used for Low-Bandwidth applications. The latest PMBus extends the speed to 400 KHz. Like I2C, SMBus also has open collector configuration and all the hardware design considerations are similar. The pull-up requirements are not that stringent compared to I2C. The data transfer formats of SMBus are a subset of I2C data transfer formats. Modern embedded systems which use PMICs for power sequencing and handling also use SMBus for communication.
Let us assume, a slave is busy with some real-time processing and master sends a request for communication. The slave keeps the clock low until it completes its routines and takes up the request later. This is the case with I2C. That is why I2C bus is also sometimes called “DC bus”. In this case, the I2C bus may be held up until slave is serviced. Where as in the case of SMBus, there is a time up after which the master recognizes that there is a problem on the other end and stops the communication. It may also send the reset signal to slave.

Electrical levels over SMBus:
The fixed low/high voltage levels of SMBus are 0.8V/2.1V (1.5/3V for I2C).
Sink current: 100-300uA (3mA for I2C)
From the sink current specifications, it is clear that SMBus uses weak pull-up resistors.

Are SMBus and I2C compatible?
SMBus and I2C can work together on same bus but with some constraints:
Ø  Due to time out constraint, SMBus cannot operate under 10 KHz. Whereas I2C can be called a DC bus and can operate from 0 Hz.
Ø  For I2C and SMBus, the sink current requirements vary and if both are to compatible, the pull-up resistors need to be selected carefully.
Ø  Although, voltage swings as per electrical specifications vary, interchangeability can be done.

SMBALERT#:
SMBus in some application also has special alert signal which indicates the interrupt condition to the host. This signal is mainly used in PCI application. Some of the PCI add-in cards use SMBus for their communication and it is common to see SMBus signals defined in standard PCI connectors. The following pin out of PCIe x1 slot shows SMBus signals.


The below table shows a comparison of I2C and SMBus:
I2C
SMBus
Speed : 0-100 KHz
0-400 KHz
0-1 MHz
0-3.4 MHz
Speed: 10-100KHz
No time-out
Time-out of 35ms
Rise and Fall time not defined
Rise and Fall time defined
The time for which Slave and Master can hold clock low are not defined.
The time for which Slave and Master can hold clock low (SEXT, MEXT) are defined.
Hot plugging doesn’t work
Hot plugging works
For 7-bit addressing, 128 devices can be connected.
For 7-bit addressing, 128 devices can be connected.
Dynamic address allocation not possible.
Includes Address resolution protocol that can make dynamic address allocations.
Packet Error checking not included.
Packet Error checking included.
Error recovery impossible if Slave holds Data or Clock line low forever.
Error recovery possible after time out

What happens if data or Clock line is held low forever by slave?
This is an error condition in I2C, where master can’t handle. Slaves doesn’t generally doesn’t hold clock low and it is data line which can be held low for some time. The master has to keep sending clock signals over a time until slave pulls it high. Where as in SMBus, after a specific time, slave will be reset.

Applications of SMBus:
ü  Smart Batteries
ü  Power Management (PMICs)
ü  Communication with add-in cards of PCI
ü  Temperature, Voltage Sensors.

Saturday, 5 May 2012

Understanding I2C - Part 3

Beginners need to know that I2C is a simple synchronous serial communication protocol.


I2C routing/external cable distance:
If you are routing I2C lines on PCB or using external cables, we have to keep in mind the maximum distance to which it can be done. Generally, without considering any factors, the length can be 9-12 feet. But length depends on following factors:
1.    Speed
2.    Load (capacitance)
3.    Source for pull-up

The distance can be increased by using a active current source instead of simple pull-up resistor. This is what is used in current amplifiers used as I2C repeater. For the same capacitance, I2C lines with repeater can be routed over longer distance than I2C lines with no repeater.

General Call in I2C:

In some cases, it is required that master need to communicate with all slaves at a time. In that case, Master has an option of sending “0000 0000” as address. This is called general call to which all the slaves will respond.


Multi Master Configuration:
Consider an application which demands two microcontrollers and ‘N’ number of sensors. This is a multi master application and clock need to be controlled carefully by either of the master. In this case, masters need to deal with Arbitration and Clock synchronization. Arbitration is like masters fighting for bus and one of them getting control at a specific time. Clock synchronization is like different masters may use different clocks and this can be differentiating factor in the case of slaves deciding which master has initiated the transaction. In case, a master doesn’t want to lose control of the bus, it may send repeated start bit in place of stop bit. This helps the master keep control of the bus. We need to remember that when a “START” signal is sent from Master to slave, the internal logic of slave is set to specific state. SCL need not ne bi-directional but in multi-master mode, the SCL needs to be bi-directional.
Genuine I2C routine:
DATA = 1;
CLK = 1; // initially CLK and DATA are high
Delay(n);
DATA = 0; // data made low from high to indicate START
Delay(n);
CLK = 0; // clock made low and in this state data bit can be put on the bus
Delay(n);
DATA = 0 or 1; // as, clock is made low, we are sending data byte
Delay(n);
CLK = 1; // Now clock is high and bit is freezed

Note: ‘n’ in delay function depends on clock cycle.