MCU PIC16F17146: Características y programación

Introducción al PIC16F17146

El PIC16F17146 es un chip microcontrolador que pertenece a la familia PIC16F, conocida por su alto rendimiento y bajo consumo energético. Se utiliza habitualmente en una gran variedad de dispositivos electrónicos, como productos electrónicos de consumo, aplicaciones automovilísticas y sistemas de control industrial. El PIC16F17146 ofrece una amplia gama de características, entre las que se incluyen múltiples interfaces de comunicación, convertidores de analógico a digital y una gran cantidad de memoria para almacenar instrucciones y datos de programas. Este versátil chip permite a los desarrolladores crear aplicaciones sofisticadas con facilidad, gracias a su arquitectura flexible y a su amplio conjunto de periféricos. Por ejemplo, se puede utilizar en sistemas automovilísticos para controlar las funciones del motor, o en dispositivos domésticos inteligentes para gestionar diversas tareas de automatización del hogar.

PIC16F17146 Microcontroller (MCU)

Características del PIC16F17146

  • Arquitectura RISC optimizada para compilador C
  • Núcleo de gama media mejorado con 49 instrucciones y 16 niveles de pila
  • Memoria de programa Flash con capacidad de lectura/escritura automática
  • Reinicio de encendido de baja corriente (POR)
  • Reinicio programable por caída de tensión (BOR) con recuperación rápida
  • Reinicio por caída de tensión de baja potencia (LPBOR)
  • Modos de bajo consumo en reposo e hibernación
  • Temporizador de vigilancia con ventana (WWDT)
  • Desactivación del módulo periférico (PMD)
  • Selección de pines periféricos (PPS)
  • Restablecimiento mejorado de encendido/apagado
  • Temporizador de encendido configurable (PWRT)

Especificaciones del PIC16F17146

AttributeValue
ModelPIC16F17146
ArchitectureRISC
Temperature Range-40°C to 85°C
Frequencyup to 32MHz
Voltage1.8V to 5.5V
Size6.5 x 9.4 x 1.5mm
Memoryup to 28 KB
EEPROMup to 256 Bytes
SRAMup to 2 KB
Timer3 x 16-bit, 3 x 8-bit
PWM4 x 16-bit
CLC4
DAC2 x 8-bit
ADC1 x 12-bit
USART1
I2C1 x 7/10-bit
SPI1
Operational Amplifier1
I/O Portup to 35 pins
Package14-Pin PDIP, SOIC, TSSOP; 16-Pin VQFN; 20-Pin PDIP, SOIC, SSOP, VQFN

¿Cómo programar la placa de desarrollo PIC16F17146 Curiosity Nano?

2022 09 26 9 40 59
Crédito de la imagen: Microchip Technology | Mouser

Herramientas necesarias:

  • Entorno de desarrollo integrado (IDE) MPLAB® X
  • Placa Curiosity Nano PIC16F17146 *1
  • Cable USB * 1

PIC16F17146 Curiosity Nano - Prueba de parpadeo de LED

En primer lugar, descargue e instale MPLAB X IDE v6.10 desde el sitio web de Microchip:
https://www.microchip.com/en-us/tools-resources/develop/mplab-x-ide#

Downloading the MPLAB X IDE v6.10
Downloading the MPLAB X IDE v6.10
Installing MPLAB X IDE v6.10
Installing MPLAB X IDE v6.10

Después de configurar MPLAB® X IDE, podemos ver una interfaz fácil de usar. Si eres principiante, hay algunos tutoriales de introducción para ti.

Overview of MPLAB X IDE v6.10 User Interface
Overview of MPLAB X IDE v6.10 User Interface

Continúa con nuestro proyecto, haz clic en «Archivo > Nuevo proyecto» para crear un nuevo proyecto.

Create a New Project in MPLAB X IDE
Create a New Project in MPLAB X IDE

En este paso, seleccionamos «Microchip Embedded > Standalone Project» (Proyecto independiente integrado en microchip), que utiliza un archivo makefile generado por IDE para compilar el proyecto.

Choose a Standalone Project in MPLAB X IDE
Choose a Standalone Project in MPLAB X IDE

A continuación, seleccione el dispositivo «PIC16F17146» y su herramienta.

Select Device - PIC16F17146 Curiosity Nano
Select Device - PIC16F17146 Curiosity Nano

Seleccione las cadenas de herramientas del compilador para su placa de desarrollo.

Select Compiler Toolchains
Select Compiler Toolchains

Después de completar los pasos anteriores, haga clic en el botón «MCC» para configurar el código del programa.

Open MCC Content Manager
Open MCC Content Manager

Seleccione un tipo de contenido en el «Asistente para el administrador de contenido MCC» para su proyecto. Si no está seguro de cuál elegir, consulte los detalles oficiales.

Select MCC Melody
Select MCC Melody

Para garantizar un inicio rápido de la función MCC, puede configurarla en modo sin conexión.

Run MCC in Offline Mode
Run MCC in Offline Mode

Antes de configurar la E/S, lea atentamente el esquema de la placa de desarrollo PIC16F17146 Curiosity Nano. A partir del diagrama esquemático, podemos saber que:

La E/S se ilumina cuando RC1 emite un nivel bajo; la E/S no tiene resistencia pull-up externa, por lo que se puede configurar el pull-up integrado en el chip, y el puerto activa una señal de nivel bajo después de ser pulsado.

PIC16F17146 Curiosity Nano MCU Schematic
PIC16F17146 Curiosity Nano MCU Schematic

La configuración final es la siguiente. Esta configuración hará que el LED se encienda de forma predeterminada. Si desea apagar el LED de forma predeterminada, puede marcar la casilla Start High correspondiente, es decir, la salida IO es alta cuando se enciende.

PIC16F17146 Curiosity Nano Input Output (IO) Configuration
PIC16F17146 Curiosity Nano Input Output (IO) Configuration

Si no utilizamos la función de interrupción de E/S, la configuración finaliza aquí. Haga clic en «Generar» para generar el código.

Generate the Code of LED Blinking for PIC16F17146 Curiosity Nano
Generate the Code of LED Blinking for PIC16F17146 Curiosity Nano

Al escribir código, podemos utilizar la función de autocompletado de código. Los detalles son los siguientes:

Apply Code Completion for PIC16F17146 Curiosity Nano
Apply Code Completion for PIC16F17146 Curiosity Nano

Desencadenantes de ventanas emergentes automáticas para identificadores C/C++:

				
					.;->;.*;->*;::;new ;A;a;B;b;C;c;D;d;E;e;F;f;G;g;H;h;I;i;J;j;K;k;L;l;M;m;N;n;O;o;P;p;Q;q;R;r;S;s;T;t;U;u;V;v;W;w;X;x;Y;y;Z;z;_;
				
			

Escriba el código en el cuerpo del bucle de la siguiente manera:

				
					    while(1)
    {
        if(BUTTON_GetValue()==0)
        {
            while(BUTTON_GetValue()==0);
            LED_Toggle();
        }
    }   
				
			

Haga clic en el botón Ejecutar para compilar y grabar el programa LED en la placa de desarrollo PIC16F17146 Curiosity Nano.

Program the Project PIC16F17146 Curiosity Nano
Program the Project PIC16F17146 Curiosity Nano

A continuación, vuelve a la pestaña MCC, añade la función de retardo al proyecto, solo tienes que hacer clic en «Recursos del dispositivo» > Temporizador > «DELAY». A continuación, haz clic en el botón «Generar».

Add the Delay Module Code to Project
Add the Delay Module Code to Project

Ahora, introducimos las letras «DE» en main.c y aparecerá la función de retraso.

Display Delay Function in main. c
Display Delay Function in main. c

Nuestros códigos de retraso son los siguientes, uno en microsegundos y otro en milisegundos:

				
					    while(1)
    {
        LED_Toggle();
        DELAY_milliseconds(500);        
    } 
				
			

Guarde y ejecute este programa, y verá que el LED de nuestra placa de desarrollo comienza a parpadear en ciclos de 1 segundo.

Reducción del consumo energético con la serie PIC16F17146

Muchos de los diseños integrados actuales incluyen sistemas analógicos, ya sea sensores, amplificadores, convertidores de datos o cualquier otro módulo analógico. Estos diseños suelen funcionar con pilas para mayor comodidad de los consumidores en los dispositivos electrónicos de uso diario. Sin embargo, la duración de las pilas supone un reto para los diseñadores, ya que las señales analógicas deben digitalizarse y procesarse, lo que no es ideal para las aplicaciones que funcionan con pilas. A continuación se indican varias formas de reducir el consumo de energía:

Periféricos independientes centrales (CIP)

Con la serie MCU PIC16F17146, muchos diseños analógicos pueden superar los retos del consumo energético. Los dispositivos PIC® y AVR® ofrecen varios periféricos independientes del núcleo (CIP). Los CIP son hardware dedicado que puede funcionar independientemente de la unidad central de procesamiento (CPU). Dado que hay numerosos CIP disponibles en los dispositivos PIC y AVR, estos se pueden utilizar para descargar otras tareas de la CPU mientras se gestionan las interfaces de los sensores, el control de formas de onda, la sincronización/medición y mucho más. Como resultado, el sistema puede funcionar en modos de bajo consumo, lo que conduce a una reducción general del consumo energético del diseño.

Convertidor analógico-digital con computación (ADCC)

Uno de los periféricos analógicos que ofrecen oportunidades de ahorro energético es nuestro convertidor analógico-digital con computación (ADCC). La CPU dispone de varios modos de ahorro de energía para reducir el consumo energético total. Una de las funciones de ahorro de energía que ofrece la serie de MCU PIC16F17146 es el modo SLEEP, en el que la mayor parte de la MCU se apaga, consumiendo menos energía y reduciendo el ruido de medición durante la conversión ADC. El ADCC tiene un oscilador especial que permite que el hardware funcione en modo de suspensión. Cuando se activa un disparador de activación, la CPU reanuda su funcionamiento poco después.

Modo inactivo y modo Doze

Otros modos de ahorro de energía que ofrece la serie de MCU PIC16F17146 son el modo inactivo y el modo de reposo. En el modo inactivo, la CPU detiene todas las demás operaciones mientras los periféricos permanecen activos, y en el modo de reposo, la CPU funciona con una frecuencia de reloj reducida.

Desactivación del módulo periférico (PMD)

La desactivación del módulo periférico (PMD) es otra característica de la MCU. Incluso cuando no están activados, los dispositivos periféricos que no se utilizan consumen una pequeña cantidad de energía parásita. Al activar la PMD, los usuarios pueden activar o desactivar cualquier dispositivo periférico que no se utilice. Al desactivar estos periféricos, la MCU funciona en su estado de energía más bajo posible, lo que reduce su consumo total de energía.

En el desarrollo integrado, la serie MCU PIC16F17146, junto con otras MCU de 8 bits de Microchip, ofrece a los usuarios numerosas opciones para optimizar el consumo energético de los sistemas integrados. Para obtener más información y descubrir cómo lograr una implementación de bajo consumo en su próximo diseño, no deje de visitar MPLAB® Discover, que alberga una gran cantidad de proyectos, incluidas muchas aplicaciones de bajo consumo.

Compartir en:

Scroll al inicio

Cotización