domingo, 23 de enero de 2011

Microcontroladores - parte III

Hoy seguiremos detallando los componentes de los microcontroladores, y el turno hoy es para la memoria y el subsistema de entrada/salida.

Pero antes, revisemos otro de los videos relacionados con el macro mundo de los micros.

NAO

Lo que podemos hacer con los micros es interminable... vean los features de comunicación que tiene este pequeño robot para interactuar con su entorno... Excelente.

Para llegar a hacer algo como NAO, no solo debemos conocer como diseñar aplicaciones para micros, sino como programarlos, como integrarlos la mundo real, como determinar su comportamiento, etcetera.

Debemos saber un poco de electrónica, de robótica, de mecánica, y mucha imaginación... y aunque este es un modelo comercial, la red está plagada de ejemplos de gente como nosotros que hace cosas interesantes, útiles e inútiles, que hacen de este mundo uno fascinante.

En el árticulo anterior hablamos de la CPU de los microcontroladores. Para que este pueda operar debe tener acceso a datos, los cuales son albergados en lo que se conoce como memoria.

MEMORIA

Existen 2 tipos básicos de memoria: Memoria de Programa y Memoria de Datos.

De Progama

En esta memoria se guardan las instrucciones de los programas que definen el comportamiento del micro. Esta puede ser de una sola escritura (ROM) o pueden ser volátiles, es decir, son reprogramables. Existen diferentes tipos de memoria volátil, las diferencias fundamentales están en los procedimientos de escritura y borrado de las mismas. Entre los tipos de memoria volátiles se encuentran la EPROM, EEPROM y la FLASH, esta última muy utilizada últimamente por sus prestancias, capacidad y confiabilidad, llegando a ofrecer hasta 1000 ciclos escritura-borrado.

De Datos

La memoria de datos permite mantener la información con la que los programas trabajan. Esta memoria puede ser volátil como la memoria RAM (SRAM). Este tiene el inconveniente que si existe una caída de voltage, los datos se perderán. Hay aplicaciones que permiten este tipo de comportamiento, pero en el caso de aplicaciones que no lo permitan por su criticidad existen memorias no volátiles, como EEPROM la cual la traen disponible muchos micros. Estas memorias mantienen sus datos inclusive sin alimentación eléctrica.

NOTA: La memoria tipo EEPROM y la tipo Flash pueden escribirse y borrarse eléctricamente, sin necesidad de sacar el circuito integrado del grabador.

ENTRADA y SALIDA

Un microcontrolador puede obtener input de su entorno, o sacar información al exterior a través de sus líneas de entrada y salida. Estas son las patas que se pueden ver en la siguiente imagen.


A excepción de dos patas destinadas a recibir la alimentación, otras dos para el cristal de cuarzo (no todos los modelos requieren cristales externos), que regula la frecuencia de trabajo, y una más para reiniciar el micro, las patas restantes sirven para la comunicación con los periféricos externos que pudiera controlar.

Las líneas de E/S que se adaptan con los periféricos manejan información en paralelo y se
agrupan en grupos de ocho, y reciben el nombre de Puertas (Gates). Hay modelos con líneas que soportan la comunicación en serie; otros disponen de conjuntos de líneas que implementan
puertas de comunicación para diversos protocolos, como el I2oC, el USB, etc.

Estas patas o pines pueden configurarse como líneas de entrada o líneas de salida, es decir, estas pueden ser adaptadas a las necesidades del proyecto.

E/S Analógicos y Digitales.

Existen diferentes tipos de puertos. Los que son analógicos pueden aceptar diferentes voltages (generalmente entre 0V y 5V) en escalas decimales. Desde adentro del micro estos valores de voltaje pueden ser leídos desde una pin de entrada como un valor numérico (i.e. 0-1023).

Por ejemplo, un sensor de temperatura genera, de acuerdo a la temperatura a la cual se somete (Ambiental), un voltaje que si está conectado a un pin análogo, este podrá leerse como un valor numérico. De acuerdo al fabricante este valor numérico se podrá convertir a grados celsius o farenheit, de acuerdo a la la escala que necesitemos.

Las líneas Digitales solo aceptan valores binarios. OV o cero lógico (FALSE) y 5V o 1 lógico (TRUE).

Ejemplo, una salida digital puede utilizarse para encender o apagar un led que esté conectado a un pin de salida digital.

Existe un tipo de salida especial llamado PWM (Pulse Width Modulation). Generalmente se usa para cambiar la resolución de la salida de un micro a valores más discretos en rangos grandes. Esto permite, por ejemplo, graduar la intensidad de un led como si usáramos un dimmer o para controlar un servo.

Otros RECURSOS

Existen otros recursos en los procesadores que pueden ser útiles para hacerlos comportarse de una u otra forma de forma más rápida. Estos recursos pueden ser:

a) Circuitos de reloj, encargados de generar los impulsos que sincronizan el funcionamiento de todo el sistema.

b) Temporizadores, orientados a controlar tiempos.

c) Perro Guardián («watchdog»), el cual permite generar una inicialización cuando el programa quede bloqueado eventualmente.

d) Conversores AD y DA, para poder recibir y enviar señales analógicas.

e) Comparadores analógicos, para verificar el valor de una señal analógica.

f) Sistemas de protección ante fallos de alimentación.

Entrar en estos conceptos puede ser interesante, pero lo haré de aquí en adelante cuando sea requerido implementarlo para algún ejemplo o proyecto.


Algunos conceptos (Wikipedia y otros)

1) PWM: La modulación por ancho de pulsos (también conocida como PWM, siglas en inglés de pulse-width modulation) de una señal o fuente de energía es una técnica en la que se modifica el ciclo de trabajo de una señal periódica (una senoidal o una cuadrada, por ejemplo), ya sea para transmitir información a través de un canal de comunicaciones o para controlar la cantidad de energía que se envía a una carga.


No hay comentarios:

Publicar un comentario