Микроконтроллеры серии PIC12
Микроконтроллеры PIC12 наряду с серией PIC10 занимают нишу маломощных устройств в линейке процессорной продукции Microchip. Минимум периферии и корпус с 8-ю выводами предполагают их применение только в относительно простых приложениях. Эти же факторы и вытекающая из них низкая стоимость, обусловили популярность данных микроконтроллеров среди большого числа радиолюбителей.
Главной особенностью серии PIC12, как уже было сказано выше, является 8-ми выводной корпус. В таком корпусе выпускаются абсолютно все варианты за исключением нового процессора PIC12LF1840T48A со встроенным радиопередатчиком. Пользователю доступно 6 линий ввода вывода, при условии, что одна из них работает только на вход. Так же как и у других процессоров вывода могут выполнять разные функции. Из стандартной периферии доступны таймеры на 8 и 16 бит, компараторы и АЦП.
Ограниченность по выводам привела к тому, что в серии PIC12 сравнительно мало моделей и все они относительно схожи по своим характеристикам. В некоторых случаях, для выбора достаточно определиться только с наличием или отсутствием АЦП и требуемым объемом памяти. Но можно подобрать микросхему и для конкретного, специфического проекта. В частности серия PIC12 может оснащаться встроенным модулем радиопередатчика или модулем шифрования KeeLoq.
В микросхемах семейства PIC12 используются три базовых архитектуры ядер. Наиболее дешевые микросхемы построены на базовой архитектуре (Baseline). 12-ти разрядная шина команд и всего 33 инструкции упрощают освоение этих микроконтроллеров. Микросхемы с базовым ядром оснащаются только одним 8-ми разрядным таймером и не имеют энергонезависимой памяти (исключение PIC12F519). Более совершенные устройства оснащаются ядром средней серии с 14-ти разрядной шиной команд. Эти микроконтроллеры содержат два таймера, один из которых 16-ти разрядный.
Тип |
Flashпамять Кслов |
EEPROM байт |
RAM, байт |
АЦП |
Комп |
Таймер |
Макс. частота МГц |
Встр. генератор МГц |
BOR/ PBOR/ PLVD |
Доп. |
Базовая серия, шина программ 12 бит, 33 инструкции |
||||||||||
PIC12F508 |
0.5 |
— |
25 |
— |
— |
1-8бит, WDT |
4 |
4 МГц |
— |
|
PIC12F509 |
1 |
— |
41 |
— |
— |
1-8бит, WDT |
4 |
4 МГц |
— |
|
PIC12F510 |
1 |
— |
38 |
3×8 бит |
1 |
1-8бит, WDT |
8 |
8 МГц |
— |
ICD |
PIC12F519 |
1 |
64 |
41 |
— |
— |
1-8бит, WDT |
8 |
8 МГц |
— |
ICD |
Средняя серия, шина программ 14 бит, 35 инструкции |
||||||||||
PIC12F609 |
1 |
64 |
— |
1 |
1-8бит, 1-16бит, WDT |
20 |
4 МГц, 8 МГц |
BOR |
||
PIC12F615 |
1 |
64 |
4×10 бит |
1 |
2-8бит, 1-16бит, WDT |
20 |
4 МГц, 8 МГц |
BOR |
ECCP |
|
PIC12F617 |
2 |
128 |
4×10 бит |
1 |
2-8бит, 1-16бит, WDT |
20 |
4 МГц |
BOR |
Selfwrite, ECCP |
|
PIC12F629 |
1 |
128 |
64 |
— |
1 |
1-8бит, 1-16бит, WDT |
20 |
4 МГц |
BOR |
|
PIC12F635 |
1 |
128 |
64 |
— |
1 |
1-8бит, 1-16бит, WDT |
20 |
32кГц, 8МГц |
BOR/ PLVD/ ULPV |
KeeLOQ, nW |
PIC12F675 |
1 |
128 |
64 |
4×10 бит |
1 |
1-8бит, 1-16бит, WDT |
20 |
4 МГц |
BOR |
|
PIC12F683 |
2 |
256 |
128 |
4×10 бит |
1 |
2-8бит, 1-16бит, WDT |
20 |
32кГц, 8МГц |
BOR/ ULPV |
CCP,nW, , Cap Touch |
PIC12F752 |
1 |
64 |
— |
2 |
2-8бит, 1-16бит, WDT |
20 |
8 МГц |
BOR |
Self-write, CCP, DAC, COG |
|
PIC12LF1552 |
2 |
256 |
4×10 бит |
— |
1-8бит, WDT |
20 |
32кГц, 16МГц |
LPBOR |
Selfwrite, SPI, I2C, MSSP, Cap Touch |
|
Улучшенная средняя серия, шина программ 14 бит, 49 инструкции |
||||||||||
PIC12F1501 |
1 |
64 |
4×10 бит |
1 |
2-8бит, 1-16бит, EWDT |
20 |
32кГц, 16МГц |
LPBOR |
Selfwrite, CWG, NCO, CLC, Cap Touch, DAC, PWM |
|
PIC12F1822 |
2 |
256 |
128 |
4×10 бит |
1 |
2-8бит, 1-16бит, EWDT |
32 |
32кГц, 32МГц |
BOR |
Selfwrite, XLP, SPI, I2C, MSSP, Cap Touch |
PIC12F1840 |
4 |
256 |
256 |
4×10 бит |
1 |
2-8бит, 1-16бит, EWDT |
32 |
32кГц, 32МГц |
BOR |
Selfwrite, XLP, SPI, I2C, MSSP, ECCP, ECCP, Cap Touch |
PIC12LF1840T (14 TSSOP with RF Transmitter) |
4 |
256 |
256 |
4×10 бит |
1 |
2-8бит, 1-16бит, EWDT |
32 |
32кГц, 32МГц |
BOR |
Selfwrite, XLP, SPI, I2C, MSSP, ECCP, Cap Touch |
Последние модели микроконтроллеров используют расширенное ядро средней серии, благодаря чему их характеристики и возможности увеличились. В частности повысилась частота внутреннего тактового генератора до 32МГц, возрос объем памяти программ, добавились таймеры, модули ШИМ, а в некоторых моделях появились интерфейсы A/E/USART и MSSP(SPI/I2C) и сенсорный интерфейс mTouch. Увеличенное количество инструкций позволяет создавать более компактный программный код. В некоторых микроконтроллерах может отсутствовать отдельный модуль энергонезависимой памяти, а для сохранения необходимых данных используется Flash-память программ.
Основное направление применения PIC12 – интеллектуальные датчики и простые исполнительные устройства. Также эти процессоры широко используются в системах сигнализации и дистанционного управления. Низкий уровень энергопотребления и широкий диапазон напряжений питания делает процессоры привлекательными для использования в системах с батарейным питанием. Несколько конструкций с использованием PIC12 можно найти в рвзделе Проекты.
You have no rights to post comments
Восстановление калибровочной константы pic12f629 и pic12f675
Собрав ниже приведенную схему и установив в панельку исследуемый микроконтроллер PIC12f629 или PIC12f675 можно с точностью до 1% определить КК.
Для калибровки внутреннего генератора микроконтроллера требуется заведомо известная опорная частота. К счастью, для этого мы не должны собирать отдельно стабильный генератор сигнала. Для этого можно воспользоваться переменным напряжением электросети частотой 50 Гц (в некоторых странах частота может быть 60 Гц). Данный сигнал можно снять со вторичной обмотки сетевого трансформатора.
Частота внутреннего генератора в микроконтроллере PIC12F629 и PIC12F675 может незначительно меняется от изменения температуры и напряжения питания. По мере увеличения напряжения питания, частота его немного уменьшается. Когда переключатель SB1 не замкнут, напряжение питания 5 вольт, пройдя через два диода, которые создают падение напряжения около 1,6 вольта, поступает на вывод питания ПИКа (3,4 вольт).
Еще раз:
- SB1 разомкнут — калибровка происходит при 3,4 вольта.
- SB1 замкнут — калибровка происходит при 5 вольт.
Два диода создают падение напряжения, а резистор R1 создает достаточный ток для стабильности напряжения на диодах.
Опорный сигнал подается с вторичной обмотки трансформатора (от 6 до 12 вольт) через диод VD3, резистор R4 и транзистор VT1. Транзистор любой типа NPN.
Внимание. Переменное напряжение на транзистор следует подавать только через трансформатор
Ни в коем случае не напрямую от электросети!
Процесс определения калибровочной константы
- Программируем PIC12F629 или PIC12F675 прошивкой, которая приведена в конце статьи.
- Переключатель SB2 оставляем незамкнутым для сети 50 Гц, и замыкаем если частота в электросети равна 60 Гц. Для успешно проведения работ, данный сигнал должен быть подан до начала калибровки.
- Вставляем МК в панельку, переключатель SB1 замыкаем, тем самым подаем питание 5 вольт.
Если все нормально светодиоды мигнут один раз.
Тестер транзисторов / ESR-метр / генератор
Многофункциональный прибор для проверки транзисторов, диодов, тиристоров…
Подробнее
Если опорный сигнал не будет обнаружен на выводе 5 МК, то загорится красный светодиод, а зеленый будет мигать до появления сигнала. Если это произойдет, то выключите питание и включите снова.
В процессе калибровки оба светодиода выключены. Калибровка по времени занимает не более 5 секунд.
Если калибровка не удалась — загорится красный светодиод.
Если калибровка прошла успешно загорится зеленый светодиод, и на выводе 6 МК появится тестовый сигнал с частотой 5 кГц. Замерив, данный сигнал частотомером, можно убедиться в корректной калибровке внутреннего генератора микроконтроллера.
Следующим этап – необходимо прочитать программатором EEPROM микроконтроллера.
Возможны три варианта данных по адресам 0x00 и 0x01 в EEPROM:
- Если в обоих адресах 0xFF – калибровка не удалась.
- Если в обоих адресах 0x00, необходимо убедиться, что опорная частота выбрана правильно.
- В адресе 0x00 содержится 0x34 и в адресе 0x01 содержит 0xNN, где NN и является наша новая константа калибровки.
Электронный замок с ключом ibutton (ds1990a) на микроконтроллере |
Вашему вниманию представлена схема электронного замка с ключом таблеткой iButton модели DS1990A (Touch Memory). Ключ представляет собой устройство, которое имеет в своей памяти уникальный серийный номер. Уникальность состоит в том, что серийный номер состоит из 48 бит и как следствие этому, количество возможных вариантов составляет 281474976710656.
Замок собран на микроконтроллере фирмы Microchip PIC16F628A (627A, 648A). После подачи питания, микроконтроллер посылает импульс сброса длительностью 500 мкс и через 70 мкс проверяет ответ от DS1990A. Если ответа нет, то микроконтроллер ждёт еще примерно 80 мс и снова передаёт импульс сброса. По такому алгоритму проверяется подключение ключа к замку.
Если ответ есть, значит DS1990A подключен к замку. Затем посылается команда «читать ROM» (33h), после чего микроконтроллер переходит на приём и записывает в ОЗУ переданный таблеткой DS1990A номер, где сравнивает его с записанным номером в EEPROM. Если он совпадает с одним из них, то подается звуковой сигнал, и устанавливается высокий уровень на выводе RA1 в течение 1,5 секунд. Оптопара DA1 (АОТ122А) откроет транзистор VT1 (КТ972, BD677, BD679, BD681), который управляет электромагнитным реле на 12 вольт.
Процесс записи номера ключа в EEPROM: приложить ключ к замку и после звукового сигнала нажать кнопку SA1. Эта кнопка должна быть расположена в скрытом, недоступном для посторонних людей месте.
Для очистки всех номеров из EEPROM необходимо при выключенном питании нажать кнопку SA1, подать питание и удерживать кнопку в течение 5 секунд. После очищения памяти EEPROM замок подаст звуковой сигнал. Общее количество серийных номеров, которые можно записать в память не более 21.
Чтобы микроконтроллер не пострадал от статического разряда, в схеме применен стабилитрон VD1 (КС156А, 1N4733A, BZX55C5V1) на 5В. В данном замке можно использовать любой из микроконтроллеров PIC16F627A, PIC16F628A, PIC16F648A. Для микроконтроллера PIC12F629/PIC12F675 имеется своя прошивка. Запитать схему можно от стабилизатора на микросхеме LM317.
При программировании PIC программатором, следует выставить следующие биты:
- Тип генератора IntRC,
- WDT включен,
- PWRT включен,
- MCLR выключен.
Схемы проверены в Proteus:
Скачать прошивку, модель в Proteus(17,0 KiB, скачано: 4 563)
Восстановление калибровочной константы PIC12f629 и PIC12f675
Собрав ниже приведенную схему и установив в панельку исследуемый микроконтроллер PIC12f629 или PIC12f675 можно с точностью до 1% определить КК.
Для калибровки внутреннего генератора микроконтроллера требуется заведомо известная опорная частота. К счастью, для этого мы не должны собирать отдельно стабильный генератор сигнала. Для этого можно воспользоваться переменным напряжением электросети частотой 50 Гц (в некоторых странах частота может быть 60 Гц). Данный сигнал можно снять со вторичной обмотки сетевого трансформатора.
Частота внутреннего генератора в микроконтроллере PIC12F629 и PIC12F675 может незначительно меняется от изменения температуры и напряжения питания. По мере увеличения напряжения питания, частота его немного уменьшается. Когда переключатель SB1 не замкнут, напряжение питания 5 вольт, пройдя через два диода, которые создают падение напряжения около 1,6 вольта, поступает на вывод питания ПИКа (3,4 вольт). С замкнутыми контактами SB1, микроконтроллер работает от 5 вольт. С помощью данной схемы появляется возможность для калибровки либо на 3,4 вольт, либо на 5 вольт питания.
Еще раз:
- SB1 разомкнут — калибровка происходит при 3,4 вольта.
- SB1 замкнут — калибровка происходит при 5 вольт.
Два диода создают падение напряжения, а резистор R1 создает достаточный ток для стабильности напряжения на диодах.
Опорный сигнал подается с вторичной обмотки трансформатора (от 6 до 12 вольт) через диод VD3, резистор R4 и транзистор VT1. Транзистор любой типа NPN.
Внимание. Переменное напряжение на транзистор следует подавать только через трансформатор
Ни в коем случае не напрямую от электросети!
Подпишись на RSS!
-
-
Тиристорное зарядное устройство со стабилизацией тока
17 февраля 2022 -
Блок измерений для зарядного устройства на PIC16F628
3 февраля 2022 -
Блок питания с защитой по току
17 января 2022 -
Цифровой амперметр и вольтметр для блока питания на INA226
12 января 2022 -
Индикатор вертикальный 2×3 на TM1637
10 января 2022 -
Микрофон для компьютера
24 декабря 2021 -
Амперметр 50 Ампер контрольный
23 декабря 2021 -
Аналоговое управление микроконтроллером
19 декабря 2021 -
Автомат освещения для брудера
17 декабря 2021 -
Стабилизированный блок питания 1,5 вольта
8 ноября 2021 -
Активный фильтр в сети автомобиля
6 ноября 2021
-
Тиристорное зарядное устройство со стабилизацией тока
-
- Зарядное устройство для автомобильных аккумуляторов — 248 860 просмотров
- Стабилизатор тока на LM317 — 180 430 просмотров
- Стабилизатор напряжения на КР142ЕН12А — 131 008 просмотров
- Карта сайта — 111 387 просмотров
- Реверсирование электродвигателей — 107 717 просмотров
- Зарядное для аккумуляторов шуруповерта — 104 307 просмотров
- Самодельный сварочный аппарат — 91 760 просмотров
- Зарядное для шуруповерта — 91 322 просмотров
- Регулируемый стабилизатор тока — 89 629 просмотров
- Схема транзистора КТ827 — 89 537 просмотров
-
- DC-DC (5)
- Автомат откачки воды из дренажного колодца (5)
- Автоматика (36)
- Автомобиль (3)
- Антенны (2)
- Ассемблер для PIC16 (3)
- Блоки питания (32)
- Бурение скважин (6)
- Быт (11)
- Генераторы (1)
- Генераторы сигналов (8)
- Датчики (4)
- Двигатели (7)
- Для сада-огорода (11)
- Зарядные (19)
- Защита радиоаппаратуры (12)
- Зимний водопровод для бани (2)
- Измерения (44)
- Импульсные блоки питания (2)
- Индикаторы (8)
- Индикация (10)
- Как говаривал мой дед … (1)
- Коммутаторы (6)
- Логические схемы (1)
- Обратная связь (1)
- Освещение (3)
- Программирование для начинающих (21)
- Программы (1)
- Работы посетителей (7)
- Радиопередатчики (2)
- Радиостанции (1)
- Регуляторы (5)
- Ремонт (1)
- Самоделки (12)
- Самодельная мобильная пилорама (3)
- Самодельный водопровод (7)
- Самостоятельные расчеты (36)
- Сварка (1)
- Сигнализаторы (5)
- Справочник (13)
- Стабилизаторы (16)
- Строительство (2)
- Таймеры (4)
- Термометры, термостаты (27)
- Технологии (21)
- УНЧ (3)
- Формирователи сигналов (1)
- Электричество (4)
- Это пригодится (14)
-
Архивы
Выберите месяц Февраль 2022 (2) Январь 2022 (3) Декабрь 2021 (4) Ноябрь 2021 (2) Октябрь 2021 (6) Апрель 2021 (1) Март 2021 (3) Февраль 2021 (2) Январь 2021 (1) Декабрь 2020 (1) Ноябрь 2020 (1) Октябрь 2020 (1) Сентябрь 2020 (2) Июль 2020 (2) Июнь 2020 (1) Апрель 2020 (1) Март 2020 (3) Февраль 2020 (2) Декабрь 2019 (2) Октябрь 2019 (3) Сентябрь 2019 (3) Август 2019 (4) Июнь 2019 (4) Февраль 2019 (2) Январь 2019 (2) Декабрь 2018 (2) Ноябрь 2018 (2) Октябрь 2018 (3) Сентябрь 2018 (2) Август 2018 (3) Июль 2018 (2) Апрель 2018 (2) Март 2018 (1) Февраль 2018 (2) Январь 2018 (1) Декабрь 2017 (2) Ноябрь 2017 (2) Октябрь 2017 (2) Сентябрь 2017 (4) Август 2017 (5) Июль 2017 (1) Июнь 2017 (3) Май 2017 (1) Апрель 2017 (6) Февраль 2017 (2) Январь 2017 (2) Декабрь 2016 (3) Октябрь 2016 (1) Сентябрь 2016 (2) Август 2016 (1) Июль 2016 (9) Июнь 2016 (3) Апрель 2016 (5) Март 2016 (1) Февраль 2016 (3) Январь 2016 (3) Декабрь 2015 (3) Ноябрь 2015 (4) Октябрь 2015 (6) Сентябрь 2015 (5) Август 2015 (1) Июль 2015 (1) Июнь 2015 (3) Май 2015 (3) Апрель 2015 (3) Март 2015 (2) Январь 2015 (4) Декабрь 2014 (9) Ноябрь 2014 (4) Октябрь 2014 (4) Сентябрь 2014 (7) Август 2014 (3) Июль 2014 (2) Июнь 2014 (6) Май 2014 (4) Апрель 2014 (2) Март 2014 (2) Февраль 2014 (5) Январь 2014 (4) Декабрь 2013 (7) Ноябрь 2013 (6) Октябрь 2013 (7) Сентябрь 2013 (8) Август 2013 (2) Июль 2013 (1) Июнь 2013 (2) Май 2013 (4) Апрель 2013 (7) Март 2013 (7) Февраль 2013 (7) Январь 2013 (11) Декабрь 2012 (7) Ноябрь 2012 (5) Октябрь 2012 (2) Сентябрь 2012 (10) Август 2012 (14) Июль 2012 (5) Июнь 2012 (21) Май 2012 (13) Апрель 2012 (4) Февраль 2012 (6) Январь 2012 (6) Декабрь 2011 (2) Ноябрь 2011 (9) Октябрь 2011 (14) Сентябрь 2011 (22) Август 2011 (1) Июль 2011 (5)
Как прошивать микроконтроллер? С чего начать изучение?
Официальный программатор для семейств PIC – это PICkit V3, является наиболее распространенным. Программный код загружается в чип с помощью ПО, которое есть на диске, он идёт в комплекте с программатором. IDE имеет название MPlab. Является официальной средой разработки от производителя, между прочим, бесплатной. Для изучения устройств есть отличная книга на русском языке «Pic-микроконтроллеры. Полное руководство» автор её Сид Катцен. Кроме этой книги вы найдете огромное количество видео-уроков и текстовых материалов, которые вам помогут.
Применение микроконтроллеров PIC весьма широко, многие радиолюбители собирают металлоискатели и счетчики Гейгера на этих МК.
Схема автоматического поддержания питания
Используя схему на переключаемых конденсаторах из предыдущего примера, можно создать устройство, поддерживающее свое питание (рис.9).
В исходном состоянии транзистор VT1 закрыт, напряжение питания контроллера Vdd равно нулю. При нажатии на кнопку напряжение источника питания Vbat подается на вывод питания микроконтроллера, и на выводе CLKOUT/OSC2 в режиме внешнего RC-генератора возникает генерация. Напряжение, вырабатываемое удвоителем, открывает транзистор VT1, соединяя шину Vbat и Vdd. Таким образом, схема начинает поддерживать свое питание.
Для выключения питания контроллера нужно выполнить инструкцию SLEEP, которая остановит тактовый генератор, что в свою очередь выключит питание микроконтроллера. Данный прием позволяет программно выключать питание устройства.
Преимущества:
- практически нулевое потребление тока;
- низкая стоимость (используется n-канальный полевой транзистор);
- высокая надежность;
- не требуется дополнительных выводов микроконтроллера.
Пример рабочей программы
В качестве примера ниже приведен исходный текст на языке MicroPascal
, выполняющий мигание светодиодом, подключенным к порту GP0.
Program PIC12F629Start;const i=500;begin // Начало программы GPIO:=0; CMCON:=7; // gp0,gp1 — дискретные линии TRISIO:= %00001000; // все линии на вывод кроме gp3 while TRUE do // основной цикл begin setbit(gpio,0); Delay_ms(i); clearbit(gpio,0); Delay_ms(i); end;end.
You have no rights to post comments
данная информацияпечатной платыМногие радиолюбители начинающие по началу своего дела боятся начинать работу с микроконтроллером.Связано это со многим,и основной часто страх как правильно программировать и чем программировать.В данной статье приведена схема простого программатора для микроконтроллера PIC
.Смотрим,собираем,спрашиваем на официальном форуме и оставляем отзывы если у вас получилось
Начинать свою работу я советовал бы сначала с общих сведений о микроконтроллерах.
Программатор ExtraCheap
В интернете много различных схем программаторов
.Но большинство из них очень сложные,и редко когда можно увидеть фотографии,что бы подтверждало его работоспособность.
Но нужный программатор многим запросам был найден.
Для передачи данных используется COM порт. Схема питается от 5 вольт которые можно взять от портов USB или PS/2.
Еще одна фотография этого устройства:
Для работы с программатором рекомендуется использовать программу IC-Prog
Настройка IC-Prog
Качаем с офф сайта последнюю версию программы IC-Prog Software, NT/2000 driver, Helpfile in Russian language и распаковываем их в одну и туже директорию.
Теперь необходимо установить драйвер программатора, для чего запускаем icprog.exe (если появятся сообщения об ошибках, то просто игнорируем их) и выбираем пункт «Options» в меню «Settings». Открываем вкладку «Programming» и устанавливаем галочку напротив пункта «Verify during programming». Далее в разделе «Misc» нужно активировать опцию «Enable NT/2000/XP Driver», сохранить настройки нажав на кнопку «ОК» и перезапустить программу.
Сменить язык интерфейса можно в разделе «Language». Для того, чтобы указать программе тип нашего программатора, нажимаем F3, в открывшемся окне выбираем «JDM Programmer» и указываем COM порт, к которому подключено устройство.
На этом предварительную настройку программы можно считать законченной.
Прошивка МК
IC-Prog позволяет работать с большим количеством МК, но нам нужен только PIC12F629 — выбираем его в выпадающем списке, расположенным в правом верхнем углу программы.
Для чтения прошивки из МК выполняем команду «Читать микросхему» (значок с зеленой стрелочкой или F8).
По окончанию процесса чтения, в окне программного кода отобразится прошивка МК в шестнадцатеричном виде
Следует обратить внимание на последнюю ячейку памяти по адресу 03F8 — там хранится значение константы OSCCAL , которое устанавливает производитель при калибровке чипа. У каждого МК оно свое, так что неплохо было бы его куда нибудь переписать (я, к примеру, царапаю его иголкой на обратной стороне PIC»а) для облегчения процесса восстановления (хотя это не обязательно), если во время прошивки эта константа была случайно перезаписана.
Для того, чтобы «залить» прошивку из *.hex файла в МК, ее необходимо открыть в программе («Файл»->«Открыть Файл…» или Ctrl+O) и выполнить команду «Программировать микросхему» (значок с желтой молнией или F5). Отвечаем «Yes» на первый вопрос.
А вот на следующий вопрос необходимо ответить «Нет», иначе перезапишется константа OSCCAL, о которой говорилось ранее.
После этого начнется процесс прошивки. По окончанию программа выведет информационное сообщение о его результатах.
На этом хотелось бы подвести топик к концу. Надеюсь данная информация поможет новичкам разобраться в основах программирования PIC
микроконтроллеров.
Сфера применения PIC-микроконтроллеров
Как уже было сказано, семейство PIC16 очень любят радиолюбители. К тому же оно хорошо описано в большом количестве литературы. По количеству учебников с семейством PIC, на момент написания статьи, может посоревноваться только семейство AVR.
Давайте рассмотрим несколько схем с применением микроконтроллеров семейства PIC.
Таймер для управления нагрузкой на PIC16f628
Простейшая автоматика на микроконтроллерах PIC – это стихия 8-битного семейства. Их объём памяти не позволяет делать сложных систем, но отлично подходит для самостоятельного выполнения пары поставленных задач. Так и эта схема трёхканального таймера на Pic16f628, поможет вам управлять нагрузкой любой мощности. Мощность нагрузки зависит только от установленного реле/пускателя/контактора и пропускной способности электросети.
Настраивается прибор с помощью набора из 4-х кнопок SB1-SB4, на HG1 выводятся параметры, это дисплей типа LCD на 2 строки по 16 символов. В схеме используется внешний кварцевый резонатор на 4 МГц, а KV1 – это реле, с питанием катушки в 24 В, вы можете использовать любое реле, лишь бы оно подходило по напряжению катушки к вашему БП. МК питается от 5 В стабилизированного источника.
Вы можете использовать от 1 до 3 каналов в управлении нагрузкой, стоит только продублировать схему, добавив реле к выводам RA3, RA4 микроконтроллера.
Часы-будильник на МК PIC16f628A
Такие часы, согласно заявлениям разработчика, получились весьма точными, их погрешность весьма мала – порядка 30 секунд в год.
С незначительными переделками вы можете использовать любые 7-мисегментные индикаторы. Питаются от блока питания на 5В, при этом, при отключении от сети продолжают работать от батареек, что вы можете увидеть в правом верхнем углу схемы.
Регулятор мощности паяльника на PIC16f628A
У начинающих радиолюбителей не всегда есть возможность купить паяльную станцию. Но они могут собрать её сами. На схеме ниже представлен регулируемый блок питания на PIC16f628, для работы паяльника. В основу схемы вложено фазоимпульсное управление. Это, по сути, доработанный и осовремененный аналог классического тиристорного регулятора, но с микроконтроллерным управлением.
Схема довольно простая, в нижней части реализация светодиодной индикации. Главный силовой элемент – тиристор BT139, а MOC3041 – нужен для гальванической развязки МК от сети и управления тиристором с помощью логического уровня в 5 В.
Виды микроконтроллеров PIC и их архитектура
Пожалуй, среди начинающих очень распространены микроконтроллеры пик младших моделей, а именно семейств:
- Pic10;
- Pic12;
- Pic16.
Эти микроконтроллеры 8-битные, при этом различают две архитектуры:
- Baseline с 10-битными инcтрукциями с 35-ю ассемблерными командами.
- Mid-range с 14-битными инструкциями и 35 или 49 команд на языке ассемблера в зависимости от конкретной модели.
В разработках радиолюбителей очень часто встречается модель 16f628. Конфигурация этого pic-микроконтроллера следующая, в нём есть:
- встроенный тактовый генератор может быть настроен на частоту 4 или 8 МГц;
- 18 ножек – портов, из которых 16 может использоваться для ввода-вывода данных, 2 задействованы под питание;
- возможность использовать кварцевый резонатор для работы на тактовых частотах до 20 МГц (тогда задействуют еще 2 ноги для него);
- буква F в маркировке говорит о памяти типа Flash, объёмом на 2048 слов;
- гарвардская архитектура, с 14-битными инструкциями, всего их 35 штук;
- длина машинного цикла 4 такта (1 действие выполняется за 4 такта кварцевого резонатор или внутреннего генератора);
- 224 байта ОЗУ;
- 128 байт EEPROM;
- USART – последовательный порт;
- внутренний источник опорного напряжения;
- питается от 3.3 до 5 В.
PIC16 имеют низкую цену и достаточно развитую аналоговую периферию, что и обеспечивает их популярность. При этом модели могут выпускаться в корпусах с количеством ножек от 18 до 40. Это позволяет делать более сложные системы, чем возможно на вышеприведенном примере.
Существуют и более мощные модели, например, 16-битные:
- PIC24x
- DsPIC30/33F – для цифровой обработки сигналов.
Они способны выполнять 16 MIPS (миллионов итераций в секунду), что обеспечивает весьма высокое быстродействие вашей системы при 2 при двухтактном машинном цикле, такая скорость обеспечивается частотой в 32 МГц. 40 MIPS достигается при 80 МГц соответственно.
32-битные микроконтроллеры PIC32MX имеют большую производительность и превосходящий объём памяти, если сравнивать с 16-битными моделями, и работают на частоте в 80 МГц.
Особенности программирования
PIC
12F
629 имеет только один порт ввода/вывода под названием GPIO
. На плате линии этого порта подключены к штыревому разъему PORTA/PORTGP
и другим элементам, связанным с ним. Это позволяет производить разработку устройств и отладку программ, точно также как и для других МК. Выход температурного датчика DS18B20, имеющий возможность подключения к линии RA
5 с гнездом для PIC
12F
629 не связан.
При запуске среды разработки открывается проект, где в первую очередь, необходимо установить используемый тип генератора частоты. Наиболее востребованным вариантом для данного кристалла будет использование внутреннего генератора. Это позволяет использовать линии GP4 и GP5 для ввода/вывода. Внутренний генератор имеет обозначение INTR_OSC_NOCLOCKOUT. Также устанавливаются другие биты конфигурации, в зависимости от требований схемы. При необходимости установки калибровочной константы, сделать это можно после запуска программы программатора microICD.
Написание программы мало отличается от этого действия для других контроллеров при учете особенностейPIC
12F
629. Главная – название порта ввода/вывода. В IDE MicroPascal его глобальное определение GPIO
, а регистр конфигурации обозначается TRISIO
. Дополнительно при инициализации нужно определить назначение выводов GP
0 и GP
1. По умолчанию они являются входами аналогового компаратора. При использовании в качестве цифровых линий необходимо выполнить команду CMCON:=7. С ее помощью данные вывода настраиваются как линии дискретного ввода/вывода. Ну и не стоит забывать, что вывод GP
3 работает только как вход. В остальном программирование PIC
12F
629 ничем не отличается от других контроллеров PICmicro
.
Архивы
АрхивыВыберите месяц Февраль 2022 (2) Январь 2022 (3) Декабрь 2021 (4) Ноябрь 2021 (2) Октябрь 2021 (6) Апрель 2021 (1) Март 2021 (3) Февраль 2021 (2) Январь 2021 (1) Декабрь 2020 (1) Ноябрь 2020 (1) Октябрь 2020 (1) Сентябрь 2020 (2) Июль 2020 (2) Июнь 2020 (1) Апрель 2020 (1) Март 2020 (3) Февраль 2020 (2) Декабрь 2019 (2) Октябрь 2019 (3) Сентябрь 2019 (3) Август 2019 (4) Июнь 2019 (4) Февраль 2019 (2) Январь 2019 (2) Декабрь 2018 (2) Ноябрь 2018 (2) Октябрь 2018 (3) Сентябрь 2018 (2) Август 2018 (3) Июль 2018 (2) Апрель 2018 (2) Март 2018 (1) Февраль 2018 (2) Январь 2018 (1) Декабрь 2017 (2) Ноябрь 2017 (2) Октябрь 2017 (2) Сентябрь 2017 (4) Август 2017 (5) Июль 2017 (1) Июнь 2017 (3) Май 2017 (1) Апрель 2017 (6) Февраль 2017 (2) Январь 2017 (2) Декабрь 2016 (3) Октябрь 2016 (1) Сентябрь 2016 (2) Август 2016 (1) Июль 2016 (9) Июнь 2016 (3) Апрель 2016 (5) Март 2016 (1) Февраль 2016 (3) Январь 2016 (3) Декабрь 2015 (3) Ноябрь 2015 (4) Октябрь 2015 (6) Сентябрь 2015 (5) Август 2015 (1) Июль 2015 (1) Июнь 2015 (3) Май 2015 (3) Апрель 2015 (3) Март 2015 (2) Январь 2015 (4) Декабрь 2014 (9) Ноябрь 2014 (4) Октябрь 2014 (4) Сентябрь 2014 (7) Август 2014 (3) Июль 2014 (2) Июнь 2014 (6) Май 2014 (4) Апрель 2014 (2) Март 2014 (2) Февраль 2014 (5) Январь 2014 (4) Декабрь 2013 (7) Ноябрь 2013 (6) Октябрь 2013 (7) Сентябрь 2013 (8) Август 2013 (2) Июль 2013 (1) Июнь 2013 (2) Май 2013 (4) Апрель 2013 (7) Март 2013 (7) Февраль 2013 (7) Январь 2013 (11) Декабрь 2012 (7) Ноябрь 2012 (5) Октябрь 2012 (2) Сентябрь 2012 (10) Август 2012 (14) Июль 2012 (5) Июнь 2012 (21) Май 2012 (13) Апрель 2012 (4) Февраль 2012 (6) Январь 2012 (6) Декабрь 2011 (2) Ноябрь 2011 (9) Октябрь 2011 (14) Сентябрь 2011 (22) Август 2011 (1) Июль 2011 (5)
Процесс определения калибровочной константы
- Программируем PIC12F629 или PIC12F675 прошивкой, которая приведена в конце статьи.
- Переключатель SB2 оставляем незамкнутым для сети 50 Гц, и замыкаем если частота в электросети равна 60 Гц. Для успешно проведения работ, данный сигнал должен быть подан до начала калибровки.
- Вставляем МК в панельку, переключатель SB1 замыкаем, тем самым подаем питание 5 вольт.
Если все нормально светодиоды мигнут один раз.
Если опорный сигнал не будет обнаружен на выводе 5 МК, то загорится красный светодиод, а зеленый будет мигать до появления сигнала. Если это произойдет, то выключите питание и включите снова.
В процессе калибровки оба светодиода выключены. Калибровка по времени занимает не более 5 секунд.
Если калибровка не удалась — загорится красный светодиод.
Если калибровка прошла успешно загорится зеленый светодиод, и на выводе 6 МК появится тестовый сигнал с частотой 5 кГц. Замерив, данный сигнал частотомером, можно убедиться в корректной калибровке внутреннего генератора микроконтроллера.
Следующим этап – необходимо прочитать программатором EEPROM микроконтроллера.
Возможны три варианта данных по адресам 0x00 и 0x01 в EEPROM:
- Если в обоих адресах 0xFF – калибровка не удалась.
- Если в обоих адресах 0x00, необходимо убедиться, что опорная частота выбрана правильно.
- В адресе 0x00 содержится 0x34 и в адресе 0x01 содержит 0xNN, где NN и является наша новая константа калибровки.
Настройка платы EasyPIC5
Для сборки схемы на PIC12F629 требуется установить МК в соответствующее гнездо на плате. При этом все остальные контроллеры должны быть удалены.
Вторым действием должна стать перестановка перемычек линий программирования Socket Selection.
Также необходимо определить способ генерации тактовой частоты. В случае использования внешнего генератора, потребуется установить кварцевый резонатор в гнездо OSC2. Микроконтроллер PIC
12F
629 может работать и от внутреннего генератора частоты. В этом случае устанавливаются перемычки OSC2, в положение I/O подключающее выхода микроконтроллера к элементам платы. На этом подготовка к работе закончена.