viernes, 7 de diciembre de 2012

#ARM #TI #Atmel #NXP #freescale

Bueno pues hoy decidí hablarles un poco sobre ARM y sus diferentes arquitecturas por que me aventuraré en el uso de estos mismos.
ARM es una empresa inglesa que no se dedica a vender chips o µC, los diseña y ese diseño se lo licencia a otro fabricante de semiconductores, podrán encontrar procesadores ARM de varios fabricantes como Atmel, Texas Intruments Freescale, Samsung, Qualcomm, Braodcom, STmiccroelectronics, nVIDIA, NXP, Cypress Semiconductor, Renesas, etc …. Cada uno de estos fabricantes le da un plus a su µC o SoC que lo hace único y dependiendo del punto de vista de cada quien mejor que otro fabricante de µC o SoC con licencia de ARM.
arm-holdings-logo
Logo de ARM
Dentro de ARM tenemos varias familias siendo éstas las
  • ARM Cortex-A
  • ARM Cortex-M
  • ARM Cortex-R
  • Y varios más
Le dicen procesador de aplicaciones (ARM Application Processors), que es un procesador y como tal puede correr un sistema operativo complejo como lo son Linux es sus diferentes versiones para ARM, Android (un tipo de linux), Chrome OS, Windows Embedded o Windows 8 RT. Este tiene un MMU (memory managment unit), que maneja las diferentes operaciones que requieren los SO
Esta serie la pueden encontrar en sus smartphones, tablets, Smart TV, GPS, servidores con ARM, etc….
Dentro de la serie Cortex-A hay Cortex-A5, Cortex-A8, Cortex-A9, etc el número es el nivel de desempeño que tienen.
Para programar estos hay que hacerlo sobre el SO para el sistema operativo que estés utilizando (no programas para el µC o SoC) salvo que te dediques a programar el kernel del SO.
Yo no usaré este mismo por que no me llaman la atención y no sé programar kernel´s pero sí ando aprendiendo a programar para Android en Java.
Son para dispositivos embebidos que deben de trabajar en tiempo real, consumen poca energía para aplicaciones móviles, generalmente son usados para ejecutar RTOS (sistemas operativos en tiempo real).
Entre sus aplicaciones están: sistemas de control para vehículos, redes de sensores, controladores de dispositivos de almacenamiento masivo, impresoras, etc …..
Igual que los de las Seria A hay Cortex-R4, COrtex-R5, etc…
Estos son más parecidos a un µC de 8 bits, son de muy bajo consumo energético, tienen una capacidad limitada para expandir su hardware, generalmente no tiene pantalla.
Entre sus aplicaciones están: sistemas de control de motores, sistemas de control para electrodomésticos, sensores y Internet of things.
Al igual que todos los Cortex-M tiene varios números dependiendo de su desempeño.
En estos últimos serán en los que me basaré los Cortex-M ya que son los que he estado comprando, actualmente tengo 2 diferentes tarjetas de Cortex y llegaré a 4.
Cada una de éstas tienen sus ventajas y desventajas, todas son Cortex-MX y los IDE´s suelen variar.
LaunchPad Stellaris
Primero lo primero el costo de ésta vale 12.99 USD (aproximadamente 180 pesos), es bastante barata pero pues su IDE que es Code composser studio tiene un costo un tanto elevado claro que ya es para aplicaciones más grandes porque te lo dan libre hasta cierta cantidad de KB´s pero si son estudiantes o necesitan un programa pequeño no es mayor problema.
Características de la tarjeta:
  • Stellaris LM4F120H5QR µC (Cortex-M4F)
  • 2 micro USB uno para debugg y otro de usuario
  • 1 led RGB
  • 2 switches
  • debugger incluido
Esta tarjeta es bastante pequeña como del tamaño de un Arduino uno, y aparte es compatible con sus shields para los que usan Arduino y quieran usar un µC de verdad ya nada más es cosa de que aprendan a programar este µC
  • 32-bit ARM Cortex-M4F
  • Hasta 80 Mhz
  • 256 Kb de flash
  • 32 Kb de Ram
  • Full speed USB
  • CAN
  • 8 UARt´s
  • 4 SPI
  • 4 I2C
  • 12-bit ADC
  • 43 lineas I/O
stellaris
Arquitectura del LM4F
Éste tiene varios trucos porque puede trabajar hasta una frecuencia de 80 Mhz pero a 40 Mhz la memoria flash deja de acezarse en un solo ciclo de reloj, esto quiere decir que ya no es 1MIP/MHZ sino que disminuye por lo tanto su rendimiento es menor.
FRDM-KL25Z
El costo de esta tarjeta es de unos 20 USD (aproximadamente 270 pesos), también un costo bastante aceptable, la desventaja de esta tarjeta es como con Texas Instruments el IDE tiene un costo elevado y lo peor es que su IDE no da más que 30 días de prueba después de esto pues tiene una tarjetita inservible, si quieres ser legal claro está.
Características de la tarjeta:
  • MKL25Z128VL4K @48 Mhz
  • 2 mini USB uno para debugg y otro para usuario
  • 1 led RGB
  • Slider tocuh
  • Accelerometro MMA8451Q
  • debugger includo en la tarjeta
Esta tarjeta es un poco más grande que la Launchpad Stellaris me parece ser que es compatible con los pines del Arduino Mega o el Arduino R3, igual lo mismo si tienes shields Arduino decídete y aprende un µC de verdad
  • KL24/KL25 Sub-family Cortex-MO+
  • Hasta 48 MHz
  • Hasta 128 Kb de flash
  • Hasta 16Kb de RAM
  • 3 UART´s
  • 2 I2C
  • 2 SPI
  • 12 y 16 bits ADC
  • 12 bits DAC
kinetis
Arquitectura del Kinetis KL2
Esta tarjeta tiene bastantes prestaciones y de nuevo la forma es muy compatible con shields de Arduino, la gran desventaja que tiene es que necesitas code warrior y no es gratuito y sólo hay pruebas de 30 días, pero de ahí en más el botón capacitivo y el acelerómetro son excelentes adiciones.
LPC800 Xpresso
El costo de esta tarjeta es de también aproximadamente 20 USD (270 pesos aproximadamente) y el IDE que utiliza es totalmente gratuito y muy bueno ya que está basado en ECLIPSE es el LPCXPRESSO IDE, esto le da un plus increíble ya que pues es barata y el IDE es gratuito sin ninguna limitante, aparte de todo tiene lo que le llaman el LPC link que no es nada más ni nada menos que un debugger que se separa de la tarjeta, con éste ya podemos programar cualquier µC de NXP compatible con este LPC link y al menos serán todos los de esta familia.
sobre la tarjeta:
  • LPC812 Cortex-M0+ @12Mhz
  • Led RGB
  • Potenciometro
  • LPC-link
No puedo poner nada más porque no he visto la tarjeta físicamente sólo sé que viene en un empaquetado DIP de ocho pines el más chico de I/O y trae un LPC-Link
  • Cortex-M0+
  • Hasta 30 Mhz
  • 16 Kb flash
  • 4 Kb de RAM
  • 3 USART
  • 2 SPI
  • 1 I2C
  • Comparador Analógico
NXP
Diagrama a bloques LPC81X
Como lo ven, este µC es pequeño en comparación con los anteriores, de hecho el más grande es de 20 pines, pero se me hace un excelente µC NXP, le está metiendo mucha publicidad haber que tal salen, algo que me gustó mucho de esta tarjeta que estuve leyendo es que a lo que le llaman el SWITCH MATRIX CONFIGURATION, donde básicamente ejecutas un pequeño código al inicio del programa y tú decides dónde poner tus dispositivos que tienes físicamente; esto quiere decir que tú pones el dispositivo que quieras en el pin que quieras, los únicos no movibles son voltaje y tierra, aquí un video para que lo chequen mejor.
Video de Switch Matrix Configuration
Atmel SAM4S-XPLD
El costo de ésta es de 30 USD (400 pesos aproximadamente) es la más cara de todas el IDE es totalmente gratuito se usa el AVR STUDIO 6
Características de la tarjeta:
  • SAM4S16C (cortex-M4)
  • 4 botones táctiles
  • 4 leds
  • debugger incluido
No he visto físicamente la tarjeta pero pues se ve bien, tiene 4 conectores de paso 100 mils de 10 cada uno y se pueden usar para expandir más la tarjeta.
SAM4S
  • Cortex-M4
  • Hasta 120 Mhz
  • Hasta 2048 Kb flash
  • Hasta 160 Kb de RAM
  • 2 USART´s
  • 2 I2C
  • 12 bit-ADC
  • 12 bit-DAC
  • Hasta 79 líneas de I/O

sam4s
Arquitectura SAM4S
Esta tarjeta la compraré en un futuro no puedo decir mucho de ella por que no he buscado nada.
Espero y les guste esta entrada, creo que empezaré aprendiendo la de NXP seguiré por ATMEL después TI y al final freescale ire dejando lo que aprenda por aquí
saludos y cualquier duda no duden en enviarme un correo a mecatronicamexicana@gmail.com o comentario recuerden seguirme mi twitter es @lams_007