Atmel:Hands on Cortex M3

Anuncio
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!
Descargar