CHAPTER 1
INTRODUCTION
Abstract:
This report presents embedded processor based automatic temperature control of VLSI chips,
using temperature sensor LM35 and ARM processor LPC2378. Due to the very high packing
density, VLSI chips get heated very soon and if not cooled properly, the performance is very
much affected. In the present work, the sensor which is kept very near proximity to the IC will
sense the temperature and the speed of the fan arranged near to the IC is controlled based on the
PWM signal generated by the ARM processor. A buzzer is also provided with the hardware, to
indicate either the failure of the fan or overheating of the IC. The entire process is achieved by
developing a suitable embedded C program.
Introduction
With the phenomenal developments in VLSI technology, the ambitious IC designers are trying to
put more transistors in to smaller packages. So, the ICs run at higher speeds and produce large
amount of heat which creates the problem of thermal management. For example, nowadays the
CPU chips are becoming smaller and smaller with almost no room for the heat to escape. The
1
total power dissipation levels now reside on the order of 100 W with a peak power density of
400-500 W/Cm2, and are still steadily climbing [1]. As the chip temperature increases its
performance is very much degraded by parameters shift, decrease in operating frequencies and
out-of specification of timings. So the high speed chips must be cooled to maintain good
performance for the longest possible operating time and over the widest possible range of
environmental conditions. The maximum allowable temperature for ahigh speed chip to meet its
parametric specifications depends on the process and how the chip is designed.
Among the various cooling techniques, heat sinks, heat pipes, fans and clock throttling are
usually employed. Among these techniques, fans can dramatically reduce the temperature of a
high speed chip, but they also generate a great deal of acoustic noise. This noise can be reduced
significantly by varying the fans speed based on temperature i.e. the fan can turn slowly when
the temperature is low and can speed up as the temperature increases. The other prominent
method is clock throttling i.e. reducing the clock speed to reduce power dissipation. But it also
reduces the system performance and the systems functionality is lost. So, the objective of the
present work is, to design a hardware system consisting of a brushless DC motor fan whose
speed is controlled based on the temperature of the chip, sensed by the sensor LM35. The LM35
series are precision integrated-circuit temperature sensors, whose output voltage is linearly
proportional to the Celsius (Centigrade) temperature.
The LM35 thus has an advantage over linear temperature sensors calibrated in °Kelvin, as the
user is not required to subtract a large constant voltage from its output to obtain convenient
Centigrade scaling. The LM35 does not require any external calibration or trimming to provide
typical accuracies of ±1⁄4°C at room temperature and ±3⁄4° over a full −55 to +150°C
2
temperature range. Low cost is assured by trimming and calibration at the wafer level. The
LM35’s low output impedance, linear output, and precise inherent calibration make interfacing
to readout or control circuitry especially easy. It can be used with single power supplies, or with
plus and minus supplies.
As it draws only 60 µA from its supply, it has very low self-heating, less than 0.1°C in still air.
The LM35 is rated to operate over a −55° to +150°C temperature range, while the LM35C is
rated for a −40° to +110°C range (−10° with improved accuracy). The LM35 series is available
packaged in hermetic TO-46 transistor packages, while the LM35C, LM35CA, and LM35D are
also available in the plastic TO-92 transistor package. The LM35D is also available in an 8-lead
surface mount small outline package and a plastic TO-220 package [3]. To monitor the voltage at
the terminals of the DC motor fan, the PWM signal is generated by the ARM7TDMI processor.
This PWM signal is changed in accordance to the output of the LM35 temperature sensor. So the
important component of this entire project is the temperature sensor.
DESCRIPTION:
In ARM processor based automatic temperature control system, the output of the temperature
sensor is fed to the on chip ADC and the output of the ADC is given to the L293D driver IC
which in turn is fed to DC motor fan as shown in the block diagram in Fig. 1. A graphic LCD
(128x64 pixels) is interfaced to the ARM LPC 2378 processor to display the temperature of the
IC and the speed of the fan.
3
A buzzer is also connected to the processor which gives an indication, in case of the failure of
the fan or overheating of the chip beyond some level.
BLOCK DIAGRAM:
4
CHAPTER 2
HARDWARE DESCRIPTION
In ARM processor based automatic temperature control system the general hardware
components that are required are listed as follows:
1. 128X64 Graphics LCD
2. LM35 Temperature Sensor
3. LPC2378ARM7TDMi Processor
4. L293D Motor Driver
5. DC Motor Fan
128X64 Graphics LCD:
Description: This is a smaller version of our serial graphic LCD. The Serial Graphic LCD backpack is
soldered to the 128x64 pixel Graphic LCD and provides the user a simple serial interface to a full range
of controls. Besides writing text, this serial graphic LCD allows the user to draw lines, circles and boxes,
set or reset individual pixels, erase specific blocks of the display, control the backlight and adjust the baud
rate.
5
Fig 2.1: 128x64 LCD
Fig2.2: Pin Diagram of 128x64 LCD
6
LM35 Temperature Sensor:
The LM35 is an integrated circuit sensor that can be used to measure temperature with an
electrical output proportional to the temperature (in oC)
The LM35 - An Integrated Circuit Temperature Sensor
LM35 is used to measure temperature because:
o One can measure temperature more accurately than a using a thermistor.
o The sensor circuitry is sealed and not subject to oxidation, etc.
o The LM35 generates a higher output voltage than thermocouples and may not
require that the output voltage be amplified.
Fig 2.3: LM35 Temperature Sensor
7
What Does an LM35 Do? How does it work?
o It has an output voltage that is proportional to the Celsius temperature.
o The scale factor is .01V/oC
o The LM35 does not require any external calibration or trimming and maintains an
accuracy of +/-0.4 oC at room temperature and +/- 0.8 oC over a range of 0 oC to
+100 oC.
o Another important characteristic of the LM35DZ is that it draws only 60 micro
amps from its supply and possesses a low self-heating capability. The sensor self-
heating causes less than 0.1 oC temperature rise in still air.
The LM35 comes in many different packages, including the following.
TO-92 plastic transistor-like package,
T0-46 metal can transistor-like package
8-lead surface mount SO-8 small outline package
TO-202 package. (Shown in the picture above)
How Do You Use An LM35? (Electrical Connections)
o Here is a commonly used circuit. For connections refer to the picture above.
o In this circuit, parameter values commonly used are:
Vc = 4 to 30v
5v or 12 v are typical values used.
Ra = Vc /10-6
8
Actually, it can range from 80 KW to 600 KW , but most just use 80 KW.
Fig 2.4: Circuit Connection of LM35 Sensor
What Can You Expect When You Use An LM35?
o You will need to use a voltmeter to sense Vout.
o The output voltage is converted to temperature by a simple conversion factor.
o The sensor has a sensitivity of 10mV / oC.
o Use a conversion factor that is the reciprocal, that is 100 oC/V.
o The general equation used to convert output voltage to temperature is:
Temperature ( oC) = Vout * (100 oC/V)
So if Vout is 1V , then, Temperature = 100 oC
9
The output voltage varies linearly with temperature.
LPC2378 ARM7TDMI Processor:
GENERAL DESCRIPTION:
The LPC2378 microcontroller is based on a 16-bit/32-bit ARM7TDMI-S CPU with real-time
emulation that combines the microcontroller with 512 kB of embedded high-speed flash
memory. A 128-bit wide memory interface and a unique accelerator architecture enable 32-bit
code execution at the maximum clock rate. For critical performance in interrupt service routines
and DSP algorithms, this increases performance up to 30 % over Thumb mode. For critical code
size applications, the alternative 16-bit Thumb mode reduces code by more than 30 % with
minimal performance penalty.
The LPC2378 is ideal for multi-purpose serial communication applications. It incorporates a
10/100 Ethernet Media Access Controller (MAC), USB full speed device with 4 kB of endpoint
RAM, four UARTs, two CAN channels, an SPI interface, two Synchronous Serial Ports (SSP),
three I2C interfaces, an I2S interface, and an External Memory Controller (EMC). This blend of
serial communications interfaces combined with an on-chip 4 MHz internal oscillator, SRAM of
32 kB, 16 kB SRAM for Ethernet, 8 kB SRAM for USB and general purpose use, together with
2 kB battery powered SRAM make this device very well suited for communication gateways and
protocol converters.
Various 32-bit timers, an improved 10-bit ADC, 10-bit DAC, PWM unit, a CAN control unit,
10
and up to 104 fast GPIO lines with up to 50 edge and up to four level sensitive external interrupt
pins make these microcontrollers particularly suitable for industrial control and medical systems.
FEATURES:
ARM7TDMI-S processor, running at up to 72 MHz.
Up to 512 kB on-chip flash program memory with In-System Programming (ISP) and
In- Application Programming (IAP) capabilities. Flash program memory is on the ARM
local bus for high performance CPU access.
32 kB of SRAM on the ARM local bus for high performance CPU access.
16 kB SRAM for Ethernet interface. Can also be used as general purpose SRAM.
8 kB SRAM for general purpose DMA use also accessible by the USB.
Dual Advanced High-performance Bus (AHB) system that provides for simultaneous
Ethernet DMA, USB DMA, and program execution from on-chip flash with no contention
between those functions. A bus bridge allows the Ethernet DMA to access the other AHB
subsystem.
EMC provides support for static devices such as flash and SRAM as well as off-chip memory
mapped peripherals.
Advanced Vectored Interrupt Controller (VIC), supporting up to 32 vectored interrupts.
General Purpose AHB DMA controller (GPDMA) that can be used with the SSP serial
interfaces, the I2S port, and the Secure Digital/MultiMediaCard (SD/MMC) card port,
as well as for memory-to-memory transfers.
11
Serial Interfaces:
Ethernet MAC with associated DMA controller. These functions reside on an independent
AHB bus.
USB 2.0 full-speed device with on-chip PHY and associated DMA controller.
Four UARTs with fractional baud rate generation, one with modem control I/O, one with
IrDA support, all with FIFO.
CAN controller with two channels.
SPI controller.
Two SSP controllers, with FIFO and multi-protocol capabilities. One is an alternate
for the SPI port, sharing its interrupt and pins. These can be used with the GPDMA
controller.
Three I2C-bus interfaces (one with open-drain and two with standard port pins).
I2S (Inter-IC Sound) interface for digital audio input or output. It can be used with
the GPDMA.
Other peripherals:
SD/MMC memory card interface.
104 General purpose I/O pins with configurable pull-up/down resistors.
10-bit ADC with input multiplexing among 8 pins.
10-bit DAC.
Four general purpose timers/counters with 8 capture inputs and 10 compare
outputs. Each timer block has an external count input.
One PWM/timer block with support for three-phase motor control. The PWM has
12
two external count inputs.
Real-Time Clock (RTC) with separate power pin, clock source can be the RTC
oscillator or the APB clock.
2 kB SRAM powered from the RTC power pin, allowing data to be stored when the
rest of the chip is powered off.
WatchDog Timer (WDT). The WDT can be clocked from the internal RC oscillator,
the RTC oscillator, or the APB clock.
Standard ARM test/debug interface for compatibility with existing tools.
Emulation trace module supports real-time trace.
Single 3.3 V power supply (3.0 V to 3.6 V).
Three reduced power modes: idle, sleep, and power-down.
Four external interrupt inputs configurable as edge/level sensitive. All pins on PORT0
and PORT2 can be used as edge sensitive interrupt sources.
Processor wake-up from Power-down mode via any interrupt able to operate during
Power-down mode (includes external interrupts, RTC interrupt, USB activity, Ethernet
wake-up interrupt).
Two independent power domains allow fine tuning of power consumption based on
needed features.
Each peripheral has its own clock divider for further power saving.
Brownout detect with separate thresholds for interrupt and forced reset.
On-chip power-on reset.
On-chip crystal oscillator with an operating range of 1 MHz to 24 MHz.
4 MHz internal RC oscillator trimmed to 1 % accuracy that can optionally be used as
13
the system clock. When used as the CPU clock, does not allow CAN and USB to run
On-chip PLL allows CPU operation up to the maximum CPU rate without the need for
a high frequency crystal. May be run from the main oscillator, the internal RC oscillator,
or the RTC oscillator.
Boundary scan for simplified board testing.
Versatile pin function selections allow more possibilities for using on-chip peripheral
functions.
APPLICATION:
Industrial control
Medical systems
Protocol converter
Communications
Fig2.5 LPC2378 ARM7TDMI Processor
14
Fig 2.6 :Block Diagram
15
The instruction pipeline:
The ARM7TDMI-S processor uses a pipeline to increase the speed of the flow of
instructions to the processor. This enables several operations to take place
simultaneously, and the processing, and memory systems to operate continuously.
A three-stage pipeline is used, so instructions are executed in three stages:
• Fetch
• Decode
• Execute.
16
ARM7TDMI-S architecture:
The ARM7TDMI-S processor has two instruction sets:
• the 32-bit ARM instruction set
• the 16-bit Thumb instruction set.
The ARM7TDMI-S processor is an implementation of the ARM architecture v4T.
Instruction compression:
Microprocessor architectures traditionally had the same width for instructions and data.
Therefore, 32-bit architectures had higher performance manipulating 32-bit data and could
address a large address space much more efficiently than 16-bit architectures.16-bit architectures
typically had higher code density than 32-bit architectures, and greater than half the
performance. Thumb implements a 16-bit instruction set on a 32-bit architecture to provide:
• higher performance than a 16-bit architecture
• higher code density than a 32-bit architecture.
The Thumb instruction set:
The Thumb instruction set is a subset of the most commonly used 32-bit ARM instructions.
Thumb instructions are each 16 bits long, and have a corresponding 32-bit ARM instruction that
17
has the same effect on the processor model. Thumb instructions operate with the standard ARM
register configuration, allowing excellent interoperability between ARM and Thumb states. On
execution, 16-bit Thumb instructions are transparently decompressed to full 32-bit ARM
instructions in real time, without performance loss.
Thumb has all the advantages of a 32-bit core:
• 32-bit address space
• 32-bit registers
• 32-bit shifter and Arithmetic Logic Unit (ALU)
• 32-bit memory transfer.
Thumb therefore offers a long branch range, powerful arithmetic operations, and a large address
space.
Thumb code is typically 65% of the size of the ARM code and provides 160% of the
performance of ARM code when running on a processor connected to a 16-bit memory system.
Thumb, therefore, makes the ARM7TDMI-S processor ideally suited to embedded applications
with restricted memory bandwidth, where code density is important.
The availability of both 16-bit Thumb and 32-bit ARM instruction sets gives designers the
flexibility to emphasize performance, or code size on a subroutine level, according to the
requirements of their applications. For example, critical loops for applications such as fast
interrupts and DSP algorithms can be coded using the full ARM instruction set and linked with
Thumb code.
18
L293D Motor Driver:
L293D is a dual H-Bridge motor driver, So with one IC we can interface two DC motors which
can be controlled in both clockwise and counter clockwise direction and if you have motor with
fix direction of motion the you can make use of all the four I/Os to connect up to four DC
motors. L293D has output current of 600mA and peak output current of 1.2A per channel.
Moreover for protection of circuit from back EMF ouput diodes are included within the IC. The
output supply (VCC2) has a wide range from 4.5V to 36V, which has made L293D a best choice
for DC motor driver.
L293D contains two inbuilt H-bridge driver circuits. In its common mode of operation, two DC
motors can be driven simultaneously, both in forward and reverse direction. The motor
operations of two motors can be controlled by input logic at pins 2 & 7 and 10 & 15. Input logic
00 or 11 will stop the corresponding motor. Logic 01 and 10 will rotate it in clockwise and
anticlockwise directions, respectively.
Enable pins 1 and 9 (corresponding to the two motors) must be high for motors to start operating.
When an enable input is high, the associated driver gets enabled. As a result, the outputs become
active and work in phase with their inputs. Similarly, when the enable input is low, that driver is
disabled, and their outputs are off and in the high-impedance state.
19
Fig 2.7:L293D Motor driver
Fig2.8:Pin Description of L293D20
Fig 2.9:circuit connection of L293D with Motor
CIRCUIT DIAGRAM OF PROJECT:
In ARM processor based automatic temperature control system, the output of the temperature
sensor is fed to the on chip ADC and the output of the ADC is given to the L293D driver IC
which in turn is fed to DC motor fan. A graphic LCD (128x64 pixels) is interfaced to the ARM
21
LPC 2378 processor to display the temperature of the IC and the speed of the fan. A buzzer is
also connected to the processor which gives an indication, in overheating of the chip beyond
some level. The entire circuit diagram is shown in Fig.
Among the various cooling techniques, heat sinks, heat pipes, fans and clock throttling are
usually employed. Among these techniques, fans can dramatically reduce the temperature of a
high speed chip, but they also generate a great deal of acoustic noise. This noise can be reduced
significantly by varying the fans speed based on temperature i.e. the fan can turn slowly when
the temperature is low and can speed up as the temperature increases.
The other prominent method is clock throttling i.e. reducing the clock speed to reduce power
dissipation. But it also reduces the system performance and the systems functionality is lost.
So, the objective of the present work is, to design a hardware system consisting of a brushless
DC motor fan whose speed is controlled based on the temperature of the chip, sensed by the
sensor LM35.
22
Fig 2.10: Circuit Diagram23
CHAPTER 3
SOFTWARE DESCRIPTION
The present work is implemented using ARM IAR Workbench IDE and the necessary embedded
C program is developed and dumped into the embedded processor using Flash magic ISP Utility.
The ARM IAR Workbench IDE is a very powerful Integrated Development Environment (IDE)
that allows you to develop and manage complete embedded application projects. In-System
Programming is programming or reprogramming the on-chip flash memory, using the boot-
loader software and a serial port. The LPC2387 microcontroller is based on a 16-bit/32-bit
ARM7TDMI-S CPU with real-time emulation that combines the microcontroller with 512 kB of
embedded high-speed flash memory.
A 128-bit wide memory interface and unique accelerator architecture enable 32-bit code
execution at the maximum clock rate. For critical performance in interrupt service routines and
DSP algorithms, this increases performance up to 30 % over Thumb mode. For critical code size
applications, the alternative 16-bit Thumb mode reduces code by more than 30 % with minimal
performance penalty.
The LPC2387 is ideal for multi-purpose serial communication applications. It incorporates a
10/100 Ethernet Media Access Controller (MAC), USB full speed device with 4 kB of endpoint
RAM, four UARTs, two CAN channels, an SPI interface, two Synchronous Serial Ports (SSP),
three I2C interfaces, and an I2S interface. This blend of serial communications interfaces
combined with an on-chip 4 MHz internal oscillator, 64 kB SRAM, 16 kB SRAM for Ethernet,
24
16 kB SRAM for USB and general purpose use, together with 2 kB battery powered SRAM
makes this device very well suited for communication gateways and protocol converters. Various
32-bit timers, an improved 10-bit ADC, 10-bit DAC, one PWM unit, a CAN control unit, and up
to 70 fast GPIO lines with up to 12 edge or level sensitive external interrupt pins make this
microcontroller particularly suitable for industrial control and medical systems.
The LPC2378 Microcontroller provides on-chip boot-loader software that allows programming
of the internal flash memory over the serial channel. Philips provides a utility program for In-
System programming called Flash magic Software .
Fig 3.1: Flowchart
25
CHAPTER 4
RESULTS AND CONCLUSION
Embedded ARM processor based automatic speed control DC motor fan is designed and
implemented .To test the validity of the design, the temperature sensor is kept inside a small
oven and its temperature is increased beyond the room temperature. Now the fan is operated to
run with full speed and the temperature is found to come back to normal temperature. This is
repeated with various VLSI chips like Pentium processor, FPGA chips etc. Now the temperature
sensor is kept very near to the Pentium processor of the computer and it is observed that, as the
time lapses the speed of the fan is automatically increased and the temperature of the chip is
found to be controlled. These results are displayed on LCD panel. Though the present system is
working well in the given environment, still it is worthwhile to highlight the following
conclusions.
Normally, controlling fan speed or clock throttling based on temperature requires that the
temperature of the high speed chip should be first measured. This is done by placing a
temperature sensor close to the target chip either directly next to it or in some cases, under it or
on the heat sink. The temperature measured in this way corresponds to that of the high speed
chip, but can be significantly lower and the difference between measured temperature and the
actual die temperature increases as the power dissipation increases. So, the temperature of the
circuit board or heat sink must be correlated to the die temperature of the high speed chip. Of
course a better alternative is possible with a number of high speed chips. Many CPUs, FPGAs
and other high speed ICs include a thermal diode which is actually a diode connected bipolar
26
transistor, on the die. Using a remote diode temperature sensor connected to this thermal diode,
the temperature of the high speed IC’s die can be measured directly with an excellent accuracy.
This not only eliminates the large temperature gradients involved in measuring temperature
outside the target IC’s package, but it also eliminates the long thermal time constants, from
several seconds to minutes, that cause delays in responding to die temperature changes.
There is also a drawback in fan speed control. Normally the fan speed is controlled by adjusting
the power supply voltage of the fan. This is done by a low-frequency PWM signal, usually in the
range of about 50 Hz, whose duty cycle is varied to adjust the fan’s speed. This is inexpensive
and also efficient. But the disadvantage of this method is that it makes the fan somewhat nosier
because of the pulsed nature of the power supply. The PWM waveforms fast edges cause the
fans mechanical structure to move, which is easily audible.
In some systems, it is also important to limit the rate of change of the fan speed. This is critical
when the system is in close proximity to users. Simply switching a fan on and off or changing
speed immediately as temperature changes is acceptable in some environments. But when users
are in nearby, the sudden changes in fans noise are highly annoying. So to avoid these effects the
fan’s drive signal must be limited to an acceptable level.
27
CHAPTER 5
FUTURE SCOPE
In the present work temperature is sensed using the temperature sensor LM35 and the speed of
the motor is controlled by varying the width of PWM generated by the processor. But the
temperature sensed by the IC LM35 is not very accurate even though we keep the IC very near to
the processor or VLSI chip. So, we can use a remote diode temperature sensor connected to the
thermal diode which measures the temperature of the high speed ICs directly with excellent
accuracy. Another important aspect is a variety of remote temperature sensors with up to five
sensing channels is available that can detect the die temperature of the high speed chip and
transmit temperature data to a microcontroller.
Fan speed regulators with multiple channels of fan tachometer monitoring can provide reliable
control of fan RPM or supply voltage based on commands from an external microcontroller. For
this simple ICs are provided by MAXIM MAX6660 and MAX6653. The first IC can sense the
remote temperature and controls the fan speed based on that temperature. It produces a DC
supply voltage for the fan through an internal power transistor. The second IC also performs a
similar function but drives the fan with a PWM waveform through an external pass transistor.
Both include complete thermal fault monitoring with over temperature outputs, which can be
used to shut down the system if the high speed chips get too hot. So, the present work can be
improved further by using the above mentioned techniques.
28
SUMMARY
This paper presents embedded processor based automatic temperature control of VLSI chips,
using temperature sensor LM35 and ARM processor LPC2378. Due to the very high packing
density, VLSI chips get heated very soon and if not cooled properly, the performance is very
much affected. In the present work, the sensor which is kept very near proximity to the IC will
sense the temperature and the speed of the fan arranged near to the IC is controlled based on the
PWM signal generated by the ARM processor. A buzzer is also provided with the hardware, to
indicate either the failure of the fan or overheating of the IC.
29
REFERENCES
Philips Semiconductors – LPC2378 Manual.
en.wikipedia.org/wiki/ARM_architecture
ARM Architecture Reference Manual, Addison-Wesley, 2001
ARM7TDMI-S Revision: r4p3Technical Reference Manual
30