Revista Electrónica Profesional Impresa hace más de 25 años.

Información para Empresas y Electrónicos

Microcontroladores

Implementación de lógica discreta compleja con microcontroladores #logicadiscreta #microcontrolador-microchip

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado
 

El periférico CLB (Configurable Logic Block) en la familia de microcontroladores PIC16F13145 permite a los desarrolladores implementar funciones lógicas discretas complejas en hardware para reducir la lista de materiales y desarrollar una lógica a medida de cada aplicación.

En muchas aplicaciones de los sistemas embebidos es frecuente utilizar dispositivos lógicos discretos, como la serie 74’HC. La ventaja que ofrecen estos dispositivos lógicos es que funcionan con independencia de cuál sea el microcontrolador y pueden responder con mucha más rapidez que el software. Sin embargo, estos dispositivos se suman a la lista de materiales y necesitan más espacio en la placa de circuito impreso.
Para resolver este problema, muchos microcontroladores de Microchip incorporan un periférico denominado CLC (Configurable Logic Cell) en los microcontroladores PIC® u otro periférico similar denominado CCL (Configurable Custom Logic) en los microcontroladores AVR®. Ambos periféricos implementan una lógica a medida definida por software que se puede ejecutar con independientemente de la CPU. En otras palabras, una vez configurada la función lógica a medida, su funcionamiento es independiente del microcontrolador.
Pero una limitación para estos periféricos es que la cantidad de lógica que ofrecen es muy pequeña. Cada CLC equivale aproximadamente a una sola tabla de consulta (Look-Up Table, LUT), mientras que cada CCL integra un par de LUT independientes. Estos periféricos son potentes herramientas para desarrollar circuitos lógicos sencillos, combinan señales y se integran con otros periféricos de hardware. Por ejemplo, todos estos ejemplos de eliminación de rebote en un botón de hardware, generación con WS2812 y decodificación de cuadratura necesitan estos periféricos pero sólo hay unos pocos de ellos en el microcontrolador, lo cual limita la complejidad de las aplicaciones.
Para admitir aplicaciones más complejas se añadió un nuevo tipo de periférico lógico, denominado CLB (Configurable Logic Block), como se puede ver en la Figura 1, a la familia de microcontroladores PIC16F13145. Obsérvese que el CLB no sustituye a los periféricos CLC o CCL, y los dispositivos pueden ser tanto uno varios CLC/CCL como un CLB.


Figura 1. Diagrama de bloques del CLB.

El CLB de la familia PIC16F13145 está formado por cuatro conjuntos de Grupos Lógicos, cada uno de los cuales contiene ocho BLE. Los BLE de cada grupo lógico están conectados; cada grupo es una representación de dos salidas GPIO y una interrupción opcional para la CPU. Cuando funcionan a 5,5V, los BLE tienen un tiempo típico de propagación inferior a 6 ns. Todos los BLE comparten una misma estructura del reloj, la fuente del cual se configura por software junto con un divisor de reloj opcional. El CLB puede utilizar una de las fuentes de reloj internas del microcontrolador o una fuente externa.
El periférico se inicializa desde la memoria del microcontrolador y puede controlar las patillas directamente desde la propia estructura a través de PPS (Peripheral Pin Select). PPS permite al usuario reasignar las patillas de E/S utilizadas con los periféricos de hardware para aumentar mucho más la flexibilidad de diseño. Por ejemplo, si se usó RA1 para el Reloj SPI, sería más ventajoso usar RA6 y PPS reasignaría la patilla.
Otros elementos integrados en el CLB son un temporizador de hardware de 3 bits con salidas decodificadas, un detector de flanco para señales de entrada y un registro de salida de 32 bits para depuración. Otras salidas de los CIP (Core Independent Peripherals) del microcontrolador se pueden utilizar como entradas al CLB en diseños más complejos.
Como el CLB es bastante más complejo que CLC o CCL se ha desarrollado una nueva herramienta llamada CLB Synthesizer. CLB Synthesizer proporciona una interfaz gráfica para configurar la lógica tal como muestra la Figura 2. Además de lógicas primitivas, la herramienta también admite bloques lógicos de mayor nivel, que se pueden suministrar o bien pueden ser construidos a medida por el usuario.
Al interaccionar con la herramienta gráfica se genera un módulo Verilog en segundo plano para síntesis. Si el desarrollador prefiere escribir su propio Verilog, o tiene un archivo preparado, éste se puede importar directamente en la herramienta como un módulo.


Figura 2. CLB Synthesizer con un ejemplo de PSK (Phase-Shift Keying).

La salida del CLB Synthesizer es un archivo de ensamblador que contiene el flujo de bits para ajustar el CLB y código fuente para configurar el CLB como un periférico. Esta herramienta se puede ejecutar a través de MPLAB® Code Configurator (MCC) o de una herramienta en línea autónoma. MCC es una utilidad para generación de código que permite a los usuarios ajustar y configurar los periféricos en el microcontrolador por medio de una interfaz visual. Tras configurar los periféricos de hardware, el MCC genera el código de inicialización y una API del dispositivo.
Durante el tiempo de ejecución, el flujo de bits del CLB se carga directamente desde la memoria de programa utilizando el hardware incorporado. Una ventaja de esta solución es que necesita cambiar la configuración del CLB mientras se está ejecutando el programa y el proceso de carga se puede repetir con un flujo de bits diferente almacenado en la memoria del dispositivo.
Para demostrar el funcionamiento del CLB en las aplicaciones se ha creado una serie de ejemplos de uso. Veamos dos ejemplos: el convertidor para pantalla de 7 segmentos y el SPI a WS2812. Estos ejemplos son bloques funcionales que se pueden copiar y utilizar como parte de una solución completa. Se han desarrollado para demostrar la utilidad de este periférico y qué puede aportar a un diseño.
El primer ejemplo es un convertidor para pantalla de 7 segmentos. Las pantallas de 7 segmentos se pueden controlar desde las patillas normales de E/S, pero una implementación estándar suele necesitar una tabla de consulta definida por software para convertir el número de entrada en el patrón de salida correcto para la pantalla. En esta implementación, el CLB funciona como tabla de consulta de hardware. El carácter de salida deseado (0 a F) se carga en el registro de entrada del CLB desde el software. Cada segmento de salida de la pantalla es controlador por una LUT que relaciona entradas y salidas.
Este ejemplo se empleó internamente para construir una nueva tarjeta de control destinada al sistema de sincronización. La interfaz de usuario original fue desarrollada en la década de 1980 con lógica de la serie 74’HC. Con el CLB, un solo microcontrolador de 20 patillas puede implementar la pantalla y la lógica del teclado en la tarjeta, reduciendo así significativamente la lista de materiales. La Figura 3 compara ambas tecnologías.


Figura 3. Comparación entre la placa de circuito impreso original y el nuevo montaje. Este ejemplo fue desarrollado por Josh Booth.


A continuación se encuentra el convertidor SPI a WS2812. WS2812 es un protocolo serie de 1 hilo para controlar matrices de LED mediante modulación por anchura de pulso. En este caso, el hardware SPI se usa como registro de desplazamiento para los datos enviados a los LED, mientras que el CLB convierte SCLK y SDO a la salida prevista.
Esto se implementa en el ejemplo mediante un contador de 3 bits de un solo disparo, un latch D con Enable y una LUT de 4 entradas, como se puede ver en la Figura 4. En esta solución la clave reside en las fuentes de reloj para SPI y CLB. El reloj de SPI se halla en estado alto en espera, cambia de estado con un flanco ascendente y funciona a la frecuencia de la salida del WS2812 (800 kHz), mientras que la fuente del reloj del CLB multiplica por 10 esa velocidad (8 MHz). Cuando SCLK está en estado bajo, el contador de 3 bits se active empieza a contar. Cuando el contador llega hasta 7 (0b111), se detiene y se queda en 0 hasta el siguiente período bajo del pulso del reloj.
La salida del contador se introduce en una LUT de 4 entradas junto con una versión retenida de los datos de salida. Esto establece el patrón de salida de los datos, que se puede ver en la parte derecha de la Figura 4. Una vez reiniciado el contador, su salida seguirá a 0 para completar el ciclo. Entonces, si es necesario, se transmite el siguiente byte en el hardware SPI y se repite el ciclo.


Figura 4. Diagrama de bloques del convertidor SPI a WS2812 desarrollado por Petre Teodor-Emilian.

Ambos ejemplos demuestran la ventaja de integrar lógica discreta en un microcontrolador. Los periféricos de hardware descargan de tareas a la CPU, lo cual puede mejorar el tiempo de respuesta y el consumo, así como reducir el número de componentes. El CLB permite desarrollar aplicaciones complejas que antes no se podían implementar en un microcontrolador. En la actualidad el CLB se puede encontrar en la familia de microcontroladores PIC16F13145, disponible a través de Microchip Direct o de otros distribuidores.

Author: Robert Perkel, Ingeniero de Aplicaciones en la Unidad de Negocio de Microcontroladores de  8 bits, Microchip Technology

Robert Perkel es un ingeniero de aplicaciones de Microchip Technology que desarrolla contenido técnico como notas de aplicación, artículos y vídeos. También es el responsable de analizar casos de uso de periféricos y el desarrollo de ejemplos de código y demostraciones. Perkel estudió en Virginia Tech, donde se graduó en Ingeniería Informatica

Articulos Electrónica Relacionados

Redes Sociales

Edicion Revista Impresa

1ww   

Para recibir la edición impresa o en PDF durante 1 año (10 ediciones)

Suscripción papel: 180,00.- €  (IVA inc.)

Suscripción PDF: 60,00.- € (IVA inc)

Precio suscripción anual:

PDF: 60,00.- € (IVA incluido.)

PAPEL: 180,00.- € (IVA incluido.)

Recibirá las 7 ediciones que se publican al año.

Noticias Populares Electrónica

Microcontrolador inalámbrico RW612 de NXP Semiconductors para Matter #microcontroladornxp #mcumatter

Mouser tiene en stock el microcontrolador inalámbrico RW612 de NXP® Semiconductors. El RW612 es un MCU inalámbrico altamente integrado y de alta...

Microcontroladores y placas de desarrollo FRDM de NXP® Semiconductors #microcontrolador-nxp #nxp-mcu

Farnell ha anunciado que incorporará a su cartera de productos los microcontroladores para usos industriales e IoT de la serie universal MCX de NXP®...

Microcontroladores Microchip PIC16F17576 para diseño de sensores analógicos #mcu-microchip #sensor-analogico

Los dispositivos diseñados para capturar señales analógicas que varíen a gran velocidad deben responder con rapidez y ofrecer un bajo consumo, sobre todo...

Microcontrolador Renesas RA0E2 serie RA0 con procesador ARM Cortex M23 #mcu-renesas #arm-cortex

Renesas Electronics Corporation ha presentado el grupo de microcontroladores (MCU) RA0E2 basado en el procesador Arm® Cortex®-M23. Los MCU RA0E2 son...

Noticias Electrónica Profesional

Noticias Fuentes de Alimentación

¿Son verdaderamente necesarias todas esas baterías?

Elevando la tensión con una sola batería se pueden sustituir varias baterías y reducir tanto los...

Accesorios médicos desechables: el reto del almacenamiento

Endoscopios, grapadoras y láseres para eliminar el pelo se encuentran entre los productos médicos...

Actualización de la solución Renesas TPS-1 para acelerar l

Renesas Electronics Europe anuncia una nueva placa de evaluación para el chip de dispositivo Renesas...

Actualidad Electrónica Profesionales

¿Son verdaderamente necesarias todas esas baterías?

Elevando la tensión con una sola batería se pueden sustituir varias baterías y reducir tanto los...

Accesorios médicos desechables: el reto del almacenamiento

Endoscopios, grapadoras y láseres para eliminar el pelo se encuentran entre los productos médicos...

Actualización de la solución Renesas TPS-1 para acelerar l

Renesas Electronics Europe anuncia una nueva placa de evaluación para el chip de dispositivo Renesas...

Convertronic

Revista © Convertronic Electrónica Profesional Española.Todos los derechos reservados GM2 Publicaciones Técnicas, S.L.
Tel.: +34 91 706 56 69
Poema Sinfónico, 27. Esc B. Planta 1 Pta 5
28054 (Madrid - SPAIN)
e-mail: gm2@gm2publicacionestecnicas.com ó consultas@convertronic.net

Suscríbete a nuestro boletín de noticias

Revista Española de electrónica. Impresa desde hace más de 25 años.

España - Madrid - Todos los derechos reservados Revista © Convertronic Electrónica Profesional Española.

Search