nRF51822 con uC ARM

El nRF51822 de la marca Nordic Semiconductor es un microcontrolador ARM Cortex M0 con capacidades de transmitir datos inalámbricamente en frecuencias 2.4GHz. Tiene varios protocolos para establecer la comunicación con otros dispositivos. En aliexpress venden la placa XL51822-D01 la cual viene con la antena dentro de la misma placa.

Placa XL51822-D01
Placa XL51822-D01

Sin embargo esta solo es compatible con su placa de desarrollo BLE. También en aliexpress venden el conjunto listo para llegar y programar. En este otro link tambien pueden comprarlo.

Set de programacion nRF51822
Set de programacion nRF51822

Hace un tiempo quise volver a programar uC pero de más alto nivel ya que necesito que sean capaces de procesar múltiples tareas sin que pierda rendimiento y que además su consumo energético sea bajo. Los PIC de microchip se desempeñan muy bien para actividades monotarea pero cuando necesitas más procesos que administrar estos se quedan cortos…por lo menos en la serie de 8 bit. Es por ello que dedique un poco de tiempo en internet hasta que encontré los procesadores ARM-M0, Este post será para introducirlos en esta familia de procesadores potentes y bajo consumo.

nRF51822:

Este dispositivo tiene entre sus características clave:

  • Soporte para enlaces multiples de radio a 2.4GHz radio
  • Un microcontrolador ARM Cortex-M0 de 32bit
  • Memoria programable flash de 256Kb y 16 Kb de Ram
  • Totalmente compatible con dispositivos de la serie nRF24L
  • Potencia de salida programable desde +4 dBm a -20dBm
  • RSSI
  • Entradas y salidas configurables: 31 GPIO.
  • Gestion de Energia Simplificada
  • Interfaz de comunicación : SPI/2-wire/UART
  • Conversor Analogo a Digital de 10-bit
  • 128-bit AES ECB / CCM / AAR co-processor
  • Amplio voltaje de alimentación: 1.8 V a 3.6 V.

La verdad no entendía por qué había tantos fabricantes distintos diseñando sus SoC con el mismo microprocesador ARM, pero leyendo el libro The Definitive Guide to the ARM Cortex-M0 despeje mis dudas al respecto. Añado parte de la introducción acerca de esta uC.

ARM Cortex-M0

El procesador ARM Cortex-M0 esta diseñado para cumplir las necesidades de de MCU modernos. Está destinada a satisfacer la demanda para las aplicaciones de bajo coste mejorando la conectividad a otras interfaces tales como Ethernet, USB, inalámbricas de baja potencia y usos de sensores análogos tales como sensores touch y acelerómetros.

La idea detrás de un ARM Cortex-M0 fue crear el procesador más pequeño y con un menor consumo posible, mientras es compatible con el rendimiento de procesadores ARM Cortex-M3. Es el resultado del diseño de 12000 compuertas lógicas en una configuración mínima, como un procesador pequeño de 8 o 16 bit, pero siendo un procesador completo de 32 bit que incorpora una tecnología avanzada con muchos beneficios por sobre los dispositivos de 8 o 16 bit.

Eficiencia Energética:

El rendimiento eficiente de un Cortex-M0 (0.9 DMIPS/Mhx) significa que puede hacer una tarea en algunos ciclos (incluso una multiplicación de 32-bit puede ser completada en un ciclo). Esto significa que los dispositivos Cortex-M0 pueden estar en modo bajo consumo más de una vez, otorgando eficiencia energética. Alternativamente, ellos pueden realizar el mismo trabajo en algunos MHz, significando en un menor potencia activa e interferencia Electromagnética (EMI). Su controlador de interrupciones (NVIC) es muy eficiente, lo que se traduce en una sobrecarga de interrupciones menor, aun cuando manipulan interrupciones anidadas a diferentes prioridades.

Densidad de Código.

El tamaño del código generado por el set de instrucciones Thumb-2 es más pequeño que el utilizado en aplicaciones de 8-bit o 16-bit. Esto conlleva a un uso menor de espacio en la memoria flash para la misma aplicación. Esto ahorra al dispositivo costo y potencia, debido a que el acceso a la memoria flash contribuye significativamente al consumo de potencia.

Fácil de uso.

El uC Cortex-M0 es diseñado idealmente para focos donde se programa en C, muchos compiladores lo soportan, y su servicio  de rutinas de interrupciones puede ser codificado directamente como funciones en C sin necesidad de assembler.

Antecedentes ARM y procesadores ARM.

ARM tiene una larga historia en el diseño de microprocesadores de 32 bit. En estos días muchos teléfonos móviles usan algunos procesadores ARM en sus diseños, y la aplicación de los procesadores ARM a sido extendida a muchos sistemas de entretención, juguetes electrónicos, computadoras móviles y aplicaciones industriales. Sin embargo, a diferencia de muchas compañías de semiconductores, ARM no produce o vende sus propios microprocesadores. En vez de eso, los procesadores diseñados por ARM son utilizados por otras compañías de semiconductores mediante un modelo de negocios de licenciamiento. ARM proporciona una variada cantidad de diseños de procesadores, y el Cortex-M0 es uno de los productos de la familia procesadores Cortex-M que es diseñado para aplicaciones de microcontroladores.

 

 

Temas futuros:

  • Programador J-Link
  • Programación mediante Keil
  • nRF51822

 

You may also like

4 comments

  1. Sergio Acuña 3 años ago

    Que buena!, yo he estado desconectado de programar micros por el trabajo :(, Espero tener un poquito de tiempo para indagar mas rato

    Saludos!

    Like Dislike
  2. Carlos 3 años ago

    Disculpa olvide poner eso xD, dos nRF51, los compré aqui en ebay (CORE51822), los estoy programando con el ST-Link de una discovery y OpenOCD o también desde Keil, solo he checado algunos de los ejemplos que vienen en los packs de Keil (solo los de los perifericos, nada con SoftDevices), algunos funcionan sin modificaciones, otros tiran algunos errores ;/.

    Saludos

    Like Dislike
  3. Sergio Acuña 3 años ago

    que modulos recibiste?, donde los compraste?

    Saludos!

    Like Dislike
  4. Carlos 3 años ago

    A la espera de futuros posts, hoy recibí dos modulos parecidos 🙂

    Like Dislike

Deja un comentario