MICROCONTROLADORES

AVR

Los tutoriales en esta categoría se enfocan en hardware y tecnologías que están en desuso pero que aún pueden ser útiles para proyectos específicos o para el aprendizaje de conceptos históricos en la electrónica y la programación.

Estos microcontroladores de 8 bits, fabricados por Atmel (ahora parte de Microchip Technology), son conocidos por su eficiencia y capacidad de procesamiento. Los tutoriales cubren desde la configuración inicial hasta proyectos avanzados, destacando su uso en aplicaciones de tiempo real y sistemas embebidos.

AVR-MT, INTRODUCCIÓN

La intención de este tutorial es mostrar mediante ejemplos simples, la operación del AVR-MT utilizando un microcontrolador ATtiny 2313. Se asume que el lector posee conocimientos básicos de C (sobretodo manipulación de bits).

Para comenzar a trabajar con un microcontrolador AVR utilizando el lenguaje de programación C, es necesario obtener un compilador de C para la arquitectura.

AVR-MT, BOTONES

Si observamos el esquemático del AVR-MT, veremos que los botones se encuentran conectados a los pines PB5, PB6 y PB7. Para detectar si es que un botón ha sido pulsado, se debe poner uno de los tres pines en 1, para luego preguntar en los otros dos pines si es que su valor es 1 (previa configuración de los puertos).

Si se quiere verificar si el botón 4 esta siendo pulsado, entonces se deberá poner en 1 el bit correspondiente al pin PB6 (configurándolo como un pin de salida), y preguntar si es que el pin PB5 (configurado como un pin de entrada) es 1. 

AVR-MT, BUZZER

El buzzer se encuentra conectado al pin 4 del puerto B, PB4. La forma de hacer sonar el buzzer es aplicando una frecuencia en ese pin.

El siguiente código hace sonar el led por un periodo de tiempo para luego descansar por 2 segundos (y repetir el proceso).

AVR-MT, LCD

El LCD incluido en el AVR-MT utiliza el conocido controlador Hitachi HD44780. Si miramos el esquemático del AVR-MT, veremos que los bits de control RS y E se encuentran conectados a los pines 4 y 6 del puerto D, respectivamente (en el esquemático se encuentran en LCD1). El bit R/W del LCD se encuentra conectado a tierra. Los datos, están conectados por medio de un bus de 4 bits, en a los pines PB0, PB1, PB2 y PB3. En el esquemático, esto corresponde a LCD2. El LCD posee dos registros, un reigstro de instrucción, IR, y un registro de datos, DR. En el registro de instrucciones se escriben los comandos que se quiera ejecutar en el display. Ejemplos de comandos son borrar el display o mover el cursor. El módulo posee una memoria para datos (DDRAM) y una memoria para...

AVR-MT, Introducción

Instalando programas iniciales La intención de este tutorial es mostrar mediante ejemplos simples, la operación del AVR-MT utilizando un microcontrolador ATtiny 2313. Se asume que el lector posee conocimientos básicos de C (sobretodo manipulación de bits). Para comenzar a trabajar con un microcontrolador AVR utilizando el lenguaje de programación C, es necesario obtener un compilador de C para la arquitectura. Si bien existen varios compiladores para avr, en este tutorial utilizaremos el compilador avr-gcc, el cual es compatible con ANSI C, genera código suficientemente bueno, posee la librería avr-libc y adicionalmente es software libre. El compilador y ensamblador de C puede ser descargado de la página AVR Freaks, la cual está dedicada al desarrollo utilizando...

AVR-MT, Relay y Led

El Relay se encuentra conectado al pin 3 del puerto D, PD3. El led también se encuentra conectado a PD3. Cuando el led está encendido, entonces el relay también lo está. Lo único necesario para usar el relay es cambiar el valor de PD3. En el ejemplo que sigue, se enciende el led al presionar el botón 1, y se apaga al presionar el botón 6. #include<avr/io.h> int main(void) { volatile unsigned char boton; DDRD |= 1 << DDD3; DDRB |= 1 << DDB5; DDRB &= ~(1 << DDB6 | 1 << DDB7); PORTB &= ~(1 << PB6 | 1 << PB7); PORTB |= 1 << PB5; asm volatile("nop"); //Revisarbotones for(;;) { if(PINB & (1 << PB6) && boton != 1) { boton = 1; PORTD |= 1 << PD3; } else if(PINB & (1 << PB7) && boton != 6) { boton =...

PIC

 Los microcontroladores PIC, también de Microchip Technology, son famosos por su robustez y variedad de aplicaciones. Los tutoriales abarcan desde la programación básica hasta el uso de periféricos avanzados, siendo populares en proyectos de automatización y control.

INTRODUCCIÓN A PIC-MIT

En estas notas se pretende introducir las funcionalidades básicas del PIC MT y sus módulos. Se asume que se tiene conocimientos previos del lenguaje de programación C, el cual será usado en conjunto con el compilador cc5x. Para comenzar a trabajar, se debe obtener la versión gratuita del compilador cc5x (u otra versión si es que se es dueño de la licencia), desde la página del compilador, http://www.bknd.com/cc5x/.

Con respecto al compilador cc5x, se recomienda instalarlo de manera que el ejecutable quede en el directorio C:\bknd\CC5X. Dado que en nuestros programas incluiremos las cabeceras correspondientes al microcontrolador que estemos usando, es conveniente que la ruta en la que se ubican esos archivos no sea extensa.

PIC-MT, LEDS

Utilizar el led del PIC no es complicado. Debemos partir notando que el led se encuentra conectado al pin 4 del puerto B del PIC (que desde ahora llamaremos RB4, respetando la notación del esquemático).

Además, vemos que la dirección en que el led se enciende es hacia el PIC, por lo que RB4 = 0 producirá que el led se encienda. De la misma manera, RB4 = 1 producirá que el led se apague.

PIC-WEB, SOFTWARE

El software del PIC-WEB es posible encontrarlo acá. Este incluye el stack TCP/IP de microchip, el cual sirve para implementar una serie de aplicaciones web. En este caso trae de ejemplo el servidor web, junto con una página web que permite controlar y monitorear ciertos aspectos de la plataforma.

1.- Descargar el Software y descomprimirlo

2.- En MPLAB se debe abrir un proyecto, como indica la figura. El proyecto es el llamado mpnicee.mcp.

3.- Una vez que se abra el proyecto se abrirán una serie de ventanas. En particular a la izquierda aparecerá una ventana que contiene un árbol con todos los archivos que pertenecen al proyecto.Si nos fijamos en este podremos ver que hay dos archivos que no fueron encontrados:test.h y test.c.

PIC-WEB Software

El software del PIC-WEB es posible encontrarlo acá. Este incluye el stack TCP/IP de microchip, el cual sirve para implementar una serie de aplicaciones web. En este caso trae de ejemplo el servidor web, junto con una página web que permite controlar y monitorear ciertos aspectos de la plataforma. PROCEDIMIENTO: 1.- Descargar el Software y descomprimirlo2.- En MPLAB se debe abrir un proyecto, como indica la figura. El proyecto es el llamado mpnicee.mcp. 3.- Una vez que se abra el proyecto se abrirán una serie de ventanas. En particular a la izquierda aparecerá una ventana que contiene un árbol con todos los archivos que pertenecen al proyecto. Si nos fijamos en este podremos ver que hay dos archivos que no fueron encontrados:test.h y test.c. Esto se debe a que...

PIC-MT, Timer

El PIC que estamos utilizando para el tutorial, posee tres módulos de timers, TIMER0, TIMER1 y TIMER2. En esta parte, utilizaremos el módulo TIMER0 para crear una función que genere un delay de un milisegundo. El TIMER0 posee dos modos de funcionamiento, configurados por en el bit T0CS. Si T0CS es 1, entonces el timer funciona como contador de impulsos en el pin RA4/T0CKI. En dicha configuarción, es posible elegir si el incremento de TIMER0 ocurrirá en el pulso de bajada del reloj, o en el pulso de subida del reloj. El bit de configuración correspondiente es T0SE (TMR0 Source Edge Select Bit). Si dicho bit se encuentra en 1, el incremento ocurre en el pulso de bajada del reloj. Si el bit se encuentra en 0, el incremento ocurre en el pulso de subida del reloj. Por otro lado, si T0CS es 0,...

PIC-MT, Relay

El relay del PIC-MT, se encuentra conectado al pin 1 del puerto A (RA1). Su manejo es directo, y basta manipular dicho bit para controlarlo. La sección relevante del esquemático para el relay es, Siguiendo con el código que ya hemos hecho para el resto de los componentes del PIC-MT, haremos que al presionar B1, el valor del pin RA1 cambie. Este pin no viene definido en el encabezado del compilador, por lo que es necesario escribir, //Relay #defineRA1PORTA.1 La variable donde guardaremos el valor actual del relay será precisamente relay. Su valor inicial es 0. bit relay = 0; Mientras que en el ciclo de lectura de botones el código es, //Relay if(boton == 1) { //Cambiarelvalordelrelay relay = !relay; RA1 = relay; delay(200); } Que se encarga de manejar el comportamiento del relay. Cabe...

PIC-MT, Botones

Para utilizar los botones, debemos primero comprender cómo funcionan. Como siempre, el punto de partida es el esquemático del PIC-MT. Es posible notar que los botones (B1, …, B6), están conectados a los pines 0, 1 y 2 del puerto B (RB0, RB1 y RB2, respectivamente). La manera de leer un botón, es poner uno de los bits como salida, y los restantes como entradas. Por ejemplo, para ver si B1 está siendo pulsado, debemos poner a RB0 como salida y hacer RB0 = 1. A continuación, seteamos a RB1 y a RB2 como entradas. Si entonces (teniendo a RB0 = 1), RB1 es 1, entonces B1 está siendo pulsado. Lo anterior se debe a la configuración de los diodos ubicados cerca de los botones, en el caso del ejemplo para B1, tenemos, Si quisiéramos revisar si B3 está siendo pulsado, entonces deberíamos dejar a RB2...

PIC WEB, Subiendo Páginas al Servidor

Existen dos formas de cambiar las páginas en el servidor. Una es realizar cambios en el código fuente, vamos a la carpeta llamada WebPagesOlimex, realizamos cambios en los distintos archivos, recompilamos y subimos el archivo .hex utilizando un programador en la plataforma.Sin embargo la mejor forma de realizar esto es subir las páginas a través del servidor FTP que viene implementado en el Stack TCP/IP de Microchip.El servidor HTTP implementado utiliza un sistema de archivos simplificado llamado MPFS (Microchip File System) para alojar sus páginas. Es por esto que, para poder subir las páginas web al servidor, usando el servidor FTP, primero debemos transformar los archivos, utilizando un programa que viene incluido en el directorio del Software del PIC-WEB...

Tutorial PIC-WEB

Introducción El siguiente tutorial nos introduce al uso del PIC-WEB de OLIMEX. El PIC-WEB es una plataforma implementada con el microcontrolador PIC18F452, la cual incluye el stack TCP/IP AN833 de Microchip. La placa soporta los siguientes protocolos: SLIPARPIPICMPTCPUDPHTTPDHCPFTP El stack de Microchip es de código abierto, por lo que es posible modificarlo y recompilarlo cuantas veces sea necesario, y adaptarlo a nuestras necesidades. El stack es modular y flexible, lo que permite activar y desactivar módulos, como también usar páginas web dinámicas que permiten controlar todos los recursos del pic remotamente, ya sea usando HTTP, FTP, TCP, UDP, etc.La placa trae implementado un servidor WEB y una págna web que permite controlar ciertos aspectos de la plataforma.En...

PIC-MT, LCD

El LCD incluido en el PIC-MT utiliza el conocido controlador Hitachi HD44780. Si miramos el esquemático del PIC-MT, veremos que los bits de control RS, R/W y E se encuentran conectados a los pines 2, 3 y 5 del puerto A, respectivamente (en el esquemático se encuentran en LCD1). Los datos, están conectados por medio de un bus de 4 bits, en a los pines RC0, RC1, RC2 y RC3. En el esquemático, esto corresponde a LCD2. El LCD posee dos registros, un reigstro de instrucción, IR, y un registro de datos, DR. En el registro de instrucciones se escriben los comandos que se quiera ejecutar en el display. Ejemplos de comandos son borrar el display o mover el cursor. El módulo posee una memoria para datos (DDRAM) y una memoria para el generador de caracteres (CGRAM). El registro DR es usado...

Utilizando la consola de Configuracion del PIC-WEB

Es posible realizar modificar la configuración de la tarjeta, utilizando la consola de configuración, para que funcione correctamente en nuestra red local. Estas configuraciones permitirán al PIC-WEB, por ejemplo, cambiar su dirección IP.Para acceder al menu de configuración es necesario usar un cable serial y conectar el PIC-WEB en un puerto COM disponible del computador.La conexión se realiza usando el programa Hyperterminal (o similar) el cual viene en Windows. Para acceder a este programa haz click en el menú de inicio de Windows y luego haz click en ejecutar y escribe hypertrm y luego enter. Una vez que el programa se carge lo primero que se debe hacer es elegir un nombre para la conexión y presionar aceptar.Luego de elegir el nombre de la conexión, se abre un menú...

¿Cómo programar el PIC en C?

Hay muchas formas de llevar esto a cabo. La que se presenta en este documento es una forma fácil y rápida para empezar de inmediato a trabajar… Quieres programar tu PIC?..ya descargaste algunos programas pero ahora no sabes que hacer?, bueno lo que necesitas es lo siguiente: CC5x Compilador de C de B Knudsen DataJens’ File Editor – Editor de código (gratuito)IC-Prog – Sorftware programador de PIC’s deBonny Gijzen Lo mejor de esta configuración es que se puede compilar y cargar el PIC de manera bastante agil. Todos los códigos con los que trabajamos estan escritos en C y compilados con CC5x. Olvidate del assembler, para hacer cualquier tipo de interface compleja C la lleva. Por que ocupamos el editor Jens’s? por que es bueno, facil de usar, permite llamar a programar...

Introducción a PIC-MT

Instalación de programas necesarios En estas notas se pretende introducir las funcionalidades básicas del PIC MT y sus módulos. Se asume que se tiene conocimientos previos del lenguaje de programación C, el cual será usado en conjunto con el compilador cc5x. Para comenzar a trabajar, se debe obtener la versión gratuita del compilador cc5x (u otra versión si es que se es dueño de la licencia), desde la página del compilador, http://www.bknd.com/cc5x/. Con respecto al compilador cc5x, se recomienda instalarlo de manera que el ejecutable quede en el directorio C:\bknd\CC5X. Dado que en nuestros programas incluiremos las cabeceras correspondientes al microcontrolador que estemos usando, es conveniente que la ruta en la que se ubican esos archivos no sea extensa. También se debe instalar...