29035 Laboratorio di ARCHITETTURE E PROGRAMMAZIONE DEI SISTEMI ELETTRONICI INDUSTRIALI T-A



Similar documents
Elettronica dei Sistemi Digitali Costantino Giaconia SERIAL I/O COMMON PROTOCOLS

STM32 F-2 series High-performance Cortex-M3 MCUs

Atmel Norway XMEGA Introduction

Hello, and welcome to this presentation of the STM32L4 reset and clock controller.

SPI I2C LIN Ethernet. u Today: Wired embedded networks. u Next lecture: CAN bus u Then: wireless embedded network

Chapter 13. PIC Family Microcontroller

USER GUIDE EDBG. Description

Serial Communications

AND8336. Design Examples of On Board Dual Supply Voltage Logic Translators. Prepared by: Jim Lepkowski ON Semiconductor.

Lab Experiment 1: The LPC 2148 Education Board

Objectives. Basics of Serial Communication. Simplex vs Duplex. CMPE328 Microprocessors (Spring ) Serial Interfacing. By Dr.

Embedded Systems on ARM Cortex-M3 (4weeks/45hrs)

The I2C Bus. NXP Semiconductors: UM10204 I2C-bus specification and user manual HAW - Arduino 1

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

Chapter 1 Lesson 3 Hardware Elements in the Embedded Systems Chapter-1L03: "Embedded Systems - ", Raj Kamal, Publs.: McGraw-Hill Education

Hello, and welcome to this presentation of the STM32 SDMMC controller module. It covers the main features of the controller which is used to connect

User s Manual of Board Microcontroller ET-MEGA2560-ADK ET-MEGA2560-ADK

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

DS1307ZN. 64 x 8 Serial Real-Time Clock

DS1621 Digital Thermometer and Thermostat

UMBC. ISA is the oldest of all these and today s computers still have a ISA bus interface. in form of an ISA slot (connection) on the main board.

USB2.0 <=> I2C V4.4. Konverter Kabel und Box mit Galvanischetrennung

AN4646 Application note

DS1621 Digital Thermometer and Thermostat

Serial Communications

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

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

COMPUTER HARDWARE. Input- Output and Communication Memory Systems

MicroMag3 3-Axis Magnetic Sensor Module

ET-BASE AVR ATmega64/128

Motor Control using NXP s LPC2900

Microcomputer Protocol Implementation at Local Interconnect Network Georgi Krastev

ARM Cortex STM series

TURBO PROGRAMMER USB, MMC, SIM DEVELOPMENT KIT

Data Sheet. Adaptive Design ltd. Arduino Dual L6470 Stepper Motor Shield V th November L6470 Stepper Motor Shield

POCKET SCOPE 2. The idea 2. Design criteria 3

Software User Guide UG-461

HARDWARE MANUAL. BrightSign HD120, HD220, HD1020. BrightSign, LLC Lark Ave., Suite 200 Los Gatos, CA

How To Use Nuc123 (Nuc123) For A Week

Using Xbee in Serial Communication

Computer Systems Structure Input/Output

Building Blocks for PRU Development

How to design and implement firmware for embedded systems

INDUSTRIAL CONTROL TECHNOLOGY. A Handbook for Engineers and Researchers. Peng Zhang. Beijing Normal University, People's Republic of China

DS Wire Digital Thermometer and Thermostat

Eureka Technology. Understanding SD, SDIO and MMC Interface. by Eureka Technology Inc. May 26th, Copyright (C) All Rights Reserved

2.0 Command and Data Handling Subsystem

DS1104 R&D Controller Board

System Considerations

Implementing SPI Master and Slave Functionality Using the Z8 Encore! F083A

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

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

Part Number Description Packages available

DKWF121 WF121-A B/G/N MODULE EVALUATION BOARD

Designing VM2 Application Boards

SKP16C62P Tutorial 1 Software Development Process using HEW. Renesas Technology America Inc.

7a. System-on-chip design and prototyping platforms

Von der Hardware zur Software in FPGAs mit Embedded Prozessoren. Alexander Hahn Senior Field Application Engineer Lattice Semiconductor

Design of a High Speed Communications Link Using Field Programmable Gate Arrays

A+ Guide to Managing and Maintaining Your PC, 7e. Chapter 1 Introducing Hardware

8051 MICROCONTROLLER COURSE

Design and Verification of Nine port Network Router

Am186ER/Am188ER AMD Continues 16-bit Innovation

ontroller LSI with Built-in High- Performance Graphic Functions for Automotive Applications

Hello, and welcome to this presentation of the STM32 Serial Audio Interface. I will present the features of this interface, which is used to connect

Arduino Due Back. Warning: Unlike other Arduino boards, the Arduino Due board runs at 3.3V. The maximum. Overview

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

M25P05-A. 512-Kbit, serial flash memory, 50 MHz SPI bus interface. Features

ARM Ltd 110 Fulbourn Road, Cambridge, CB1 9NJ, UK.

Single Phase Two-Channel Interleaved PFC Operating in CrM

Serial port interface for microcontroller embedded into integrated power meter

UniPi technical documentation REV 1.1

AT15007: Differences between ATmega328/P and ATmega328PB. Introduction. Features. Atmel AVR 8-bit Microcontrollers APPLICATION NOTE

STM-P103 development board user's manual

Parallel IO. Serial IO. Parallel vs. Serial IO. simplex vs half-duplex vs full-duplex. Wires: Full Duplex. Wires: Simplex, Half-duplex.

FLYPORT Wi-Fi G

Guangzhou HC Information Technology Co., Ltd. Product Data Sheet

Interfacing Of PIC 18F252 Microcontroller with Real Time Clock via I2C Protocol

Single channel data transceiver module WIZ2-434

Adding WiFi to Your Embedded System. WPG Americas & Gainspan Titus Wandinger (WPG) & Su Li (Gainspan) April 23, 2013

MANUAL FOR RX700 LR and NR

ARM Cortex -A8 SBC with MIPI CSI Camera and Spartan -6 FPGA SBC1654

Microcontroller Based Low Cost Portable PC Mouse and Keyboard Tester

Design and Implementation of Home Monitoring System Using RF Technology

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

Computer Organization and Components

PAC52XX Clock Control Firmware Design

Allows the user to protect against inadvertent write operations. Device select and address bytes are Acknowledged Data Bytes are not Acknowledged

Computer Performance. Topic 3. Contents. Prerequisite knowledge Before studying this topic you should be able to:

Digitale Signalverarbeitung mit FPGA (DSF) Soft Core Prozessor NIOS II Stand Mai Jens Onno Krah

USB 3.0 Connectivity using the Cypress EZ-USB FX3 Controller

Data Acquisition Module with I2C interface «I2C-FLEXEL» User s Guide

AN141 SMBUS COMMUNICATION FOR SMALL FORM FACTOR DEVICE FAMILIES. 1. Introduction. 2. Overview of the SMBus Specification. 2.1.

Computer Organization & Architecture Lecture #19

The Programming Interface

System Design Issues in Embedded Processing

STM32 Seminar. Peripherals

Software engineering for real-time systems

Real-time Operating Systems Lecture 27.1

PART B QUESTIONS AND ANSWERS UNIT I

Transcription:

29035 Laboratorio di ARCHITETTURE E PROGRAMMAZIONE DEI SISTEMI ELETTRONICI INDUSTRIALI T-A Modulo II Elisabetta Farella E3DA ICT Center - FBK AA 2014-2015

Module II No change in class organization Friday morning (9-11) Lectures (Farella) Aprile Giugno (Mod 2) Thursday afternoon (15-19) (Casamassima, Balsamo): LAB1 Friday morning (11-13) LAB1 Extra time if needed Content natural prosecution of contents started with Prof. Benini I/O interfaces and DAC/ADC Wireless protocols Sensors & actuators Power management in embedded system A unique exam for the 2 modules (lab report + oral discussion): Next dates (Summer 2015): June 12, July 20 Contacts: email: elisabetta.farella@unibo.it News, material and updates on the Website: http://wwwmicrel.deis.unibo.it/labarch/

IO and Peripheral Interfaces

STM32 Value line 64K-128KBytes System Diagram Core and operating conditions - ARM Cortex -M3-1.25 DMIPS/MHz up to 24 MHz CORTEX TM -M3 CPU 24 MHz Flash I/F 64kB - 128kB Flash Memory Power Supply Reg 1.8V POR/PDR/PVD - 2.0 V to 3.6 V range - -40 to +105 C Rich connectivity - 8 communications peripherals Advanced analog - 12-bit1.2 µs conversion time ADC - Dual channel 12-bit DAC Enhanced control - 16-bit motor control timer - 6x 16-bit PWM timers LQFP48, LQFP/BGA64, LQFP100 JTAG/SW Debug Nested vect IT Ctrl 1 x Systick Timer DMA 7 Channels 1 x 16-bit PWM Synchronized AC Timer Up to 16 Ext. ITs 37/51/80 I/Os 1 x SPI 1 x USART/LIN Smartcard/IrDa Modem Control ARM Lite Hi-Speed Bus Matrix / Arbiter (max 24MHz) Bridge ARM Peripheral Bus (max 24MHz) Bridge 8kB SRAM 20B Backup Data Clock Control ARM Peripheral Bus (max 24MHz) 6 x 16-bit Timer 2 x Watchdog (independent & window) 2-channel 12-bit DAC 1 x 12-bit ADC up to16 channels Temperature Sensor XTAL oscillators 32KHz + 4~25MHz Int. RC oscillators 40KHz + 8MHz PLL RTC / AWU 1 x CEC 2 x USART/LIN Smartcard / IrDa Modem Control 1 x SPI 2 x I 2 C

Rich connectivity 8 LEDs (4 User LED) LSM303DLHC, 3-axis digital linear acceleration sensor and a 3-axis digital magnetic sensor. L3GD20, 3-axis digital gyroscope. On-board ST-LINK/V2 (for programming and debugging) Microcontroller 256 KB of Flash, 64 KB of RAM Two pushbuttons (user and reset) Digital Microphone Digital external DAC and audio amplifier USB Host

Interfaces Digital Interface Several protocols for inter-chip communication Serial communication protocols Meant for short distances inside the box Low complexity Low cost Low speed ( a few Mbps at the fastest ) Serial communication is employed where it is not practical, either in physical or cost terms, to move data in parallel between systems. Serial interfaces examples: RS232, USB, UART, JTAG, PCI, I 2 C, FireWire, SPI, MISI

Interfaces Parallel communication protocols may be faster but need synchronization bulkier cables, more I/O pins and lines Parallel interfaces examples: IEEE-1284 printer port, parallel buses: ISA, ATA, SCSI, PCI and Front side bus, Lab instrumentation bus Analog Interface ADC (Analog Digital Converter) DAC (Digital Analog Converter) Comparator

Peripherals registers Microcontroller has peripherals registers mapped in the memory space address Each peripheral has registers to configure its functionality and read and write input/output data Memory Address Description Access End: 0FFFFh Interrupt Vector Table Word/Byte Start: 0FFE0h End: 0FFDFh Flash/ROM Word/Byte 0F800h Start *: 01100h Peripherals End *: 010FFh 0107Fh Information Memory Start: 01000h (Flash devices only) End: 0FFFh Boot Memory Start: 0C00h (Flash devices only) End *: Start: End: Start: End: Start: End: Start: 09FFh 027Fh 0200h 01FFh 0100h 00FFh 0010h 000Fh 0000h RAM 16-bit Peripheral modules 8-bit Peripheral modules Special Function Registers Word/Byte Word/Byte Word/Byte Word Byte Byte 8

Microcontroller External Pin Configuration Microcontroller pins can be assigned to different function and peripherals Each pin can: Perform input, output, and interrupt functionality (general purpose input output: GPIO); Set pull-up/pull-down resistor; Be assigned to digital/analog peripheral as UARTs, SPIs, I2C, ADC, DAC...

General Purpose I/O - GPIO Avoid floating inputs!!! Use a pull-up/down resistor, GND, or internal programmable logic A floating inputs can cause short circuit current in the input circuit! VCC Button 5.6K Button produces either Vcc or Floating input. Adding a pull-down resistor fixes it. VCC Button 5.6K Some ports have internal programmable resistors To Input Logic Port Pin

STM32 GPIO Features Up to 80 multifunction bi-directional I/O ports available: 80% IO ratio Standard I/Os 5V tolerant The GPIOs can sink 25mA ( total currents sunk is 150mA ) 18 MHz Toggling Configurable Output Speed up to 50 MHz Up to 16 Analog Inputs Alternate Functions pins (like USARTx, TIMx, I2Cx, SPIx, CAN, USB ) Up to 80 GPIOs can be set-up as external interrupt (up to 16 lines at time) One I/O can be used as Wake-Up from STANDBY (PA.00) One I/O can be set-up as Tamper Pin (PC.13) All Standard I/Os are shared in 5 ports (GPIOA..GPIOE) Atomic Bit Set and Bit Reset using BSRR and BRR registers Locking mechanism to avoid spurious write in the IO registers When the LOCK sequence has been applied on a port bit, it is no longer possible to modify the configuration of the port bit until the next reset (no write access to the CRL and CRHregisters corresponding bit).

General-Purpose IO for STM32 - GPIO Configuration: two 32-bit wide registers (can be combined), 4-bit per pin (2 conf I/O, 2 mode) - BSRR 32-bit register mapping port pins for set/reset

Digital (Serial) Interfaces

I 2 C Shorthand for an Inter-integrated circuit bus I2C devices include EEPROMs, thermal sensors, and realtime clocks Used as a control interface to signal processing devices that have separate data interfaces, e.g. RF tuners, video decoders and encoders, and audio processors. I 2 C bus has three speeds: Slow (under 100 Kbps) Fast (400 Kbps) High-speed (3.4 Mbps) I 2 C v.2.0 Limited to about 3 meters for moderate speeds

I 2 C (Inter-Integrated Circuit) protocol Communications is always initiated and completed by the master, which is responsible for generating the clock signal; In more complex applications, I 2 C can operate in multi-master mode; The slave selection by the master is made using the seven-bit address of the target slave; The master (in transmit mode) sends: Start bit; 7-bit address of the slave it wishes to communicate with; A single bit representing whether it wishes to write (0) to or read (1) from the slave; The target slave will acknowledge its address.

I 2 C Bus Configuration 2-wire serial bus Serial data (SDA) and Serial clock (SCL) Half-duplex (alternate bi-dir.), synchronous, multi-master bus No chip select or arbitration logic required Lines pulled high via resistors, pulled down via open-drain drivers (wired-and, avoid short circuit among the bus)

I 2 C Features Clock stretching when the slave (receiver) needs more time to process a bit, it can pull SCL low. The master waits until the slave has released SCL before sending the next bit. General call broadcast addresses every device on the bus 10-bit extended addressing for new designs. 7-bit addresses all exhausted Start Address bits Direction Receiver Ack Data bits Stop

Simple I2C communication

I 2 C Registers The I2C peripheral has several registers to: Set external pin (enable I2C function in a specific chip pin) Set transmission clock frequency Set Read or Write transmission Write slave address Enable/Disable stop bit Write output data Read input data Start/Stop the transmission Enable/Disable DMA controller Enable/Disable Interrupt Check I2C status

STM32 I2C Features (1/2) Multi Master and slave capability Controls all I²C bus specific sequencing, protocol, arbitration and timing Standard and fast I²C mode (up to 400kHz) 7-bit and 10-bit addressing modes Dual Addressing Capability to acknowledge 2 slave addresses Status flags: Transmitter/Receiver mode flag Byte transfer finished flag I2C busy flag Configurable PEC (Packet Error Checking) Generation or Verification: PEC value can be transmitted as last byte in Tx mode PEC error checking for last received byte

Error flags: STM32 I2C Features (2/2) Arbitration lost condition for master mode Acknowledgement failure after address/ data transmission Detection of misplaced start or stop condition Overrun/Underrun if clock stretching is disabled 2 Interrupt vectors: 1 Interrupt for successful address/ data communication 1 Interrupt for error condition 1-byte buffer with DMA capability SMBus 2.0 Compatibility PMBus Compatibility

STM32 I2C Block diagram

SPI vs. I 2 C For point-to-point, SPI is simple and efficient Less overhead than I 2 C due to lack of addressing, plus SPI is full duplex. For multiple slaves, each slave needs separate slave select signal SPI requires more effort and more hardware than I 2 C SPI I 2 C

SPI Shorthand for Serial Peripheral Interface Defined by Motorola on the MC68HCxx line of microcontrollers Generally faster than I 2 C, capable of several Mbps Applications: Like I 2 C, used in EEPROM, Flash, and real time clocks Better suited for data streams, i.e. ADC converters Full duplex capability, i.e. communication between a codec and digital signal processor

SPI protocol Supports only one master; Can support more than a slave; Short distance between devices, e.g. on a printed circuit boards (PCBs); Special attention needs to be observed to the polarity and phase of the clock signal; The master sends data on one edge of clock and reads data on the other edge. Therefore, it can send/receive at the same time.

SPI Bus Configuration Synchronous serial data link operating at full duplex Master/slave relationship 2 data signals: MOSI master data output, slave data input MISO master data input, slave data output 2 control signals: SCLK clock /SS slave select (no addressing)

SPI structure Interchip circular buffer structure As the register transmits the byte to the slave on the MOSI signal line, the slave transfers the contents of its shift register back to the master on the MISO signal line, exchanging the contents of the two shift registers.

SPI Operating Mode SPI has 4 operating modes, each of them differ to the others for clock polarity and phase. Clock polarity set if the clock will start with high or low value Clock phase set if the data will be latched on rising or falling edge of clock

Configurations Daisy-chain configuration vs Independent configuration Other difference with I2C Push-pull drivers (as opposed to open drain) provide good signal integrity and high speed

SPI Registers The SPI peripheral has several registers to: Set external pin (enable SPI function in a specific chip pin) Set transmission clock frequency Set clock polarity Set clock phase Enable/Disable slave select Write output data Read input data Start/stop transmission Enable/Disable interrupt Enable/Disable DMA Check SPI status

STM32 SPI Features (1/2) Two SPIs: SPI1 on high speed APB2 and SPI2 on low speed APB1 Full duplex synchronous transfers on 3 lines Simplex synchronous transfers on 2 lines with or without a bidirectional data line Programmable data frame size :8- or 16-bit transfer frame format selection Programmable data order with MSB-first or LSB-first shifting Master or slave operation Programmable bit rate: up to 18 MHz in Master/Slave mode NSS management by hardware or software for both master and slave: Dynamic change of Master/Slave operations

STM32 SPI Features (2/2) Programmable clock polarity and phase Dedicated transmission and reception flags (Tx buffer Empty and Rx buffer Not Empty) with interrupt capability SPI bus busy status flag Master mode fault and overrun flags with interrupt capability Hardware CRC feature for reliable communication Support for DMA Each SPI has a DMA Tx and Rx requests Each of the SPIs requests is mapped on a different DMA channel: Possibility to use DMA for all SPIs transfer direction in the same time Calculated CRC value is automatically transmitted at the end of data transfer

SPI Block Diagram (STM32)

NSS HW & SW Management Both Master and Slave NSS pins could be used for other purpose Provides the possibility of dynamic change of Master/Slave operations: No hardware limitation to switch from master to slave or slave to master in the same application

Multi-Master NSS Management Each device can be a unique master by enabling its NSS as output and driving it low: all other devices became slaves. Rx-only mode No need for external GPIO pin to drive slaves NSS pins

UART Shorthand for Universal Asynchronous Receiver-Transmitter A UART s transmitter is essentially just a parallel-to-serial converter with extra features. The UART bus is a full-duplex bus. The essence of the UART transmitter is a shift register that is loaded in parallel, and then each bit is sequentially shifted out of the device on each pulse of the serial clock. Application: Communication between microprocessors, pc Used to interface the microcontroller with others transmission bus as: RS232, RS485, USB, CAN BUS, KNX, LonWorks ecc. Used to connect microntroller with modem and transceiver as: telephone modem, Bluetooth, WIFi, GSM/GPRS/HDPSA

UART Asynchronous serial devices, such as UARTs, do not share a common clock Each device has its own, local clock. The devices must operate at exactly the same frequency. Logic (within the UART) is required to detect the phase of the transmitted data and phase lock the receiver s clock to this. Bitrate: 2400, 19200, 57600,115200, 921600 One of the problems associated with serial transmission is reconstructing the data at the receiving end, because the clock is not transmitted. Difficulties arise in detecting boundaries between bits.

UART The transmission format uses: 1 start bit at the beginning Settable 5,6,7,8 data bits string length Settable 1 or 0 even/odd parity bit control Parity control The parity bit control is accordingly set to 0 or 1 to have and odd number of frame 1 bits in odd parity either an even number of frame 1 bits in the even parity The control can detect 1 bit error in the frame

UART transmission UART can transmit either with 2 or 4 wires 2 wires mode has transmit and receive lines 4 wires mode has transmit and receive lines plus 2 handshake signals, RTS request to send, CTS clear to send UART Tx FIFO Rx FIFO UART Rx FIFO Tx FIFO

UART Registers The UART peripheral has several registers to: Set external pin (enable UART function in a specific chip pin) Set transmission bitrate Set stop bit numbers, parity control Set data string length Set 2 or 4 wires mode Enable/Disable handshake control Write output data Read input data Start/stop transmission Enable/Disable interrupt Enable/Disable DMA Check UART status and bit errors

STM32 USART Features (1/2) Three USART: USART1 High speed APB2 and USART2,3 on Low speed APB1 Data can be 8 or 9 bits Even, odd or no-parity bit generation and detection 0.5, 1, 1.5 or 2 stop bit generation Programmable baud rate generator Integer part (12 bits) Fractional part (4 bits) Support hardware flow control (CTS and RTS) Dedicated transmission and reception flags (TxE and RxNE) with interrupt capability Support for DMA Receive DMA request Transmit DMA request

STM32 USART Features (2/2) 10 interrupt sources to ease software implementation LIN Master/Slave compatible Synchronous Mode: Master mode only IrDA SIR Encoder Decoder Smartcard Capability Single wire Half Duplex Communication (a co simplex na SPI) Multi-Processor communication USART can enter Mute mode Mute mode: disable receive interrupts until next header detected Wake up from mute mode (by idle line detection or address mark detection)

STM32 USART Block Diagram

A few words on JTAG and SWD JTAG (Joint Test Action Group) or IEEE 1149.1 IEEE Standard Test Access Port and Boundary- Scan Architecture Variant: SWD Serial Wire Debug Why? Increasing board complexity Shorter product lifecycle Traditional test equipment not anymore adequate Loss of physical access Fine-pitch components SMTs, BGAs Increased board density High-speed signaling

JTAG Replace traditional boundary scan Debug interface to embedded processor - read registers, - set breakpoint, - single-stepping Abbreviation Signal TCK TMS TDI TDO TRST Test Clock Description Synchronizes the internal state machine operations Test Mode State Test mode selection Test Data In Test Data Out Test Reset Represents the data shifted into the device's test or programming logic. It is sampled at the rising edge of TCK when the internal state machine is in the correct state. Represents the data shifted out of the device's test or programming logic and is valid on the falling edge of TCK when the internal state machine is in the correct state An optional pin which, when available, can reset the TAP controller's state machine Daisy chain to control open and short circuit

PWM What is Pulse Width Modulation? Pulse width modulation (PWM) is a simple method of using a rectangular digital waveform to control an analog variable PWM delivers a variable amount of power efficiently to external hw devices PWM control is used in a variety of applications, ranging from communications to automatic control, i.e. control speed of electric motors, brightness of a LED, temperature of heating element

PWM The period is normally kept constant, and the pulse width, or on time is varied The duty cycle is the proportion of time that the pulse is on or high, and is expressed as a percentage: duty cycle = 100% * (pulse on time) / (pulse period)

PWM Whatever duty cycle a PWM stream has, there is an average value, as indicated by the dotted line If the on time is small, the average value is low; if the on time is large, the average value is high By controlling the duty cycle, we control this average value

PWM The average value can be extracted from the PWM stream with a low-pass filter In this case, and as long as PWM frequency and values of R and C are appropriately chosen, Vout becomes an analog output In practice, this sort of filtering is not always required; many physical systems have response characteristics which, in reality, act like low pass filters

Applications using PWM Devices used in robotics DC motors Servos Solenoids Closed loop control systems Communications and pulse code modulation Any device whose response to changes in current or voltage is slow compared to the frequency of the PWM signal is a candidate for being controlled via PWM. Benefits include Microprocessor control Efficient use of power Tolerance to analog noise Not susceptible to component drift

STM32 GPIO Timers for PWM The STM32 hardware timers are separate hardware blocks that can count from 0 to a given value triggering some events in between. In the PWM mode the timer controls the output of 1 or more output channels. When the counter value reaches 0, maximum or a compare value defined for each channel, the output value of the channel can be changed. Various configuration options define which events change the value and how it is changed.

STM32 GPIO Timers for PWM Up to 4 channel Edge-aligned mode Center-aligned mode Timer Type Resolution Prescaler Channels MAX INTERFACE CLOCK MAX TIMER CLOCK* APB TIM1, TIM8 Advanced 16bit 16bit 4 SysClk/2 SysClk 2 TIM2, TIM5 General purpose 32bit 16bit 4 SysClk/4 SysClk, SysClk/2 1 TIM3, TIM4 General purpose 16bit 16bit 4 SysClk/4 SysClk, SysClk/2 1 TIM9 General purpose 16bit 16bit 2 SysClk/2 SysClk 2 TIM10, TIM11 General purpose 16bit 16bit 1 SysClk/2 SysClk 2 TIM12 General purpose 16bit 16bit 2 SysClk/4 SysClk, SysClk/2 1 TIM13, TIM14 General purpose 16bit 16bit 1 SysClk/4 SysClk, SysClk/2 1 TIM6, TIM7 Basic 16bit 16bit 0 SysClk/4 SysClk, SysClk/2 1

GPIO Timer Block diagram

Summary Reviewed hw/sw mechanisms to interface between components (inter-chip I/O) We focused mainly on serial digital interfaces (I 2 C, SPI, UART, JTAG, PWM) Coming next: Interfacing with analog components (ADC & DAC) Interfacing extra-chip: wireless interfaces Interfacing with specific components: sensors (& actuators)