4-Integrating Peripherals in Embedded Systems

Slides:



Advertisements
Similar presentations
INPUT-OUTPUT ORGANIZATION
Advertisements

CPE 201 Digital Design Lecture 25: Register Transfer Level Design (2)
Lecture 23: Registers and Counters (2)
Review: Interrupts & Timers
4-1 Timers Timers can be used for  timing  event counting  pulse width measurement  pulse generation  frequency multiplication There are 8 Timers.
Embedded Systems Design: A Unified Hardware/Software Introduction 1 Chapter 3: Standard Single Purpose Processors - Peripherals.
Lecture 8: Serial Interfaces
Counter Circuits and VHDL State Machines
Embedded Systems Design: A Unified Hardware/Software Introduction 1 Chapter 4 Standard Single Purpose Processors: Peripherals.
5-1 Timer/Counters In many microprocessor systems we need to:  count logic pulses  measure the frequency of signals  measure the period of pulses 
Standard Single Purpose Processors: Peripherals. This Week In DIG II  Timers and counters  Watchdog timers  UART (Universal asynchronous receiver /
7-1 Digital Serial Input/Output Two basic approaches  Synchronous shared common clock signal all devices synchronised with the shared clock signal data.
Embedded Systems Design: A Unified Hardware/Software Introduction 1 Chapter 4 Standard Single Purpose Processors: Peripherals ECE 4330 Embedded System.
INPUT-OUTPUT ORGANIZATION
Chapter 4 Standard Single Purpose Processors: Peripherals
Renesas Electronics Europe GmbH A © 2010 Renesas Electronics Corporation. All rights reserved. RL78 Clock Generator.
1 Chapter 4 Timer Operation (I. Scott MacKenzie).
7/23 Timers in Coldfire Processor Computer Science & Engineering Department Arizona State University Tempe, AZ Dr. Yann-Hang Lee (480)
ARM Timers.
1 4-Integrating Peripherals in Embedded Systems. 2 Introduction Single-purpose processors  Performs specific computation task  Custom single-purpose.
System Clocks.
Chapter 4 TIMER OPERATION
MICROPROCESSOR INPUT/OUTPUT
Lecture Set 9 MCS-51 Serial Port.
AT91 Embedded Peripherals
Lecture 20: Communications Lecturers: Professor John Devlin Mr Robert Ross.
Universal Asynchronous Receiver/Transmitter (UART)
Counter Application (Part B) By : Pn Siti Nor Diana Ismail CHAPTER 3.
Advanced Microprocessor1 I/O Interface Programmable Interval Timer: 8254 Three independent 16-bit programmable counters (timers). Each capable in counting.
 8251A is a USART (Universal Synchronous Asynchronous Receiver Transmitter) for serial data communication.  Programmable peripheral designed for synchronous.
Universal Asynchronous Receiver/Transmitter (UART)
Timer Timer is a device, which counts the input at regular interval (δT) using clock pulses at its input. The counts increment on each pulse and store.
Embedded Systems Design: A Unified Hardware/Software Introduction 1 Chapter 4 Standard Single Purpose Processors: Peripherals.
CSCI1600: Embedded and Real Time Software Lecture 16: Advanced Programming with I/O Steven Reiss, Fall 2015.
CE-2810 Dr. Mark L. Hornick 1 Serial Communications Sending and receiving data between devices.
Networked Embedded Systems Pengyu Zhang & Sachin Katti EE107 Spring 2016 Lecture 4 Timers and Interrupts.
1 4-Integrating Peripherals in Embedded Systems. 2 Introduction Single-purpose processors  Performs specific computation task  Custom single-purpose.
Application Case Study Security Camera Controller
Timers and Event Counters
Serial mode of data transfer
Networked Embedded Systems Sachin Katti
Homework Reading Machine Projects Labs
Timer and Interrupts.
ECE 353 Introduction to Microprocessor Systems
Instructor: Alexander Stoytchev
4-Integrating Peripherals in Embedded Systems
ECEN 248 Lab 9: Design of a Traffic Light Controller
AVR Addressing Modes Subject: Microcontoller & Interfacing
1 Input-Output Organization Computer Organization Computer Architectures Lab Peripheral Devices Input-Output Interface Asynchronous Data Transfer Modes.
Project Title EVM IN PIC Under the Guidance of Submitted by.
Instructor: Alexander Stoytchev
Computer Organization and Design
Introduction to Microprocessors and Microcontrollers
CSCI1600: Embedded and Real Time Software
Example 9 Binary to ASCII String Conversion
Example 6 Hex Keypad Lecture L3.2.
Example 15 Interrupt-Driven Controller
Serial Communication Interface: Using 8251
Example 7 Liquid Crystal Display
Md. Mojahidul Islam Lecturer Dept. of Computer Science & Engineering
Md. Mojahidul Islam Lecturer Dept. of Computer Science & Engineering
8051 Micro Controller.
Example 18 Pulse Train Using Interrupts
Chapter 4 Standard Single Purpose Processors: Peripherals
8253 – PROGRAMMABLE INTERVAL TIMER (PIT). What is a Timer? Timer is a specialized type of device that is used to measure timing intervals. Timers can.
Chapter 4 Standard Single Purpose Processors: Peripherals
Wireless Embedded Systems
Compiled by Dr. N.Shanmugasundaram, HOD, ECE Dept, SECE.
Chapter 4 Standard Single Purpose Processors: Peripherals
Chapter 4 Standard Single Purpose Processors: Peripherals
Presentation transcript:

4-Integrating Peripherals in Embedded Systems

Introduction Single-purpose processors Performs specific computation task Custom single-purpose processors Designed by us for a unique task Standard single-purpose processors “Off-the-shelf” -- pre-designed for a common task a.k.a., peripherals serial transmission analog/digital conversions

Timers, counters, watchdog timers Timer: measures time intervals To generate timed output events e.g., hold traffic light green for 10 s To measure input events e.g., measure a car’s speed Based on counting clock pulses E.g., let Clk period be 10 ns And we count 20,000 Clk pulses Then 200 microseconds have passed 16-bit counter would count up to 65,535*10 ns = 655.35 microsec., resolution = 10 ns Top: indicates top count reached, wrap-around 16-bit up counter Clk Cnt Basic timer Top Reset 16

Counters Counter: like a timer, but counts pulses on a general input signal rather than clock e.g., count cars passing over a sensor Can often configure device as either a timer or counter 16-bit up counter Clk 16 Cnt_in 2x1 mux Mode Timer/counter Top Reset Cnt

Other timer structures Interval timer Indicates when desired time interval has passed We set terminal count to desired interval Number of clock cycles = Desired time interval / Clock period Cascaded counters Prescaler Divides clock Increases range, decreases resolution 16-bit up counter Clk 16 Cnt2 Top1 16/32-bit timer Cnt1 16-bit up counter Clk 16 Terminal count = Top Reset Timer with a terminal count Cnt Top2 Time with prescaler 16-bit up counter Clk Prescaler Mode

Example: Reaction Timer indicator light reaction button time: 100 ms LCD /* main.c */ #define MS_INIT 63535 void main(void){ int count_milliseconds = 0; configure timer mode set Cnt to MS_INIT wait a random amount of time turn on indicator light start timer while (user has not pushed reaction button){ if(Top) { stop timer reset Top count_milliseconds++; } turn light off printf(“time: %i ms“, count_milliseconds); Measure time between turning light on and user pushing button 16-bit timer, clk period is 83.33 ns, counter increments every 6 cycles Resolution = 6*83.33=0.5 microsec. Range = 65535*0.5 microseconds = 32.77 milliseconds Want a program to count increments of 1 millisec. So, we initialize an up counter to 65535 – 1000/0.5 = 63535: MaxCount - Time needed/ resolution=initial count

Watchdog timer Must reset timer every X time unit, else timer generates a signal Common use: detect failure, self-reset Another use: timeouts e.g., ATM machine Scalereg: 11-bit timer, 1μsec resolution. Scalereg Top signal toggles every 211*1μsec= 2.048 msec Hence, Timereg: 16-bit timer, 2 msec. resolution timereg value = maxCnt-time needed/resoloution X = 65535-2min/2msec X=65535-2*60/0.002 X=5535 scalereg checkreg timereg to system reset or interrupt osc clk prescaler Top overflow 12 MHz 1MHz X 11 bit Up counter 16 bit Up counter 0 disable 1 enable /* main.c */ main(){ wait until card inserted call watchdog_reset_routine while(transaction in progress){ if(button pressed){ perform corresponding action } /* if watchdog_reset_routine not called every < 2 minutes, interrupt_service_routine is called */ watchdog_reset_routine(){ /* checkreg is set so we can load value into timereg. Zero is loaded into scalereg and 11070 is loaded into timereg */ checkreg = 1 scalereg = 0 timereg = 5535 } void interrupt_service_routine(){ eject card reset screen

Software based timers 500x6248=3,124,000 times. // Example 2a: Binary count on LEDs #include <hidef.h> /* common defines and macros */ #include <mc9s12dg256.h> /* derivative information */ #pragma LINK_INFO DERIVATIVE "mc9s12dg256b" #include "main_asm.h" /* interface to the assembly module */ void delay(void); void main(void) { int i; PLL_init(); // set system clock frequency to 24 MHz led_enable(); // enable LEDs seg7_disable(); // diable 7-segment displays while(1){ for (i=0;i<256;i++) { leds_on(i); // display i as binary on LEDs delay(); } void delay() { int i,j; for(i=0;i<500;i++) { for (j=0;j<6248;j++){ //do nothing..just spend time 500x6248=3,124,000 times. Bus frequency 24MHz, assume the no-op inner loop takes 4 clock cycles: 4*3,124,000/24,000,000=0.52 seconds

Serial Transmission Using UARTs UART: Universal Asynchronous Receiver Transmitter Takes parallel data and transmits serially Receives serial data and converts to parallel Parity: extra bit for simple error checking Start bit, stop bit Baud rate signal changes per second bit rate usually higher embedded device 1 Sending UART Receiving UART start bit data end bit

Serial Transmission Using UARTs Clocks on sender and receiver are never exactly in sync Requires synchronization of receiver High-low transition signals frame boundary

UART Tx Signals Example for two transmissions

UART Receiving example 2-byte FIFO

Example UART /MAX 232 interface

MAX232 The MAX232 is a dual driver/receiver that includes a capacitive voltage generator to supply standard voltage levels for TIA/EIA-232-F interface. Uses a single 5-V supply. Each receiver converts TIA/EIA-232-F inputs to 5-V TTL/CMOS levels. These receivers have a typical threshold of 1.3 V, a typical hysteresis of 0.5 V, and can accept ±30-V inputs. Each driver converts TTL/CMOS input levels into TIA/EIA-232-F levels.

MAX232

MAX232: Receiver

MAX232: Driver