Lab 10. Speed Control of a D.C. motor

Similar documents
Analog input/output. Textbook: Chapter 20, Analog-to-Digital Converter Chapter 21, Digital-to-Analog Converter

ELEC 3040/3050 Lab #7

Linear Integrated Circuits

AN3137 Application note

Module 13: Interfacing ADC. Introduction ADC Programming DAC Programming Sensor Interfacing

Fundamentals of Data Converters. DAVID KRESS Director of Technical Marketing

P a g e 1. Introduction

Analog-to-Digital Converter (ADC) And Digital-to-Analog Converter (DAC)

DSP Project. Reminder: Project proposal is due Friday, October 19, 2012 by 5pm in my office (Small 239).

ME 461 Laboratory #3 Analog-to-Digital Conversion

Interfacing to Analog World Sensor Interfacing

Analog/Digital and Sampling

Analogue to Digital Conversion

Cyber-Physical Systems ADC / DAC

Digital PWM IC Control Technology and Issues

ECE 271 Microcomputer Architecture and Applications University of Maine

UNIT III Data Acquisition & Microcontroller System. Mr. Manoj Rajale

Lab 9. Speed Control of a D.C. motor. Sensing Motor Speed (Tachometer Frequency Method)

Advantages of Analog Representation. Varies continuously, like the property being measured. Represents continuous values. See Figure 12.

ECE 271 Microcomputer Architecture and Applications University of Maine

Data Converters. Lecture Fall2013 Page 1

Lecture 7: Analog Signals and Conversion

Analog to Digital Conversion

ELG3336: Converters Analog to Digital Converters (ADCs) Digital to Analog Converters (DACs)

8-Bit, high-speed, µp-compatible A/D converter with track/hold function ADC0820

Analogue to Digital Conversion

Analog to Digital Conversion

Chapter 2 Signal Conditioning, Propagation, and Conversion

Introduction. These two operations are performed by data converters : Analogue-to-digital converter (ADC) Digital-to-analogue converter (DAC)

EEE312: Electrical measurement & instrumentation

L9: Analog Building Blocks (OpAmps, A/D, D/A)

MICROPROCESSORS A (17.383) Fall Lecture Outline

ADC Bit µp Compatible A/D Converter

ANALOG TO DIGITAL (ADC) and DIGITAL TO ANALOG CONVERTERS (DAC)

Analog to Digital Converters

NI DAQPad -6020E Family Specifications

Outline. Analog/Digital Conversion

Lab #10: Analog to Digital Converter (ADC) Week of 15 April 2019

Electronics II Physics 3620 / 6620

EEE3410 Microcontroller Applications Department of Electrical Engineering. Lecture 10. Analogue Interfacing. Vocational Training Council, Hong Kong.

Analog I/O. ECE 153B Sensor & Peripheral Interface Design Winter 2016

L9: Analog Building Blocks (OpAmps,, A/D, D/A)

Digital PWM IC Control Technology and Issues

Hello, and welcome to this presentation of the STM32 Digital Filter for Sigma-Delta modulators interface. The features of this interface, which

The counterpart to a DAC is the ADC, which is generally a more complicated circuit. One of the most popular ADC circuit is the successive

Technical Brief FAQ (FREQUENCLY ASKED QUESTIONS) For further information, please contact Crystal Semiconductor at (512) or 1 (800)

Digital Sampling. This Lecture. Engr325 Instrumentation. Dr Curtis Nelson. Digital sampling Sample rate. Bit depth. Other terms. Types of conversion.

Lab Exercise 6: Digital/Analog conversion

Embedded Control. Week 3 (7/13/11)

Chapter 12: Analog-to-Digital Converter. EE383: Introduction to Embedded Systems University of Kentucky. Samir Rawashdeh

NI 6013/6014 Family Specifications

ELG4139: Converters Analog to Digital Converters (ADCs) Digital to Analog Converters (DACs)

4 x 10 bit Free Run A/D 4 x Hi Comparator 4 x Low Comparator IRQ on Compare MX839. C-BUS Interface & Control Logic

Assoc. Prof. Dr. Burak Kelleci

L10: Analog Building Blocks (OpAmps,, A/D, D/A)

ELG3336 Design of Mechatronics System

Ch 5 Hardware Components for Automation

Roland Kammerer. 13. October 2010

EECS 373 Design of Microprocessor-Based Systems

Analog Digital Converter

ADC Resolution: Myth and Reality

Data Converters. Dr.Trushit Upadhyaya EC Department, CSPIT, CHARUSAT

Analog to Digital Conversion

Analog-to-Digital Converter. Student's name & ID (1): Partner's name & ID (2): Your Section number & TA's name

Data Acquisition & Computer Control

EECS 373 Design of Microprocessor-Based Systems

Dedan Kimathi University of technology. Department of Electrical and Electronic Engineering. EEE2406: Instrumentation. Lab 2

1 A1 PROs. Ver0.1 Ai9943. Complete 10-bit, 25MHz CCD Signal Processor. Features. General Description. Applications. Functional Block Diagram

Page 1. Midterm #2. OpAmp Review. Inverting & Non-inverting Circuits CS/ECE 6780/5780. Al Davis. Almost ubiquitous analog circuit element since ~1968

Eliminate Pipeline Headaches with New 12-Bit 3Msps SAR ADC by Dave Thomas and William C. Rempfer

Hardware Platforms and Sensors

Analogue Interfacing. What is a signal? Continuous vs. Discrete Time. Continuous time signals

EE445L Spring 2018 Final EID: Page 1 of 7

L10: Analog Building Blocks (OpAmps,, A/D, D/A)

DASL 120 Introduction to Microcontrollers

CHAPTER ELEVEN - Interfacing With the Analog World

Chapter 7. Introduction. Analog Signal and Discrete Time Series. Sampling, Digital Devices, and Data Acquisition

Sigma-Delta ADCs. Benefits and Features. General Description. Applications. Functional Diagram

Application Circuits 3. 3V R2. C4 100n G PI O. 0 G PI O S e t u p d a ta G PI O. 5 G PI O M o t i o n I n t G PI O. 4 G PI O.

Pin 19 GPIO. Counters/Delay Generators CNT1 CNT2 CNT3 CNT4 CNT5 CNT6 CNT7 CNT8 CNT9. DFF/Latches. Pin 15 GPIO DFF0 DFF1 DFF2 DFF3 DFF4

University of Pennsylvania. Department of Electrical and Systems Engineering. ESE Undergraduate Laboratory. Analog to Digital Converter

EE 308 Lab Spring 2009

Data Acquisition: A/D & D/A Conversion

Sampling and Quantization

Hello, and welcome to this presentation of the STM32L4 comparators. It covers the main features of the ultra-lowpower comparators and some

DATA CONVERSION AND LAB (17.368) Fall Class # 07. October 16, 2008

University of Pittsburgh

A-D and D-A Converters

Digital Design Laboratory Lecture 7. A/D and D/A

ADC Parameters. ECE/CS 5780/6780: Embedded System Design. Common Encoding Schemes. Two-Bit Flash ADC. Sixteen-Bit Dual Slope ADC

Microprocessors & Interfacing

Microcomputers. Digital Signal Processing

I2C Demonstration Board I 2 C-bus Protocol

Digital to Analog Conversion. Data Acquisition

PHYS225 Lecture 22. Electronic Circuits

Advanced Regulating Pulse Width Modulators

Analog Input and Output. Lecturer: Sri Parameswaran Notes by: Annie Guo

PRODUCT OVERVIEW REF FLASH ADC BUFFER V SUPPLY. Figure 1. ADS-117 Functional Block Diagram

The need for Data Converters

ACPL Data Sheet. Three-Channel Digital Filter for Sigma-Delta Modulators. Description. Features. Specifications.

Transcription:

Lab 10. Speed Control of a D.C. motor Speed Measurement: Tach Amplitude Method References: STM32L100 Data Sheet (pin definitions) STM32L100 Ref. Manual (ADC, GPIO, Clocks)

Motor Speed Control Project 1. Generate PWM waveform 2. Amplify the waveform to drive the motor 3. Measure motor speed 4. Measure motor parameters 5. Control speed with a PID controller 9 v Power Supply Amplifier 12v dc Motor Computer System Tachometer Frequency ac-to-dc to Voltage Analog to Digital Lab 10

Typical analog input subsystem Property1 Property2 PropertyN input transducer input transducer input transducer convert property to electrical voltage/current signal conditioning signal conditioning signal conditioning produce convenient voltage/current levels over range of interest STM32L1xx --------------- 16 channels, 12-bit ADC mux sample & hold Analog to digital conv. Digital value select channel hold value during conversion convert analog value to digital #

Signal conditioning Produce noise-free signal over A/D converter input range Convert AC signal to DC form Needed in this lab to measure tach signal amplitude Amplify/attenuate voltage/current levels Bias (shift levels to desired range) Filter to remove noise Common mode rejection for differential signals Isolation/protection (optical/transformer)

Example: AC to DC conversion V(t) t Unrectified V(t) Full-wave Rectified t V(t) Rectified & Filtered t (May also choose half-wave rectified form consider ripple in DC level)

Example: AC to DC conversion V(t) t Unrectified V(t) Half-wave Rectified V(t) larger RC smaller RC t Rectified & Filtered t

Tach signal Rectifier Filter Rectified signal: Is output ripple acceptable? Is the DC level acceptable? Signal conditioning to measure tach signal amplitude Rectified Tach signal

Rectifier Tach signal Signal conditioning to measure tach signal amplitude Filter Rectified Rectified signal: Is output ripple acceptable? Is the DC level acceptable? Tach signal

Analog to digital conversion Given: continuous-time electrical signal v(t), t >=0 Desired: sequence of discrete numeric values that represent the signal at selected sampling times : v(0), v(t), v(2t), v(nt) v(nt) = v(t) value measured at the n th sample time and quantized to one of 2 k discrete levels, producing a k-bit number T = sampling time : v(t) is sampled every T seconds Sampling frequency F sample = 1/T

v(t) A/D conversion process Input signal v(t*) Sampled signal 1 2 v(nt) t T 2T 3T 4T 5T 6T 7T t* 4 Sampled data sequence: n= 1 2 3 4 5 6 7 d=10, 10, 10, 10, 11, 11, 11 (3/4)V ref (2/4)V ref Sampled & quantized 3 Binary values of d, where v(nt) = (d/4)v ref (1/4)V ref (0/4)V ref 1 2 3 4 5 6 7 n

A/D conversion parameters Sampling rate, F (sampling interval T = 1/F) Nyquist rate 2 x (highest frequency in the signal) to reproduce sampled signals CD-quality music sampled at 44.1KHz (ear can hear up to about 20-22KHz) Voice in digital telephone sampled at 8KHz Precision (# bits in sample value) k = # of bits used to represent sample values precision : each step represents (1/2 k ) V range Ex. Temperatures [-20 O C +60 O C]: if k=8, precision = 80 O C/256 = 0.3125 O C accuracy : degree to which converter discerns proper level (error when rounding to nearest level)

Sample-and-hold V in C converter Required if A/D conversion is slow relative to frequency of signal: Close switch to sample V in (charge capacitor C to V in ) Aperture (sampling) time = duration of switch closure Open switch to hold V in on C Sample time often programmable. Want signal < ½ LSB

Digital to analog conversion Number = b n b n-1 b 1 b 0 = b n *2 n + b n-1 *2 n-1 +. + b 1 *2 1 + b 0 *2 0 = I O R-2R Ladder Network (Reference) Current to voltage conversion Equivalent resistance = R Equivalent resistance = R I/2 n+1

Successive approximation analog to digital converter (ADC) Determine one bit at a time, from MSB to LSB Used in most microcontrollers (low cost) End of conversion 1. Successive Approximation Register (SAR) sets D N-1 = 1 2. SAR outputs D N-1 D 0, converted by DAC to analog V DAC 3. V DAC is compared to V IN 4. Comparator output resets D N-1 to 0 in SAR if V DAC < V IN 5. Repeat 1-4 for D N-2 D 0 (one clock period per bit) V DAC V IN Output Final SAR value D N-1 D 0 is digital representation of V IN V IN captured in S/H

STM32L100RC Analog to Digital Converter Successive approximation ADC Input range: V REF- V IN V REF+ (3.6 v max) Discovery Board: V REF+ = VDDA pin, hard-wired to VDD (+3v) V REF- = VSSA pin, hard-wired to GND ( 0v) Selectable resolution: 12, 10, 8, or 6 bits (default=12) T CONVERT = 12, 11, 9, 7 clock cycles, respectively Programmable sampling time T SAMPLE = 4 to 384 clock cycles Minimum conversion time 1µs (T SAMPLE + T CONVERT ) 22 input channels GPIO pins: ADC_IN[0:15], ADC_IN[18:21] - on designated GPIO pins Temperature sensor & voltage reference: ADC_IN[16:17] Single or continuous conversions Scan mode for conversion of multiple channels Interrupt at end of conversion or end of sequence Trigger conversions with software or hardware (timers/exti)

Reference voltage ADC System Components Data register Analog inputs Channel selection Trigger ADC Clock

Using the ADC Setup function Connect voltage reference (hard-wired to 3v on Discovery) Configure GPIO pin (select analog mode in MODER) Enable HSI clock (for ADC conversion) Enable ADC digital interface clock Enable ADC Select data format Select sample trigger source Select input channel(s) Select conversion mode Trigger conversion Read results Adjust results as needed (calibrate, average, etc.)

ADC initialization Configure GPIO pin(s) as analog signals Refer to Pin Definition table in STM32L100 data sheet to determine which GPIO pins correspond to ADC_IN0..ADC_IN21 Example: GPIOA pins PA0 - PA7 = ADC_IN0 - ADC_IN7, respectively Enable GPIOx clock in RCC->AHB1ENR Select analog mode in GPIOx->MODER (disables pull-up/down resistors) Enable HSI clock in RCC->CR, which runs ADC conversions RCC->CR = RCC_CR_HSION; //HSION = bit 0 of RCC->CR Enable ADC1 clock in RCC->APB2ENR (for ADC digital interface) Power up the ADC Set ADON bit in ADC1->CR2 (control register 2) Wait until ADONS = 1 in ADC1->SR (takes 3.5-4 µsec) For power efficiency, we often shut off the ADC when not used Configure ADC options (data format, conversion mode, etc.)

Data format 16-bit data register: ADC1->DR Read as a 16-bit unsigned variable Data resolution can be 12, 10, 8 or 6 bits Select via RES bits in ADC1->CR1 (default RES = 00 => 12 bits) 12-10-8-6 bits take 12-11-9-7 clock cycles, respectively, to convert (trade off resolution for speed) Data can be left or right-aligned within the data register Right alignment (ALIGN = 0): 0000dddddddddddd (default) Left alignment (ALIGN = 1): dddddddddddd0000 Select via ALIGN bit in ADC1->CR2

Conversion modes Single conversion (default: SCAN=0 in CR1, CONT=0 in CR2) Select an input channel (SQ1 field in in ADC1->SQR5) Start the conversion (software start or hardware trigger) EOC sets when conversion is complete Read the result in the DR Scan mode (enable with SCAN=1 in CR1) Perform a sequence of conversions of designated input channels Define sequence length in ADC1->SQR1 Select channels in ADC1->SQR1 ADC1->SQR5 (channels can be in any order) Start the conversion sequence (software start or hardware trigger) EOC sets after each conversion (EOCS = 0) or after the entire sequence is complete (EOCS = 1). (EOCS in ADC1->CR2) Continuous mode (enable with CONT=1 in CR2) Start 1 st conversion/sequence (software start or hardware trigger) Next conversion/sequence starts automatically after a conversion/sequence completes

ADC timing Turn on ADC in CR2 ADC stabilizes In SR: ADC ready Set in CR2 sample + convert End conversion, DR ready

ADC conversion time Total conversion time = T sampling + T conversion T conversion = 12/11/9/7 cycles for 12/10/8/6 bit resolution T sampling = sampling time, specified for each channel Options: 4, 9, 16, 24, 48, 96, 192, 384 clock cycles 3-bit value SMPn[2:0] sets sample time for channel n ADC1->SMPR3 configures channels 9-0 ADC1->SMPR2 configures channels 19-10 ADC1->SMPR1 configures channels 29-20 Example: Fastest conversion rate for 12-bit data f ADCCLK = 16MHz; min T sampling = 4; max res. = 12 bits T total = (4 + 12)/16MHz = 1us (1 Msamples/sec)

Example: Set T sampling = 24 clock cycles for ADC_IN8 ADC1->SMPR3 (reset value = 0x00000000) SMPx[2:0]: Channel x Sample time selection (# clock cycles) 000: 4 cycles, 010: 16 cycles, 100: 48 cycles, 110: 192 cycles 010: 9 cycles, 011: 24 cycles, 101: 96 cycles, 111: 384 cycles Default is 4 cycles for each channel // Set sample time for ADC_IN8 to 24 cycles ADC1->SMPR3 &= ~ADC_SMPR3_SMP8; //Clear SMP8 bits* ADC1->SMPR3 = 0x03000000; //SMP8 = 3 *ADC_SMPR3_SMP8 = 0x03000000

ADC control register 1 (ADC1->CR1) Reset value = 0x0000 0000 (bold values below) RES[1:0]: resolution 00: 12-bit, T CONV = 12 cycles 01: 10-bit, T CONV = 11 cycles 10: 8-bit, T CONV = 9 cycles 11: 6-bit, T CONV = 7 cycles SCAN: enable scan mode 0: disable Scan mode 1: enable Scan mode (convert inputs selected in ADC_SQRx) EOCIE: end of conversion interrupt enable: 0: disable the interrupt 1: enable ADC interrupt when EOC sets Default setup: 12-bit sample single channel (no scan) no interrupt

ADC control register 2 (ADC1->CR2) Reset value = 0x0000 0000 SWSTART: Software start signal Write 1 to start conversion Resets when conversion starts ALIGN: Data alignment in 16-bit result register 0: Right alignment (upper bits = 0) 1: Left alignment (lower bits = 0) EOCS: End of conversion selection 0: EOC bit set at end of conversion sequence 1: EOC bit set at end of each conversion ADON: Turn ADC on/off 0: Disable ADC 1: Enable ADC //Turn on ADC ADC1->CR2 = 1; CONT: 0: single conversion mode 1: continuous conversion mode

ADC status register (ADC1->SR) ADONS: ADC ON state 1 = ADC ready to convert Set/cleared by HW //Wait for end of conversion (EOC=1) while ((ADC1->SR & 0x02) == 0); EOC: End of Conversion 1 = Conversion complete (if EOCS = 0) Sequence complete (if EOCS = 1) Set by HW. Clear by SW or by reading DR Other status bits: RCNR: Regular Channel Not Ready 1 = Regular conversion can be done HW sets/clears STRT: Start status 1 = Regular channel conversion has started HW sets/clears OVR: Overrun detected 1 = Regular conversion data lost (DR overwritten before read) Clear in SW

Channel Selection Sequence of conversions (up to 28) can be done on any channel(s), in any order Specify total #conversions via L[4:0] bits in the ADC1->SQR1 register Default is one conversion (L = 0) Specify sequence by configuring the ADC1_SQRx sequence registers ADC1->SQR5: conversions 1-6 ADC1->SQR4: conversions 7-12 ADC1->SQR3: conversions 13-18 ADC1->SQR2: conversions 19-24 ADC1->SQR1: conversions 25-28 In these registers, bits SQn[4:0] select channel # for the nth conversion in the sequence. For single-channel conversion, specify channel # in SQ1 of ADC1->SQR5 ADC_IN16 connected to internal temperature sensor ADC_IN17 connected to internal reference voltage VREFINT Example on next slide

Example: Select single conversion of ADC_IN8 ADC1->SQR1 (reset value = 0x00000000) #conversions in the sequence = L+1 (default L=0 selects a single conversion) ADC1->SQR1 &= ~ADC_SQR1_L; //set L=0 (ADC_SQR1_L = 0x01F00000) (but - not really necessary, since L=0 is the default) ADC1->SQR5 (reset value = 0x00000000) SQ1=x selects ADC_INx as first channel in a sequence ADC1->SQR5 &= ~ADC_SQR5_SQ1; //clear SQ1 bits (ADC_SQR5_SQ1 = 0x0000001F) ADC1->SQR5 = 0x00000008; //SQ1=8 for ADC_IN8

Conversion Trigger Selection (configure in ADC1->CR2) Software trigger: //Set SWSTART bit to 1 ADC->CR2 = ADC_CR2_SWSTART; (0x40000000) External trigger Select trigger detection mode via EXTEN bits (rising and/or falling edge of trigger) Specify the trigger source via EXTSEL bits Ex. EXTSEL = 0111 for TIM3_CC1 event

Using the ADC (summary) Setup Connect voltage reference (hard-wired to 3v on Discovery) Configure GPIO pin (select analog mode in MODER, turn on GPIO clk) Enable HSI clock for ADC conversion (RCC->CR) Enable ADC digital interface clock (RCC-<APB2ENR) Power on ADC (CR2) Select data format (CR1,CR2) Select conversion mode (CR1,CR2) Select sample time (SMPR3) Select input channel(s) (SQR1,SQR5) Trigger conversion (Software: CR2, or External: CR2) Read results (DR) Adjust results as needed (calibrate, average, etc.)

Working with ADC data samples AAAAAAA DDDD = Several conversions may be needed VVVVVV VVVVVVVV 2#bbbbbbbb Average several samples of N to filter out noise Compute approximate input voltage Vin from N For a sensor, compute the physical parameter value (e.g. pressure) from Vin this depends on the sensor s transfer function Do additional computations based on this physical parameter (e.g. compute depth based on pressure) Convert data to some other form (eg. ASCII characters, to send to a display) Numeric considerations Consider resolution of measured data (eg. 12 bits) vs resolution of other data involved in calculations Consider measurement errors in the ADC Some program data may be in floating-point format

Lab Procedure Design and incorporate a rectifier & filter into your circuit to convert the tachometer output to a DC voltage level Model in PSPICE to verify design. Measure tachometer signal and rectifier/filter output with o scope. EEBoard waveform generator can be used to test the circuit without the motor. Modify software to add ADC initialization function and ADC input function (trigger conversion, wait for EOC, read result) Consider averaging some # of samples EEBoard waveform generator can be used to test the circuit without the motor. Measure: tachometer signal amplitude, rectifier/filter voltage output & ADC value for each of the 10 switch settings Plot: ADC value vs tachometer output amplitude ADC value vs. ATD input voltage (rectifier/filter output) ADC value vs. PWM signal duty cycle