Electrocomponentes S.A. SASE Cortex TM M3 ATMEL

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Electrocomponentes S.A. SASE 2012. Cortex TM M3 ATMEL"

Transcripción

1 Electrocomponentes S.A. SASE 2012 Cortex TM M3 ATMEL

2 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

3 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.

4 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.).

5 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.

6 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.

7 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.

8 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.

9 Arquitecturas ARM

10 Soluciones ARM de ATMEL SAM3/4 MCU Cortex-M3 FlashMCU SAM9 MCU ARM926 Flash MCU SAM9 empu ARM926-based EmbeddedMPU SAMx empu Cortex-A based EmbeddedMPU SAM7 MCU ARM7TDMI FlashMCU MHz

11 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).

12 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 Cortex TM -A también con 64 bits. El tipo de instrucciones propiamente dicho. Los registros. Los modos de direccionamiento. Las excepciones/interrupciones y su manejo.

13 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.

14 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.

15 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.

16 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.

17 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.

18 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

19 Bus de comunicaciones Arquitectura Harvard Arquitectura Von Neumann

20 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

21 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

22 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.

23 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.

24 Comparación Core Arq. Características Cache (I/D)/ MMU Velocidad de core Consumo del core MHz Cortex-M3 ARMv7-ME (Harvard) 3-stage + branch speculation Thumb, Thumb-2. no cache, MPU optional Mhz µw/mhz 1.25 DMIPS/MHz Cortex-M4 ARMv7-ME (Harvard) 3-stage + branch speculation Thumb, Thumb-2, Floating Point Unit, DSP. no cache, MPU optional Mhz µw/mhz 1.25 DMIPS/MHz 5-stage pipeline ARM926EJ-S ARMv5TEJ (Harvard) Thumb, Jazelle DBX, Enhanced DSP variable, TCMs, MMU Mhz mw/mhz 1.1 DMIPS /MHz instructions

25 Porfolio Cortex de Atmel Frequency (Max.) Flash (KB) SRAM (KB) USB EMAC Dual CAN DAC QTouch Capacitive Touch External Bus Common Features

26 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 V 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

27 SAM3N Aplicaciones High Speed serial comm. RS485/Modbus stack ADC/DAC Low power QTouch Safety features 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 27

28 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 V 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

29 SAM3S Aplicaciones High Speed serial comm. RS485/Modbus Up to 1MB flash 12b ADC/DAC Low power QTouch Safety features Manchester codec based Wireless support EBI QTouch FS USB HSMCI CMOS sensor I/F Up to 1MB flash Low Power Safety features based Wireless support EBI RS485 QTouch Low Power CMOS sensor I/F Up to 1MB flash Downto 16KB of flash 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 29

30 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 SAM7S 64-pin SAM3N* SAM4N* * Except for USB device 30

31 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 Normal operation from Bank 1 while simultaneously remotely programming Bank 2 Wired / wireless stream Power or comms failure cause Bank 2 program fail while Bank 1 continues to operate and requests retransmission RESET VECTOR Reprogramming successful, device now executes from Bank 2,Bank 1 available for next update

32 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 V 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

33 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 V 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

34 Integrated High Speed USB 2.0 PHY Available on the U, X and A families 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 How Does it Work? Atmel s integrated USB 2.0 HS PHY completes the signal path with minimal external components. Atmel Optimized Board Area Competition Larger Board Area Up to $1

35 SAM3A/X Aplicaciones High Speed serial comm. RS485/Modbus 12b ADC/DAC Low power QTouch Safety features Manchester codec based Wireless support EBI 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 35

36 36 Atmel SAM3/4 Ecosystem

37 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

38 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

39 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

40 Kits de desarrollo

41 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 Q

42 Ejemplos

43 Bienvenida

44 Crear una aplicación

45 Crear una aplicación

46 Crear una aplicación

47 Crear una aplicación

48 Crear una aplicación

49 Crear una aplicación

50 GPIO

51 GPIO

52 GPIO

53 GPIO

54 GPIO

55 GPIO

56 GPIO

57 GPIO

58 GPIO

59 GPIO

60 GPIO

61 GPIO

62 GPIO

63 Programación

64 Programación

65 Programación

66 Debugging

67 Debugging

68 Debugging

69 Ejemplo

70 Ejemplo

71 Interrupciones

72 Interrupciones

73 Ticks

74 Ticks

75 Ticks

76 Ticks

77 Ticks

78 UART

79 UART

80 UART

81 UART

82 UART

83 Getting Started

84 Muchas Gracias!