Введение в PIC16F17146
PIC16F17146 — это микроконтроллерный чип, относящийся к семейству PIC16F, которое славится высокой производительностью и низким энергопотреблением. Он широко используется в различных электронных устройствах, таких как бытовая электроника, автомобильные приложения и промышленные системы управления. PIC16F17146 предлагает широкий спектр функций, включая несколько интерфейсов связи, аналого-цифровые преобразователи и большой объем памяти для хранения программных инструкций и данных. Этот универсальный микроконтроллер позволяет разработчикам с легкостью создавать сложные приложения благодаря гибкой архитектуре и обширному набору периферийных устройств. Например, он может использоваться в автомобильных системах для управления функциями двигателя или в устройствах «умного дома» для управления различными задачами домашней автоматизации.

Особенности PIC16F17146
- Оптимизированная для C-компилятора архитектура RISC
- Улучшенное ядро среднего уровня с 49 инструкциями, 16 уровнями стека
- Флэш-память программы с возможностью самостоятельного чтения/записи
- Низкотоковый сброс при включении питания (POR)
- Программируемый сброс при пониженном напряжении (BOR) с быстрым восстановлением
- Сброс при пониженном напряжении питания с низким энергопотреблением (LPBOR)
- Режимы низкого энергопотребления в режимах простоя и гибернации
- Оконный сторожевой таймер (WWDT)
- Отключение периферийного модуля (PMD)
- Выбор периферийных выводов (PPS)
- Улучшенный сброс при включении/выключении питания
- Настраиваемый таймер включения питания (PWRT)
Спецификация PIC16F17146
| Attribute | Value |
|---|---|
| Model | PIC16F17146 |
| Architecture | RISC |
| Temperature Range | -40°C to 85°C |
| Frequency | up to 32MHz |
| Voltage | 1.8V to 5.5V |
| Size | 6.5 x 9.4 x 1.5mm |
| Memory | up to 28 KB |
| EEPROM | up to 256 Bytes |
| SRAM | up to 2 KB |
| Timer | 3 x 16-bit, 3 x 8-bit |
| PWM | 4 x 16-bit |
| CLC | 4 |
| DAC | 2 x 8-bit |
| ADC | 1 x 12-bit |
| USART | 1 |
| I2C | 1 x 7/10-bit |
| SPI | 1 |
| Operational Amplifier | 1 |
| I/O Port | up to 35 pins |
| Package | 14-Pin PDIP, SOIC, TSSOP; 16-Pin VQFN; 20-Pin PDIP, SOIC, SSOP, VQFN |
Как запрограммировать плату разработчика PIC16F17146 Curiosity Nano?

Необходимые инструменты:
- Интегрированная среда разработки (IDE) MPLAB® X
- PIC16F17146 Curiosity Nano Board *1
- USB-кабель * 1
PIC16F17146 Curiosity Nano — тест мигания светодиода
Сначала загрузите и установите MPLAB X IDE v6.10 с сайта Microchip:
https://www.microchip.com/en-us/tools-resources/develop/mplab-x-ide#


После настройки MPLAB® X IDE мы видим удобный интерфейс. Если вы новичок, для вас есть несколько учебных руководств по началу работы.
Продолжим работу над нашим проектом. Нажмите «Файл > Новый проект», чтобы создать новый проект.

На этом этапе мы выбираем «Microchip Embedded > Standalone Project» (Встроенный микрочип > Автономный проект), который использует сгенерированный IDE файл makefile для сборки вашего проекта.

Затем выберите устройство «PIC16F17146» и соответствующий инструмент.

Выберите набор инструментов компилятора для вашей платы разработчика.

После выполнения вышеуказанных шагов нажмите кнопку «MCC», чтобы настроить код программы.

Выберите тип контента в «Мастере управления контентом MCC» для вашего проекта. Если вы не уверены, какой тип выбрать, ознакомьтесь с официальной информацией.

Для обеспечения быстрого запуска функции MCC можно установить ее в автономный режим.

Перед настройкой ввода-вывода внимательно ознакомьтесь со схемой платы разработчика PIC16F17146 Curiosity Nano. Из схемы можно узнать, что:
Вход/выход загорается, когда RC1 выдает низкий уровень; вход/выход не имеет внешнего подтягивающего резистора, поэтому можно настроить встроенный подтягивающий резистор, и порт запускает сигнал низкого уровня после нажатия.

Окончательная конфигурация выглядит следующим образом. Эта конфигурация приведет к тому, что светодиод будет включен по умолчанию. Если вы хотите отключить светодиод по умолчанию, вы можете установить соответствующий флаг Start High, то есть выход IO будет высоким при включении питания.

Если мы не используем функцию прерывания ввода-вывода, настройка заканчивается здесь. Нажмите «Сгенерировать», чтобы сгенерировать код.

При написании кода мы можем использовать функцию автозаполнения кода, подробности приведены ниже:

Автоматические всплывающие подсказки для идентификаторов 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;_;
Напишите код в теле цикла следующим образом:
while(1)
{
if(BUTTON_GetValue()==0)
{
while(BUTTON_GetValue()==0);
LED_Toggle();
}
}
Нажмите кнопку «Run» (Запустить), чтобы скомпилировать и записать программу светодиодов на плату разработчика PIC16F17146 Curiosity Nano.

Затем вернитесь на вкладку MCC, добавьте функцию задержки в проект, просто нажмите «Ресурсы устройства» > Таймер > «DELAY». Затем нажмите кнопку «Создать».

Теперь вводим букву «DE» в main.c, и появится функция задержки.

Наши коды задержки следующие: один в микросекундах, а другой в миллисекундах:
while(1)
{
LED_Toggle();
DELAY_milliseconds(500);
}
Сохраните и запустите эту программу, вы увидите, что светодиод на нашей плате разработчика начинает мигать с периодичностью 1 секунда.
Снижение энергопотребления с помощью серии PIC16F17146
Многие современные встроенные системы включают аналоговые компоненты, такие как датчики, усилители, преобразователи данных и другие аналоговые модули. Эти системы часто питаются от батарей, что удобно для потребителей повседневной электроники. Однако срок службы батарей представляет собой проблему для разработчиков, поскольку аналоговые сигналы необходимо оцифровывать и обрабатывать, что не идеально для устройств с батарейным питанием. Ниже приведены несколько способов снижения энергопотребления:
Основные независимые периферийные устройства (CIP)
С помощью микроконтроллеров серии PIC16F17146 многие аналоговые конструкции могут преодолеть проблемы, связанные с энергопотреблением. Устройства PIC® и AVR® предлагают различные периферийные устройства, независимые от ядра (CIP). CIP — это специализированное оборудование, которое может работать независимо от центрального процессора (CPU). Поскольку в устройствах PIC и AVR доступно множество CIP, их можно использовать для разгрузки CPU от других задач, таких как обработка интерфейсов датчиков, управление сигналами, синхронизация/измерение и т. д. В результате система может работать в режимах низкого энергопотребления, что приводит к общему снижению энергопотребления конструкции.
Аналогово-цифровой преобразователь с вычислением (ADCC)
Одним из аналоговых периферийных устройств, обеспечивающих возможность энергосбережения, является наш аналого-цифровой преобразователь с вычислительной функцией (ADCC). Процессор имеет несколько режимов энергосбережения, позволяющих снизить общее энергопотребление. Одной из энергосберегающих функций микроконтроллера серии PIC16F17146 является режим SLEEP, в котором большая часть микроконтроллера отключается, что снижает потребление энергии и уменьшает измерительные шумы во время преобразования АЦП. ADCC имеет специальный генератор, который позволяет аппаратному обеспечению работать в режиме сна. При активации триггера пробуждения процессор вскоре возобновляет работу.
Режим ожидания и режим Doze
Другие режимы энергосбережения, предлагаемые микроконтроллерами серии PIC16F17146, включают режим простоя (Idle) и режим сна (Doze). В режиме простоя процессор останавливает все другие операции, в то время как периферийные устройства остаются активными, а в режиме сна процессор работает с пониженной тактовой частотой.
Отключение периферийного модуля (PMD)
Отключение периферийных модулей (PMD) — еще одна функция микроконтроллера. Даже когда они не включены, неиспользуемые периферийные устройства потребляют небольшое количество паразитной энергии. Включив PMD, пользователи могут включать или отключать любые неиспользуемые периферийные устройства. Отключив эти периферийные устройства, микроконтроллер работает в режиме минимального энергопотребления, что снижает его общее энергопотребление.
В области встраиваемых систем микроконтроллеры серии PIC16F17146, наряду с другими 8-разрядными микроконтроллерами Microchip, предоставляют пользователям множество возможностей для оптимизации энергопотребления встраиваемых систем. Для получения дополнительной информации и изучения способов реализации низкого энергопотребления в вашем следующем проекте обязательно ознакомьтесь с MPLAB® Discover, где представлено множество проектов, в том числе и примеров применения с низким энергопотреблением.




