Categorías: Circuitos microcontroladores
Cantidad de vistas: 23111
Comentarios sobre el artículo: 0

Microcontroladores PIC para principiantes

 

En el mercado moderno hay una serie de familias y series de microcontroladores de diferentes fabricantes, entre ellos AVR, STM32 y PIC se pueden distinguir. Cada una de las familias ha encontrado su propio alcance. En este artículo les contaré a los principiantes sobre los microcontroladores PIC, a saber, qué es y qué necesita saber para comenzar con ellos.

Microcontroladores PIC para principiantes

¿Qué es un PIC?

PIC es el nombre de una serie de microcontroladores fabricados por Microchip Technology Inc (EE. UU.). El nombre PIC proviene del controlador de interfaz periférico.

Los microcontroladores PIC tienen una arquitectura RISC. RISC: un conjunto abreviado de instrucciones, también se utiliza en procesadores para dispositivos móviles. Hay varios ejemplos de su uso: BRAZO, Atmel AVR y otros

En 2016, Microchip compró Atmel, un fabricante de controladores AVR. Por lo tanto, el sitio web oficial presenta microcontroladores de la familia y PIC y AVR.

Microcontrolador PIC16F1xxx

Familias

Entre los microcontroladores PIC de 8 bits, consta de 3 familias que difieren en arquitectura (profundidad de bits y conjunto de instrucciones).

  • Línea de base (PIC10F2xx, PIC12F5xx, PIC16F5x, PIC16F5xx);

  • Rango medio (PIC10F3xx, PIC12F6xx, PIC12F7xx, PIC16F6xx, PIC16F7xx, PIC16F8xx, PIC16F9xx);

  • Rango medio mejorado (PIC12F1xxx, PIC16F1xxx);

  • De gama alta o PIC18 (18Fxxxx, 18FxxJxx y 18FxxKxx).

Comparación de familias de microcontroladores.

Las características se dan en la tabla a continuación.

Características del microcontrolador PIC

Además de los microcontroladores de 8 bits, Microchip produce 16 bits:

  • PIC24F;

  • DsPIC30 / 33F para procesamiento de señal.

Los representantes de la familia de 16 bits operan a velocidades de 16 a 100 MIPS (millones de instrucciones por segundo completadas). Vale la pena señalar y características:

  • ciclo de la máquina - 2 ciclos;

  • Resolución ADC - 16 bits;

  • admite una serie de protocolos de comunicación (UART, IrDA, SPI, I2S ™, I2C, USB, CAN, LIN y SENT), PWM y más.

También hay una familia de microcontroladores de 32 bits: PIC32MX, las características principales:

  • operar a una frecuencia de hasta 120 MHz;

  • Realizar hasta 150 MIPS

  • ADC: 10 bits, 1 Msps (velocidad de cuantificación), hasta 48 canales.



¿Con qué PIC comenzar?

Los principiantes deben comenzar a dominar los microcontroladores PIC desde una línea de 8 bits. En general, el fabricante afirma que una característica de toda la familia es la fácil portabilidad de los programas de una familia a otra y la distribución de varios modelos.

Uno de los microcontroladores más populares en el entorno de radioaficionados es PIC16f628A. Sus características técnicas son las siguientes:

  • Hay un generador de reloj incorporado. Puede sintonizar para trabajar con una frecuencia de 4 u 8 MHz;

  • 18 pines, de los cuales 16 - entrada / salida, y 2 - potencia;

  • Para operar a frecuencias de hasta 20 MHz, puede conectar un resonador de cuarzo, pero en este caso no quedan 16, sino 14 patas para entrada / salida;

  • Hay una letra F en la marca, lo que significa que se utiliza memoria FLASH con una capacidad de 2048 palabras;

  • Instrucciones de 14 bits, 35 piezas;

  • 2 comparadores;

  • 4 entradas analógicas;

  • Las entradas PORTB tienen resistencias pull-up;

  • Dos temporizadores de 8 bits y uno de 16 bits;

  • Ciclo de máquina: 4 ciclos de un resonador de cuarzo u oscilador interno);

  • 224 bytes de RAM;

  • 128 bytes de EEPROM;

  • USART - puerto serie;

  • referencia de voltaje interno;

  • alimentado por 3.3 a 5 V.

Las razones de su popularidad son el bajo precio y la capacidad de cronometrar desde un generador interno.

Qué pinout de 16f628 se muestra a continuación:

Pinout en 16f628

El circuito interno de bloque de este microcontrolador se muestra a continuación.

Estructura microcontrolador 16f628

¿A qué debo prestar atención en el esquema en primer lugar?

Este microcontrolador tiene dos puertos PORTA y PORTB. Cada pin, cada uno de ellos se puede usar como entrada y salida, así como para conectar periféricos o activar otros módulos de microcontroladores.

Considere esta parte del esquema con gran detalle.

Puertos MK

Por ejemplo, los puertos RB0-RB3 pueden actuar como analógicos. Si es necesario, se conecta una fuente de reloj a RA6, RA7 (resonador de cuarzo) Las salidas del microcontrolador se configuran en el modo de entrada / salida utilizando el registro TRIS.

Hay comandos para este tipo:

TRISA = 0; // Todos los pines del puerto A se configuran como salidas
TRISB = 0xff; // Todos los pines del puerto B se asignan como entradas
TRISA0 = 1; // Entonces se asigna un pin separado como entrada (1) o salida (0)
TRISA5 = 1// aquí la quinta salida del puerto A se asigna como entrada

En general, los modos de funcionamiento, la inclusión de un WDT (temporizador de vigilancia), la elección de la fuente de reloj del microcontrolador, etc., se configuran mediante registros especiales (SFR) y la memoria y los datos se almacenan en GFR, en palabras simples, esto es una RAM estática.

En la hoja de datos oficial, en las páginas 18-21 encontrará 4 bancos de memoria para registros de propósito especial SFR y registros de propósito general GFR. El conocimiento de los registros es importante, así que imprima y aprenda las páginas indicadas de Hoja de datos.

Por conveniencia, estas tablas se presentan en forma de imágenes a continuación (la numeración de los registros, como todo en electrónica digital, comienza desde 0, por lo que el cuarto número es 3).

Registros de Propósito Especial
Registros de Propósito Especial
Registros de Propósito Especial
Registros de Propósito Especial

¿Cómo conectarse y en qué idioma programar?

Para ejecutar este microcontrolador, es suficiente aplicar más a Vdd y menos a Vss. Si necesita un resonador de cuarzo, entonces está conectado a los pines 16 y 15 (OSC1 y OSC2) del microcontrolador PIC16f628, para otros controladores con un número mayor o menor de pines: mira en la hoja de datos. Pero este punto debe indicarse durante la programación y el firmware.

Hablando de portabilidad y coincidencia del pinout, en 16f84A, es similar y en muchos otros.

Conexión de un resonador de cuarzo.

Un fragmento de un circuito con un resonador externo conectado a pic16f628a:

Fragmento de circuito con un resonador externo conectado a pic16f628a

Hay dos lenguajes principales para programar microcontroladores PIC: ensamblador y C, hay otros, por ejemplo PICBasic, etc. Todavía puede resaltar el lenguaje de programación simplificado JAL (solo otro lenguaje).

Por ejemplo, a continuación hay un programa para "parpadeo de LED", una especie de "Hola Mundo" para el microcontrolador PIC en C.

Un ejemplo de un programa de microcontrolador PIC en C

En la línea 1, la biblioteca del microcontrolador PIC está conectada, luego la biblioteca del programa de retraso está conectada.

En la función principal (vacío), los parámetros iniciales se establecen al principio, tal como lo hicimos en la función de configuración vacía (): en artículos sobre arduino. Luego, en las líneas 11-16, se declara un ciclo infinito while (1), durante el cual se ejecuta el programa "LED intermitente".

En el ejemplo, el estado del puerto se invierte constantemente, es decir si estaba en "0", irá a "1" y viceversa. En C para PIC hay los siguientes comandos de administración de comandos:

PORTA = 0; // traduce todos los pines del puerto A a un nivel bajo (log. 0)
PORTB = 0xff; // traduce todos los pines del puerto B a un nivel alto (log. 1)
RB5 = 1; // El quinto pin del puerto B es alto

Y parece el mismo programa, pero ya en el idioma JAL, traduje al ruso los comentarios de los desarrolladores de ejemplos integrados en JALedit (entorno de desarrollo).

Programa JAL de muestra

Existe la tentación de elegir JAL, y puede parecerle más fácil. Por supuesto, puede implementar cualquier proyecto en él, pero desde el punto de vista del beneficio para usted como especialista, es un lenguaje inútil. Obtendrá resultados significativamente mayores al estudiar la sintaxis y los principios de programación en C (la mayoría de los lenguajes similares a C actualmente populares) o Assembler es un lenguaje de bajo nivel que le hará comprender cómo funciona el dispositivo y qué sucede en el programa en un momento dado.


Como trabajar

Si dice bastante generalizado para trabajar con cualquier microcontrolador que necesita:

1. Editor de texto.

2. El compilador.

3. El programa para descargar firmware al microcontrolador.

E incluso leí libros de texto antiguos, donde el autor, trabajando desde DOS, escribió el código, lo compiló y lo actualizó utilizando varios medios. Ahora, en todos los sistemas operativos populares, existen entornos de desarrollo, tanto altamente especializados (para una familia específica de microcontroladores o familias de un fabricante) como universales (o contienen todas las herramientas necesarias o están conectados como complementos).

Por ejemplo, en una serie de artículos sobre Arduino, miramos el IDE de Arduino, en él, escribimos el código y con su ayuda "vertimos" el firmware en la "piedra". Para los microcontroladores PIC existen programas como:

  • MPASM: utilizado para el desarrollo en lenguaje ensamblador de Microchip;

  • MPLAB es también el IDE Microchip para controladores PIC. Consiste en muchos bloques para probar, verificar, trabajar con código y compilar programas y descargarlos al microcontrolador. También hay una versión de MPLAB X IDE: presenta una gran funcionalidad y se basa en la plataforma NetBeans;

  • MikroC es un entorno universal (no solo para PIK) para el desarrollo. Como su nombre lo indica, está "afilado" para la programación en C, y también hay programas como MikroBasic y MikroPascal para los lenguajes correspondientes.;

  • JALedit: adecuado para el lenguaje JAL que mencionamos anteriormente;

  • Y una serie de otros menos conocidos.

IDE MPLAB

¿Cómo flashear un microcontrolador?

Hay varios programadores para micronotrollers PIC. Considerado oficialmente PICkit. Sus 4 versiones. Pero puede flashear y ser universal, por ejemplo, TL866 (admite casi todo lo que pueda necesitar un radioaficionado novato, aunque es muy barato).

Programadores para micronotrollers PIC

También en la red hay varios circuitos programadores diferentes para PIC, ambos para trabajar a través del puerto COM:

Circuito programador

Por lo tanto, es a través de USB (de hecho, también com, solo a través del convertidor en el IC MAX232).

Circuito programador

Conclusión

Los microcontroladores PIC16 son adecuados para proyectos simples, como automatización simple, voltímetros, termómetros y otras cosas pequeñas. Pero esto no significa que no pueda hacer proyectos complejos y grandes en esta familia, le di un ejemplo de por qué se usan con mayor frecuencia. Para una idea general, recomiendo ver algunos videos:

En un artículo, no tiene sentido considerar temas sobre cómo programar microcontroladores, sin importar qué familia. Dado que esta es una gran cantidad de información.

Ver también en bgv.electricianexp.com:

  • Tipos y disposición de microcontroladores AVR
  • Programación de microcontroladores para principiantes.
  • ¿Qué son los microcontroladores? Propósito, dispositivo, software
  • Microcontroladores programables en JavaScript: cuál elegir, características ...
  • Métodos para leer y administrar puertos de E / S Arduino

  •