Microcontroladores de 32 Bits
Agenda
¿Porqué 32 bits? Microcontrolador vs Microprocesador. Distintos Core en el mercado. Aplicaciones. ATMEL Freescale RTOSs
¿Porqué 32 bits?
• Aumento de las prestaciones.
– Permite realizar tareas mas rápido y mejor.
• Aumento de la complejidad de las aplicaciones.
– Interfaces gráficas.
– Interfaces inalambricas.
– Distintos tipos de conectividad.
• Reducción de los costos.
– El uso masivo de este tipo de soluciones a llevado a que los costos estén cada día mas competitivos.
Microcontrolador vs Microprosesador
• El microprocesador es un circuito integrado digital que puede programarse con una serie de instrucciones, para realizar funciones específicas con los datos.
• Cuando un microprocesador se conecta a un dispositivo de memoria y se provee de dispositivos de entrada salida, pasa a ser un sistema microprocesador.
• Un Microcontrolador esta formado por un Microprocesador y el conjunto de dispositivos que normalmente requiere un microprocesador: memoria volátil (calculo temporal), memoria no volátil (donde almacena el programa), entrada y salida.
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.
Distintos CORE
Aplicaciones
Aplicaciones de consumo portatiles
• Smartbook• E-book• Smartphone• Reproductores portatiles• Navegadores
Infotainment Automotriz• Audio• Conectividad y telematica• Video y navegación.
Home Consumer• Telefonos y terminales
multimedia.• Accesorios para iPod.• Portaretratos digitales.• Electrodomesticos.
Industrial• POS/Scanners• Seguridad y vigilancia.• Interfaces HMI industriales.• Healthcare (Electromedicina)• Metering (Medidores)
32 Bits
Cores ARM
Core Arquitectura Características Cache (I/D)/MMU
MIPS @ MHz
ARM7TDMI ARMv4T(Von Neumann)
3-stage pipeline, Thumb
none 0.94 (ARM) / 0.74 (Thumb)
ARM926EJ-S ARMv5TEJ 5-stage pipelineThumb, Jazelle DBX, Enhanced DSP instructions
variable, TCMs, MMU
1.1 DMIPS / MHz
ARM1136JF-S ARMv6 8-stage pipeline, SIMD, Thumb, Jazelle DBX, (VFP), Enhanced DSP instructions
variable, MMU
1.25 DMIPS/MHz
Cores ARM
Core Arq. Características Cache (I/D)/MMU MIPS @ MHz
Cortex-M0 ARMv6-M (Von Neumann)
3-stageThumb, Thumb-2.
No cache. 0.9 DMIPS/MHz
Cortex-M3 ARMv7-M(Harvard)
3-stage + branch speculation Thumb, Thumb-2.
no cache, MPU optional.
1.25 DMIPS/MHz
Cortex-A8 ARMv7-A 13-stage superscalar pipeline, ARM,VFP, NEON,Thumb, Thumb-2.
variable (L1+L2), MMU+TrustZone
up to 2000 (2.0 DMIPS/MHz in speed from 600 MHz to greater than 1 GHz)
ATMEL - ARM
Familias ARM7
AT91SAM7
AT91SAM7L
AT91SAM7S
AT91SAM7SE
AT91SAM7X Dispositivos de propósito general con conectividad USB, Ethernet y CAN. De 128 a 512Kb de flash. Los modelos XC poseen unidad de encriptación. Clock Speed 55 Mhz.
Dispositivos de propósito general con un bus de memoria externa. Ademas posee interfaz para SDRAM y NAND Flash. De 32 a 512Kb de flash. Con interfaz USB full speed (device). Clock Speed 55Mhz.
Dispositivos de propósito general de baja cantidad de pines (hasta 64)De 16 a 512Kb de Flash. Con y sin interfaz USB full speed (device).Clock Speed 55Mhz.
Familia de ultra bajo consumo. Posee alimentación segmentada por periférico y reguladores programables para reducir el consumo. Esta familia opera con una fuente simple de hasta 1,8V y consume solo 0,5mA / Mhz. Clock Speed 37Mhz.
Familias ARM9
AT91SAM9
AT91SAM9
AT91SAM9XE Esta familia de microcontroladores combina un core ARM9 que trabaja a 200MIPS con hasta 512K de memoria Flash, controlador de Ethernet, USB 2.0 (FS) Host y Device, Interfaces para tarjetas multimedia (SDCard/SDIO y MultiMediaCard Compliant), MMU, interfaz de bus externo, interfaz para SDRAM y NAND FLASH y todo esto en un encapsulado QFP208.
Esta es una familia de microprocesadores con core ARM9. Entre ellos hay dispositivos con frecuencias de clock de 210Mhz hasta 400Mhz. Con MMU, interfaz de memoria externa, interfaz de SDRAM, NAND Flash y los últimos modelos con interfaz de DDR2.Los encapsulados de estos productos son BGA.Estos dispositivos estan pensados para trabajar con sistemas operativos de tiempo real embebidos, como Linux o Windows CE.
Familias AT91SAM9Device Video
DecoderLCD
Controller2D
AcceleratorEthernet MAC
10/100Image Sensor
InterfaceSRAM USB Host External Bus
InterfaceCAN
AT91SAM9260 -- -- -- 1 1 2x4K 2xFS 1 --
AT91SAM9261 -- 1 -- -- -- 160K 2xFS 1 --
AT91SAM9261S -- 1 -- -- -- 16K 2xFS 1 --
AT91SAM9263 -- 1 -- 1 1 96K 2xFS 2 1
AT91SAM9G10 -- 1 -- -- -- 16K 2xFS 1 --
AT91SAM9G20 -- -- -- 1 1 2x16K 2xFS 1 --
AT91SAM9G45 -- 1 -- 1 1 64K 2xHS 2 --
AT91SAM9M10 1 1 1 1 1 64K 2xHS 2 --
AT91SAM9R64 -- -- -- -- -- 64K -- 1 --
AT91SAM9RL64 -- 1 -- -- -- 64K -- 1 --
Device 10-bit ADC Channels
Peripheral DMA Channels
Max. Clock Speed (MHz)
I/O Pins SDRAM Interface
NAND Flash & ECC
USB Device
MMU/MPU
AT91SAM9260 4 24 210 96 1 1/1 FS MMU
AT91SAM9261 -- 19 240 96 1 1/- FS MMU
AT91SAM9261S -- 19 240 96 1 1/- FS MMU
AT91SAM9263 -- 22 240 160 2 2/2 FS MMU
AT91SAM9G10 -- 19 266 96 1 -- FS --
AT91SAM9G20 4 24 400 96 1 1/1 FS MMU
AT91SAM9G45 8 24 400 160 2 1/1 HS MMU
AT91SAM9M10 8 24 400 160 2 1/1 HS MMU
AT91SAM9R64 3 18 240 49 1 1/1 HS 1/-
AT91SAM9RL64 6 22 240 118 1 1/1 HS 1/-
Familias Cortex-M3
AT91SAM3
AT91SAM3SFamilia basada en el nuevo core Cortex-M3 de ARM. Opera a una frecuencia maxima de 64Mhz, con hasta 256K de Flash y 64 K de RAM. Posee un USB Device Full Speed, Interfaz bus externo y controlador de NAND Flash y varias interfaces seriales.Estos dispositivos son de proposito general de rango medio, ideales para aplicaciones de consumo, de control indudtrial y para perifericos de PC. Esta familia es ideal para migrar de la familia AT91SAM7S para aplicaciones que requieran mayor desempeño ya que posee encapsulados pin a pin compatibles de 48/64/100 pines.
Familias Cortex-M3
AT91SAM3U Familia basada en el nuevo core Cortex-M3 de ARM con USB Device High Speed. Opera a una frecuencia maxima de 96Mhz con hasta 256K de Flash y 52K de RAM, la cual esta en varios bancos. Este micro posee multiples interfaces seriales, Interfaz bus externo y controlador de NAND Flash y interfaz SD/SDIO/MMC. Esta familia esta pensada para aplicaciones donde USB HS es necesaria, como USB Tokken, Data loggers, perifericos de PC y Bridges de alta velocidad (USB a SDIO, USB a la interfaz de bus externo, etc.Disponible en encapsulados de 100 y 144 pines.
Herramientas - Software
http://www.atmel.com/dyn/resources/prod_documents/atmel_tutorial_source.ziphttp://www.yagarto.de/
Herramientas - Hardware
AT91SAM-ICE JTAG Emulator
Permite programar y debuggear toda la linea de core ARM de Atmel, es decir SAM7 (ARM7)/ SAM9 (ARM9)/SAM3 (Cortex-M3)
Herramientas – Kits de desarrollo
ATMEL-AVR32
AT32UC3
AT32UC3B
AT32UC3L
Esta linea de dispositivos esta pensado para aplicaciones portátiles donde el bajo consumo es fundamental. Gracias a la tecnología Picopower logra 0,48mW/Mhz y hasta un consumo de 100nA. Incluye un periferico con capacidad touch sense, FlashVault, corre a una frecuencia de clock de hasta 50Mhz y en tan solo 48 pines.
Esta linea de dispositivos esta pensada para aplicaciones que requieran una tasa de transmisión de datos alta, bajo consumo y un gran desempeño de computo, el cual esta en el orden de 83DMIPS@60Mhz con un consumo de 23mA@3,3V. Ademas incluye USB 2.0 (FS) con On-The-Go y esta disponible en 48 y 64 pines.
ATMEL-AVR32
AT32UC3
AT32UC3A0/1
AT32UC3A3/4
Esta linea de dispositivos esta pensada para aplicaciones que requieran una conectividad USB de muy alta velocidad (HS), un gran desempeño de computo y interfaces de memoria rápidas. Posee un desempeño de 91DMIPS@66Mhz, Hi Speed USB con OTG, SD/SDIO interfaz, NAND Flash y SDRAM interfaz, DAC para audio y esta disponible en 100 y 144 pines. Existe versiones con encriptacion AES de 128 y 256 bits.
Esta linea de dispositivos esta pensada para aplicaciones que requieran conectividad, bajo consumo y un gran desempeño de computo, el cual es del orden de 91DMIPS@66Mhz con un consumo de 40mA@3,3V. Ademas incluye USB 2.0 (FS) con On-The-Go , controlador de Ethernet, interfaz para SDRAM, DAC para audio y esta disponible en 100 y 144 pines.
Herramientas - Software
UC3 Software Framework, este provee drivers y librerias para realizar una aplicación para los productos de la familia AVR32 UC3. Este incluye Drivers para los perifericos, librerias optimzadas para AVR32, aplicaciones Demo, codigo fuente de un RTOS listo para usar. Todo esto en codigo C y compatible con GNU GCC y IAR.
AVR32 GNU Toolchain, este provee un conjunto de programas de linea de comando para crear aplicaciones para microcontroladores AVR32. Incluye compliador, ensamblador, linker, debugger, herramientas de programación y librerias en C.
AVR32 Studio, es un entorno de desarrollo (IDE) para desarrollar apliciaciones sobre los productos de 32 bits de core AVR. Esta construido sobre Eclipse permitiendo una rapida integracion con terceras partes.
Herramientas - Hardware
AVRDragon
JTAG mkII
AVR ONE!
Herramientas – Kits de desarrollo
STK600
EVK1100
EVK1105
ATSTK600-UC3-144
Freescale - ARM
• ARM926, 450MHz• Touchscreen• Integrated PM• 1588 Ethernet x 2, L2 Switch• DDR2, USB Phy x 2, CAN x 2
i.MX287
• ARM926, 400MHz• Ethernet, DDR2• USB Phy x 2
i.MX253
Cortex A8
ARM11
ARM9
20102009
i.MX31
• i.MX31L +• OpenGL ES 1.1 3D
i.MX27
• i.MX27L + • D1 Video D/E
• i.MX513 +• OpenGL ES 2.0
i.MX517
• ARM1136, 532 MHz• Ethernet, DDR2• USB Phy x 2, CAN x 2
i.MX353
i.MX31L
• ARM1136, 400 MHz• USB (High Speed) • Video Encode VGA
i.MX27L
• ARM926, 400MHz• Ethernet
• i.MX353 +• Open VG 1.1
i.MX357
• i.MX253 + • Touchscreen• CAN x 2
i.MX257
• i.MX512 +• 720p Video Decode• D1 Video Encode
i.MX513
• Cortex A8, 800MHz• 1080p Video Decode• 720p Video Encode• OpenGL ES 2.0• Ethernet, USB Phy
i.MX537
• ARM926, 450MHz• Touchscreen• Integrated PM, Audio
i.MX233
i.MX387• Cortex A8, 800MHz• Ethernet, DDR2, USB Phy
i.MX512
• i.MX257 +• Security
i.MX258
In Concept
Freescale- ARM
• Specifications:• CPU:ARM926, 400+ MHz• Process: TSMC 90LP• Core Voltage: 1.05V – 1.45V• Package: 169fpBGA 11x11mm .8mm
128LQFP 14x14mm .4mm• Temp Range: -10 to 70C, -40 to 85C
• Key Features and Advantages• Based on STMP IP platform• ARM926 Core 400+ MHz• PMU with high efficiency on-chip DC/DC with
4.2V output, supports Li-Ion batteries• Very low video and audio power consumption• 1.5W Mono speaker amplifier • Stereo headphone DAC w/ 99dB SNR &
Stereo ADC w/ 85 dB SNR with integrated amplifiers
• Hardware BCH (up to 20-bit correction) and RS ECC8 for current and future MLC NAND support
• Power-Efficient Direct-Drive LCD Backlight Controller with Voltage or Current Feedback
• DDR1 Support with integrated 2.5V regulator• High speed USB with embedded PHY
i.MX233
CPUPlatform
Timers
Connectivity
DMA engines
System Control
Security
Memory
eFUSES
ARM926
16K ICache
16K DCacheTimer x4
PWM x5
Watch Dog
Rotary Decoder
UART x3
SSP x 2
Ext Mem I/F3.3V SDRAM
1.8V mSDRAM1.8V mDDR
DDR1 w/2.5V regulatorBCH20/ECC8
NAND Flash x 4
6 Channel LRADC
Digital Radio IF
IrDA-VFIR
S/PDIF TX
Serial JTAG
PLL
CLK Reset
DRM Unique ID
SHA-1 Hashing
OTP AES Key
USB Device& Host HS
GPIO
Keypad
ROM 64KB
RAM 32KB
128-bit AES
I2C Master/Slave
PMU
DC/DC - 4.2V
Battery Charger
LDO x4
Multimedia
Display Controller
24-bit RGB (DOTCK)
18-bit System-mode
LCD Backlight Controller
Mixed Signal Audio
Stereo ADC & DAC w/ Amp
Serial Audio IF x2
ATA
USB OTGHS w/PHY
HS MMC/SD/CF
1.5W Mono Speaker Amplifier
Low Power 10-bit Video DAC
PAL/NTSC Analog TV Encoder
Pixel Processing Pipeline
Scaling & Alpha BlendingColor Space Conversion
Rotation
Herramientas - Software
IDE’s/Tool Chains• ARM LTD• Code Sourcery• Green Hills• IAR Systems• Mentor Graphics• Microcross• Wind River
► RTOS• Express Logic• Green Hills• Mentor Graphics• Micrium• Segger Systems• Quadros• QNX• Wind River
• Linux OS– Monta Vista– Wind River– Timesys
• Development Boards– Logic PD– Phytec– Eurotech– iWave– Atmark– Kyoto– Cogent– karo
• VoIP/V2IP– Trinity Convergence– ITRI– Hellosoft– SpiritDSP
• Flash– Adobe– Bsquare– Calsoft
• GUI/UI/HMI– Trolltech– Mentor– QNX– Swell SW – Altia– Fluffy Spider
• Codecs– DivX– Visual On– Actimagine
• Browsers– Opera– Access
• Java– Aplix– Aonix
• Navigation– Elektrobit– NavinGo
• Graphics– Mazatech– Yappa– AGS
• Other– Futuremark– Nuance– Loquendo– Virtual Logix– Cidana
En sistemas embebidos, un paquete de soporte de placa (board support package (BSP) ) es una implementacion de código para una placa especifica que conforma el sistema operativo. Comúnmente tiene un bootloader que contiene el soporte mínimo para los dispositivos para cargar el sistema operativo y los controladores para todos los dispositivos de la placa.
Herramientas - Hardware
PEEDI - JTAG/BDM/SWD Emulator and Flash Programmer
PEEDI is an EmbeddedICE solution that enables you to debug software running on ARM, CORTEX-M3, CORTEX-A8, Power Architecture, ColdFire, Blackfin, MIPS32, AVR32 processor cores via the JTAG/BDM/SWD port. PEEDI provides the services needed to perform all debugging operations
►JTAG Tools• ARM LTD• American Arium• Green Hills• IAR Systems• Kyoto
Microsystem• Lauterbach• Macragigor
Systems• Mentor Graphics• Sophia Systems• Signum• Wind River
Herramientas- Kits de desarrollo
► 5.7” VGA LCD w/ Touchscreen
► USB 2.0 OTG, Ethernet► SD/MMC, Smartcard► CMOS Image Sensor
i.MX27PDK
►Auxiliary Video Input for display from external video source
►5.1 Sound (Audio CODEC)
►FM receiver/tuner to support short range FM adapters
►CAN Connector►CMOS Image Sensor►USB OTG and USB Host►10/100 Ethernet ►Optional GPS
daughtercard
• VGA Touch-screen Display
• USB, Ethernet
• BT, Wifi, GPS
• FM Receiver• FM
Transmitter• TV Encoder• Headset
Connector• Speaker• Microphone
• Camera• Storage (HDD)• External connectors
• TBD
►4.3” WQVGA Touchscreen LCD Display (add-on module)
►SD/MMC Card Slot ►USB Host/Device►Ethernet supported via SPI header►Navigation keys►Mic input, headphone output (jack)►Composite TV Out connector footprint►3-Axis Accelerometer footprint •►Expansion Port for optional Peripheral
Card
i.MX387
► 7” WVGA Touchscreen LCD Display (add-on module)
► Expansion board (add-on module)► 2 LVDS connectors► DVI-I connector► 2 SD/MMC Card Slots► USB Host x2 / USB OTG x1► Ethernet Port► Mini PCIe► SATA HDD connector► SIM Card connector► Keyboard connector► Mic input, stereo headphone output
(jack), V2IP Headphone► USB Camera connector► RGB output through DVI-I
connector► Ambient light sensor footprint► FM receiver footprint
i.MX31PDK i.MX35PDK•i.MX35•MC13892•SGTL5000
i.MX25PDK•i.MX25•MC34704B•SGTL500
i.MX51EVKJ•i.MX51•MC13892•SGTL5000
i.MX23EVK•i.MX233
Freescale – Coldfire - Flexis
Pin a Pin compatible
– Maximiza la reutilización del hardware cuando se migra de 8 a 32 bits.
Set de perifericos compartidos
– Permite re usar el software al cambiar de 8 a 32 bits.
Unica herramienta de desarrollo
– CodeWarrior para microcontroladores soporta ambos; S08 de 8 bits y ColdFire V1 de 32 bits
Freescale - ColdFire
Freescale - ColdFire
Herramientas- Software
CodeWarrior V6,3 para ColdFire V1. (Hasta 64Kb de codigo en C gratis)
Code Warrior V7,2 para ColdFire V2/3/4. (Version para linux disponible)
Herramientas- Hardware
USB BDM Multilink.(Para micros de 9S08/HC12/V1)
USB Coldfire Multilink(Para micros V2/V3/V4)
Herramientas – Kits de desarrollo
M52259DEMOMCU
DEMOAC
TWR-MCF5225X
TWR-MCF51CNKIT
M52277EVB
Bonus - Freescale
32-bit dual core, high performance, low-power MCU family built on Power Architecture for central body module and gateway applications.
Enables centralized architectures, which reduce the number of distributed Electronic Control Units (ECU) and complexity of vehicle architecturesEfficient Power Architecture core:
Parallel processing (dual-core + eDMA + multiple execution units in the e200core, generating more powerl than a regular RISC CPU) Code density (best in class performance, due to Variable Length Encoding)
Exceeds 100 Dhrystone MIPS (DMIPS) performance
Minimizes ECU leakages below 200 μAProvides extensive communication capabilities including FlexRay communications protocol, multiple CAN and LIN
Offers room to grow with scalable family ranging from 512 KB up to 1.5 MB of embedded flash
Concluciones Generales
• Si esta por empezar un nuevo desarrollo no piense en micros con core ARM7. Es un core viejo que la gente misma de ARM recomienda migrar a Cortex-M3.
• La linea Flexis de Freescale es un buen comienzo para aplicaciones de gama medio-baja y para aquellos que quieren dar sus primeros pasos, ya que posee encapsulados pin a pin compatible con micros de 8 bits y debido a la fácil migración de entre 8 y 32 bits.
• Para aplicaciones que necesiten mayor desempeño (gama media) la linea AVR32UC3A es una excelente opción, como también las lineas con Cortex-M3 de mayor gama.
• Para aplicaciones de alta gama, debemos pensar ya en un microprocesador, donde las mejores alternativas las podemos encontrar en la linea I.MX de freescale.
RTOS
RTOS - MQX
Freescale MQX:
RTOS (Con prioridades y preemtive)
Stack TCP/IP de tiempo real
Stack USB Host: HID, Mass Storage y Hub
Stack USB Device: HID, Mass Storage y CDC
Sistema de Archivos
Drivers para los periféricos
Web Server
MCF51CN
MCF51EM *New in MQX 3.5 Release*
MCF5225X
MCF5223X
MCF5222X
MCF5227X
MCF5445X
¡¡¡¡MUCHAS GRACIAS!!!!