Analog And Digital Interfacing

Slides:



Advertisements
Similar presentations
I2C bus Inter Integrated Circuits bus by Philips Semiconductors
Advertisements

INPUT-OUTPUT ORGANIZATION
Analog-to-Digital Converter (ADC) And
DATA COMMUNICATIONS Some organisations concerned with standards: EIA - Electroonic Industries Association (RS standards including RS-232) IEEE - Institute.
1 EECS 373 Design of Microprocessor-Based Systems Prabal Dutta University of Michigan Guest Lecturer Pat Pannuto Lecture 10: Serial buses Oct 6, 2011.
Serial Interfaces, Part Deux -I 2 C and SPI December 4, 2002 Presented by Eugene Ho.
SPI Serial Peripheral Interface. SPI Serial Peripheral Interface is communication between two devices, one bit at a time sequential one bit at time over.
Lecture 8: Serial Interfaces
1 Fall 2005 Local Serial Asynchronous Communication Qutaibah Malluhi Computer Science and Engineering Qatar University.
Lecture 9: D/A and A/D Converters
Interfacing with the Analog World Wen-Hung Liao, Ph.D.
Peripherals and their Control An overview of industrially available “peripheral devices” Some ideas for Laboratories and Quiz / Exam questions.
Serial Communication Buses: I 2 C and SPI By Brody Dunn.
7-1 Digital Serial Input/Output Two basic approaches  Synchronous shared common clock signal all devices synchronised with the shared clock signal data.
Aztec PC Oscilloscope Michael Mason Jed Brown Josh Price Andrew Youngs.
Serial Communications Standards (Partly Excerpted from Simpl Primer) Cabling Configuration Protocol.
12 - Winter 2006 ECE ECE 766 Computer Interfacing and Protocols 1 Interfaces Transmission of data from the source to a device or from a device to the destination.
Network and Systems Laboratory nslab.ee.ntu.edu.tw.
Team Members Jordan Bennett Kyle Schultz Min Jae Lee Kevin Yeh.
INPUT-OUTPUT ORGANIZATION
Interfaces A practical approach. Lesson 2 I2C and SPI
1 EECS 373 Design of Microprocessor-Based Systems Prabal Dutta University of Michigan Lecture 10: Serial buses Oct 6, 2011.
Topic 1 different attributes that characterize sensors ETEC 6405.
Technology Training that Works Hands of Data Communications, Networking & TCP/IP Troubleshooting.
Microprocessor Block Diagram
USART Communication using the RS standard ETEC6416.
Serial Peripheral Interface (SPI) Bus. SPI Bus There is no official specification for the SPI bus. It is necessary to consult the data sheets of the devices.
Transmission Modes Serial Transmission  One bit is transmitted on a circuit at a time  Usually there is one transmit circuit and one receive circuit.
Computers in Surveying SVY2301 / E4006 Automated Surveying.
Arctic RS-485 / RS-422. RS- 485 Also known as RS-485 Half Duplex, RS wire same pair is used to transmit and receive data only one device can transmit.
LSU 10/22/2004Serial I/O1 Programming Unit, Lecture 5.
4.0 rtos implementation part II
Analog And Digital Interfacing
Network and Systems Laboratory nslab.ee.ntu.edu.tw.
Network and Systems Laboratory nslab.ee.ntu.edu.tw 2010/12/10Wireless Sensor Network And Labs fall
Analog to Digital conversion. Introduction  The process of converting an analog signal into an equivalent digital signal is known as Analog to Digital.
Lecture 20: Communications Lecturers: Professor John Devlin Mr Robert Ross.
Network and Systems Laboratory nslab.ee.ntu.edu.tw.
Universal Asynchronous Receiver/Transmitter (UART)
DEVICES AND COMMUNICATION BUSES FOR DEVICES NETWORK
Autonomous Helicopter James LydenEE 496Harris Okazaki.
1 Synchronous Serial IO Send a separate clock line with data –SPI (serial peripheral interface) protocol –I 2 C (or I2C) protocol Encode a clock with data.
Representing Numerical Data Analog Any signal that varies continuously over time Mechanical Pneumatic Hydraulic Electrical Digital Quantities are represented.
ATtiny23131 A SEMINAR ON AVR MICROCONTROLLER ATtiny2313.
Network and Systems Laboratory nslab.ee.ntu.edu.tw se.
©2008 R. Gupta, UCSD COSMOS Summer 2008 Peripheral Interfaces Rajesh K. Gupta Computer Science and Engineering University of California, San Diego.
© 2009, Renesas Technology America, Inc., All Rights Reserved 1 Course Introduction  Purpose:  This course provides an overview of the serial communication.
Essentials of Communication This simple model requires many guarantees. Sender Receiver Communication Link Data.
Lab 3: ADC.
© 2008, Renesas Technology America, Inc., All Rights Reserved 1 Course Introduction Purpose  This course provides an introduction to the peripheral functions.
Microcontroller basics Embedded systems for mortals.
Networked Embedded Systems Sachin Katti & Pengyu Zhang EE107 Spring 2016 Lecture 9 Serial Buses – SPI, I2C.
Networked Embedded Systems Pengyu Zhang EE107 Spring 2016 Lecture 8 Serial Buses.
میکرو کنترلرهای AVR Serial Interfaces, I2C and SPI
MICROCONTROLLER AND INTERFACING Presented by: Shefali Jethva ( ) Shivali Panchal ( ) Komal Soni ( ) Roll no. :- 14EC308.
MECH 373 Instrumentation and Measurements
Outline Analog to digital conversion (ADC) of NuMaker TRIO
Environment Temperature Monitor
Serial Communication Buses: I2C and SPI
EE 107 Fall 2017 Lecture 5 Serial Buses – UART & SPI
Chapter 11: Inter-Integrated Circuit (I2C) Interface
Serial Communications
I2C PROTOCOL SPECIFICATION
BJ Furman ME 106 Fundamentals of Mechatronics 15NOV2012
EEPROM Comparison – Parallel or Serial
CSCI1600: Embedded and Real Time Software
CHAPTER SERIAL PORT PROGRAMMING. Basics of Serial Communication Computers transfer data in two ways: ◦ Parallel  Often 8 or more lines (wire.
CSCI1600: Embedded and Real Time Software
Presentation transcript:

Analog And Digital Interfacing

Digital Communication Big Picture Physical world Other Systems or ICs Digital Communication Analog Interfacing MSP430

Sensors A device that converts a physical phenomenon into an electrical signal Physical phenomenon light, temperature, humidity, pressure, and etc. Electrical signal resistance, capacitance, current, voltage, and etc. Maps a physical phenomenon change to a electrical signal change

Signal Path Produce a proper output voltage level Signal Conditioning (if necessary) Sensors Amplification Filtering Analog to Digital Conversion (ADC) Light Temperature Acceleration Humidity Pressure etc. Resistance Capacitance Current Voltage etc. 10011101 Convert to voltage Converts voltage to digital number

Sensors We Have Raw sensors Signal conditioned sensors Produce raw electrical signal Signal conditioned sensors Have some signal conditioning circuit Produce analog output Mostly Voltage Sometime Current

Sensors We Have Digitalized sensors Have some signal conditioning circuit Convert analog to digital internally Provide digital output

Our Focus Sensors Produce a proper output voltage level Signal Conditioning (if necessary) Sensors Amplification Filtering Light Temperature Acceleration Humidity Pressure etc. Analog to Digital Conversion Resistance Capacitance Current Voltage etc. 10011101 Convert to voltage Converts voltage to digital number We are not going to talk about signal conditioning You can find many sensors that are signal conditioned and provide a proper analog output, or even digitalized We will focus on how to understand these signal conditioned sensors and get the output we want

Some Raw Sensors Temperature Sensors Pressure sensors Thermistors Temperature-sensitive resistor RTDs (resistive temperature devices) Thermocouples Temperature => voltage (mV) Pressure sensors Piezoresistive Resistance change with applied pressure

Photodiodes Light => current Generate current proportional to light density

Photodiodes Two on Taroko S1087: for visible range S1087-01: for visible to IR(infrared) range

Signal Conditioned Analog Output Proximity sensor Sharp GP2D120XJ00F Analog voltage output Accelerometer ADXL330 3-axis accelerometer Industry standard analog output Flow sensors, pressure sensors, gas sensors, etc. 4~20 mA, 0~5 V, 0~10 V

Proximity Sensor Sharp GP2D120XJ00F Output voltage proportional to the reflection distance Measure range: 30 cm

Accelerometer Analog Device Inc. ADXL330 Output voltage proportional to the acceleration Measurement range: +/- 3.6 g

Industry standard analog outputs Many industrial instruments provide analog outputs 4~20 mA current loop Most commonly used The instrument produce a current, range from 4 mA to 20 mA Physical measured quantity linearly maps to this current range Others 0 ~ 5 V 0 ~ 10 V

Usually this range is user configurable 4~20 mA current loop Examples Measure temperature: 0 ~ 100 oC Measure flow speed: 0 ~ 50 m3/h Measurements 0 oC 50 oC 100 oC Current Output 4 mA 12 mA 20 mA Usually this range is user configurable Measurements 0 m3/h 25 m3/h 50 m3/h Current Output 4 mA 12 mA 20 mA

How to Convert to Voltage Add a resistor

Others Analog Output Sensors Ultrasound sensors http://www.baumerelectric.com/en/shop/catalog/Ultraschall_Sensoren/page3.html?filter=all&sort=Familie&dir=ascending Gyroscopes http://www.analog.com/en/subCat/0,2879,764%255F801%255F0%255F%255F0%255F,00.html

Digitalized Sensors Ultrasound sensors Temperature and Humidity Sensor SRF10 Interface: I2C Temperature and Humidity Sensor SHT11 Interface : manufacturer defined

Digitalized Sensors Magnetometer Digital compass SFE MicroMag 3-Axis Interface : SPI Applications: detecting vehicles Digital compass Hitachi HM55B Interface : UART

Digitalized Sensors GPS Image sensor Garmin GPS18 Interface : UART ST VS6451 Interface: I2C

Understand The Analog Sensors Most important goal Obtain the relationship between voltage and the physical phenomenon quantity you want to measure Transfer function Understand the characteristics and limitation of the sensors

Sensor Characteristics Definitions Transfer Function Relationship between physical quantity and output voltage Sensitivity Ratio of change between physical quantity and output voltage Accuracy Largest expected error Linearity How linear the transfer function is Noise In real world, signal are usually coupled with noise Resolution minimum detectable signal fluctuation Bandwidth response times to an instantaneous change in physical signal

Transfer Function ADXL330 accelerometer Ratiometric? Output voltage is a ratio of supply voltage ADXL330 accelerometer From ADXL330 datasheet It means when supply voltage Vs is 3 V, if the acceleration increase by 1 g, the output voltage will increase 330 mV (typical) It means when supply voltage Vs is 3 V, if the acceleration is 0 g, the output voltage will be 1.5 V (typical) Transfer function: Voltage (V) = 1.5 + (0.3 * acceleration (g) )

Transfer Function Proximity sensor: Sharp GP2D120XJ00F Voltage (V) = f(Distance (cm)) Not a linear function Check datasheet if the manufacturer has provided Table mapping Approximations By a few straight lines Curve fitting

Transfer Function Photodiode: S1087, S1087-01 Transfer function Voltage (V) = f(light level(lx)) Calculate by yourself From Taroko Schematic Step 2: find the relationship between current and the voltage at ADC4 (V = IR) Step 1: find the relationship between light level and current

Sensitivity ADXL330 accelerometer Sharp GP2D120XJ00F Not a constanst Photodiode: S1087, S1087-01 (Current)/(light level)

Linearity Sharp GP2D120XJ00F Photodiode: S1087, S1087-01 BAD GOOD GOOD ADXL330 accelerometer

Bandwidth How fast the next valid output ready When power up, you have to wait for 52.9ms to get a first valid output. You have to wait another 47.9ms to get the second one. Proximity sensor: Sharp GP2D120XJ00F For the module we will use, the filter capacitor is 0.1 uF. It means the accelerometer module can have at most 50 different read-outs in one second ADXL330 accelerometer

Analog to Digital Conversion

Analog to Digital Converter (ADC) ADC takes two inputs Voltage reference Range of voltage that it can measure It has a limited range Sensor signal Resolution How many bits the ADC can output Sample Rate How many sample it can takes in one second For MSP430F1611, it is about 200 ksps That’s why we need signal conditioning to produce a proper voltage output

Voltage reference Input voltage compares to the voltage reference Ratio of (input voltage)/(voltage reference) determines the output number Two voltage references Positive voltage reference (Vref+) Negative voltage reference (Vref-) In this figure, Vref+ = 1.6V; Vref- = 0 V [0,0.1) V -> 0000 [0.8,0.9) V -> 1000 [1.5,1.6) V -> 1111 If we change the Vref+ = 3.2V; Vref- remains 0 V, then [0,0.2) V -> 0000 [1.6,1.8) V -> 1000 [3.0,3.2) V -> 1111

About Voltage Reference Voltage reference can by internal or external Many ADCs have internal voltage reference integrated Unstable Voltage reference will affect the accuracy of the ADC Minimum, Maximum If input voltage > Vref+, always output 1111 If input voltage < Vref-, always output 0000 Voltage Reference cannot exceed power supply voltage

Resolution You heard 10-bit ADC, 12-bit ADC, 16-bit ADC What are they? Number of bits the ADC can output This is a 4-bit ADC [0,0.1) V -> 0000 [0.1,0.2) V -> 0001 [0.2,0.3) V -> 0010 [1.5,1.6) V -> 1111 If it is a 6-bit ADC [0,0.025) V -> 000000 [0.025,0.05) V -> 000001 [0.05,0.075) V -> 000010 [1.575,1.6) V -> 111111

Detectable Voltage Change Voltage reference + Resolution Define the detectable voltage change Detectable voltage change = ((Vref+) – (Vref-))/(2^resolution) Examples Vref = 1.6V, Resolution = 4-bit Vref = 3.2V, Resolution = 4-bit Vref = 1.6V, Resolution = 6-bit 1.6/(2^4) = 0.1 V 3.2/(2^4) = 0.2 V 1.6/(2^6) = 0.025 V

Sample And Hold There is a sample-and-hold circuit before A/D conversion Mostly integrated in the ADC chip When no conversion, switch S1 is open When a conversion start S1 closed Input signal charge C1 S1 open, C1 holds the value of input signal A/D conversion Sample-and-hold time Time between S1 close and re-open If it is too short C1 will not fully charged (error)

ADC Clock ADC needs a clock For sample-and-hold and the A/D conversion

ADC on Taroko 12-bit on-chip ADC in MSP430 Voltage reference Internal Vref: 1.5V, 2.5V No external Vref on Taroko User configurable combination for Vref+ and Vref- Sample rate Approximate 200 ksps User configurable sample-and-hold time User configurable clock sources

An Example: ADXL330 ADXL330 3-axis accelerometer Transfer function: V = 1.5 + (0.3 * g)

An Example: ADXL330 Taroko ADC setting Resolution: 12-bit Voltage reference Vref+ = 2.5 V Vref- = 0 V Conversion formula NADC is the output number For our setting

An Example: ADXL330 Conversion formula When the acceleration is 0 g Transfer function: V = 1.5 + (0.3 * g) Conversion formula When the acceleration is 0 g V = 1.5 NADC = 2457 When the acceleration is 1.5 g V = 1.95 NADC = 3194 When NADC = 1784, what is the acceleration? When NADC = 2635, what is the acceleration?

Real World Design In practical design, there are always errors Noises Power supply noise Digital circuit noise RF noise Devices noise Devices Tolerances 5% resistor, 1% resistor 10% capacitor etc. Temperature drift Devices characteristics change when temperature change Two very simple methods to deal with two very common errors

First Type of Errors Noise Solution Dynamic ADXL330 at 0 g (1.5V) Sample at S1 -> ok Sample at S2 -> it is 0.333 g Sample at S3 -> it is -0.333 g Solution Average (S1 + S2 + S3)/3 = (1.5+1.6+1.4)/3 = 1.5 1.6V 1.5V 1.4V S1 S2 S3

How Many Samples How many samples needed to average Depends on your requirement Suggestion: factor of 2 (2N) Take 10 samples and average Take 16 samples and average Division => slow Total += Si; //(i=1,…,10) Result = Total/10; Bit shift => fast Total += Si; //(i=1,…,16) Result = (Total>>4);

Cautions! Is the Total large enough to hold the summation IMPORTANT!! Max possible Total = 4096*16 = 65536 Total should be at least 16-bit unsigned int IMPORTANT!! int in IAR for MSP430 is 16-bit long Total += Si; //(i=1,…,16) Result = (Total>>4);

Second Type of Errors Offset Static For example: ADXL330 For A accelerometer, 0 g output maybe 1.5V For B accelerometer, 0 g output maybe 1.54V 30% of ADXL330, 0 g output is 1.53V 4% of ADXL330, 0 g output is 1.5V From ADXL330 datasheet

Calibration Maintain a calibration constant, adjust the offset error ADXL330 with calibration Transfer function: V = (1.5 + Ccal) + (0.3 * g) Ccal is calibration constant For A accelerometer, 0 g output is 1.5V Ccal = 0 If NADC = 2879, acceleration should be 0.859 g For B accelerometer, 0 g output is 1.54V Ccal = 0.04 If NADC = 2879, acceleration should be ?? G

Calibration Reference Calibration needs a reference Precision of the reference decide the precision of the calibration How do you calibrate the accelerometer ADXL330?? How do you calibrate a temperature sensor? You must produce a precise 0 g (or 1 g) acceleration To calibrate, you want to know the voltage output at 0 g. But how to make 0 g? Acceleration => voltage You must produce a precise temperature To calibrate, you want to know the voltage output at certain temperature (25 oC). Temperature => voltage

Digital Communications Sending bits between each other Serial communication Sending bits one by one UART, SPI, I2C, USB, etc. Parallel communication Sending multiple bits at one time Ethernet 10011101 A B Our focus 1 0 0 1 1 1 0 1 A B A 1 B 1 1 1 1

Agreements For digital, wired communication In order to communicate, two parties must at least agree on: Logic level MSP430 RS232 (COM port) Output data Start, stop Output data valid time (clock) 0V -> logic low (0) 3.3V -> logic high (1) -12V -> logic high (0) 12V -> logic low (1) What number it represent? Read 2x Read 1 1 1 1 1 1 1 1 A B

Protocols Chips to Chips Systems to systems (usually) SPI: Serial Peripheral Interface I2C: Inter Integrated Circuit Manufacturer defined UART: Universal Asynchronous Receiver Transmitter Systems to systems (usually) Define logic level RS-232: old traditional RS-485: popular in industrial control system Define output data Define both USB A B UART UART RS232 or RS485 RS232 or RS485

SPI Master–Slave mode Synchronous protocol Four main signals All transmissions are referenced to a common clock Clock generated by the master (MCU) Four main signals Master Out Slave In (MOSI): data from master to slave Master In Slave Out (MISO): data from slave to master Serial CLocK (SCLK or SCK): clock Chip Select (CS): select particular peripheral when multiple peripherals are connected to master

SPI Transmission Read data at clock edge Data Register Exchange Master transfer a byte to slave, push slave to transfer a byte back to master Master Read and Write Simultaneously Master write only Ignore the byte it receive Master read only Master must transfer a dummy byte in order to initiate a slave transmission MOSI MISO CLK CLK 1 CS CS Slave read 1 1 1 Master read 1 1 1 1

I2C Two wires, multiple devices I2C transmission SDA (serial data) Pull-up resistor Two wires, multiple devices SDA (serial data) SCL (serial clock) I2C transmission START: SDA is pulled low while SCL stays high Transfer: SDA sets the transferred bit while SCL is low (blue) data is read when SCL rises (green) STOP: SDA is pulled high while SCL stays high

I2C Acknowledge (ACK) and Not Acknowledge (NACK) Upon the transmission of the eighth data bit Transmitter releases the SDA Master then generates an additional clock pulse on SCL Triggers the receiver to acknowledge the byte by pulling SDA low

I2C Addressing Clock stretching 7-bit address Direction bit If 0: master write to slave If 1: master read from slave 10-bit address Clock stretching A slave may hold the clock line (SCL) low after receiving (or sending) a bit, indicating that it is not yet ready to process more data 10-bit address

Comparison SPI I2C Four wires Two wires Full duplex Half duplex Higher throughput (then I2C) Lower throughput Synchronous protocol No slave acknowledgment Acknowledgment Simple Complicated

Manufacturer Defined Protocols The ideals are similar Feed a clock Start, stop Read/write the data Read datasheet Many times Get use to those timing diagrams We will use the temperature/humidity sensor SHT11 on Taroko as an example

Implementations How to implement these protocols? Things to consider Hardware There are SPI, I2C peripherals on MSP430F1611 You need to properly configure (setting registers) the modules Software Use GPIO Generate clock Read data: set the pin to input Write data: set the pin to output Things to consider Timing: some devices cannot operate too fast Check devices datasheet // use P1.0 as clock pin P1SEL &= ~(0x01); // GPIO P1DIR |= 0x01; // output // clock P1OUT |= 0x01; // high P1OUT &= ~(0x01); // low // add some delay between clock P1OUT |= 0x01; // high (delay some time) P1OUT &= ~(0x01); // low

In General You want to interface some digital ICs to MSP430 CC2420 radio chip (SPI) 8 Mbit flash memory (SPI) SHT11 sensor (manufacturer defined, similar to I2C) Typical process How to interface? Connections: two wires, three wires, four wires, etc. How to communicate? Available commands Timing diagram: start, transfer, (ack), stop How to configure the IC Setting the registers on the IC Start reading/writing data from/to the IC

An Example: SHT11 The temperature/humidity sensor on Taroko How to Interface two wires bi-direction Use a GPIO pin as clock (SCK), it is always output direction Use another GPIO as DATA, dynamic setting it to input(read) or output(write) direction SHT11 datasheet

An Example: SHT11 How to start What are the commands available

An Example: SHT11 Timing diagram Pull-up Data pin in output direction Set data pin to input direction, then SHT11 controls the DATA line Timing diagram

An Example: SHT11 Configure device If you don’t understand what is the meaning, check datasheet

Timing Check the timing requirement carefully The device won’t work at all if you exceed the limit

UART Without common clock Two wires: Rx, Tx Full duplex Asynchronous UART: Universal Asynchronous Receiver Transmitter Two wires: Rx, Tx Full duplex Asynchronous No common clock required Without common clock How do they communicate?? A Rx Tx B Tx Rx

Length of a bit = 1/9600 (seconds) Universal data rates Two devices agree on same data rate Baudrate: 1200, 2400, 4800, 9600, …, (bits per second) A (1 MHz system clock) B (8 MHz system clock) 9600 9600 Baudrate generator Baudrate generator UART UART Baudrate: 9600 bps Length of a bit = 1/9600 (seconds)

This bit became parity bit when parity checking is enabled UART Data This bit became parity bit when parity checking is enabled Send one byte at a time Data One start bit Pull-down the line 7 or 8 bits data One or two stop bit Pull-up the line for one or two slots Simple error checking: parity (optional) Even parity: If the data has odd number of 1, parity bit = 1 (make it even); else parity bit = 0 Odd parity: If the data has even number of 1, parity bit = 1 (make it odd); else parity bit = 0 Four parameters for UART communication Baudrate, data-bit, parity, stop-bit We wrote: 9600 8N1, Means: baudrate=9600, 8-bit data, no parity, 1 stop bit

RS232 Since the 1960s Cable lengths of up to 25 meters Signal level logic high -> -5 to -15V (typically -12V) logic low -> +15 and +1V (typically +12V) Interface Signal Function 25-pin 9-pin Direction Tx Transmitted data 2 3 From DTE to DCE Rx Received data To DTE from DCE RTS Request to send 4 7 CTS Clear to send 5 8 DTR Data terminal ready 20 DSR Data set ready 6 DCD Data carrier detect 1 RI Ring indicator 22 9 FG Frame ground (chassis) - Common SG Signal ground

RS485 Two-wire, half-duplex Multipoint serial connection Signal level Difference between the wires’ voltages A – B > 0.2V => logic high (0) A – B < -0.2V => logic low (1) Why it is popular in industrial applications Only two wire 35 Mbit/s up to 10 m and 100 kbit/s at 1200 m

USB Serial IC That’s what we have on Taroko FT232BL (www.ftdichip.com) To communicate with PC It simulate a serial communication on PC through USB interface Virtual com port

Applications RS232 IC PC or other systems MSP430 UART All you need to do is properly configure UART for both sides (baudrate, data-bit, parity, stop-bit), and start sending/receiving data RS232 IC PC or other systems COM PORT MSP430 USB UART USB serial IC (FT232) Other systems RS485 IC RS485 IC