- Arquitectura y aplicaciones del microcontrolador PIC:
- Selección de microcontrolador PIC para nuestros tutoriales:
- Selección de software para nuestros tutoriales:
- Preparándose con el hardware:
En 1980, Intel desarrolló el primer microcontrolador (8051) con la arquitectura Harvard 8051 y desde entonces los microcontroladores supusieron una revolución en la industria electrónica y embebida. Y con el avance tecnológico a lo largo del tiempo, ahora tenemos muchos microcontroladores más eficientes y de bajo consumo como AVR, PIC, ARM. Estos microcontroladores son más capaces y fáciles de usar, tienen los últimos protocolos de comunicación como USB, I2C, SPI, CAN, etc. Incluso Arduino y Raspberry Pi han cambiado completamente la perspectiva hacia los microcontroladores, y Raspberry Pi no es solo un microcontrolador, sino que tiene todo computadora adentro.
Esta será la primera parte de una serie de tutoriales que están por venir y que le ayudarán a aprender sobre los microcontroladores PIC. Si tiene experiencia en electrónica y siempre quiso comenzar aprendiendo algunos microcontroladores y adentrarse en el mundo de la codificación y la construcción, entonces esta serie de tutoriales será su primer paso para comenzar.
El microcontrolador PIC es una opción muy conveniente para comenzar con proyectos de microcontroladores, ya que tiene foros de soporte excelentes y actuará como una base sólida para construir sobre todos sus microcontroladores avanzados que aún tiene que aprender.
Estos tutoriales están hechos para estudiantes absolutos o intermedios; Hemos planeado comenzar con los proyectos más básicos hasta los avanzados. No esperamos ningún requisito previo de los alumnos, ya que estamos aquí para ayudarlo desde cualquier nivel. Cada tutorial tendrá una explicación teórica y una simulación seguida de un tutorial práctico. Estos tutoriales no involucrarán ninguna placa de desarrollo, haremos nuestros propios circuitos utilizando una placa perf. Así que prepárese y dedique algo de tiempo cada semana para mejorarlo con los microcontroladores.
Ahora comencemos con una introducción simple sobre microcontroladores PIC y algunas configuraciones de software para que podamos ejecutar nuestro próximo tutorial. Verifique el video al final para instalar y configurar MPLABX, XC8, Proteus y un rápido desempaquetado del programador PICkit 3.
Arquitectura y aplicaciones del microcontrolador PIC:
El microcontrolador PIC fue introducido por Microchip Technologies en el año 1993. Originalmente, estos PIC fueron desarrollados para ser parte de Computadoras PDP (Procesador de Datos Programado) y cada dispositivo periférico de la computadora se interconectó usando este microcontrolador PIC. Por lo tanto, el PIC recibe su nombre como controlador de interfaz periférica. Más tarde, Microchip ha desarrollado una gran cantidad de circuitos integrados de la serie PIC que se pueden utilizar para cualquier aplicación pequeña, como una aplicación de iluminación hasta la avanzada.
Cada microcontrolador debe construirse en torno a alguna arquitectura, el tipo de arquitectura más famoso es la arquitectura de Harvard, nuestro PIC se basa en esta arquitectura ya que pertenece a la familia clásica 8051. Entremos en una pequeña introducción sobre la arquitectura de Harvard del PIC.
El microcontrolador PIC16F877A consta de una CPU incorporada, puertos de E / S, organización de memoria, convertidor A / D, temporizadores / contadores, interrupciones, comunicación en serie, oscilador y módulo CCP que, al reunirlo, hace que el IC sea un potente microcontrolador para principiantes. El diagrama de bloques general de la arquitectura PIC se muestra a continuación
CPU (unidad central de procesamiento):
El microcontrolador tiene una CPU para realizar operaciones aritméticas, decisiones lógicas y operaciones relacionadas con la memoria. La CPU debe coordinarse entre la RAM y los demás periféricos del microcontrolador.
Consiste en una ALU (Unidad Aritmética Lógica), mediante la cual realiza las operaciones aritméticas y decisiones lógicas. Una MU (unidad de memoria) también está presente para almacenar las instrucciones después de que se ejecuten. Esta MU decide el tamaño del programa de nuestro MC. También consta de una CU (Unidad de Control) que actúa como bus de comunicación entre la CPU y otros periféricos del microcontrolador. Esto ayuda a obtener los datos después de que se procesan en los registros especificados.
Memoria de acceso aleatorio (RAM):
Una memoria de acceso aleatorio es la que decide la velocidad de nuestro microcontrolador. La RAM consta de bancos de registros dentro de ella, a cada uno de los cuales se le asigna una tarea específica. En general, se pueden clasificar en dos tipos:
- Registro de propósito general (GPR)
- Registro de funciones especiales (SFR)
Como sugiere el nombre, los GPR se utilizan para funciones de registro generales como suma, resta, etc. Estas operaciones están limitadas dentro de 8 bits. Todos los registros bajo el GPR son de escritura y lectura por parte del usuario. No tienen ninguna función por sí mismos a menos que se especifique el software.
Mientras que el SFR se usa para realizar funciones especiales complicadas que también implican un manejo de 16 bits, sus registros solo se pueden leer (R) y no podemos escribir (W) nada en ellos. Por lo que estos registros tienen unas funciones predefinidas a realizar, las cuales se configuran en el momento de la fabricación y solo nos muestran el resultado, mediante el cual podemos realizar algunas operaciones relacionadas.
Memoria de solo lectura (ROM):
La memoria de solo lectura es el lugar donde se almacena nuestro programa. Esto decide el tamaño máximo de nuestro programa; de ahí que también se le llame memoria de programa. Cuando la MCU está en funcionamiento, el programa almacenado en la ROM se ejecuta según cada ciclo de instrucción. Esta unidad de memoria se puede usar solo mientras se programa el PIC, durante la ejecución se convierte en una memoria de solo lectura.
Memoria de solo lectura programable y borrable eléctricamente (EEPROM):
EEPROM es otro tipo de unidad de memoria. En esta unidad de memoria, los valores se pueden almacenar durante la ejecución del programa. Los valores almacenados aquí solo se pueden borrar eléctricamente, es decir, estos valores se conservarán en el PIC incluso cuando el IC esté apagado. Se pueden utilizar como un pequeño espacio de memoria para almacenar los valores ejecutados; sin embargo, el espacio de memoria será muy inferior en KB.
Memoria flash :
La memoria flash también es una memoria programable de solo lectura (PROM) en la que podemos leer, escribir y borrar el programa miles de veces. Generalmente, el microcontrolador PIC utiliza este tipo de ROM.
Puertos de E / S
- Nuestro PIC16F877A consta de cinco puertos, a saber, puerto A, puerto B, puerto C, puerto D y puerto E.
- De los cinco PUERTOS, solo el Puerto A es de 16 bits y el PUERTO E es de 3 bits. El resto de PUERTOS son de 8 bits.
- Los pines de estos PUERTOS se pueden utilizar como entrada o salida, según la configuración del registro TRIS.
- Además de realizar operaciones de E / S, los pines también se pueden usar para funciones especiales como SPI, Interrupción, PWM, etc.
Autobús:
El término Bus es solo un grupo de cables que conecta el dispositivo de entrada o salida con la CPU y la RAM.
El bus de datos se utiliza para transferir o recibir los datos.
El bus de direcciones se utiliza para transmitir la dirección de memoria de los periféricos a la CPU. Los pines de E / S se utilizan para conectar los periféricos externos; Ambos protocolos de comunicación en serie UART y USART se utilizan para interconectar dispositivos en serie como GSM, GPS, Bluetooth, IR, etc.
Selección de microcontrolador PIC para nuestros tutoriales:
Los microcontroladores PIC de Microchip Company se dividen en 4 grandes familias. Cada familia tiene una variedad de componentes que brindan características especiales integradas:
- La primera familia, PIC10 (10FXXX), se llama Low End.
- La segunda familia, PIC12 (PIC12FXXX), se llama Mid-Range.
- La tercera familia es PIC16 (16FXXX).
- La cuarta familia es PIC 17/18 (18FXXX)
Dado que estamos empezando a aprender sobre PIC, seleccionemos un IC que se utilice y esté disponible universalmente. Este IC pertenece a la familia 16F, el número de pieza del IC es PIC16F877A. Desde el primer tutorial hasta el final, usaremos el mismo IC, ya que este IC está equipado con todas las funciones avanzadas como SPI, I2C y UART, etc. Pero si no obtiene ninguna de estas cosas ahora, está completamente bien, lo haremos progresa a través de cada tutorial y finalmente usa todas las características mencionadas anteriormente.
Una vez que se selecciona el IC, es muy importante leer la hoja de datos del IC. Este debería ser el primer paso en cualquier concepto que estemos a punto de probar. Ahora que hemos seleccionado este PIC16F877A, leamos la especificación de este IC en la hoja de datos.
La función periférica, menciona que tiene 3 temporizadores, dos de los cuales son de 8 bits y uno es un preescalador de 16 bits. Estos temporizadores se utilizan para crear funciones de temporización en nuestro programa. También se pueden utilizar como contadores. También muestra que tiene opciones CCP (Capture Compare y PWM), lo que nos ayuda a generar señales PWM y leer las señales de frecuencia entrantes. Para comunicación con dispositivo externo, dispone de SPI, I2C, PSP y USART. Por motivos de seguridad, está equipado con un reinicio por caída de tensión (BOR), que ayuda a reiniciar el programa while.
Las funciones analógicas indican que el IC tiene un ADC de 8 canales y 10 bits. Esto significa que nuestro IC puede convertir valores analógicos a digitales con una resolución de 10 bits y tiene 8 pines analógicos para leerlos. También tenemos dos comparadores internos que se pueden usar para comparar el voltaje entrante directamente sin leerlos a través del software.
Las características especiales del microcontrolador significan que tiene 100.000 ciclos de borrado / escritura, lo que significa que puede programarlo unas 100.000 veces. In-Circuit Serial Programming ™ (ICSP ™), nos ayuda a programar el IC directamente usando PICKIT3. La depuración se puede realizar mediante depuración en circuito (ICD). Otra característica de seguridad es el temporizador de vigilancia (WDT), que es un temporizador autoconfiable que restablece todo el programa si es necesario.
La siguiente imagen representa los pines de nuestro PIC16F877A IC. Esta imagen representa cada pin con su nombre y sus otras características. Esto también se puede encontrar en la hoja de datos. Tenga esta imagen a mano, ya que nos ayudará durante nuestros trabajos de hardware.
Selección de software para nuestros tutoriales:
El microcontrolador PIC se puede programar con diferentes software que se encuentran disponibles en el mercado. Hay personas que todavía usan el lenguaje ensamblador para programar MCU PIC. Para nuestros tutoriales, hemos seleccionado el software y el compilador más avanzados que ha desarrollado Microchip.
Para programar el microcontrolador PIC necesitaremos un IDE (Integrated Development Environment), donde se realiza la programación. Un compilador, donde nuestro programa se convierte en un formato legible MCU llamado archivos HEX. Un IPE (entorno de programación integrado), que se utiliza para volcar nuestro archivo hexadecimal en nuestras MCU PIC.
IDE: MPLABX v3.35
IPE: MPLAB IPE v3.35
Compilador: XC8
Microchip ha proporcionado estos tres programas de forma gratuita. Se pueden descargar directamente desde su página oficial. También he proporcionado el enlace para su conveniencia. Una vez descargados, instálelos en su computadora. Si tiene algún problema para hacerlo, puede ver el video que se encuentra al final.
Para fines de simulación, hemos utilizado un software llamado PROTEUS 8, proporcionado por Labcenter. Este software se puede utilizar para simular nuestro código generado mediante MPLABX. Hay un software de demostración gratuito que se puede descargar desde su página oficial a través del enlace.
Preparándose con el hardware:
Todos nuestros tutoriales terminarán con hardware. Para aprender PIC de la mejor manera posible siempre se recomienda probar nuestros códigos y circuitos sobre hardware, porque la confiabilidad de la simulación es muy menor. Es posible que los códigos que funcionan en un software de simulación no funcionen como esperaba en su hardware. Por lo tanto, estaremos construyendo nuestros propios circuitos en placas Perf para volcar nuestros códigos.
Para descargar o cargar nuestro código en PIC, necesitaremos PICkit 3. El programador / depurador PICkit 3 es un depurador en circuito simple y de bajo costo que es controlado por una PC que ejecuta el software MPLAB IDE (v8.20 o superior) en una plataforma Windows. El programador / depurador PICkit 3 es una parte integral del conjunto de herramientas del ingeniero de desarrollo. Además de esto, también necesitaremos otro hardware como la placa Perf, la estación de soldadura, los circuitos integrados PIC, los osciladores de cristal, los condensadores, etc. Pero los agregaremos a nuestra lista a medida que avanzamos en nuestros tutoriales.
Traje mi PICkit 3 de Amazon, el video de unboxing del mismo se puede encontrar en el video a continuación. También se proporciona el enlace para PICKIT3; el precio puede ser un poco alto, pero créanme, vale la pena invertir.