Translate

miércoles, 27 de mayo de 2015

PROGRAMACIÓN EN BASIC PARA MICROCONTROLADORES MICROCHIP

CAPÍTULO I

¿QUÉ ES UN MICROCONTROLADOR?

Un microcontrolador podría decirse que es una mini computadora programable encapsulada como un circuito integrado; y como tal, cuenta básicamente con un microprocesador (unidad central de procesamiento de datos,  Central Processing Unit,  CPU), bancos de memorias y circuitos periféricos de entradas y salidas. El primer microcontrolador, el 4004 de sólo 4 bit, fue diseñado por la Intel en el 1971.



Todos los microcontroladores tienen memoria tipo ROM (Read Only Memory, ‘memoria de sólo lectura’) en la cual se graba de fábrica las informaciones básicas de operación, de la misma manera que el cerebro de un niño recién nacido llega al mundo con las capacidades elementales de recibir informaciones a través de los sentidos, aprender, comprender, razonar y ejecutar acciones utilizando sus miembros. Estamos hablando indirectamente de la Unidad Central de Procesamiento (CPU), donde el ‘ser microprocesador’ determina todo el acontecer del dispositivo.

En la actualidad de la biología ya se sabe que el ser humano (y la mayoría de los seres vivos) no sólo guardan información en el cerebro, sino que pueden guardar datos a nivel celular (en los genes). De manera análoga, los microcontroladores poseen otros cerebros (memorias) como la tipo RAM (Random Access Memory, ‘memoria de acceso aleatorio’) donde se graban las informaciones temporales de las ejecuciones del microprocesador y que se borran al quitarse la alimentación o al ser desplazadas por otros datos temporales.

Desde el año 1993 la industria Microchip lanzó al mercado el microcontrolador PIC16x84 que consta de una memoria EERPROM (Electrically Erasable Programmable Read-Only Memory, ‘ROM programable y borrable eléctricamente’) donde se almacenan los datos del software (programa) o rutinas de actividades y determinaciones que debe ejecutar la CPU conforme a las informaciones recibidas por los dispositivos o sensores periféricos (en seres vivos, ‘sentidos’).

En el año 1984 la industria japonesa Toshiba diseñó la memoria EEPROM tipo flash y que luego en el 1988 la industria Intel la comenzó a usar en la fabricación de sus microcontroladores. Estas memorias tienen la particularidad de permitir la lectura y escritura de múltiples posiciones de memoria en la misma operación, por lo cual alcanza velocidades de funcionamiento superiores a cualquier otro tipo de memoria.

Los microcontroladores poseen, además, uno o más circuitos internos de temporización (TIMER) con los cuales se temporizan y/o sincronizan los eventos del programa. Estos timers se inicializan (RESET) al término del conteo (counter), guardando una memoria temporal del ciclo activando un bit FLAG (bandera) del un registro llamado STATUS (Estados), o provocando una interrupción (interrupt) en la rutina, si así se ha programado en un bit del registro INTCON (control de interrupciones), para que el procesador vaya momentáneamente a realizar otra actividad. Los pulsos de conteo de los timers provienen de un circuito oscilador RC (oscillator RC, ‘oscilador resistor –capacitor’) interno, de 4 u 8 megahertzios (Mhz.) según el tipo de microcontrolador, o de un oscilador interno con RC o XT (cristal de frecuencia) exteriores y opcionales. Esta selección se programa en los bits del registro OPTION (opción). En los microcontroladores existe un temporizador auxiliar llamado WATCHDOG (perro guardián), cuya finalidad, opcional para el programador, es provocar un RESET (reposición) automático que impide que el microprocesador se ‘cuelgue’; es decir, que entre en una rutina cerrada (LOOP, ‘bucle’) sin salida hacia nada.

Los PORTs (puertos) de entradas y salidas de información desde los dispositivos periféricos exteriores al microcontrolador, son uno o varios conjuntos de pines (terminales de conexión) que pueden, en su mayoría, ser configurados como entradas (digitales, I/O, o analógicas/digitales, A/D) o como salidas digitales usando el registro OPTION y otros registros auxiliares. En algunos microcontroladores (como el PIC12F675) los puertos son llamados GPIO (General Purpose Input/Output, ‘entrada/salida de propósito general’) o simplemente GP, y son configurados en el registro del mismo nombre.

Otros circuitos periféricos internos son los convertidores análogo/digital (A/D), que convierten datos analógicos como, por ejemplo, las variaciones de voltaje y corriente de una batería, señales, etc., a datos digitales (1/0) que puedan ser interpretados y analizados por la CPU. También están los moduladores de pulso por anchura (PWM, pulse widht modulation), que generan una onda modulada en anchura por uno o varios pines de salidas del dispositivo.

Con el módulo periférico comparador analógico  se pueden establecer comparaciones entre dos señales de entrada cuya salida final es un dato digital para la CPU. Los microcontroladores poseen de uno a varios módulo interno de comunicación serial como son el SPI (Serial Peripheral Interface, ‘interface serial periférica’), I2C (Inter-integrated circuit, ‘inter-circuitos integrados’), USART (Universal Asynchronous Receiver-Transmitter, ‘Transmisor-receptor Asíncrono Universal’) y, en los más modernos y sofisticados, el USB (universal serial bus, ‘conductor serial universal’).






Existen múltiples compañías que fabrican y comercializan circuitos integrados microcontroladores; entre las más populares tenemos las norteamericanas como  Intel en California,  Microchip en ArizonaMotorola en Chicago, y la Atmel en Colorado; las cuales también se han establecido en otros países para abaratar la manufactura y ampliar su mercado.