Module 3. Embedded Systems I/O. Version 2 EE IIT, Kharagpur 1

Similar documents
CoE3DJ4 Digital Systems Design. Chapter 4: Timer operation

Flash Microcontroller. Memory Organization. Memory Organization

NTE2053 Integrated Circuit 8 Bit MPU Compatible A/D Converter

8254 PROGRAMMABLE INTERVAL TIMER

Experiment # 9. Clock generator circuits & Counters. Eng. Waleed Y. Mousa

Module 3: Floyd, Digital Fundamental

ETEC 2301 Programmable Logic Devices. Chapter 10 Counters. Shawnee State University Department of Industrial and Engineering Technologies

DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING Question Bank Subject Name: EC Microprocessor & Microcontroller Year/Sem : II/IV

Interfacing Analog to Digital Data Converters

Digital Systems Based on Principles and Applications of Electrical Engineering/Rizzoni (McGraw Hill

Real-Time Clock. * Real-Time Computing, edited by Duncan A. Mellichamp, Van Nostrand Reinhold

CHAPTER 11: Flip Flops

Microtronics technologies Mobile:

ARM Thumb Microcontrollers. Application Note. Software ISO 7816 I/O Line Implementation. Features. Introduction

Serial Communications

8051 Serial Port. Crystal TXD. I/O Device RXD. Embedded Systems Peripherals

AVR Timer/Counter. Prof Prabhat Ranjan DA-IICT, Gandhinagar

MICROPROCESSOR. Exclusive for IACE Students iacehyd.blogspot.in Ph: /422 Page 1

Timer A (0 and 1) and PWM EE3376

ETEC Digital Controls PIC Lab 10 Pulse Width Modulation

(Refer Slide Time: 00:01:16 min)

Monitoring of Intravenous Drip Rate

DP8570A DP8570A Timer Clock Peripheral (TCP)

AUTOMATIC NIGHT LAMP WITH MORNING ALARM USING MICROPROCESSOR

DIGITAL COUNTERS. Q B Q A = 00 initially. Q B Q A = 01 after the first clock pulse.

Microprocessor & Assembly Language

Having read this workbook you should be able to: recognise the arrangement of NAND gates used to form an S-R flip-flop.

Chapter 9 Latches, Flip-Flops, and Timers

AVR131: Using the AVR s High-speed PWM. Introduction. Features. AVR 8-bit Microcontrollers APPLICATION NOTE

DS1621 Digital Thermometer and Thermostat

Contents COUNTER. Unit III- Counters

ASYNCHRONOUS COUNTERS

Chapter 13. PIC Family Microcontroller

PART B QUESTIONS AND ANSWERS UNIT I

Chapter 2 Logic Gates and Introduction to Computer Architecture

6-BIT UNIVERSAL UP/DOWN COUNTER

MICROPROCESSOR AND MICROCOMPUTER BASICS

8-Bit Flash Microcontroller for Smart Cards. AT89SCXXXXA Summary. Features. Description. Complete datasheet available under NDA

Programming Logic controllers

DS1104 R&D Controller Board

DS1621 Digital Thermometer and Thermostat

Flip-Flops, Registers, Counters, and a Simple Processor

WEEK 8.1 Registers and Counters. ECE124 Digital Circuits and Systems Page 1

Design and Implementation of Home Monitoring System Using RF Technology

Take-Home Exercise. z y x. Erik Jonsson School of Engineering and Computer Science. The University of Texas at Dallas

DIGITAL ELECTRONICS. Counters. By: Electrical Engineering Department

Microcontrollers in Practice

Counters and Decoders

8051 MICROCONTROLLER COURSE

Counters. Present State Next State A B A B

Cascaded Counters. Page 1 BYU

Section 14. Compare/Capture/PWM (CCP)

Chapter 4 Register Transfer and Microoperations. Section 4.1 Register Transfer Language

Lab Experiment 1: The LPC 2148 Education Board

Lecture-3 MEMORY: Development of Memory:

Ultrasound Distance Measurement

Digital Logic Design Sequential circuits

COMBINATIONAL and SEQUENTIAL LOGIC CIRCUITS Hardware implementation and software design

2.0 Command and Data Handling Subsystem

Lesson 12 Sequential Circuits: Flip-Flops

Flexible Active Shutter Control Interface using the MC1323x

Timer Value IRQ IACK

HD61202U. (Dot Matrix Liquid Crystal GraphicDisplay Column Driver)

DIGITAL-TO-ANALOGUE AND ANALOGUE-TO-DIGITAL CONVERSION

Lecture N -1- PHYS Microcontrollers

Sequential Logic Design Principles.Latches and Flip-Flops

DIGITAL TECHNICS II. Dr. Bálint Pődör. Óbuda University, Microelectronics and Technology Institute. 2nd (Spring) term 2012/2013

Decimal Number (base 10) Binary Number (base 2)

Am186ER/Am188ER AMD Continues 16-bit Innovation

CSE2102 Digital Design II - Topics CSE Digital Design II

a8251 Features General Description Programmable Communications Interface

INTEGRATED CIRCUITS. For a complete data sheet, please also download:

Freescale Semiconductor, Inc. Product Brief Integrated Portable System Processor DragonBall ΤΜ

Develop a Dallas 1-Wire Master Using the Z8F1680 Series of MCUs

Pulse Width Modulation

HD44780U (LCD-II) (Dot Matrix Liquid Crystal Display Controller/Driver)

To design digital counter circuits using JK-Flip-Flop. To implement counter using 74LS193 IC.

DS1821 Programmable Digital Thermostat and Thermometer


Using the HT46R46 I/O Ports to Implement Half-Duplex SPI Communication

EE 42/100 Lecture 24: Latches and Flip Flops. Rev B 4/21/2010 (2:04 PM) Prof. Ali M. Niknejad

Lesson-16: Real time clock DEVICES AND COMMUNICATION BUSES FOR DEVICES NETWORK

8-bit Microcontroller. Application Note. AVR134: Real-Time Clock (RTC) using the Asynchronous Timer. Features. Theory of Operation.

MACHINE ARCHITECTURE & LANGUAGE

PACKAGE OUTLINE DALLAS DS2434 DS2434 GND. PR 35 PACKAGE See Mech. Drawings Section

ADS9850 Signal Generator Module

4 Character 5x7 LED Matrix Display

DS Real Time Clock FEATURES PIN ASSIGNMENT PIN DESCRIPTION

Interfacing To Alphanumeric Displays

Accurate Measurement of the Mains Electricity Frequency

8-bit Microcontroller with 2/4-Kbyte Flash AT89LP2052 AT89LP4052

PROGRAMMABLE LOGIC CONTROLLERS Unit code: A/601/1625 QCF level: 4 Credit value: 15 OUTCOME 3 PART 1

Below is a diagram explaining the data packet and the timing related to the mouse clock while receiving a byte from the PS-2 mouse:

Sequential Logic. (Materials taken from: Principles of Computer Hardware by Alan Clements )

DEPARTMENT OF INFORMATION TECHNLOGY

1. Learn about the 555 timer integrated circuit and applications 2. Apply the 555 timer to build an infrared (IR) transmitter and receiver

DAC Digital To Analog Converter

HD44780-Based LCD Modules. Introduction to the LM018L

Display Board Pulse Width Modulation (PWM) Power/Speed Controller Module

Transcription:

Module 3 Embedded Systems I/O Version 2 EE IIT, Kharagpur

Lesson 4 Timers Version 2 EE IIT, Kharagpur 2

Instructional Objectives After going through this lesson the student would learn Standard Peripheral Devices most commonly used in single purpose processors. They are Timers and Counter Basics Various Modes of Timer Operation The internal Timer of 85 A programmable interval timer 8253 Watchdog Timer and Watchdog circuit Pre-Requisite Digital Electronics, Microprocessors 4 Introduction The Peripherals of an embedded processor can either be on the same chip as the processor or can be connected externally. External Interrupts Interrupt Control On-Chip Flash On-Chip RAM ETC. Timer Timer Counter Inputs CPU Osc Bus Control 4I/O Ports Serial Port TXD RXD P P2 P P3 Fig. 4. Block Diagram of the basic 85 Architecture For example in a typical embedded processor as shown in Fig.4. timer, interrupt. Serial port and parallel ports reside on the single chip. These dedicated units are otherwise termed as single-purpose processor. These units are designed to achieve the following objectives. They can be a part of the microcontroller or can reside outside the chip and therefore should be properly interfaced with the processor. The tasks generally carried out by such units are Timers, counters, watchdog timers serial transmission Version 2 EE IIT, Kharagpur 3

analog/digital conversions Timer Timer is a very common and useful peripheral. It is used to generate events at specific times or measures the duration of specific events which are external to the processor. It is a programmable device, i.e. the time period can be adjusted by writing specific bit patterns to some of the registers called timer-control registers. Counter A counter is a more general version of the timer. It is used to count events in the form of pulses which is fed to it. Fig.4.2(a) shows the block diagram of a simple timer. This has a 6-bit up counter which increments with each input clock pulse. Thus the output value Cnt represents the number of pulses since the counter was last reset to zero. An additional output top indicates when the terminal count has been reached. It may go high for a predetermined time as set by the programmable control word inside the timer unit. The count can be loaded by the external program. Fig.4.2(b) provides the structure of another timer where a multiplexer is used to choose between an internal clock or external clock. The mode bit when set or reset decided the selection. For internal clock(clk) it behaves like the timer in Fig.4.2(a). For the external count in (cnt_in) it just counts the number of occurrences. Basic timer Timer/counter Clk 6-bit up counter 6 Cnt Clk 2x mux 6-bit up counter 6 Cnt Reset Fig. 4.2(a) Top Cnt_in Mode Reset Top Fig. 4.2(b) Fig.4.2(c) shows a timer with the terminal count. This can generate an event if a particular interval of time has been elapsed. The counter restarts after every terminal count. Version 2 EE IIT, Kharagpur 4

Timer with a terminal count Clk 6-bit up counter 6 Cnt Reset = Top Terminal count Fig. 4.2(c) Version 2 EE IIT, Kharagpur 5

Clock Amplitude Counter Value 2-2 5 5 2 25 3 Clock Pulse No. Reset and Reload the Timer with a new count each time 5 5 5 2 25 3 Clock Pulse No. 2 Output 5 5 2 25 3 Clock Pulse No. Fig. 4.3 The Timer Count and Output. The timer is in count-down mode. In every clock pulse the count is decremented by. When the count value reaches zero the output of the counter i.e. TOP goes high for a predetermined time. The counter has to be loaded with a new or previous value of the count by external program or it can be loaded automatically every time the count reaches zero. Timer in 85 Microcontroller Fig.4. shows the architecture of 85 which has got two timer units. The 85 comes equipped with two timers, both of which may be controlled, set, read, and configured individually. The 85 timers have three general functions: ) Keeping time and/or calculating the amount of time between events, 2) Counting the events themselves, or 3) Generating baud rates for the serial port. As mentioned before, the 85 has two timers which each function essentially the same way. One timer is TIMER and the other is TIMER. The two timers share two Special Function Registers(SFR) (TMOD and TCON) which control the timers, and each timer also has two SFRs dedicated solely to itself (TH/TL and TH/TL). Timer and Timer The Timer and Counter functions are selected in the Special Function Register TMOD. These two Timer/Counter have four operating modes which are selected by bit-pairs (M. M) in TMOD. Modes,, and 2 are the same for both Timer/Counters.Mode3 is different. Version 2 EE IIT, Kharagpur 6

MODE Either Timer in Mode is an 8-bit Counter with a divide-by-32 pre-scaler. In this mode, the Timer register is configured as a 3-Bit register. As the count rolls over from all s to all s, it sets the Timer interrupt flag TF. The counted input is enabled to the Timer whentr = and either = or INT=. (Setting = allows the Timer to be controlled by external input INT, to facilitate pulse width measurements.) OSC + 2 T PIN C/T = C/T = CONTROL TL (5 Bits) TH (8 Bits) TF INTERRUPT TR INT PIN Fig. 4.4 Timer/Counter Mode : 3-BitCounter (MSB) C/T M M C/T M (LSB) M Timer Timer M M Gating control when set. Timer/Counter x is enabled only while INTx pin is high and TRx control pin is set. When cleared Timer x is enabled whenever TRx control bit is set. C/T Timer or Counter Selector cleared for Timer operation (input from internal system clock). Set for Counter operation (input from Tx input pin). Operating Mode 8-bit Timer/Counter THx with TLx as 5-bit prescaler. 6-bit Timer/Counter THx and TLx are cascaded; there is no prescaler. 8-bit auto-reload Timer/Counter THx holds a value which is to be reloaded into TLx each time it overflows. (Timer ) TL is an 8-bit Timer/Counter controlled by the standard Timer control bits. THO is an 8-bit timer only controlled by Timer controls bits. (Timer ) Timer/Counter stopped. Mode Control Register (TMOD) Version 2 EE IIT, Kharagpur 7

(MSB) TF TR TF TR IE IT IE (LSB) IT Symbol Position Name and Significance Symbol Position Name and Significance TF TCON.7 Timer overflow Flag. Set by hardware on Timer/Counter overflow. Cleared by hardware when processor vectors to interrupt routine. IE TCON.3 Interrupt Edge flag. Set by hardware when external interrupt edge detected. Cleared when interrupt processed. TR TF TR TCON.6 TCON.5 TCON.4 Timer Run control bit. Set/cleared by software to turn Timer/Counter on/off. Timer overflow Flag. Set by hardware on Timer/Counter overflow. Cleared by hardware when processor vectors to interrupt routine. Timer Run control bit. Set/cleared by software to turn Timer/Counter on/off. IT IE IT TCON.2 TCON. TCON. Interrupt Type control bit. Set/cleared by software to specify falling edge/low level triggered external interrupts. Interrupt Edge flag. Set by hardware when external interrupt edge detected. Cleared when interrupt processed. Interrupt Type control bit. Set/cleared by software to specify falling edge/low level triggered external interrupts. Timer/Counter Control Register (TCON) MODE : Mode is the same as Mode, except that the Timer register is being run with all 6bits. OSC + 2 T PIN C/T = C/T = CONTROL TL (8 Bits) TF INTERRUPT TR RELOAD INT PIN TH (5 Bits) Fig. 4.5 MODE 2 configures the Timer register as an 8-bit counter with automatic reload Version 2 EE IIT, Kharagpur 8

OSC + 2 /2 f OSC /2 f OSC T PIN C/T = C/T = CONTROL TL (8 Bits) TF INTERRUPT TR INT PIN /2 f OSC TH (8 Bits) TF INTERRUPT TR CONTROL Fig. 4.6 MODE 3: Timer simply holds its count. Timer in Mode 3 establishes TL and TH as two separate counters. The Programmable Interval Timer 8253 For processors where the timer unit is not internal the programmable interval timer can be used. Fig.4.7 shows the signals for 8253 programmable interval timer. D7 D6 D5 D4 D3 D2 D D CLK OUT GND 2 3 4 5 6 7 8 9 2 8 2 5 3 24 23 22 2 2 9 8 7 6 5 4 3 Vcc RD CS A A CLK 2 OUT 2 2 CLK OUT Version 2 EE IIT, Kharagpur 9

Microprocessor interface D7 D Counter input/output CLK OUT RD A A CS 8253 CLK OUT CLK 2 2 OUT 2 Fig. 4.7 The pin configuration of the timer Fig.4.8 shows the internal block diagram. There are three separate counter units controlled by configuration register (Fig.4.9). Each counter has two inputs, clock and gate and one output. The clock is signal that helps in counting by decrementing a preloaded value in the respective counter register. The gate serves as an enable input. If the gate is maintained low the counting is disabled. The timing diagram explains in detail about the various modes of operation of the timer. CLK D 7 D RD A A CS Power supplies Vcc GND Data Bus Buffer Read Write Control Logic Control Word Register Internal Bus Counter # Counter # Counter #2 OUT CLK OUT CLK2 2 OUT2 Fig. 4.8 The internal block diagram of 8253 Table The address map Version 2 EE IIT, Kharagpur

CS A A Port Counter Counter Counter 2 Control register D7 D6 D5 D4 D3 D2 D D SC SC RL RL M2 M M BCD Binary counter (6-bit) BCD (4 decades) Mode Mode Mode 2 Mode 3 Mode 4 Mode 5 Counter latching operation Road/load LSB only Road/load MSB only Road/load LSB first, then MSB Select counter Select counter Select counter 2 Illegal Fig. 4.9 Control Register 8253 Operating Modes Mode Interrupt on terminal count Mode Programmable one shot Mode 2 Rate Generator Mode 3 Square wave rate Generator Mode 4 Software triggered strobe Mode 5 Hardware triggered strobe Version 2 EE IIT, Kharagpur

Mode : The output goes high after the terminal count is reached. The counter stops if the Gate is low. (Fig.4.(a) & (b)). The timer count register is loaded with a count (say 6) when the line is made low by the processor. The counter unit starts counting down with each clock pulse. The output goes high when the register value reaches zero. In the mean time if the is made low (Fig.4.(b)) the count is suspended at the value(3) till the is enabled again. CLK OUT 6 5 4 3 2 Fig. 4.(a) Mode count when Gate is high (enabled) CLK OUT 6 5 4 3 3 3 2 Fig. 4.(b) Mode count when Gate is low temporarily (disabled) Mode Programmable mono-shot The output goes low with the Gate pulse for a predetermined period depending on the counter. The counter is disabled if the pulse goes momentarily low. The counter register is loaded with a count value as in the previous case (say 5) (Fig.4.(a)). The output responds to the input and goes low for period that equals the count down period of the register (5 clock pulses in this period). By changing the value of this count the duration of the output pulse can be changed. If the becomes low before the count down is Version 2 EE IIT, Kharagpur 2

completed then the counter will be suspended at that state as long as is low (Fig.4.(b)). Thus it works as a mono-shot. CLK (trigger) OUT 5 4 3 2 Fig. 4.(a) Mode The Gate goes high. The output goes low for the period depending on the count CLK (trigger) OUT 4 3 3 4 3 2 Fig. 4.(b) Mode The Gate pulse is disabled momentarily causing the counter to stop. Mode 2 Programmable Rate Generator Fig.4.2(a) and (b) shows the waveforms corresponding the Timer operation in this mode. In this mode it operates as a rate generator. The output goes high for a period that equals the time of count down of the count register (3 in this case). The output goes low exactly for one clock period before it becomes high again. This is a periodic operation. Version 2 EE IIT, Kharagpur 3

CLK OUT 3 2 3 2 Fig. 4.2(a) Mode 2 Operation when the is kept high CLK OUT 3 2 3 3 2 Fig. 4.2(b) Mode 2 operation when the is disabled momentarily. Mode 3 Programmable Square Wave Rate Generator It is similar to Mode 2 but the output high and low period is symmetrical. The output goes high after the count is loaded and it remains high for period which equals the count down period of the counter register. The output subsequently goes low for an equal period and hence generates a symmetrical square wave unlike Mode 2. The has no role here. (Fig.4.3). Version 2 EE IIT, Kharagpur 4

CLK n=4 OUT (n=4) OUT (n=5) Fig. 4.3 Mode3 Operation: Square Wave generator Mode 4 Software Triggered Strobe In this mode after the count is loaded by the processor the count down starts. The output goes low for one clock period after the count down is complete. The count down can be suspended by making the low (Fig.4.4(a) (b)). This is also called a software triggered strobe as the count down is initiated by a program. CLK OUT 4 3 2 Fig. 4.4(a) Mode 4 Software Triggered Strobe when is high Version 2 EE IIT, Kharagpur 5

CLK OUT 4 3 3 2 Fig. 4.4(b) Mode 4 Software Triggered Strobe when is momentarily low Mode 5 Hardware Triggered Strobe The count is loaded by the processor but the count down is initiated by the pulse. The transition from low to high of the pulse enables count down. The output goes low for one clock period after the count down is complete (Fig.4.5). CLK OUT 5 4 3 2 Fig. 4.5 Mode 5 Hardware Triggered Strobe Version 2 EE IIT, Kharagpur 6

Watchdog timer A Watchdog Timer is a circuit that automatically invokes a reset unless the system being watched sends regular hold-off signals to the Watchdog. Watchdog Circuit To make sure that a particular program is executing properly the Watchdog circuit is used. For instance the program may reset a particular flip-flop periodically. And the flip-flop is set by an external circuit. Suppose the flip-flop is not reset for long time it can be known by using external hardware. This will indicate that the program is not executed properly and hence an exception or interrupt can be generated. Watch Dog Timer(WDT) provides a unique clock, which is independent of any external clock. When the WDT is enabled, a counter starts at and increments by until it reaches FF. When it goes from FF to (which is FF + ) then the processor will be reset or an exception will be generated. The only way to stop the WDT from resetting the processor or generating an exception or interrupt is to periodically reset the WDT back to throughout the program. If the program gets stuck for some reason, then the WDT will not be set. The WDT will then reset or interrupt the processor. An interrupt service routine will be invoked to take into account the erroneous operation of the program. (getting stuck or going into infinite loop). Conclusion In this chapter you have learnt about the programmable timer/counter. For most of the embedded processors the timer is internal and exists along with the processor on the same chip. The 85 microcontroller has 3 different internal timers which can be programmed in various modes by the configuration and mode control register. An external timer chip namely 8253 has also been discussed. It has 8 data lines 2 data lines, chip select line and one read and one write control line. The 6 bit counts of the corresponding registers can be loaded with two consecutive write operations. Counters and Timers are used for triggering, trapping and managing various real time events. The least count of the timer depend on the clock. The stability of the clock decides the accuracy of the timings. Timers can be used to generate specific baud rate clocks for asynchronous serial communications. It can be used to measure speed, frequency and analog voltages after Voltage to Frequency conversion. One important application of timer is to generate Pulse-Width-Modulated (PWM) waveforms. In 8253 the and pulse together can be used together to generate pulse with different widths. These modulated pulses are used in electronic power control to reduce harmonics and hence distortions. You also learnt about the Watch dog circuit and Watch dog timers. These are used to monitor the activity of a program and the processor. Questions Q. Design a circuit using 8253 to measure the speed of any motor by counting the number of pulses in definite period. Q2. Write a pseudo code (any assembly code) to generate sinusoidal pulse width modulated waveform from the 8253 timer. Version 2 EE IIT, Kharagpur 7

Q3. Design a scheme to read temperature from a thermister circuit using a V/F converter and Timer. Q4. What are the differences in Mode 4 and Mode 5 operation of 8253 Timer? Q5. Explain the circuit given in Fig.4.5. Version 2 EE IIT, Kharagpur 8