EECS 373 Design of Microprocessor-Based Systems

Similar documents
EECS 373 Design of Microprocessor-Based Systems

EECS 373 Design of Microprocessor-Based Systems

Serial Peripheral Interface. What is it? Basic SPI. Capabilities. Protocol. Pros and Cons. Uses

18-349: Introduction to Embedded Real-Time Systems

Amarjeet Singh. January 30, 2012

Serial Communication. Spring, 2018 Prof. Jungkeun Park

Growing Together Globally Serial Communication Design In Embedded System

Basics of UART Communication

Introduction to I2C & SPI. Chapter 22

or between microcontrollers)

e-pg Pathshala Subject : Computer Science Paper: Embedded System Module: Serial Port Communication Module No: CS/ES/11 Quadrant 1 e-text

Universität Dortmund. IO and Peripheral Interfaces

Design and development of embedded systems for the Internet of Things (IoT) Fabio Angeletti Fabrizio Gattuso

Serial Communication. Simplex Half-Duplex Duplex

Serial Communication Prof. James L. Frankel Harvard University. Version of 2:30 PM 6-Oct-2015 Copyright 2015 James L. Frankel. All rights reserved.

Design Development and Implementation of SPI

Real-Time Embedded Systems. CpE-450 Spring 06

Sender Receiver Sender

EECS 373 Design of Microprocessor-Based Systems

Hello, and welcome to this presentation of the STM32 Universal Synchronous/Asynchronous Receiver/Transmitter Interface. It covers the main features

UART TO SPI SPECIFICATION

Parallel Data Transfer. Suppose you need to transfer data from one HCS12 to another. How can you do this?

Raspberry Pi - I/O Interfaces

Interfacing Techniques in Embedded Systems

Microcontroller basics

SPI (Serial & Peripheral Interface)

EECS 373 Design of Microprocessor-Based Systems

EECS 373 Design of Microprocessor-Based Systems

CprE 488 Embedded Systems Design. Lecture 4 Interfacing Technologies

Serial Communications

ELE492 Embedded System Design

Prototyping Module Datasheet

Serial Interfaces Part 1. ECE 153B Sensor & Peripheral Interface Design Winter 2016

Select a Data Communication Interface

TKT-3500 Microcontroller systems

Introduction the Serial Communications Parallel Communications Parallel Communications with Handshaking Serial Communications

8051SERIAL PORT PROGRAMMING

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY. Serial Data Transmission (Stručný přehled) České vysoké učení technické Fakulta elektrotechnická

Embedded Systems and Software

Serial Communications

AN10428 UART-SPI Gateway for Philips SPI slave bridges

Electronics Single wire communication

By: Haron Abdel-Raziq

Integrity Instruments Application Notes. Release 1

Hello, and welcome to this presentation of the STM32 Low Power Universal Asynchronous Receiver/Transmitter interface. It covers the main features of

Pmod modules are powered by the host via the interface s power and ground pins.

Informatics for industrial applications

Dariusz Makowski Department of Microelectronics and Computer Science tel

SPI Universal Serial Communication Interface SPI Mode

Embedded Systems and Software. Serial Communication

ECE251: Thursday November 8

Communication. Chirag Sangani

Serial Communication. Simplex Half-Duplex Duplex

McMaster University Embedded Systems. Computer Engineering 4DS4 Lecture 6 Serial Peripherals Amin Vali Feb. 2016

EASY219 / IEC CANopen Master / Slave

ECE 1160/2160 Embedded Systems Design. Midterm Review. Wei Gao. ECE 1160/2160 Embedded Systems Design

I2C a learn.sparkfun.com tutorial

HZX N03 Bluetooth 4.0 Low Energy Module Datasheet

Lecture 5: Computing Platforms. Asbjørn Djupdal ARM Norway, IDI NTNU 2013 TDT

How to create your own peripheral modules for use with the ARC EMSK and embarc

PCI Host Controller 14a Hardware Reference Release 1.2 (October 16, 2017)

An SPI interface for the 65(C)02 family of microprocessors

ISA Host Controller 15a Hardware Reference Release 1.2 (October 16, 2017)

EECS 373 Design of Microprocessor-Based Systems

UNIT IV SERIAL COMMUNICATIONS

Learn how to communicate

Network Embedded Systems Sensor Networks Fall Hardware. Marcus Chang,

Part 1 Using Serial EEPROMs

ELEG3923 Microprocessor Ch.10 Serial Port Programming

NS9750B-0. Use in conjunction with: Errata , Rev G. Release date: May Phone: Web:

Serial Interfacing. Asynchronous Frame

Lecture 25 March 23, 2012 Introduction to Serial Communications

Digital Circuits Part 2 - Communication

< W3150A+ / W5100 Application Note for SPI >

IV B.Tech. I Sem (R13) ECE : Embedded Systems : UNIT -4 1 UNIT 4

PARALLEL COMMUNICATIONS

Introduction. Serial Peripheral Interface (SPI) SPI Basics. Capabilities of SPI

Chapter 11: Input/Output Organisation. Lesson 05: Asynchronous RS232C Serial Port data transfer

To be familiar with the USART (RS-232) protocol. To be familiar with one type of internal storage system in PIC (EEPROM).

MCS-51 Serial Port A T 8 9 C 5 2 1

ECE 471 Embedded Systems Lecture 20

Serial communication

RS485 3 click. How does it work? PID: MIKROE-2821

Lecture 14 Serial Peripheral Interface

Raspberry Pi. Hans-Petter Halvorsen, M.Sc.

Hierarchy of I/O Control Devices

3.3V regulator. JA H-bridge. Doc: page 1 of 7

Introduction the Serial Communications Huang Sections 9.2, 10.2 SCI Block User Guide SPI Block User Guide

RS-232 DATA COMMUNICATIONS WITH THE TANDY COLOR COMPUTER

PRACTICAL DESIGN TECHNIQUES FOR SENSOR SIGNAL CONDITIONING

Digital Storage Oscilloscope

8051 Microcontroller

Design with Microprocessors

School of Computer Science Faculty of Engineering and Computer Science Student ID Number. Lab Cover Page. Lab Date and Time:

8051 Serial Communication

1 The Attractions of Soft Modems

Design of Microprocessor-Based Systems Part II

EECS 373 Design of Microprocessor-Based Systems

Case USB-MUX-4C2L 4 CAN - 2 LIN/ISO

EE 456 Fall, Table 1 SPI bus signals. Figure 1 SPI Bus exchange of information between a master and a slave.

Transcription:

EECS 7 Design of Microprocessor-Based Systems Matt Smith University of Michigan Serial buses, digital design Material taken from Brehob, Dutta, Le, Ramadas, Tikhonov & Mahal 1 Timer Program //Setup Timer Count: Interrupt ISR //Do Something 1

Virtual Timer Virtual Event Queue Program 1 //Setup Timer @ //Setup Timer @5 Program Virtual Timer Code //Update Event Queue //Adjust Timer if needed Count: Interrupt //Setup Timer @D Program //Setup Timer @D7 Program 4 //Setup Timer @4 Program 1-Handler //Do Seomthing Program -Handler //Do Something Program -Handler //Do Something Program 4 -Hanlder //Do Something Virtual ISR //Figure out source bl bl bl bl //Insert new event? //Set new time Event Queue Program 1 //Setup Timer @ //Setup Timer @5 Head Ptr Null Count: Program //Setup Timer @D Program //Setup Timer @D7 Program 4 //Setup Timer @4 4

Event Queue Program 1 //Setup Timer @ //Setup Timer @5 Program Head Ptr Count: //Setup Timer @D Program //Setup Timer @D7 Program 4 //Setup Timer @4 5 Event Queue Program 1 //Setup Timer @ //Setup Timer @5 Program Head Ptr Count: //Setup Timer @D Program //Setup Timer @D7 5 Program 4 //Setup Timer @4 6

Event Queue Program 1 //Setup Timer @ //Setup Timer @5 Program Head Ptr Count: //Setup Timer @D Program //Setup Timer @D7 Program 4 //Setup Timer @4 5 7 Event Queue Program 1 //Setup Timer @ //Setup Timer @5 Program Head Ptr Count: //Setup Timer @D Program //Setup Timer @D7 Program 4 //Setup Timer @4 5 8 4

Event Queue Program 1 //Setup Timer @ //Setup Timer @5 Program Head Ptr Count: //Setup Timer @D Program //Setup Timer @D7 Program 4 //Setup Timer @4 5 7 7 9 Event Queue Program 1 //Setup Timer @ //Setup Timer @5 Program Head Ptr Count: //Setup Timer @D Program //Setup Timer @D7 Program 4 //Setup Timer @4 4 5 7 7 10 5

Event Queue Program 1 //Setup Timer @ //Setup Timer @5 Program Head Ptr Count: 0 //Setup Timer @D Program //Setup Timer @D7 Program 4 //Setup Timer @4 4 5 7 7 11 Event Queue Program 1 //Setup Timer @ //Setup Timer @5 Program Head Ptr Count: 0 //Setup Timer @D Program //Setup Timer @D7 Program 4 //Setup Timer @4 4 5 Virtual ISR //Figure out source //Remove head //Insert new event? //Set new time 7 7 1 6

Event Queue Program 1 //Setup Timer @ //Setup Timer @5 Head Ptr Count: 0 Program //Setup Timer @D Program //Setup Timer @D7 Program 4 //Setup Timer @4 1 Virtual ISR //Figure out source //Remove head //Insert new event? //Set new time 5 7 1 Event Queue Program 1 //Setup Timer @ //Setup Timer @5 Program Head Ptr 1 Count: 0 //Setup Timer @D Program //Setup Timer @D7 Program 4 //Setup Timer @4 Virtual ISR //Figure out source //Remove head //Insert new event? //Set new time 5 7 14 7

Event Queue Program 1 //Setup Timer @ //Setup Timer @5 Program Head Ptr 1 Count: 1 //Setup Timer @D Program //Setup Timer @D7 Program 4 //Setup Timer @4 Virtual ISR //Figure out source //Remove head //Insert new event? //Set new time 5 7 15 Event Queue - Caveats Head Ptr No new event added for one-shot 1 Handler may need to loop to handle multiple events at same time 5 7 16 8

Caveats Previous slides assumed scheduling of events all when timer was first set. What if we need to schedule an event and we have already expired some of the timer? Need to update the entire virtual time queue before inserting new event. 17 Event Queue Program 1 //Setup Timer @ //Setup Timer @5 Program Head Ptr Count: 1 //Setup Timer @D Program //Setup Timer @D7 Program 4 5 Some of clock already expired, so need to update queue first ---Subtract difference from all elements in list ( in this case) //Setup Timer @4 18 9

Event Queue Program 1 //Setup Timer @ //Setup Timer @5 Program Head Ptr 1 Count: 1 //Setup Timer @D Program //Setup Timer @D7 Program 4 //Setup Timer @4 19 Agenda Serial Buses Introduction UART SPI IC Glitches Asynchronous resets and glitches Design rules Set-up and hold time. Review Dealing with external inputs Design rules 0 10

Serial interfaces ISA Software Hardware EECS 70 fault traps & exceptions SVC# INT# CPU ldr (read) str (write) C Assembly Machine Code interrupts Interrupts System Buses AHB/APB GPIO/INT Timers USART DAC/ADC Internal & External Memory Internal External 1 External memory attaches to the processor via the external memory controller and bus Atmel SAMU 11

UART Universal Asynchronous Receiver/Transmitter a type of "asynchronous receiver/transmitter", a piece of computer hardware that translates data between parallel and serial forms. UARTs are commonly used in conjunction with communication standards such as EIA, RS-, RS-4 or RS- 485. The universal designation indicates that the data format and transmission speeds are configurable and that the actual electric signaling levels and methods (such as differential signaling etc.) typically are handled by a special driver circuit external to the UART. Most of the UART stuff (including images) Taken from Wikipedia! Fun with buses A multidrop bus (MDB) is a computer bus in which all components are connected to the same set of electrical wires. (from Wikipedia) In the general case, a bus may have more than one device capable of driving it. That is, it may be a multi-master bus as discussed earlier. 1

How can we handle multiple (potential) bus drivers? (1/) Tri-state devices, just have one device drive at a time. Everyone can read though Pros: Very common, fairly fast, pinefficient. Cons: Tri-state devices can be slow. Especially drive-to-tristate? Need to be sure two folks not driving at the same time Let out the magic smoke. Most common solution (at least historically) Ethernet, PCI, etc. How can we handle multiple (potential) bus drivers? (/) MUX Just have each device generate its data, and have a MUX select. That s a LOT of pins. Consider a -bit bus with 6 potential drivers.» Draw the figure.» How many pins needed for the MUX? Not generally realistic for an on-pcb design as we ll need an extra device (or a lot of pins on one device) But reasonable on-chip In fact AHB, APB do this. 1

How can we handle multiple (potential) bus drivers? (/) pull-up aka open collector aka wired OR Wire is pulled high by a resistor If any device pulls the wire low, it goes low. Pros: If two devices both drive the bus, it still works! Cons: Rise-time is very slow. Constant power drain. Used in IC, CAN Agenda Serial Buses Introduction UART SPI IC 8 14

UART Universal Asynchronous Receiver/Transmitter Hardware that translates between parallel and serial forms Commonly used in conjunction with communication standards such as EIA, RS-, RS-4 or RS-485 The universal designation indicates that the data format and transmission speeds are configurable and that the actual electric signaling levels and methods (such as differential signaling etc.) typically are handled by a special driver circuit external to the UART. Most of the UART stuff (including images) Taken from Wikipedia! 9 Protocol Each character is sent as a logic low start bit a configurable number of data bits (usually 7 or 8, sometimes 5) an optional parity bit one or more logic high stop bits. with a particular bit timing ( baud or baudrate ) Examples 9600-N-8 <baudrate><parity><databits><stopbits> 9600-8-N <baudrate><databits><parity><stopbits> 0 15

Variations and fun times UART is actually a generic term that includes a large number of different devices/standards. RS- is a standard that specifies electrical characteristics and timing of signals, the meaning of signals, and the physical size and pin out of connectors. 1 Signals (only most common) The RXD signal of a UART is the signal receiving the data. This will be an input and is usually connected to the TXD line of the downstream device. The TXD signal of a UART is the signal transmitting the data. This will be an output and is usually connected to the RXD line of the downstream device. The RTS# (Ready to Send) signal of a UART is used to indicate to the downstream device that the device is ready to receive data. This will be an output and is usually connected to the CTS# line of the downstream device. The CTS# (Clear to Send) signal of a UART is used by the downstream device to identify that it is OK to transmit data to the upsteam device. This will be an input and is usually connected to the RTS# line of the upstream device. 16

DB9 stuff DTE vs DCE Pinout of a DCE? Common ground? Noise effects? Wiring a DTE device to a DCE device for communication is easy. The pins are a one-to-one connection, meaning all wires go from pin x to pin x. A straight through cable is commonly used for this application. In contrast, wiring two DTE devices together requires crossing the transmit and receive wires. This cable is known as a null modem or crossover cable. RS- transmission example 4 17

Agenda Serial Buses Introduction UART SPI IC 5 Introduction What is it? Basic Serial Peripheral Interface (SPI) Capabilities Protocol Pro / Cons and Competitor Uses Conclusion Serial Peripheral Interface http://upload.wikimedia.org/wikipedia/commons/thumb/e/ed/ SPI_single_slave.svg/50px-SPI_single_slave.svg.png 18

What is SPI? Serial Bus protocol Fast, Easy to use, Simple Everyone supports it SPI Basics A communication protocol using 4 wires Also known as a 4 wire bus Used to communicate across small distances Multiple Slaves, Single Master Synchronized 19

Capabilities of SPI Always Full Duplex Communicating in two directions at the same time Transmission need not be meaningful Multiple Mbps transmission speed Transfers data in 4 to 16 bit characters Multiple slaves Daisy-chaining possible Protocol Wires: Master Out Slave In (MOSI) Master In Slave Out (MISO) System Clock (SCLK) Slave Select 1 N Master Set Slave Select low Master Generates Clock Shift registers shift in and out data 0

Wires in Detail MOSI Carries data out of Master to Slave MISO Carries data from Slave to Master Both signals happen for every transmission SS_BAR Unique line to select a slave SCLK Master produced clock to synchronize data transfer Shifting Protocol Master shifts out data to Slave, and shift in data from Slave http://upload.wikimedia.org/wikipedia/commons/thumb/b/bb/spi_8-bit_circular_transfer.svg/400px-spi_8-bit_circular_transfer.svg.png 1

Diagram Some wires have been renamed Master and multiple independent slaves http://upload.wikimedia.org/wikipedia/commons/thumb/f/fc/spi_three_sla ves.svg/50px-spi_three_slaves.svg.png Master and multiple daisychained slaves http://www.maxim-ic.com/appnotes.cfm/an_pk/947 Pros and Cons Pros: Fast and easy Fast for point-to-point connections Easily allows streaming/constant data inflow No addressing/simple to implement Everyone supports it Cons: SS makes multiple slaves very complicated No acknowledgement ability No inherent arbitration No flow control

Uses Some Serial Encoders/Decoders, Converters, Serial LCDs, Sensors, etc. Pre-SPI serial devices Summary SPI 4 wire serial bus protocol MOSI MISO SS SCLK wires Full duplex Multiple slaves, master Best for point-to-point streaming data Easily Supported

Agenda Serial Buses Introduction UART SPI IC Glitches Asynchronous resets and glitches Design rules Set-up and hold time. Review Dealing with external inputs Design rules 47 4

49 50 5

51 5 6

5 54 7

55 56 8

57 58 9

59 0