Ir al contenido principal

Entradas

Mostrando las entradas etiquetadas como microcontrolador

Timers en MSP430

El MSP430 está provisto de temporizadores (el número de ellos depende de la versión del microcontrolador) que permiten medir intervalos de tiempo y generar eventos basados en tiempo. No hay que confundir los timers con los relojes de tiempo real que también equipa el MSP430. Hay dos tipos de timers, Los Timers_A y los Timers_B. Ambos son muy similares, y aunque los de tipo B poseen alguna característica más que los A, aquí no vamos a profundizar en ello. Alguna de las características de los timers son: Utilizan un contador de 16 bits con cuatro modos de operación. Pueden seleccionar y usar diferentes fuentes de reloj. Utilizan registros de captura/comparación para su configuración. Permiten salidas PWM (Power Width Modulation). Pueden usar interrupciones. Nos apoyaremos en el siguiente esquema de un Timer_A para ver cómo se utiliza. Hay dos tipos de bloques bien diferenciados. Rodeado de verde está el bloque contador, y de azul el bloque de cap...

Modos de bajo consumo en MSP430

En el artículo hicimos un repaso al módulo de reloj , que está íntimamente ligado a los modos de bajo consumo del microcontrolador MSP430. Una de las ventajas de éste sobre otros microcontroladores es la gran flexibilidad que ofrece a la hora de configurar los relojes y, por ende, el modo de bajo consumo. El MSP430 permite la desactivación de las fuentes de reloj y de los propios relojes, lo que permite desactivar la CPU y los periféricos mientras no sean necesarios. Además, el módulo de gestión de energía (PMM o Power Management Module) hace posible incluso apagar el core (CPU) del microcontrolador. En la práctica, la mayoría de las aplicaciones no requieren que la CPU o los periféricos estén siempre funcionando. Imaginemos un dispositivo IoT que envía información sobre contaminación atmosférica a un servidor remoto. En este caso, no es necesario estar constantemente consultando el estado de los sensores y enviando información, sino que puede hacerse cada pocos segundos o inclu...

Módulo de reloj en MSP430 (Unified Clock System)

El módulo de reloj del MSP430 (o como lo llama TI, Unified Clock System) es muy versátil, y es el responsable de la gran capacidad de este microcontrolador para ser uno de los mejores en lo que a bajo consumo se refiere. Vamos a hacer un repaso general de este módulo centrándonos en las partes más relevantes ya que, por sí sólo, este módulo daría para escribir un libro en exclusiva. A vista de pájaro, tal y como observamos en el esquema anterior, podemos distinguir las siguientes señales: Dos entradas (XIN y XT2IN) y dos salidas (XOUT y XT2OUT) que permiten conectar dos osciladores externos. Podríamos conectar tanto un cristal de cuarzo (con sus correspondientes condensadores) o una fuente de reloj externa. Una señal de reloj llamada MCLK, que es la señal de reloj que utiliza  la CPU. Otras dos señales de reloj ACLK y SMCLK, que utilizan los periféricos y la memoria flash. En el siguiente esquema vemos el esquemático del módulo de reloj en más detalle. Hay t...

Interrupciones en MSP430

En el artículo anterior exploramos los mecanismos básicos de entrada/salida del microcontrolador MSP430. Para ello usábamos una técnica llamada polling o sondeo en la que explícitamente preguntábamos en cada instante el estado del pulsador para poder actuar en consecuencia. Esta técnica es sencilla y directa, pero tiene algún que otro inconveniente. Desde el punto de vista del programador, el código puede complicarse si tenemos que controlar varias señales de E/S y además el código suele ser propenso a errores si no tenemos cuidado. Por otro lado, desde el punto de vista del consumo energético es bastante ineficiente, ya que el micro se pasa todo el tiempo sumido en un bucle infinito preguntando por el estado del pulsador. Huelga decir que en un sistema autónomo alimentado con baterías puede hacer que nuestro diseño sea inviable. Para solventar esta situación se utilizan, entre otras técnicas, las interrupciones. El mecanismo de las interrupciones permite que los periféricos, t...

Gestión de entrada/salida en MSP430

Este es el primero de una serie de artículos dedicados al microcontrolador MSP430 de Texas Instrument. Este microcontrolador de 16 bits está especialmente pensado para aplicaciones embebidas en las que el costo y el consumo son elementos fundamentales. En realidad, se trata de toda una familia de microcontroladres en las que, dependiendo del modelo, encontraremos diferentes características y periféricos. En esta serie de artículos me voy a basar en el MSP430F5529 y concretamente en la placa de desarrollo que ofrece TI: MSP430F5529 LaunchPad. Puertos de entrada/salida del MSP430 Dependiendo del modelo concreto dispondremos de más o menos puertos de entrada/salida. En el MSP430F5529 disponemos de cuatro bloques de puertos denominados PA, PB, PC y PD. Cada uno de estos bloques dispone de dos puertos de ocho bits cada uno. Por ejemplo, PA tiene los puertos P1 y P2 con ocho pines cada uno. Algunos de estos puertos, además de funcionar como entrada/salida de propósito general, ...

Digispark Attiny USB (un Arduino en miniatura)

El microcontrolador Attiny85 no es muy potente ni demasiado versátil a la vista de los pocos puertos de entrada y salida que tiene, pero es muy pequeño y muy fácil de usar, además de tener un consumo muy bajo y ser muy barato, lo que lo hace perfecto para pequeños proyectos. Cuando un compañero de trabajo me habló de él no pude esperar a conseguir uno, ya que me encajaba perfectamente para un par de ideas que tenía en la cabeza. Este pequeño microcontrolador de 8 bits sólo tiene 8 patillas: las dos de alimentación y 6 para entrada/salida. Además, lleva un oscilador interno de hasta 20Mhz (si se alimenta a 5,5V), con lo que no es necesario añadir ningún oscilador externo. Para un primer contacto he usado una pequeña placa de Digispark. Se trata de la Digispark USB development board . Es muy cómoda de usar ya que puede conectarse directamente al puerto USB, tanto para programarla como para alimentarla. También puede alimentarse externamente a través de los tres pines laterales...

Regulador de tensión L7805CV para alimentar un Atmega328 (Arduino)

El 7805 es el regulador de voltaje por excelencia, seguramente el más usado en sistemas empotrados, aunque poco a poco estos sistemas van adoptando 3.3V como tensión de trabajo, el 7805 es perfecto para usarlo con el Atmega328, que se alimenta con 5V. En el artículo anterior vimos como usar este microcontrolador de forma independiente de la placa Arduino, pero pasamos muy de puntillas por el tema de la alimentación. En este artículo vamos a aprender a usar el 7805 para alimentar nuestros circuitos basados en el Atmega328. En electrónica digital es importante que las tensiones que alimentan el circuito se mantengan constantes y a un nivel conocido y estable. El microcontrolador Atmega328 usa 5V para funcionar. A no ser que usemos una fuente estabilizada, la cosa se puede complicar. La tensión que ofrece una pila no es lo suficientemente estable. Pensarás que con usar un adaptador de corriente de esos que venden en los bazares, todo solucionado ¿no? Pues no. Estos transformadores no...