Fundamental of Microcontrollers Waghmare Rahul G.
Introduction Purpose Objectives: Provides an introduction to microcontrollers including usage and selection Objectives: Describes the functions of a microcontroller Briefly explains the history of microcontrollers Describes the main components of microcontroller Talk about trends seen in the microcontroller industry Describe the current microcontroller offerings Describe the some of the steps in first using a microcontroller Show usage of an Evaluation kit Provide insight into how to choose a microcontroller for your application
What is Microcontroller Single chip device System decision based on external signals Controls the behavior of a system Always Contains: Processor Core Memory (RAM, ROM) Input/output (I/O) Capability Serial I/O interface Various On-Chip Peripherals such as: Timers Analog to digital converters Pulse width Modulators Many others Memory I/O Peri perals Processor Core (CPU)
Where are Microcontrollers? Everywhere Any application that has real world inputs and outputs Examples: Washing Machine ECG Machine Networking equipments PCOs etc..
What is difference between a Microcontroller and a Microprocessor? CPU core with memory and peripherals integrated on chip CPU core connects to external memory and peripherals
What is difference between a Microcontroller and a DSP?
History of the Microcontrollers
History of the Microcontroller: Early Time
History of the Microcontroller: Other Early Entries General Instruments: The famous PIC Spun out chip Division - Microchip Hitachi 6300 line Combined with Mitshibushi Electric to form Renesas Zilog First the Z – 80 processor, then Z – 8 MCU PIC – Harvard architecture Z-80 – CISC Architecture - Improved version of the Intel 8080
Architecture
Processor Core CPU Reads and Stores data Performs Basic Math Operations Performs Logical functions (OR, AND etc) Controls flow of program execution Register Configuration changes from core to core Addressing Modes : How CPU fetches the memory Interrupts also changes from core to core
Microcontroller bit definition
CISC V/S RISC Complex Instruction Set Computer CISC – Hardware is faster than software hence powerful instruction set is provided - Uses Microcode - Instructions are variable in length Complex circuitry is required to decode them RISC: - Instruction set is small More instructions are needed to compile a task Hardware is simple Complex Instruction Set Computer Reduced Instruction Set Computer
Harvard V/S von Neumann Harvard: separate bus for data and instruction memory -separate Memory allocation for each - both data and memory can be fetched at the same time - but memory management is more complex Van Neumann: Modern MCU have combination of both the architecture
Interrupt controller Hardware to handle interrupt signals Important in real time system Interrupt latency in important to consider Hardware and software (OS) determine interrupt latency Interrupt service routine (ISR) is the part of OS In Real time system Interrupt handling is critical. Interrupt controller is a piece of hardware that receives the interrupt signal, determines the priority of the interrupt, sends the interrupt request to the CPU Interrupts can be external or Internal The time from one interrupt event happened to when the CPU acts on interrupt is called the interrupt latency
System Memory: ROM ROM – Read-only Memory – for program storage Masked ROM Programmed during manufacture PROM Programmed by blowing fuse after manufacture EPROM – Erasable ROM Electrically programmed – Erased by UV light OTP – One Time Programmable EPROM that is encapsulated EEPROM – Electrically Erasable ROM Electrically programmed – Erased with higher voltages FLASH Similar to EEPROM Write/Read/Erase in large blocks
System Memory: RAM RAM – Random Access Memory Types of RAM Volatile or Non-permanent memory Can be written to many times Stores Temporary or changeable data “Embedded” in MCUs Types of RAM SRAM Static RAM Fast Access times / More Silicon area Common in MCUs DRAM Dynamic RAM Slower access time / Lesser Silicon area Less common in MCUs
I/O: Serial Interface Allow Communication with other devices USB (Universal Serial Bus) CAN (Controller Area Network) SPI (Serial Peripheral Interface) I2C (Inter Integrated Circuit) UART (Universal Asynchronous Receiver/Transmitter) LIN (Local Interconnect Network) Ethernet Also Wireless Interfaces ZigBee Bluetooth
On chip Peripherals Timers LCD Controllers Touch screen Controllers Keypad Controllers GPIO pins A/D Converter D/A Converter Analog Comparator Pulse Width Modulator
Trends and Current Offerings
Microcontroller Trends Low Power Dynamic Power Static Power Low Power Modes Lower Supply Voltage Higher Integration More Feature Incorporated Low Power Dynamic Power Power taken to run an application and shows the efficiency of the microcontroller Static Power Power Consumed during MCU standby period or lower power modes Low Power Modes Means to turn off the power to the device that are not in use Lower Supply Voltage Power consumption can also be minimized by lowering the supply voltage
Microcontroller Trends 32 bits More Processing power Flash Memory May replace the traditional ROM DSP Functionality DSP or Microcontroller Multi-core Not just for PCs
Sampling of Microcontroller offerings: Licensed cores 8051 NXP, Atmel, Silicon Labs, Dallas/Maxim, ST, Rabbit and others ARM NXP, ST, Free-scale, Atmel, Samsung, Texas Instruments, OKI, Energy Micro and others MIPS Microchips 8051 – 8 bit microcontroller with Harvard Architecture NXP – Philips ARM – 32 bit RISC processor
Sampling of Microcontroller offerings: Broad range Vendors NXP Renesas Microchip Free scale Atmel Infineon Texas Instruments Samsung & ST Microelectronics NEC Toshiba NXP Formerly known as Philips 8051, ARM cores Renesas 8 -32 bit RISC core Microchip PIC DSPIC, MSIP Free scale Formerly known as Motorola 8-32 bit Microcontrollers Atmel 8051 core, ARM7,9 and cortex M3, M4 and M0 AVR Architecture Infineon 8051,Tricore,C166 Texas Instruments 16 bit MSP413 32 bit digital signal controllers 32 bit ARM devices Samsung & ST Microelectronics Lower cores and ARM Core NEC Uses only Flash Memory Toshiba Uses both RISC and CISC architecture
Sampling of Microcontroller offerings: Broad range Vendors (more..) Analog Devices Cyan Maxim / Dallas Zilog Silicon Labs Cypress Energy Micro Rabbit
Designing with Microcontrollers
Microcontroller Development Tools Editor Text based window for editing high-level language Compiler Converts source code to object code Assembler Converts assembly code to binary code Linker Joins separate object code files for download Simulator Run linker output on a simulation of the MCU on host PC Debugger Allows engineer to monitor and halt program execution
Microcontroller Development Tools Integrated Development Environment (IDE) Software package that contains all software tools integrated In-Circuit Emulator Replaces MCU with tool to allow viewing and control of program as seen within the chip JTAG Interface for test and debug Evaluation / Development Kits Low cost Easy-to-use Evaluation and development tool 3rd Party tools Various tools by Non-MCU vendor that help in all aspects of development including development including kits and JTAG Debugging JTAG – Joint Test Action Group
Operating System A software platform which manages task created by user Design team may write their own OS Drivers handle details of using I/O and peripherals Makes programming easier; just call on drivers for I/O Makes program reusable; MCU hidden from designer Drivers control peripherals; simply pass data to them Real time Operating System (RTOS) Designed to execute multiple tasks with definite time constraints and priorities
Code Development Programming code Compiler Memory Highly Integrated Microcontrollers make circuit design easy but… Must be programmed in order to perform a function Code development is more than half the product development A program is a sequence of instructions using the microcontroller’s unique instruction set Families of MCUs may have a common instruction set Typical Instruction includes: Adding two numbers, and saving the result Comparing two numbers and branching to different subroutines if equal or not equal Reading the value of an external pins
Compiler
Evaluation/Development/Reference design kits Evaluation Kit Low cast kits Evaluating the microcontroller Development Kit More comprehensive For developing the system around the microcontroller Reference design kits Application specific reference designs already complete
Choosing a Microcontroller
Basics of Designing a System Marketing analyzes market needs, Drivers & develops new product specification Environment sensors, motors, LCD Display, Keypad, etc Engineering determines what functions of microcontrollers are required to meet specifications Engineering team searches for MCU & other system components that will deliver end system to specification
Choosing a microcontroller: General Tips Up Front Design System Spreadsheets Feature Requirements Tool Requirements Evaluation boards Hardware V/S Software Complexity of MCU
Choosing a microcontroller: Parametric aspects Features / On chip Peripherals ADC DAC Analog Comparator PWM LCD Control Timers JTAG I/Os Communication Interface USB CAN UART SPI Others… Packages Size Pins
Choosing a microcontroller: Parametric aspects Power Sleep Mode Voltage Current Speed Clock frequency Critical Instruments Interrupt latency Reliability Application demand Memory Size Type Familiarity Personal experience Senior Engineer
Choosing a microcontroller: Parametric aspects Price Device Volume Software tools IDEs Debug Compiler OS Available Kits Evaluation Kit Development Kit Reference design kits Support Documentation White Papers Reference design Example code User Guide Errata Application Engineers Response time Community Portability Roadmap Large Family Abstraction Layer
Thank You