Electrocomponentes S.A. SASE 2012 CortexTM M3 ATMEL Agenda • Microcontroladores vs. Microprocesadores. • Comparación de Arquitecturas. – Arquitectura Cortex M3. – Arquitectura Cortex M4. – Arquitectura ARM 9. • Línea de productos. • Herramientas de programación y entornos de desarrollo. • Ejemplos ¿Qué es un Microprocesador? • Un Microprocesador (uP) es un circuito integrado que incorpora en su interior una unidad central de proceso (CPU) y todo un conjunto de elementos lógicos que permiten enlazarlo con otros dispositivos como pueden ser memorias y puertos de entrada y salida (I/O). Es un sistema del tipo “ABIERTO”. ¿Qué es un Microcontrolador? • Un microcontrolador (uC) es un circuito integrado que nos ofrece las posibilidades de un pequeño computador. Es decir, que en su interior podemos encontrar un procesador, memorias, y varios periféricos (puertos I/O, A/Ds, D/A, etc.). Bonus • Un procesador digital de señales o DSP (sigla en inglés de digital signal processor) es un sistema basado en un microprocesador que posee un juego de instrucciones, un hardware (MAC) y un software optimizados para aplicaciones que requieran operaciones numéricas a muy alta velocidad. Debido a esto es especialmente útil para el procesado y representación de señales analógicas en tiempo real. ¿Donde usar un microcontrolador? •Microcontroladores –Aplicaciones de media y baja gama, donde habitualmente se requiere Flash embebida. –Aplicaciones portátiles y de bajo consumo. –Donde se necesite manejo rápido de puertos de entrada y salida. –Donde se necesite una respuesta en “tiempo real”, es decir baja latencia en las interrupciones. –Aplicaciones típicas pueden ser: •Medidores de consumo (Metering) •Aplicaciones medicas e instrumentación. •Automatización de fabricas y control de edificios. •Línea blanca, accesorios de PC y aplicaciones de consumo. ¿Donde usar un microprocesador? •Microprocesadores –Aplicaciones de alta gama, donde se requiera interfases de usuario avanzadas y el manejo de multimedia una alta definición. –Donde se necesite trabajar con sistemas operativos. –Donde se necesite Cuando se necesite trabajar con protocolos de multimedia como ser MP3, MPG4, etc. –Aplicaciones típicas pueden ser: •Soluciones de eReader •Sistemas de infotainment (información y entretenimiento) •Equipos de diagnostico por imágenes. •Redes (Networking), Router, Switch. •Maquinas de juego. Arquitecturas ARM • ARM posee un gran numero de arquitecturas, las mas difundidas son: – ARMv4T (ARM7TDMI y ARM9T) – ARMv5TEJ (ARM926EJ y ARM7EJ) – ARMv6 (ARM11) – ARMv6-M (Cortex-M0) – ARMv7 • Perfil M, diseñado para aplicaciones de microcontroladores, un procesamiento eficiente es tan importante como, el bajo consumo y un bajo costo. • Perfil R, diseñado para aplicaciones embebidas de alta prestaciones, en los cuales un desempeño en tiempo real es necesario. • Perfil A, diseñado para correr sistemas operativos tales como Linux o Windows CE. Arquitecturas ARM Soluciones ARM de ATMEL SAMx eMPU Cortex-A based EmbeddedMPU SAM9 eMPU ARM926-based EmbeddedMPU SAM9 MCU SAM3/4 MCU ARM926 Flash MCU Cortex-M3 FlashMCU SAM7 MCU ARM7TDMI FlashMCU 60 120 200 400 600 MHz Arquitectura • La arquitectura de un procesador esta formada por: – La arquitectura del set de instrucciones (ISA). – El ó los buses de comunicaciones. – La segmentación (pipeline). – El soporte de memoria (virtual/protegida). ISA – Tipo de Instrucciones • Cuando hablemos del set de instrucciones o mejor dicho la arquitectura del set de instrucciones (ISA), se tendrá en cuenta varios elementos. – El tipo de datos con que trabaja. • En nuestro caso todas las arquitecturas que analizaremos son de 32 bits. Todas van a soportar trabajar con datos 8, 16 y 32 bits. Y en el caso de los CortexTM-A también con 64 bits. – El tipo de instrucciones propiamente dicho. – Los registros. – Los modos de direccionamiento. – Las excepciones/interrupciones y su manejo. ISA – Tipo de Instrucciones • Los sets de instrucciones suele estar comúnmente separados en dos grupos: – RISC: Reduce Instuction Set Computer. La filosofía de estos dispositivos se concentra en reducir la complejidad de las instrucciones desempeñadas por el hardware, porque es fácil proveer mayores flexibilidad e inteligencia en el software que en el hardware, lo que conlleva un aumento de la complejidad del compilador. – CISC:Complex Instruction Set Computer. Esta filosofía se basa en aumentar la complejidad del hardware para la funcionalidad de las instrucciones, lo que conlleva un set de instrucciones mas complicado, pero produce que el compilador utilice menos recursos. ISA – Tipo de Instrucciones • Todas los procesadores ARM poseen un set de intrucciones tipo RISC. • Las principales características de una arquitectura tipo RISC son: – Gran cantidad y uniformidad de registros, que pueden almacenar datos y direcciones. Actuando como memoria local de acceso rápido para todas las operaciones de procesamiento de datos. – Arquitectura Load-Store. – Modos de direccionamiento simples, con todas las direcciones de load/store siendo determinadas desde contenidos de registros y campos de instrucciones. – Cantidad de campos y largos de instrucciones fijos, lo que facilita la decodificación de la mismas. – Reducido numero de instrucciones, las cuales debido a su simplicidad pueden ser ejecutadas en un solo ciclo de maquina. El complilador sintetizara operaciones complejas en múltiples operaciones sencillas. • Estas características, generan un aumento del desempeño del procesador con el costo de un aumento en el tamaño del código. ISA – Terminos • MIPS es el acrónimo de "millones de instrucciones por segundo". Es una forma de medir la potencia de los procesadores. Sin embargo, esta medida sólo es útil para comparar procesadores con el mismo juego de instrucciones y usando benchmarks que fueron compilados por el mismo compilador y con el mismo nivel de optimización. • El Dhrystone es un pequeño benchmark sintético que pretende ser representativo de programación entera de sistemas. Está basado en estadísticas publicadas sobre uso de particularidades de los lenguajes de programación, sistemas operativos, compiladores, editores, etc. Set de Instrucciones • Inicialmente los procesadores ARM solo tenían un set de instrucciones de 32 bits (set ARM). • A partir de la arquitectura ARMv4T, se incorpora un set de instrucciones de 16 bits (set Thumb). • Este nuevo set de instrucciones: – Reduce las funcionalidades del procesador, ya que para reducir el largo de instrucciones son eliminados de este los bits de ejecución condicional y uno de los operadores que las instrucciones de 32 bits incluían. – Aumenta la cantidad de instrucciones para realizar una tarea particular, pero disminuye la densidad de código total. – Esta reducción de funcionalidades produce una disminucion del desempeño, en el caso de un ARM7TDMI de los 0.94 DMIPS/Mhz en modo ARM, pasa a 0.74 DMIPS/Mhz en modo Thumb. – En sistemas donde los puertos o el ancho del bus es menor a 32 bits se consigue un aumento de desempeño trabajando en modo Thumb respecto al modo ARM. Set de instrucciones • A partir del procesador ARM1156 (arquitectura ARMv6T2), se incorpora el set de instrucciones Thumb 2. • Segunda generación del set Thumb. – Blended 16 bit y 32 bit set de instrucciones. – 25% mas rapido que Thumb – 30% mas chico que ARM. • Incrementa el desempeño pero mantiene la densidad de código. • Maximiza el cache y el uso de la memoria TCM. Set de Instrucciones •Cortex M3 –Thumb®-2 / Thumb •Cortex M4 –Thumb®-2 / Thumb –Single cycle 16,32-bit MAC –Single cycle dual 16-bit MAC –8,16-bit SIMD arithmetic –Hardware Divide (2-12 Cycles) • ARM 9 – – – – – ARM Thumb DSP extensions Floating Point (optional) Jazelle Java extensions Bus de comunicaciones Arquitectura Harvard Arquitectura Von Neumann Segmentación • Segmentación: pipeline, es un método por el cual se consigue aumentar el rendimiento de algunos sistemas electrónicos digitales (microprocesadores). La segmentación consiste en descomponer la ejecución de cada instrucción en varias etapas para poder empezar a procesar una instrucción diferente en cada ciclo de maquina y de esta forma trabajar con varias simultáneamente. Segmentación • Algunos microprocesadores tienen las siguientes etapas en una instrucción: – – – – – IF: búsqueda ID: decodificación EX: ejecución de unidad aritmético lógica MEM: memoria WB: escritura • Cada una de estas etapas de la instrucción usa en exclusiva un hardware determinado del procesador, de tal forma que la ejecución de cada una de las etapas en principio no interfiere en la ejecución del resto. • Cortex M3/4 – 3 etapas mas predicción de salto. • ARM 9 – 5 etapas Segmentación • Algunos procesadores poseen una segmentación que permite comenzar mas de una instrucción por ciclo de maquina, es decir tiene “n” etapas de pipeline y de esta forma conseguir mayor paralelismo. • Existen dos tipos de arquitecturas para este tipo de segmentación: – Superescalar – VLIW (Very Long Instruction Word) • La diferencia de estas arquitecturas radica en quien decide que instrucciones se ejecutan en paralelo. – Superescalar, lo decide el procesador en tiempo de ejecución. – VLIW, lo decide el programador o el compilador. Soporte de memoria • La o las unidades de soporte de memoria son dispositivos de Hardware formado por un grupo de circuito integrados, responsable del manejo de los accesos a la memoria por parte de la Unidad de Procesamiento Central (CPU). • Entre las funciones de estos dispositivos se encuentran la traducción de las direcciones lógicas (o virtuales) a direcciones físicas (o reales), la protección de la memoria, el control de caché y, en arquitecturas de computadoras más simples (especialmente en sistemas de 8 bits), Bank switching. • En la actualidad muchos procesadores separan la funciones de traducción de direcciones de memoria y de protección de memoria en dos unidades, llamando a la primera MMU (VMSA como lo suele llamar ARM) y a la segunda MPU (PMSA como lo suele llamar ARM). • Cache: Un caché es un sistema especial de almacenamiento de alta velocidad. Puede ser tanto un área reservada de la memoria principal como un dispositivo de almacenamiento de alta velocidad independiente. • TCM: Memoria fuertemente acoplada (en inglés: Tightly Coupled Memory), es la memoria del tipo que tiene los microcontroladores, a la que se accede directamente. La memoria en sistemas con cache no es este tipo de memoria, ya que esta entre la memoria y el micro se encuentra el cache. Comparación Cache (I/D)/ Core Arq. Características MMU Cortex-M3 ARMv7-ME (Harvard) 3-stage + branch no cache, speculation MPU optional. Thumb, Thumb-2. Velocidad de core Consumo del core MIPS @ MHz 50-200Mhz 149 - 7 µW/MHz 1.25 DMIPS/MHz 50-200Mhz 157 - 8 µW/MHz 1.25 DMIPS/MHz 180-470Mhz 0.48 – 0.06 mW/Mhz 1.1 DMIPS /MHz 3-stage + branch Cortex-M4 ARMv7-ME (Harvard) speculation Thumb, Thumb-2, no cache, MPU optional. Floating Point Unit, DSP. 5-stage pipeline Thumb, ARMv5TEJ ARM926EJ-S variable, Jazelle DBX, (Harvard) TCMs, MMU Enhanced DSP instructions Porfolio Cortex de Atmel Frequency (Max.) Flash (KB) SRAM (KB) USB EMAC Dual CAN DAC QTouch Capacitive Touch External Bus Common Features SAM3N • Entry level Cortex-M3 flash based MCUs – Extends SAM3N offering down to 16KByte Flash and 4kB SRAM – Entry level Cortex-M3 MCU running up to 48MHz – Simplified PCB design through on-chip termination resistors Extended supply 1.62-3.6V Backup mode down to 1.8µA – – – – – – – – High data rate serial com including SPI up to 38Mbps Native Capacitive Touch support 3 SPI, 2 I2C, 4 UART NO USB 10 bits ADC and 10 bits DAC Package, QFP, QFN, BGA, from 48 to 100 SAM3N Aplicaciones High Speed serial comm. RS485/Modbus stack ADC/DAC Low power QTouch Safety features 27 QTouch Low Power 48pin in 256KB Safety features RS485 QTouch Low Power Downto 16KB of flash Low Power Up to 4 UART High speed serial comm. Qtouch Low Power SAM3/4S • General purpose Cortex-M3/M4 flash based MCUs – – – – – From 64KB to 2MB Flash Memory Simple an dual bank From 8KB to 160KB SRAM Cortex-M3 MCU running from 64Mhz to 100Mhz Cortex-M4 MCU running up to 120Mhz – Simplified PCB design through on-chip termination resistors Extended supply 1.62-3.6V Backup mode down to 1.8µA Native Capacitive Touch support Up to 3 SPI, 2 I2C, 5 UART, I2S SDIO/SD/MMC FS USB 2.0 device 12 bits ADC and 12 bits DAC Package, QFP, QFN, BGA, from 48 to 100 – – – – – – – – SAM3S Aplicaciones High Speed serial comm. RS485/Modbus Up to 1MB flash 12b ADC/DAC Low power QTouch Safety features Manchester codec 802.15.4 based Wireless support EBI 29 QTouch FS USB HSMCI CMOS sensor I/F Up to 1MB flash Low Power Safety features 802.15.4 based Wireless support EBI RS485 QTouch Low Power CMOS sensor I/F Up to 1MB flash Downto 16KB of flash 802.15.4 based Wireless support EBI Low Power Up to 5 UART Up to 1MB flash Dual bank flash EBI Low power QTouch CMOS sensor I/F EBI High speed serial comm. HSMCI QTouch Low Power Up to 1MB flash Form, Fit & Function Compatibility • Seamless Migration Path Between SAM7S, SAM3N, SAM3S, SAM4N and SAM4S Devices – SAM7S to SAM3S Migration Guide Available All Packages SAM3S SAM4S SAM3N* SAM4N* SAM7S 64-pin * Except for USB device 30 Dual Bank Flash Available on the S, U, X and A series. What Problem does it Solve? Dual Bank Flash enables Fault Tolerant Self-Programming –Provide a fail-safe method of upgrading firmware on remote units –Enable background firmware upgrade without halting application execution How Does it Work? –Safe and secure remote update: RESET VECTOR RESET VECTOR RESET VECTOR Wired / wireless stream Normal operation from Bank 1 while simultaneously remotely programming Bank 2 Power or comms failure cause Bank 2 program fail while Bank 1 continues to operate and requests retransmission Reprogramming successful, device now executes from Bank 2,Bank 1 available for next update SAM3U • Industrial Cortex-M3/M4 flash based MCUs – – – – – – – – – – Up to 256KB Flash Up to 50KB SRAM Cortex-M3 MCU running up to 96Mhz Extended supply 1.62-3.6V Backup mode down to 1.8µA Up to 5 SPI, I2C, 5 UART, I2S SDIO/SD/MMC HS USB 2.0 device with Physical Interface 12 bits ADC Package, QFP, QFN, BGA, from 100 to 144 SAM3A/X • Industrial Cortex-M3/M4 flash based MCUs – – – – – – – – – – Up to 512KB Flash Up to 96KB SRAM Dual bank SRAM and Flash memory Cortex-M3 MCU running up to 84Mhz Extended supply 1.62-3.6V Backup mode down to 1.8µA Up to 5 SPI, 2 I2C, 5 UART, I2S SDIO/SD/MMC Dual CAN 10/100 Ethernet controller – HS USB 2.0 with Physical Interface (Device and Host) 12 bits ADC and 12 bits DAC Package, QFP, QFN, BGA, from 100 to 144 – – Integrated High Speed USB 2.0 PHY Available on the U, X and A families Atmel – Optimized Board Area What Problem does it Solve? – Removes the need for an external USB 2.0 HS PHY (Physical Interface) companion chip. – PCB area – and potentially overall product size - is reduced by removing need for additional PHY IC, signal routing and support components Competition – Larger Board Area How Does it Work? – Atmel’s integrated USB 2.0 HS PHY completes the signal path with minimal external components. Up to $1 SAM3A/X Aplicaciones High Speed serial comm. RS485/Modbus 12b ADC/DAC Low power QTouch Safety features Manchester codec 802.15.4 based Wireless support EBI 35 RS485 QTouch Low Power EBI Low Power Up to 5 UART Dual bank flash EBI CAN Low Power Up to 5 UART Dual bank flash EBI Atmel SAM3/4 Ecosystem 36 Atmel Studio 6 - Two Architectures, One Studio •Integrating ARM and AVR Design •Free, Professional IDE, Integrated GNU C/C++ Compiler •300 Atmel ARM and AVR MCUs •QTouch Composer •Intelligent editor •New Project Wizard with over 1,000 project examples •Seamless connection to all in-system debuggers – SAM-ICE in-circuit debugger – SAM3 and SAM4 evaluation kits •Cycle accurate chip and peripheral simulator •Easy 8/32 bit migration – Single IDE for ARM and AVR – Atmel Software Framework Atmel Studio 6 – Atmel Software Framework • • • Software Library – Peripheral drivers – Hardware abstraction – Communication – Graphics – Up to 50% of new project Standard APIs – Easy code migration – Support for 300 ARM + AVR MCUs – Common 8/32-bit platform ASF Explorer – Manage ASF components – Trace driver dependencies – Easy access to documentation Atmel Studio 6 – QTouch Composer • • • QTouch Project Wizard – Configure QTouch project – Optimized QTouch library code – Automatic power management Touch Wizard – Automatic performance tests – Optimal design recommendations Power Analyzer – Real-time monitoring of MCU power consumption – Profiling and visualization • Time spent on touch sensing • Time spent on user code • Time spent in power down Kits de desarrollo Boards– SAM4S Xplained • Objective Provide low cost board based on SAM4S16 Support Atmel sensor initiative Enable easier access to AT91 MCUs • Content Similar to AVR Xplain Supporting Xplain sensors (HW + SW) More connectors to support full prototyping Embedded SAM-ICE AS6 support • Availability Q2’12 41 Ejemplos Bienvenida Crear una aplicación Crear una aplicación Crear una aplicación Crear una aplicación Crear una aplicación Crear una aplicación GPIO GPIO GPIO GPIO GPIO GPIO GPIO GPIO GPIO GPIO GPIO GPIO GPIO Programación Programación Programación Debugging Debugging Debugging Ejemplo Ejemplo Interrupciones Interrupciones Ticks Ticks Ticks Ticks Ticks UART UART UART UART UART Getting Started ¡Muchas Gracias!