.
|
| Драгметаллы в микросхемах Металлоискатель с дискримом Ремонт фонарика с АКБ Восстановление БП ПК ATX Кодировка SMD деталей |
Схемы на pic контроллерах для начинающих
Схемы на pic контроллерах для начинающих – aavisichei. nullsecurity.netСхемы на pic контроллерах для начинающих
Регулятор оборотов микродрели на pic-контроллере Простой регулятор оборотов для микродрели на pic16f628a. ТЕГИ – навигация по сайту. Схема ЖК индикатора на МК для блока питания 0-100В 0-10А тока, напряжения, температуры, мощности и переключатель питания вентиляторов с обмотками трансформатора. Радиолюбителям и электрикам-схемы программы книги и много полезного материала схемы на PIC Пропустить и перейти к материалам. Пример использования прерывания от RTCC для получения секундного импульса на одном из выходов , скажем, порта В – RB0 : Используем регистр Rsec, который должен быть ранее объявлен Программаторы для МК цифрового индикатора уровня топлива обладает высокой степенью повторяемости, даже. В данном разделе представлены что pic-контроллерах. Давайте немного разберёмся с организацией памяти в контроллерах pic.
Так как мы начнём изучение семейства pic с более простых 8-битных (принцип от простого — к сложному ведь не отменял никто. Скачать с сервера (3.34 mb) Радиолюбительские схемы на pic контроллерах – это новая книга. Рассмотрены алгоритмы работы, схемы и программы для различных полезных устройств. Схемы на pic микроконтроллерах Крупнейший русскоязычный файловый архив по электронике. Чтобы показания вольтметра были максимально реалистичными, необходимо в скетче указать. ARDUINO недорого в Москве все платы Arduino купить датчики сенсоры шилды электронные модули. Не буду скрывать, появлением на свет данного устройства, в основном, стали ваши довольно. Старые выпуски журнала радио и путеводитель по ретро выпускам старейшего.Links to Important Stuff
Links
- Вольтамперметр 0-30V 0-5A своими руками на arduino.
- ARDUINO недорого в Москве.
- Вольтметр-амперметр на ATMega8.
- старые журналы радио.
© Untitled. All rights reserved.
Радиолюбительские конструкции на PIC-микроконтроллерах (4 книги +CD) Заец Н. И.
В четырех книгах представлены различные конструкции на микроконтроллерах, которые будут интересны не только опытным, но и начинающим радиолюбителям. Для удобства при повторении конструкций приведены рисунки печатных плат, даны исходные тексты программ и «прошивки» контроллеров.
К книгам приложены мануалы использованных микросхем и контроллеров, а так же программы MPLab, IC-Prog и PonyProg2000 на CD диске.
Список книг:
Заец Н.И. — Радиолюбительские конструкции на PIC-микроконтроллерах. С алгоритмами работы программ и подробными комментариями к исходным текстам. — М.: СОЛОН-Пресс, 2003. — 368 с. : ил. — (Серия “СОЛОН — радиолюбителям”, выпуск 22) ISBN 5-98003-078-6+CD
В книге представлено 20 описаний радиолюбительских устройств различного назначения: часы, таймеру, автоматы, программатор и многие другие, выполненные на микроконтроллере PIC16F84A. Впервые книга с различными устройствами на PIC-микроконтроллере предназначается для радиолюбителей с любым уровнем подготовленности. Даже те, кто не знаком с программированием микроконтроллеров, смогут без труда повторить любое устройство. Радиолюбители, имеющие опыт работы с программированием, могут изменить программы под свои цели. Для этого в книге даны алгоритмы работы и исходные тексты программ с подробными комментариями.
Содержание:
Устройства с цифровой индикацией
Часы с тремя будильниками
Часы с будильником — шахматные часы
Регистратор событий
Автомобильный цифровой тахометр
Программатор
Универсальный таймер
Автомат включения освещения
Счетчик витков
Кабельный пробник
Радиоохрана
Электронный домоуправ
Устройства с индикацией точечными светодиодами
Два автомата суточного включения нагрузки
Часы-будильник
Будильник с установкой времени
Походный будильник
«Песочные» часы
Автомат управления размораживанием холодильника
Рекомендации
Приложения
1 Справочные данные на микроконтроллер PIC16F84A
2 Команды микроконтроллера
4 Коды прошивок микроконтроллеров
5 PIC-микроконтроллеры в интернете
6 Сообщения MPASM
Литература
Заец Н. И. — Радиолюбительские конструкции на PIC-микроконтроллерах. С алгоритмами работы программ и подробными комментариями к исходным текстам. Книга 2. — М.: СОЛОН-Пресс, 2005. — 192 с.: ил. — (Серия “СОЛОН — радиолюбителям”) ISBN 5-98003-238-Х+CD
В книге даны новые примеры применения PIC-микроконтроллеров в радиолюбительской практике. Программисты найдут в книге программы с использованием встроенного в микроконтроллер модуля АЦП и программы с различными внешними устройствами — термодатчиками типа DS 18×20, LCD-дисплеями. Радиолюбители, которые желают повторить устройства, могут выбрать цифровой милливольтметр, для того чтобы защитить свой дом от перепадов напряжения, а трехфазный двигатель от перегрузки. Термометр-часы, градусник и два терморегулятора будут полезными в любом доме. Ко всем программам даны алгоритмы работы и подробные комментарии.
Содержание:
К читателям
Устройства с использованием АЦП
Милливольтметр
Цифровой прибор для блока питания с установкой защиты
Автомат защиты от перепадов сетевого напряжения
Устройство защиты от перепадов сетевого напряжения
Устройство защиты без индикации
Устройство защиты трехфазных двигателей
Устройства, измеряющие температуру
Т ермометр-часы
Два терморегулятора
Приложение
Коды прошивок микроконтроллеров
Литература
Заец Н.И. — Радиолюбительские конструкции на PIC-микроконтроллерах. Книга 3. — М.: СОЛОН-Пресс, 2006. — 240 с.: ил. — (Серия “СОЛОН — радиолюбителям”) ISBN 5-98003-250-9 + Приложение +CD
Третья книга расширяет диапазон применения PIC-микроконтроллеров в радиолюбительской практике. В ней дан пример программы с использованием встроенного в микроконтроллер модуля USART и различных внешних устройств — LCD-дисплеев и ЖКИ, выполненных по COG-технологии. Радиолюбители, которые желают повторить устройства, могут выбрать: охрану подворья, шахматные часы, таймеры на 7 и 9 выходов, а также автомат кормления аквариумных рыб. Для родной школы можно изготовить простое устройство подачи звонков по расписанию.
В отдельную главу вынесены «трудные темы» взаимодействия микроконтроллеров с внешними устройствами: ЖК-дисплеями и термодатчиками типа DS 18×20. Ко всем программам даны алгоритмы работы и подробные комментарии.
К книге прилагается КОМПАКТ-ДИСК, содержащий 48 исходных текстов программ ко всем устройствам четырех книг автора, («Электронные самоделки. Для быта, отдыха и здоровья» и «Радиолюбительские конструкции на PIC-микроконтроллерах» в трех книгах), вышедших в издательстве СОЛОН-Пресс, справочные материалы по микроконтроллерам на русском и английском языках, установочные программы для программаторов и ассемблера MPASM.
Книга предназначена для широкого круга радиолюбителей, а также может быть полезна студентам, изучающим программирование микроконтроллеров.
Содержание:
К читателям
Содержание компакт-диска
Необходимые для дома устройства
Охрана подворьем восемь объектов
Таймер на семь выходов
Таймер на девять выходов
Автомат кормления аквариумных рыб
Устройство подачи звонков по расписанию
Шахматные часы-таймер
Взаимодействие микроконтроллеров с внешними устройствами
Управление термодатчиками типа DS 18×20
Управление жидкокристаллическими дисплеями
Проверка ЖКИ типа TIC9162
Литература
Заец Н.И. — Радиолюбительские конструкции на PIC-микроконтроллерах. Книга 4. — К.: “МК-Пресс”, 2008. — 336 с.: ил. ISBN 978-966-8806-42-1+CD
Данная книга — практическое пособие по освоению микроконтроллеров PICmicro компании Microchip и другой современной элементной базы, наподобие индикаторов, выполненных по COG-технологии. Рассмотрены алгоритмы работы, схемы и программы для различных полезных устройств: многофункциональных часов, отображающих текущее время и температуру воздуха; автомобильных часов, фиксирующих время в пути и сообщающих о поломке реле-регулятора; автомата включения освещения; цифрового устройства для блока питания с установкой защиты по току и напряжению; специализированных термометров и др. Для начинающих дана глава о наладке устройств на микроконтроллерах. Книга предназначена для широкого круга радиолюбителей, а также может быть полезна студентам, изучающим программирование микроконтроллеров.
Содержание:
Принципиальная схема
Печатная плата
Общий вид
Работа с устройством
Калибровка термометра
Глава 2 Автомобильные часы, вольтметр, таймер
Принципиальная схема
Наладка устройства
Работа с устройством
Глава 3 Таймеры десятичного счета
Принципиальная схема
Печатная плата
Работа с таймером
Глава 4 Автомат включения освещения
Принципиальная схема
Работа с устройством
Глава 5 Два термометра с памятью
Принципиальная схема
Работа с устройством
Глава 6 Терморегулятор с гистерезисом
Принципиальная схема
Печатная плата
Работа с устройством
Глава 7 Термометр-градуснbк
Принципиальная схема
Работа с устройством
Глава 8 Усовершенствованное устройство для блока питания с установкой защиты
Принципиальная схема
Печатная плата
Наладка устройства
Работа с устройством
Глава 9 Контроллер трех насосов
Работа устройства
Глава 10 Наладка устройств на микроконтроллерах
Работа с программой PonyProg2000
Работа с программой IC-Prog
Устройство не работает
Устройство работает неправильно
Список литературы
Серия / Цикл: Радиолюбительские конструкции на PIC-микроконтроллерах
Год издания: 2003-2008
Издательство: Солон-Пресс
Формат: pdf, CD
Язык: русский
Размер: 156,52 Mb
Скачать Радиолюбительские конструкции на PIC-микроконтроллерах (4 книги +CD)
PIC-микроконтроллеры микроконтроллеры Заец
Программирование PIC16F876A.
Собираем схему с плавно мигающим светодиодом / ХабрЭта статья направлена на новичков в программировании микроконтроллеров семейства PIC16 от Microchip. В нашем случае, я выбрал немного превосходящий микроконтроллер для таких задач, а именно — PIC16F876A. Программирование микроконтроллера будем производить в MPLAB IDE.Цель работы: собрать схему, которая будет мигать светодиодом, внимание, с применением ШИМ.
И так, цель задачи обозначили. Теперь перейдем к реализации наших планов.
Часть 1. Железо.
В первую очередь нам понадобятся компоненты, из которых мы будем собирать схему. А именно:
- Микроконтроллер PIC16F876A
- Рассыпуха к нему
- Светодиод
- Макетная плата
Макетную плату желательно иметь в наличии.
В понятие «рассыпухи» входят такие детали как: пара конденсаторов для кварца и конденсатор на выход модуля CPP (Для того что бы сгладить пульсации).
Собранная схема выглядит следующим образом:
Это типовое включение микроконтроллера, ничего нового я тут не придумывал.
Так же, для программирования микроконтроллера я пользуюсь программатором-отладчиком ICD2. Он подключается к компьютеру по USB и прекрасно работает как на системе Windows, так и на GNU/Linux. В нашем случае будем использовать родной MPLAB IDE в Windows.
Скрин в процессе разработки:
Часть 2. Программная.
Светодиод подключаем на 1й модуль CPP (ШИМ). За настройку модуля в микроконтроллере отвечает регистр CPP1CON. Чтобы модуль у нас заработал, предварительно необходимо инициализировать таймер. Для режима ШИМ используется таймер TMR2. За его конфигурацию отвечает регистр T2CON. Инициализация:
movlw .0
bcf STATUS, 5movwf T2CON ; Помещаем в регистр T2CON - 0
bsf T2CON, 0 ; Устанавливаем бит T2CKPS0 (Предделитель)
bsf T2CON, 2 ; Включаем таймер TMR2 битом TMR2ON
bsf T2CON, 3 ; Устанавливаем бит TOUTPS0 (Постделение)
На этом инициализация таймера закончена. Теперь при включении контроллера от будет служить источником для нашего ШИМ модуля.
Инициализация ШИМ модуля происходит следующим образом:
movlw 00101111b ; Подготавливаем конфигурацию
movwf CPPCON ; Конфигурируем ШИМ
bsf CPPCON, 2 ; Включаем модуль ШИМ
Все, на этом инициализация закончена. Теперь мы можем помещать в регистр CPP1L число от 0 до 255, тем самым меняя скважность выходных импульсов.Полный исходник программы для прошивки нашего микроконтроллера:
STATUS equ 03h
TRISC equ 07h
CPPCON equ 17h
CPP1L equ 15h
T2CON equ 12h
counter equ 23h
tmp equ 25h
org 0
goto start
start
bsf STATUS, 5
movlw .0
movwf TRISC
bcf STATUS, 5
movwf T2CON
bsf T2CON, 0
bsf T2CON, 2
bsf T2CON, 3
movlw 00101111b
movwf CPPCON
bsf CPPCON, 2
movlw . 0
movwf CPP1L
movlw .255
movwf tmp
decfsz tmp, 1
goto $+2
goto $+4
call delay10mS
incf CPP1L, 1
goto $-5
movlw .255
movwf tmp
decfsz tmp, 1
goto $+2
goto $+4
call delay10mS
decf CPP1L, 1
goto $-5
goto $-16
delay10mS
movlw .50
movwf counter
loop
call delay200uS
decfsz counter
goto loop
return
delay200uS
movlw .100
addlw -1
btfss STATUS,2
goto $-2
return
end
Краткая заметка по командам, использованных в программе.equ — Присвоение имени на определенный адрес.
goto — Переход программы на метку, либо определенную строку
call — Вызов подпрограммы
movlw — Поместить в регистр W, число
movwf — Переместить из регистра W число
bsf — Установить бит в регистре, в состояние 1
bcf — Установить бит в регистре, в состояние 0
addlw — Прибавить в регистр W число
btfss — Проверить бит в регистре на 1
incf — Инкриминировать регистр (прибавить 1)
decf — Декриминировать регистр (вычесть 1)
decfsz — Вычесть 1 из регистра + проверка на 0
Задержки в программе откалиброваны на частоту кварцевого резонатора в 8мгц.
Принцип работы программы.
В начале, происходит инициализация регистров, затем настройка внутренних модулей микроконтроллера.
В переменной tmp мы можем задавать скважность, тем самым меняя максимальную яркость светодиода.
Далее реализована часть программы, которая отвечает за само мигание светодиода, с учетом использования ШИМ. Сначала, инкриминируя CPP1L до значения tmp мы заставляем светодиод медленно начать светиться, а затем делаем обратную операцию.
Часть 3. Финальная
Перед тем как прошивать Ваш контроллер, Вам необходимо установит биты конфигурации микроконтроллера. Без них, ничего работать не будет.
И так:
1) WDT — выключаем. Это сторожевой таймер. Предназначен для аппаратного сброса микроконтроллера в момент непредвиденного зависания.
2) LWP — выключаем. Это низковольтное программирование. Мы используем нормальный программатор, который подает на MCLR 13В.
3) Осцилятор: В данном случае мы имеем 8мгц. Значит ставим значение XT.
Часть 4. Бонусная.
Видео для тех, кто еще не программировал/не собирал схемы, но очень хочет увидеть результат:
Часть 5. Информация.
Официальный сайт microchip — www.microchip.com
Цитируемые источники — www.wikipedia.org
Русская документация для микроконтроллеров PIC — www.microchip.ru/lit/?mid=1×0
Простые часы будильник с двумя DS18B20 на PIC16F628A и PIC16F690
Простые часы будильник с двумя DS18B20 на PIC16F628A и PIC16F690Неактуально, рекомендую часы на 16F690
Часы PIC16F628 + будильник с 2 DS18B20.
При подаче питания на схему происходит автоопрделение LED индикатора Анод или Катод. Датчики температуры DS18B20 в данной схеме могут работать как по трёх проводной схеме так и по двухпроводной (режим паразитного питания). При сробатывании будильника на 1/4сек на выводах 1,2,17 и 18 одновременно выстовляется высокий уровень, при этом мигает дисплей. Для схемы с общим анодом достаточно элемента 2И.
Функции отображения девайсом: выбор времени, секунд, температуры датчик №1, датчика №2, будильник. Выбор отображения информации выполняется однократным нажатием клавиши.
Вход в настройки и переход между настройками выполняется при длительном удержании клавиши.
Редактирование настроек – однократное нажатие.
Переход по настройкам идёт по циклу: часы / минуты / секунды / датчик №1 / датчик №2 / будильник / коррекция хода часов(cr) / выбор попеременно-отображаемой информации(Lcd) / “выход”. Автовыход через 63 сек.
Настройка датчиков температуры выполняется с каждым по отдельности. Входим в настройки первого датчика, подключаем его ногу управления к схеме и жмём кратковременно клавишу, должны появиться его показания.
Переходим в настройки второго (длительно удержав клавишу), подключаем его ногу управления к схеме и жмём кратковременно клавишу, должны появиться его показания.
Выходим из настроек и оба датчика подключаем к схеме. При этом в PIC-контроллер записывается уникальный серийный номер каждого из датчиков по которому и будет дальнейший их опрос.
Имеется функция попеременного отображения информации (Lcd). “Lcd0” – отображается выбранная вами функция. “Lcd1” – попеременно время и термодатчик №1. “Lcd2” – попеременно время и термодатчик №2. “Lcd3” – попеременно термодатчик №1 и термодатчик №2. “Lcd4” – по кругу время, термодатчик №1, термодатчик №2.
Коррекция хода часов(cr) плюс минус одна единица соответствует плюс минус 1 сек за ~3 суток.
Схема:
Питание схемы от 5В. Без транзистора автоопределение анод или катод. С транзистором менять программу. Третья нога PICa (pin данных DS) также задействована под дежурный режим, низкий уровень отключение LCD, высокий включение LCD. Поэтому датчики DS18b20 запитывать от линии +5V.
Возможность работы схемы от батареек с переходом в режим энергосбережения (менее 1млА).
Прошивка и схема часы PIC16F628 + будильник с 2 DS18B20 – скачать
в одном архиве new! 19. 12.12.
Исходник (asm) и прошивка старого проекта термометра PIC16F628(A) – скачать
в одном архиве
Частые проблемы: датчик DS врёт на +2С – т.к. подогревается от соседних деталей, вынести подальше.
Индикатор расположен со стороны печати дорожек.
Тестовый вариант. Продолжение проекта с расширенными возможностями часы + два термометра на PIC16F690A с DS18B20. Авторегулировка яркости по освещённости. На транзисторах с большими индикаторами ОА. В планах беспроводная температура улицы на PIC12F629.
Прошивка и схема часы PIC16F690 с 2 DS18B20 автояркость – скачать
в одном архиве тест! 09.01.13.
[email protected]
Схемы лучшего программатора для pic. Простейший программатор JDM для PIC на пассивных компонентах. Заводской программатор от Microchip
1. ПРОГРАММАТОР ДЛЯ PIC-КОНТРОЛЛЕРОВ
Я надеюсь, что моя статья поможет некоторым радиолюбителям перешагнуть порог от цифровой техники к микроконтроллерам. В Интернете и радиолюбительских журналах много программаторов: от самых простых до очень накрученных. Мой не очень сложный, но надежный.
Первый вариант программатора предназначен для программирования 18-ти и 28-ми “пиновых” PIC контроллеров. В основу программатора положена схема из журнала Радио № 10 за 2007 год. Но подбор конденсатора С7, эксперименты с разными вариантами ICprog, PonyProg, WinPic и скоростями чтения-записи не дали желаемого результата: успешное программирование получалось через раз. И это продолжалось до тех пор, пока не сделал питание +5В программируемой микросхемы отдельно, а не после 12-ти вольтного стабилизатора. Получилась такая схема.
Опасаясь сбоев, печатку рисовал так, чтобы плата вставлялась непосредственно в Com-порт, что не очень просто из-за всевозможных «шнурков» и малого расстояния до корпуса. Получилась печатка неправильной формы, но вставляется в СОМ-порт нормально и программирует без ошибок.
Со временем сделал шнур-удлинитель длинной около 1 метра. Теперь программатор лежит рядом с монитором и подключен к COM порту. Работает нормально: многократно программировались микроконтроллеры PIC16F84A, PIC16F628A, PIC16F873A.
Обратите внимание: микросхема Мах и светодиоды установлены со стороны печатных проводников. Панельки – ZIF-28, одна из них служит для 18-ти выводных PIC. На панельках нанесены метки первых ножек и числа «18» и «28». В корпусе вилки-адаптера установлен трансформатор 220 на 15 вольт, 4 ватта. Включать в розетку нужно после установки микроконтроллера в панельку. Транзисторы n-p-n маломощные высокочастотные (300Мгц) в корпусе to-92.
Разъём XP временно не устанавливал, а потом оказалось, что он особо и не нужен. Пришлось как-то программировать впаянный МК, так я провода прямо в ZIF вставил и зафиксировал. Перепрограммирование прошло успешно.
Я работаю c программами ICprog и WinPic-800.
В программе IC-prog 1.05D следующие настройки программатора:
- Программатор – JDM Programmer
- Порт –Com1
- Прямой доступ к портам.
- Инверсия: ввода, вывода и тактирования (поставить галочки).
В WinPic-800 –v.3.64f всё идентично, только нужно еще поставить “птицу” в использовании MCLR.
В интернете можно свободно и бесплатно скачать эти программы. Но для облегчения жизни, я попробую приложить все необходимое. Просто вспомнил: сколько всяких “ненужностей” я сам накачал с интернета, и сколько времени на разборки всего этого потратил.
- Печатная плата программатора
- Программа WinPic-800 ( )
- Программа IC-Prog ()
- Статья по IC-Prog.
2. ПРОГРАММАТОР-2 ДЛЯ PIC-КОНТРОЛЛЕРОВ
Со временем появилась необходимость в программировании 14-ти и 40-ка “пиновых” пиков. Решил сделать программатор для всего среднего семейства PIC-ов. Схема та же, только добавились две панельки. Всё это разместилось в корпусе от бывшего мультиметра.
В печатную плату 13 февраля 2014 года внесено исправление: от 5-го контакта разъёма RS232 дорожка идет к минусу питания (а на прежней – к 6-ой ножке микросхемы МАХ). Новая печатка в “programer2-2”.
Можно сэкономить одну КРЕН-ку. Т.е. подключать от одного 5-ти вольтного стабилизатора всю схему. VR3 и С9 не устанавливать, а поставить перемычку (на схеме указана пунктиром). Но я пока КРЕНку не выпаивал. Многократно программировал PIC16F676, 628А, 84А и 873А. Но еще не пробовал 877.
Некоторые конденсаторы установлены со стороны печатных проводников. КРЕНки располагаются в горизонтальном положении. Чтобы не прокладывать проводники, я установил С7 – 2шт и R12 – 3шт.
Очень важно: корпус разъёма RS232 должен быть соединен с минусом питания.
Блок питания (15 В) и программы используются те же, что и в первом варианте.
Список радиоэлементов
Обозначение | Тип | Номинал | Количество | Примечание | Магазин | Мой блокнот | |
---|---|---|---|---|---|---|---|
Схема 1 | |||||||
DD1 | ИС RS-232 интерфейса | MAX232E | 1 | MAX232CPE | В блокнот | ||
VT1-VT4 | Биполярный транзистор | 2N3904 | 4 | TO-92 | В блокнот | ||
VDS1 | Диодный мост | DB157 | 1 | В блокнот | |||
VD1 | Выпрямительный диод | 1N4148 | 1 | В блокнот | |||
VR1, VR3 | Линейный регулятор | L7805AB | 1 | В блокнот | |||
VR2 | Линейный регулятор | KA78R12C | 1 | В блокнот | |||
С1 | 470 мкФ 35В | 1 | В блокнот | ||||
С2, С3, С5, С6 | Электролитический конденсатор | 10 мкФ 50В | 4 | В блокнот | |||
С4, С8 | Электролитический конденсатор | 470 мкФ 16В | 2 | В блокнот | |||
С7 | Электролитический конденсатор | 1 мкФ 25В | 1 | В блокнот | |||
С11 | Конденсатор | 0. 1 мФ | 1 | В блокнот | |||
R1, R7 | Резистор | 10 кОм | 2 | В блокнот | |||
R2 | Резистор | 470 Ом | 1 | В блокнот | |||
R3, R5, R11 | Резистор | 4.7 кОм | 3 | В блокнот | |||
R4, R10 | Резистор | 2 кОм | 2 | В блокнот | |||
R6, R8, R9 | Резистор | 1 кОм | 3 | В блокнот | |||
R12 | Резистор | 240 Ом | 1 | В блокнот | |||
HL1 | Светодиод | 1 | Красный | В блокнот | |||
HL2 | Светодиод | 1 | Зеленый | В блокнот | |||
Схема 2 | |||||||
DD1 | ИС RS-232 интерфейса | MAX232E | 1 | MAX232CPE | В блокнот | ||
VT1-VT4 | Биполярный транзистор | 2N3904 | 4 | TO-92 | В блокнот | ||
VDS1 | Диодный мост | DB157 | 1 | В блокнот | |||
VD1 | Выпрямительный диод | 1N4148 | 1 | В блокнот | |||
VR1, VR3 | Линейный регулятор | L7805AB | 2 | В блокнот | |||
VR2 | Линейный регулятор | KA78R12C | 1 | В блокнот | |||
C1, C2, C4, C5 | Конденсатор | 10мкФ 50В | 4 | В блокнот | |||
C3 | Электролитический конденсатор | 470мкФ 35В | 1 | В блокнот | |||
C6, C9 | Электролитический конденсатор | 470мкФ 16В | 2 | В блокнот | |||
C7. 1-C7.3 | Конденсатор | 0.1 мкФ | 3 |
Однажды я решил собрать несложный LC-метр на pic16f628a и естественно его надо было чем-то прошить. Раньше у меня был компьютер с физическим com-портом, но сейчас в моём распоряжении только usb и плата pci-lpt-2com. Для начала я собрал простой JDM программатор, но как оказалось ни с платой pci-lpt-com, ни с usb-com переходником он работать не захотел (низкое напряжение сигналов RS-232). Тогда я бросился искать usb программаторы pic, но там, как оказалось всё ограничено использованием дорогих pic18f2550/4550, которых у меня естественно не было, да и жалко такие дорогие МК использовать, если на пиках я очень редко что-то делаю (предпочитаю авр-ы, их прошить проблем не составляет, они намного дешевле, да и программы писать мне кажется, на них проще). Долго копавшись на просторах интернета в одной из множества статей про программатор EXTRA-PIC и его всевозможные варианты один из авторов написал, что extrapic работает с любыми com-портами и даже переходником usb-com.
В схеме данного программатора используется преобразователь логических уровней max232.
Я подумал, если использовать usb адаптер, то будет очень глупо делать два раза преобразование уровней usb в usart TTL, TTL в RS232, RS232 обратно в TTL, если можно просто взять TTL сигналы порта RS232 из микросхемы usb-usart преобразователя.
Так и сделал. Взял микросхему Ch440G (в которой есть все 8 сигналов com-порта) и подключил её вместо max232. И вот что получилось.
В моей схеме есть перемычка jp1, которой нет в экстрапике, её я поставил потому что, не знал, как себя поведёт вывод TX на ТТЛ уровне, поэтому сделал возможность его инвертировать на оставшемся свободном элементе И-НЕ и не прогадал, как оказалось, напрямую на выводе TX логическая единица, и поэтому на выводе VPP при включении присутствует 12 вольт, а при программировании ничего не будет (хотя можно инвертировать TX программно).
После сборки платы пришло время испытаний. И тут настало главное разочарование. Программатор определился сразу (программой ic-prog) и заработал, но очень медленно! В принципе – ожидаемо. Тогда в настройках com порта я выставил максимальную скорость (128 килобод) начал испытания всех найденных программ для JDM. В итоге, самой быстрой оказалась PicPgm. Мой pic16f628a прошивался полностью (hex, eeprom и config) плюс верификация где-то 4-6 минут (причём чтение идёт медленнее записи). IcProg тоже работает, но медленнее. Ошибок про программировании не возникло. Также я попробовал прошить eeprom 24с08, результат тот же – всё шьёт, но очень медленно.
Выводы: программатор достаточно простой, в нём нет дорогостоящих деталей (Ch440 – 0.3-0.5$ , к1533ла3 можно вообще найти среди радиохлама), работает на любом компьютере, ноутбуке (и даже можно использовать планшеты на windows 8/10). Минусы: он очень медленный. Также он требует внешнее питание для сигнала VPP. В итоге, как мне показалось, для нечастой прошивки пиков – это несложный для повторения и недорогой вариант для тех, у кого нет под рукой древнего компьютера с нужными портами.
Вот фото готового девайса:
Как поётся в песне “я его слепила из того, что было”. Набор деталей самый разнообразный: и smd, и DIP.
Для тех, кто рискнёт повторить схему, в качестве usb-uart конвертера подойдёт почти любой (ft232, pl2303, cp2101 и др), вместо к1533ла3 подойдёт к555, думаю даже к155 серия или зарубежный аналог 74als00, возможно даже будет работать с логическими НЕ элементами типа к1533лн1. Прилагаю свою печатную плату, но разводка там под те элементы, что были в наличии, каждый может перерисовать под себя.
Список радиоэлементов
Обозначение | Тип | Номинал | Количество | Примечание | Магазин | Мой блокнот |
---|---|---|---|---|---|---|
IC1 | Микросхема | Ch440G | 1 | В блокнот | ||
IC2 | Микросхема | К1533ЛА3 | 1 | В блокнот | ||
VR1 | Линейный регулятор | LM7812 | 1 | В блокнот | ||
VR2 | Линейный регулятор | LM7805 | 1 | В блокнот | ||
VT1 | Биполярный транзистор | КТ502Е | 1 | В блокнот | ||
VT2 | Биполярный транзистор | КТ3102Е | 1 | В блокнот | ||
VD1-VD3 | Выпрямительный диод | 1N4148 | 2 | В блокнот | ||
C1, C2, C5-C7 | Конденсатор | 100 нФ | 5 | В блокнот | ||
C3, C4 | Конденсатор | 22 пФ | 2 | В блокнот | ||
HL1-HL4 | Светодиод | Любой | 4 | В блокнот | ||
R1, R3, R4 | Резистор | 1 кОм | 3 |
Итак, пришло время изучать микроконтроллеры, а потом и их программировать, а так же хотелось собирать устройства на них, схем которых сейчас в интернете ну просто море. Ну нашли схему, купили контроллер, скачали прошивку….а прошивать то чем??? И тут перед радиолюбителем, начинающим осваивать микроконтроллеры, встает вопрос – выбор программатора! Хотелось бы найти оптимальный вариант, по показателю универсальность – простота схемы – надёжность. «Фирменные» программаторы и их аналоги были сразу исключены в связи с довольно сложной схемой, включающей в себя те же микроконтроллеры, которые необходимо программировать. То есть получается «замкнутый круг»: что бы изготовить программатор, необходим программатор. Вот и начались поиски и эксперименты! В начале выбор пал на PIC JDM. Работает данный программатор от com порта и питается от туда же. Был опробован данный вариант, уверенно запрограммировал 4 из 10 контроллеров, при питании отдельном ситуация улучшилась, но не на много, на некоторых компьютерах он вообще отказался что либо делать да и защиты от «дурака» в нем не предусмотрено. Далее был изучен программатор Pony-Prog. В принципе, почти тоже самое что и JDM. Программатор «Pony-prog», представляет очень простую схему, с питанием от ком-порта компьютера, в связи с чем, на форумах, в Интернете, очень часто появляются вопросы по сбоям при программировании того, или иного микроконтроллера. В результате, выбор был остановлен на модели «Extra-PIC». Посмотрел схему – очень просто, грамотно! На входе стоит MAX 232 преобразующая сигналы последовательного порта RS-232 в сигналы, пригодные для использования в цифровых схемах с уровнями ТТЛ или КМОП, не перегружает по току COM-порт компьютера, так как использует стандарт эксплуатации RS232, не представляет опасности для COM-порта.Вот первый плюс!
Работоспособен с любыми COM-портами, как стандартными (±12v; ±10v) так и с нестандартными COM-портами некоторых моделей современных ноутбуков, имеющих пониженные напряжения сигнальных линий, вплоть до ±5v – еще плюс! Поддерживается распространёнными программами IC-PROG, PonyProg, WinPic 800 (WinPic800) и другими – третий плюс!
И питается это все от своего собственного источника питания!
Было решено – надо собирать! Так в журнале Радио 2007 №8 был найден доработанный вариант этого программатора. Он позволял программировать микроконтроллеры в двух режимах.
Известны два способа перевода микроконтроллеров PICmicro в режим программирования:
1.При включённом напряжении питания Vcc поднять напряжение Vpp (на выводе -MCLR) от нуля до 12В
2.При выключенном напряжении Vcc поднять напряжение Vpp от нуля до 12В, затем включить напряжение Vcc
Первый режим – в основном для приборов ранних разработок, он накладывает ограничения на конфигурацию вывода -MCLR, который в этом случае может служить только входом сигнала начальной установки, а во многих микроконтроллерах предусмотрена возможность превратить этот вывод в обычную линию одного из портов. Это еще один плюс данного программатора. Схема его приведена ниже:
Крупнее
Все было собрано на макетке и опробовано. Все прекрасно и устойчиво работает, глюков замечено небыло!
Была отрисована печатка для этого программатора.
depositfiles.com/files/mk49uejin
все было собрано в открытый корпус, фото которого ниже.
Соединительный кабель был изготовлен самостоятельно из отрезка восьмижильного кабеля и стандартных комовских разьемах, никакие нуль модемные тут не прокатят, предупреждаю сразу! К сборке кабеля следует отнестись внимательно, сразу избавитесь от головной боли в дальнейшем. Длина кабеля должна быть не более полутора метров.
Фото кабеля
Итак, программатор собран, кабель тоже, наступил черед проверки всего этого хозяйства на предмет работоспособности, поиск глюков и ошибок.
Сперва наперво устанавливаем программу IC-prog, которую можно скачать на сайте разработчика www.ic-prog.com, Распакуйте программу в отдельный каталог. В образовавшемся каталое должны находиться три файла:
icprog.exe – файл оболочки программатора.
icprog.sys – драйвер, необходимый для работы под Windows NT, 2000, XP. Этот файл всегда должен находиться в каталоге программы.
icprog.chm – файл помощи (Help file).
Установили, теперь надо бы ее настроить.
Для этого:
1. (Только для Windows XP): Правой кнопкой щёлкните на файле icprog.exe. «Свойства» >> вкладка «Совместимость» >> Установите «галочку» на «Запустить программу в режиме совместимости с:» >>выберите «Windows 2000».
2.Запустите файл icprog.exe. Выберите «Settings» >> «Options» >> вкладку «Language» >> установите язык «Russian» и нажмите «Ok».
Согласитесь с утверждением «You need to restart IC-Prog now» (нажмите «Ok»). Оболочка программатора перезапустится.
Настройки” >> «Программатор
1.Проверьте установки, выберите используемый вами COM-порт, нажмите „Ok“.
2.Далее, „Настройки“ >> „Опции“ >> выберите вкладку „Общие“ >> установите „галочку“ на пункте „Вкл. NT/2000/XP драйвер“ >> Нажмите „Ok“ >> если драйвер до этого не был устновлен на вашей системе, в появившемся окне „Confirm“ нажмите „Ok“. Драйвер установится, и оболочка программатора перезапустится.
Примечание:
Для очень „быстрых“ компьютеров возможно потребуется увеличить параметр „Задержка Ввода/Вывода“. Увеличение этого параметра увеличивает надёжность программирования, однако, увеличивается и время, затрачиваемое на программирование микросхемы.
3.»Настройки” >> «Опции» >> выберите вкладку «I2C» >> установите «галочки» на пунктах: «Включить MCLR как VCC» и «Включить запись блоками». Нажмите «Ok».
4.«Настройки» >> «Опции» >> выберите вкладку «Программирование» >> снимите «галочку» с пункта: «Проверка после программирования» и установите «галочку» на пункте «Проверка при программировании». Нажмите «Ok».
Вот и настроили!
Теперь бы нам протестировать программатор в месте с IC-prog. И тут все просто:
Далее, в программе IC-PROG, в меню, запустите: Настройки >> Тест Программатора
Перед выполнением каждого пункта методики тестирвания, не забывайте устанавливать все «поля» в исходное положение (все «галочки» сняты), как показано на рисунке выше.
1.Установите «галочку» в поле «Вкл. Выход Данных», при этом, в поле «Вход Данных» должна появляться «галочка», а на контакте (DATA) разъёма X2, должен установиться уровень лог. «1» (не менее +3,0 вольт). Теперь, замкните между собой контакт (DATA) и контакт (GND) разъёма X2, при этом, отметка в поле «Вход Данных» должна пропадать, пока контакты замкнуты.
2.При установке «галочки» в поле «Вкл. Тактирования», на контакте (CLOCK) разъёма X2, должен устанавливаться уровень лог. «1». (не менее +3,0 вольт).
3.При установке «галочки» в поле «Вкл. Сброс (MCLR)», на контакте (VPP) разъёма X3, должен устанавливаться уровень +13,0… +14,0 вольт, и светиться светодиод D4 (обычно красного цвета).Если переключатель режимов поставить в положение 1 то будет светится светодиод HL3
Если при тестировании, какой-либо сигнал не проходит, следует тщательно проверить весь путь прохождения этого сигнала, включая кабель соединения с COM-портом компьютера.
Тестирование канала данных программатора EXTRAPIC:
1. 13 вывод микросхемы DA1: напряжение от -5 до -12 вольт. При установке «галочки»: от +5 до +12 вольт.
2. 12 вывод микросхемы Da1: напряжение +5 вольт. При установке «галочки»: 0 вольт.
3. 6 вывод микросхемы DD1: напряжение 0 вольт. При установке «галочки»: +5 вольт.
3. 1 и 2 вывод микросхемы DD1: напряжение 0 вольт. При установке «галочки»: +5 вольт.
4. 3 вывод микросхемы DD1: напряжение +5 вольт. При установке «галочки»: 0 вольт.
5. 14 вывод микросхемы DA1: напряжение от -5 до -12 вольт. При установке «галочки»: от +5 до +12 вольт.
Если все тестирование прошло успешно, то программатор готов к эксплуатации.
Для подключения микроконтроллера к программатору можно использовать подходящие панельки или же сделать адаптер на основе ZIF панельки (с нулевым усилием прижатия), например как здесь radiokot.ru/circuit/digital/pcmod/18/.
Теперь несколько слов про ICSP – Внутрисхемное программирование
PIC-контроллеров.
При использовании ICSP на плате устройства следует предусмотреть возможность подключения программатора. При программировании с использованием ICSP к программатору должны быть подключены 5 сигнальных линий:
1. GND (VSS) – общий провод.
2. VDD (VCC) – плюс напряжение питания
3. MCLR” (VPP)- вход сброса микроконтроллера / вход напряжения программирования
4. RB7 (DATA) – двунаправленная шина данных в режиме программирования
5. RB6 (CLOCK) Вход синхронизации в режиме программирования
Остальные выводы микроконтроллера не используются в режиме внутрисхемного программирования.
Вариант подключения ICSP к микроконтроллеру PIC16F84 в корпусе DIP18:
1.Линия MCLR” развязывается от схемы устройства перемычкой J2, которая в режиме внутрисхемного программирования (ICSP) размыкается, передавая вывод MCLR в монопольное управление программатору.
2.Линия VDD в режиме программирования ICSP отключается от схемы устройства перемычкой J1. Это необходимо для исключения потребления тока от линии VDD схемой устройства.
3.Линия RB7 (двунаправленная шина данных в режиме программирования) изолируется по току от схемы устройства резистором R1 номиналом не менее 1 кОм. В связи с этим максимальный втекающий/стекающий ток, обеспечиваемый этой линией будет ограничен резистором R1. При необходимости обеспечить максимальный ток, резистор R1 необходимо заменить (как в случае c VDD) перемычкой.
4.Линия RB6 (Вход синхронизации PIC в режиме программирования) так же как и RB7 изолируется по току от схемы устройства резистором R2, номиналом не менее 1 кОм. В связи с этим максимальный втекающий/стекающий ток, обеспечиваемый этой линией будет ограничен резистором R2. При необходимости обеспечить максимальный ток, резистор R2 необходимо заменить (как в случае с VDD) перемычкой.
Расположение выводов ICSP у PIC-контроллеров:
Эта схема только для справки, выводы программирования лучше уточнить из даташита на микроконтроллер.
Теперь рассмотрим прошивку микроконтроллера в программе IC-prog. Будем рассматривать на примере конструкции вот от сюда rgb73.mylivepage.ru/wiki/1952/579
Вот схема устройства
вот прошивка
Прошиваем контроллер PIC12F629. Данный микроконтроллер для своей работы использует константу osccal – представляет собой 16-ти ричное значение калибровки внутреннего генератора МК, с помощью которого МК отчитывает время при выполнении своих программ, которая записана в последней ячейке данных пика. Подключаем данный микроконтроллер к программатору.
Ниже на сриншоте красными цифрами показана последовательность действий в программе IC-prog.
1. Выбрать тип микроконтроллера
2. Нажать кнопку «Читать микросхему»
В окне «Программный код» в самой последней ячейке будет наша константа для данного контроллера. Для каждого контроллера константа своя! Не сотрите ее, запишите на бумажку и наклейте ее на микросхему!
Идем далее
3. Нажимаем кнопку «Открыть файл…», выбираем нашу прошивку. В окне программного кода появится код прошивки.
4. Спускаемся к концу кода, на последней ячейке жмем правой клавишей мыши и выбираем в меню «править область», в поле «Шестнадцатеричные» вводим значение константы, которую записали, нажимаем «ОК».
5. Нажимаем «программировать микросхему».
Пойдет процесс программирования, если все прошло успешно, то программа выведет соответствующее уведомление.
Вытаскиваем микросхему из программатора и вставляем в собранный макет. Включаем питание. Нажимаем кнопку пуск.Ура работает! Вот видео работы мигалки
video.mail.ru/mail/vanek_rabota/_myvideo/1.html
С этим разобрались. А вот что делать если у нас есть файл исходного кода на ассемблере asm, а нам нужен файл прошивки hex? Тут необходим компилятор. и он есть – это Mplab, в этой программе можно как писать прошивки так и компилировать. Вот окно компилятора
Устанавливаем Mplab
Находим в установленной Mplab программу MPASMWIN.exe, обычно находится в папке – Microchip – MPASM Suite – MPASMWIN.exe
Запускаем ее. В окне (4) Browse находим наш исходник (1) .asm, в окне (5) Processor выбираем наш микроконтроллер, нажимаем Assemble и в той же папке где вы указали исходник появится ваша прошивка.HEX Вот и все готово!
Надеюсь эта статья поможет начинающим в освоении PIC контроллеров! Удачи!
Так уж сложилось, что знакомство с микроконтроллерами я начал с AVR. PIC микроконтроллеры до поры, до времени — обходил стороной. Но, все же на них тоже ведь есть уникальные, интересные для повторения, конструкции! А ведь эти микроконтроллеры тоже прошивать нужно . Эту статью пишу в основном для себя самого. Чтобы не забыть технологии, как без проблем и бессмысленных потерь времени прошить PIC микроконтроллер.
Для первой схемы — долго и упорно пытался сделать PIC программатор по найденным в интернете схемам — ничего не вышло . Стыдно, но пришлось обращаться к знакомому, чтобы прошил МК. Но ведь это не дело — постоянно бегать по знакомым! Этот же знакомый и посоветовал простенькую схему, работающую от СОМ порта. Но даже и тогда, когда я ее собрал — все равно ничего не получалось . Ведь мало собрать программатор — нужно еще под него настроить программу, которой будем прошивать. А вот как раз это у меня и не получалось. Целая туча инструкций в интернете, и мало какая мне помогла…
Тогда, мне удалось прошить один микроконтроллер. Но так как прошивал в условиях жесткого дефицита времени — не догадался сохранить хотя бы ссылку на инструкцию. И ведь не нашел ее вполедствии. Поэтому повторюсь — пишу статью, чтобы иметь свою собственную инструкцию.
Итак, программатор для PIC микроконтроллеров. Простой, хотя и не 5 проводков, как для AVR микроконтроллеров, который я использую до сих пор. Вот схема:
Вот печатная плата ().
СОМ разъем припаивается штырьками прямо на контактные площадки (главное — не запутаться с нумерацией). Второй ряд штырьков соединяется с платой маленькими перемычками (очень непонятно сказал, ага). Попробую дать фотографию… хоть она и страшная (нету у меня сейчас нормального фотоаппарата ).
Самое злобное в том — что для PIC микроконтроллеров для прошивки нужны 12 вольт. А лучше не 12, а чуточку побольше. Скажем, 13. Или 13.5 (кстати, специалисты — поправьте меня в комментариях, если ошибаюсь. Пожалуйста.). 12 вольт еще можно где-то добыть. А 13 где? Я то выходил из положения просто — брал свежезаряженный литий-полимерный аккумулятор, в котором было 12.6 вольт. Ну или вообще четырехбаночный аккумулятор, с его 16 вольтами (прошил так один PIC — без проблем).
Но я опять отвлекся. Итак — инструкция по прошивке PIC микроконтроллеров. Ищем программу WinPIC800 (к сожалению простая и популярная icprog у меня не заработала,) и настраиваем ее так, как показано на скриншоте.
После этого — открываем файл прошивки, подключаем микроконтроллер и прошиваем.
За основу предлагаемого программатора взята публикация из журнала «Радио» №2, 2004г, «Программирование современных PIC16, PIC12 на PonyProg». Это мой первый программатор, который я использовал для прошивки PIC микросхем дома. Программатор представляет собой упрощенный вариант JDM программатора, оригинальная схема имеет преобразователь RS-232 на TTL в виде микросхемы MAX232, она более универсальна, но ее «на коленке» уже не соберешь. Данная схема не имеет вообще ни одного активного компонента, не содержит дефицитных деталей и очень проста, может быть собрана без применения печатной платы.
Рис. 1: Принципиальная схема программатора.
Описание работы схемы
Схема программатора представлена на рис. 1. Резисторы по цепям CLK (тактирование), DATA (информационный), Upp (напряжение программирования) служат для ограничения протекающего тока. PIC контроллеры защищены от пробоя встроенными стабилитронами, поэтому получается некоторая совместимость TTL и RS-232 логики. В представленной схеме присутствуют диоды VD1, VD2, которые «отбирают» плюсовое напряжение от COM порта относительно 5 контакта и передают его на питание контроллера, благодаря чему в некоторых случаях удается избавиться от дополнительного источника питания.
Налаживание
На практике не всегда случается, что данный программатор заработает без налаживания, с 1-го раза, т.к. работа данной схемы сильно зависит от параметров COM порта. Однако у меня, на двух материнских платах Gigabyte 8IPE1000 и WinFast под XP все заработало сразу. Если Вам лень разбираться с неработающей, более сложной схемой программатора, то стоит попробовать собрать эту. Вот некоторые вещи, которые могут повлиять:
Чем новее мат. плата, тем разработчики уделяют этим портам меньше внимания, потому что эти порты давно стали морально устаревшими. Избавиться от этого можно, купив переходник USB-COM, правда опять же купленное устройство может не подойти. Нужные параметры таковы: изменяемое напряжение должно меняться не менее -10В до +10В (лог. 0 и 1) относительно 5-го контакта разъема. Отдааваемый ток должен быть хотя бы таким, чтобы при подключеннии резистора 2,7 кОм между 5-м контактом и исследуемым контактом напряжение не падало ниже 10В (сам таких плат не встречал). Также порт должен правильно определять напряжения, поступающие от контроллера, при уровне напряжения близкого к 0В, но не больше 2В определяется нуль, и соответственно при выше 2В определяется единица.
Также проблемы могут возникнуть из за программного обеспечения.
Особенно это касается ОС LINUX, т.к. из за наличия эмуляторов типа wine, VirtualBox порты могут работать неправильно, а возможностей от них требуется много. Этих проблем я коснусь подробнее в другой статье.
Зная эти особенности, приступим к налаживанию.
Для этого очень желательно иметь программу ICProg 1. 05D.
В меню программы нужно во первых выбрать в настройках соотв. порт (COM1. COM2), выбрать JDM программатор. Затем открыть окно «Hardware Check», в меню «Settings». В этом меню нужно по очереди ставить галочки и вольтметром измерять напряжение на контактах подключенного разъема. Если параметры напряжения не соответствуют норме, то к сожалению, это может быть причиной неработоспособности, тогда придется собирать схему с преобразователем RS-232 TTL. Отметив все галочки, нужно убедиться, что на стабилитроне образуется напряжение питания около 5В. Если напряжения в норме и отсутствуют ошибки монтажа, то все должно сработать. Ставим контроллер в панельку, открываем прошивку, программируем. Галочки типа «Invert data out» включать не надо (все сняты). Также не нужно забывать, что некоторые партии контроллеров могут иметь не совсем стандартные параметры, и их прошить не получается, в таких случаях с данным программатором можно попробовать только снизить напряжение питания с 5В до 3-4В, подключив соотв. стабилитрон, посмотреть контроллер на предмет ошибочного включения режима LVP (низковольтное программирование), как предотвратить, можно прочитать в Интернете для конкретного типа контроллера. Повысить напряжение программирования проблеммного контроллера можно, наверное, только усложнив схему введением усилительного каскада с общим эмиттером, запитанного от дополнительного источника питания.
Теперь подробнее о проблеме с питанием устройства. Программатор тестировался с программами ICProg и консольным picprog под Linux, должен работать с любым, который поддерживает JDM, если подключить дополнительный источник питания (он подключается через резистор 1кОм к стабилитрону, диоды с резисторами в этом случае можно вообще исключить). Дело в том, что алгоритмы управления программаторов у отдельного софта разные, программа ICProg, является самой неприхотливой. Замечено, что в ОС Windows эта программа на неиспользуемом контакте 2 поднимала нужное напряжение питания, эта же программа под эмулятором в Linux на другой мат. плате уже не смогла этого сделать, однако выход был найден, отбирая питание из напряжения программирования. В общем, с ICProg, думаю, можно применять этот программатор без дополнительного питания. С другим софтом это гарантировать врядли получится, например, «родной» из репозиториев Ubuntu picprog без питания просто не определяет программатор, выдавая сообщение «JDM hardware not found». Вероятно, он либо принимает какие-то данные, не подавая напряжение программирования, либо делает это слишком быстро, таким образом что фильтрующий конденсатор еще не успевает зарядиться.
Примеры построения кода программ для PIC-контроллеров
Кликните на картинку для перехода на страницу описания.
Заготовки программ на Си.
Начать проект, это подготовить начало самой программы. Нужна так называемая заготовка от которой можно отталкиваться. В который были бы все начальные функции по конфигурации контроллера. Этот раздел предназначен для того, что бы можно было взять заготовку и начать проектирование.
Управление светодиодом
(проект использует для программирования Serial Bootloader AN1310)
Чтение состояния кнопок
(проект использует для программирования Serial Bootloader AN1310)
Чтение состояния кнопок 2 – простая функция удержания клавиши
Измерение относительной влажности. Использование аналоговых датчиков фирмы honeywell (HIH-36xx, HIH-40xx) (пример использует для программирования Serial Bootloader AN1310)
Декодирование команд пульта дистанционного управления APA 1616 или использование модуля ССР для декодирования.
Пример построения простого ШИМ на PIC-контроллерах с использование модулей CCP (пример использует для программирования Serial Bootloader AN1310).
Пример управления аналоговым сервоприводом на PIC-контроллерах с использование модулей CCP (пример использует для программирования Serial Bootloader AN1310).
Измерение расстояния при помощи ультразвукового модуля HC-SR04
DHT11 – Датчик влажности и температуры
Часы реального времени M41T56
Среднее число интересный метод вычисление среднего.
Проекты на микроконтроллерах PIC10 – Емкостной сенсор, Датчик приближение, Датчик движения, Диммер для светодиодного освещения
В помощь конструктору – Мелкие программки в ME для упрощение расчетов.
Один вариант функций для записи и чтения данных в EEPROM для 8-битных микроконтроллеров (которые имеют и перезаписываемую и память программ).
Вычисление CRC16
еще будет..
Модуль CAPTURE/COMPARE/PWM – захват, сравнение, ШИМ
Формирование звука Сенсоры (измерения физических величин)
Цифровые датчики температуры
Аналоговые (модуль АЦП)
Измерение напряжения на потенциометре
Аналоговые датчики температуры
Измерение напряжения
Измерение емкости (модули CTMU, CPS)Емкостной сенсор прикосновения
Таймер TMR1
Передача данных (модули MSSP, EUSART)
Цифровые (работа с цифровыми портами ввода/вывода)
Пример минимального кода для загрузчика AN1310
Пример минимального кода для использования с программатором
Сравнение ШИМ
“Примеры построения кода программ для PIC-контроллеров”
I2C SPI UART LED индикаторы
Семисегментные индикаторы8х8 знакосинтезирующие индикаторы LCD индикаторы
Это может быть интересно
- TM1650 драйвер LED семисегментного индикатора
Китайский производитель Shenzhen Titan Micro Electronics Co. , Ltd. Выпускает широкую линейку драйверов управления светодиодными дисплеями, которые позволяют разгрузить микроконтроллер для основной работы, главная особенность этих драйверов не только в их …
- Проблемы классической светомузыки
Светомузыка – что это такое? Определение: Светомузыка (жаргонное: цветомузыка) — вид искусства, основанный на способности человека ассоциировать звуковые ощущения со световыми восприятиями. Такое явление в неврологии получило название – синестезии. …
- AD9833 – Programmable Waveform Generator
Простой генератор звуковых частот на AD9833. Для тестирования БПФ в светомузыке мне нужен был генератор звуковых частот. Я использовал советский Г3-112, но он себя давно изжил. Все думал купить чёто такое …
- Светодиоды со встроенным драйвером WS2812B
Производитель http://www. world-semi.com Краткое описание продукции фирмы Каталог продукции” catcatcat_ws_19 catcatcat_ws_15 catcatcat_ws_11 catcatcat_ws_07 catcatcat_ws_03 catcatcat_ws_18 catcatcat_ws_14 catcatcat_ws_10 catcatcat_ws_06 catcatcat_ws_02 catcatcat_ws_05 catcatcat_ws_09 catcatcat_ws_13 catcatcat_ws_17 catcatcat_ws_16 catcatcat_ws_12 catcatcat_ws_08 catcatcat_ws_04 catcatcat_ws_01 This jQuery slider was …
- PIC32MZ – прерывания (заметки)
Виды формирования запоминая контекста при входе в прерывания. Компилятор представляет три варианта AUTO – когда запоминания места возврата из подпрограммы возложено на программу, т.е все создается программно. Этот метод является …
- LED модуль P10 (1R) V706A
Это еще одно чудо от китайского брата. Это монохромные матрицы, называются они P10 (1R) V706A, ну типа R-красные, но не верьте паяют светики и зеленые и синие, в общем любые какие …
- Проект с использованием MCC часть 11
Можно несколько облагородить программу вынести наши процедуры обработки нажатия кнопок в отдельные функции. Но вы должны понимать, что это хоть и не значительно, но будет тормозить общую скорость работы проекта, …
- Toyota Auto Fader – Модуль включения усилителя
Toyota Auto Fader – Модуль включения усилителя. Часто автолюбители прибегают к замене штатного головного устройства на универсальное мультимедийное, в котором значительно расширены функциональные возможности. Если возникает желание оставить в работе …
- Проект с использованием MCC часть 13
Так как используя MCC мы можем его использовать со своими библиотеками, поэтому настало время и свое создать. Для начала откроем наш заголовочный файл в нем очень много букв: По этому. да …
- Стабилизатор тока для светодиодов SN3350
SN3350 ближайший аналог ZXLD1350 Как собрать готовый вариант, читайте во второй части – http://catcatcat. d-lan.dp.ua/stabilizator-toka-na-sn3350-chast-2/ 40V драйвер светодиодов с внутренним ключом SN3350 – импульсный понижающий преобразователь, разработанный для того, чтобы эффективно управлять одним или группой параллельно-последовательно …
В записи нет меток.
ФАЙЛ PDF – НАЖМИТЕ ЗДЕСЬ ДЛЯ ПЕЧАТИ РАБОЧЕГО ЛИСТА | |
Видео на YouTube – Введение в микроконтроллеры PIC | |
ПОС
микроконтроллеры (программируемые контроллеры интерфейса), электронные
схемы, которые можно запрограммировать для выполнения широкого круга задач.Они
можно запрограммировать на таймеры или на управление производственной линией и многое другое.
более. Они присутствуют в большинстве электронных устройств, таких как системы сигнализации,
компьютерные системы управления, телефоны, практически любое электронное устройство. Существует много типов микроконтроллеров PIC, хотя, вероятно, лучшие из них
входит в линейку программируемых микроконтроллеров GENIE. Это
запрограммирован и смоделирован программным обеспечением Circuit Wizard. ПОС Микроконтроллеры относительно дешевы и могут быть куплены в готовом виде. схем или в виде комплектов, которые могут быть собраны пользователем. | |
Вам понадобится компьютер для запуска программного обеспечения, такого как Circuit Wizard, позволяющего программировать PIC схема микроконтроллера. Достаточно дешевый компьютер с низкими характеристиками должен легко запускать программное обеспечение. Компьютеру потребуется последовательный порт или USB. порт. Он используется для подключения компьютера к схеме микроконтроллера. | |
Программное обеспечение, такое как Genie
Студию дизайна можно скачать бесплатно. Его можно использовать для программирования
схемы микроконтроллера. Это позволяет программисту моделировать
перед загрузкой в ИС микроконтроллера PIC (интегрированный
Схема). Моделирование программы на экране позволяет программисту исправлять неисправности и изменять программу. Программное обеспечение довольно легко узнать, как это основано на блок-схеме. У каждого «квадрата» блок-схемы есть цель. и заменяет многочисленные строки текстового программного кода.Это означает, что программа может быть написана довольно быстро, с меньшим количеством ошибок. | |
USB-кабель для подключения компьютер в программируемую схему, позволяющую передавать программу к микросхеме микроконтроллера PIC. | |
Когда программа была смоделирована и работает, загружается в схему микроконтроллера ПОС. USB-кабель можно отключить и использовать схему микроконтроллера независимо. На диаграмме ниже показано, что Совет проекта GENIE программируется программным обеспечением Circuit Wizard (рекомендуемое программное обеспечение для программирование схем микроконтроллера). | |
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ CIRCUIT WIZARD | |
Программа Circuit Wizard имеет
преимущества перед бесплатными загрузками.Это «простая в использовании» электроника.
пакет программного обеспечения. Схемы от простых до сложных, могут быть построены на экране и
смоделировано. Это означает, что схемы можно тестировать до того, как они будут
изготовлено. Circuit Wizard также позволяет использовать ряд GENIE Схемы микроконтроллера / проектные платы, которые нужно «перетащить» на экран, из меню. Входы и выходы могут быть добавлены с помощью дополнительных меню. Потом, схему микроконтроллера GENIE / плату проекта можно запрограммировать, используя Меню блок-схемы Circuit Wizard. Его можно полностью протестировать / смоделировать на экран и неисправности устранены или внесены изменения. Это программное обеспечение сильно рекомендуется при разработке и производстве программируемых микроконтроллеров. схемы. | |
ЦЕПЬ МИКРОКОНТРОЛЛЕРА GENIE (ВВЕРХУ) ПРОГРАММИРОВАНИЕ ИСПОЛЬЗУЕТСЯ С ПОМОЩЬЮ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ CIRCUIT WIZARD | ПРОСТОЙ ДЖЕНЬ
ЦЕПЬ МИКРОКОНТРОЛЛЕРА , СОЗДАННАЯ НА ЭКРАНЕ С ИСПОЛЬЗОВАНИЕМ МАСТЕРА ЦЕПИ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ |
НАЖМИТЕ ЗДЕСЬ, ЧТОБЫ ВЫБРАТЬ УКАЗАТЕЛЬ PIC-МИКРОКОНТРОЛЛЕРА, СТРАНИЦА | |
Программирование внутрисхемного процессора PIC с использованием 3.
3-V SupplyЧлены могут загрузить эту статью в формате PDF.
Основным строительным блоком батарей, которые обеспечивают питание всего, от бытовой электроники до электромобилей, является литий-ионный элемент.
Литий-ионные элементы, как правило, не являются отдельными частями. Они соединены последовательно и параллельно, образуя окончательную сборку, называемую аккумуляторной батареей. Но для каждой аккумуляторной батареи выбранная ячейка определяет срок службы и производительность всей батареи.Рабочие характеристики элемента определяют размер, вес, напряжение, ток, мощность и экологические характеристики окончательной аккумуляторной батареи.
Литий-ионные элементы бывают трех основных форм-факторов: цилиндрической, призматической (или кирпичной) и плоской прямоугольной формы литий-полимерных элементов. Стандартные форматы цилиндрических ячеек в металлическом корпусе: 18650 (диаметр 18 мм × высота 65 мм), 21700 (21 × 70 мм) или 26650 (26 × 65 мм). Внутри цилиндрических и призматических ячеек слои материала батареи свернуты внутрь, как рулон желе.Литий-ионные цилиндрические и призматические элементы расфасованы в металлические банки.
Призматические элементы или элементы в форме кирпича часто экономичны и доступны в бесчисленных размерах. Одна из основных особенностей призматической ячейки – это сброс давления с выводами наверху металлической банки. Положительный и отрицательный выводы на призматической ячейке – это выступы, выступающие из ячейки. В многоэлементных аккумуляторных батареях с ограниченным пространством рекомендуется использовать призматические элементы, поскольку их прямоугольная форма приводит к минимальным воздушным зазорам между элементами.
Литий-полимерные элементы, иногда называемые «ламинатными», доступны в специальных посадочных местах. Они могут быть очень тонкими или громоздкими в зависимости от требуемого формата. Основное преимущество литий-полимерных батарей – это широкий диапазон доступных форм-факторов. Эти типы ячеек заключены в негибкие пакеты из ламината из алюминиевой фольги, которые имеют толщину всего 0,1 мм по сравнению с толщиной 0,25–0,40 мм у алюминиевых или стальных банок, используемых для заключения цилиндрических или призматических ячеек.В отличие от цилиндрических элементов, в категории литий-полимерных не так много стандартных посадочных мест. Это приводит к массиву предложений ячеек.
Литий-полимерные элементы предпочитают основные производители смартфонов и других портативных устройств, поскольку они обеспечивают более гибкую посадку. За последнее десятилетие многие персональные компьютеры перешли от цилиндрических к литий-полимерным элементам, открыв путь к более тонким и легким ноутбукам и планшетам.
Тенденции химии клеток
В литий-ионных элементах химический состав, лежащий в основе, определяет рабочие характеристики элементов.За последнее десятилетие было введено множество химических составов клеток, и каждая из этих формул выявила четкие тенденции. Наиболее распространенными химическими составами элементов являются оксид лития-кобальта (LCO), литий-никель-кобальт-оксид алюминия (NCA), литий-никель-марганцевый оксид-кобальт (NMC) и фосфат лития-железа (LFP).
Десять лет назад LCO был самым распространенным химическим веществом для цилиндрических и призматических ячеек. Тем не менее, NMC вышла вперед с лучшими рабочими характеристиками из всех химических составов ячеек.Он также более экономичен, поскольку в нем используется меньше кобальта, а его запасы ограничены и он стоит дорого.
Никель и марганец усиливают характеристики друг друга, а вариации основной формулы приводят к более совершенным элементам с большей мощностью. По оценкам отраслевых аналитиков, к 2025 году на NMC будет приходиться 20% всех литий-ионных аккумуляторных элементов на рынке. Кроме того, производители электромобилей отдают предпочтение NMC. Ведущие производители ячеек NMC включают BYD, LG, Murata, Panasonic / Sanyo и Samsung.
Химический состав LFP также предлагает хорошие электрохимические характеристики при низком импедансе, поскольку в нем используется фосфатный материал для катода. Ключевые преимущества – высокая сила тока и исключительный срок службы, хорошая термическая стабильность и превосходная безопасность в неблагоприятных условиях. Эти типы элементов имеют более безопасный катодный материал, чем батареи NMC, и не разлагаются при более высоких температурах. Литий-ионные элементы обычно содержат легковоспламеняющиеся вещества; если они повреждены или перезаряжены, они могут неконтролируемо перегреться при тепловом разгоне.Перегрев может привести к задымлению, пожару или даже взрывам.
Аккумуляторы LFP обеспечивают лучшую термическую и химическую стабильность. Кроме того, поскольку LFP имеет меньшую удельную энергию (как по объему, так и по весу) и более высокую стоимость ватт-часа, чем батареи LCO, NCA, NMC или LFP, он идеально подходит для приложений, требующих высокой мощности и длительного срока службы. , или повышенные рабочие температуры. Традиционно LCO / NCA / NMC и LFP практически не пересекались в их конкретных приложениях.Ведущие производители ячеек LFP включают BAK, BYD, CALB и CATL.
Батарейные элементы NMC вытесняют ячейки LFP в некоторых приложениях из-за увеличения номинальной мощности, высокой плотности энергии и более низкой стоимости ватт-часа. Они также начинают заменять элементы LFP в мощных системах, таких как электроинструменты, аккумуляторы для погрузочно-разгрузочного оборудования и трансмиссии для электрических автобусов.
Для каждого химического состава элементов существует сегментация внутри каждой категории, поскольку производители аккумуляторов продвигают свои продукты в сегменты рынка с высокой или высокой мощностью.Мы начинаем видеть большее совпадение между мощными NMC и высокоэнергетическими ячейками LFP. Во многих случаях уже не существует явно превосходного химического состава клеток для определенного набора требований к производительности.
Green Cubes Technology производит аккумуляторные батареи для многих промышленных применений, и компания обычно использует элементы NMC или LFP. Разрыв в производительности между NMC и LFP сокращается.
Тенденции формата ячеек
Для обзора: Литий-ионные элементы, упакованные в металлические корпуса, бывают двух форм – цилиндрической и призматической.
Цилиндрические элементы бывают разных форматов, но традиционно самым популярным форматом для аккумуляторных элементов LCO, NCA и NMC был 18650. И когда Panasonic в партнерстве с Tesla создала новую батарею для электромобилей, они разработали уникальный элемент 21700 формат.
Увеличение размеров элемента 18650 на несколько миллиметров (Рис. 1) приводит к увеличению объема активного материала батареи на 50%. Этот размер ячеек в настоящее время поддерживается большинством ведущих производителей ячеек NMC.В результате 18650 и 21700 являются двумя наиболее распространенными форматами для химии NMC. Если вы выберете элемент 18650 или 21700 для создания аккумуляторной батареи NMC, то с учетом стандартизации можно будет найти альтернативный элемент с аналогичной производительностью.
1. На рисунке сравниваются размеры ячеек 18650 и 21700.
По данным отраслевых аналитиков, в 2020 году было отгружено более 2 миллиардов ячеек формата 21700, что на 25% больше, чем в предыдущем году. По другим оценкам, на эти типы элементов также приходилось 24% всех цилиндрических батарей, поставленных в 2020 году.Ячейка 26650 обычно не сочетается с химическим составом NMC. Меньшие призматические форматы NMC, такие как 103450 (10 × 34 × 50 мм), в последние годы потеряли популярность, поскольку литий-полимерные элементы стали более популярными.
Для ячеек LFP распространены форматы 18650 и 26650; оба обычно предлагаются ведущими производителями ячеек LFP (рис. 2) . Это позволяет использовать два источника от конкурирующих производителей ячеек при выборе ячеек LFP для аккумуляторной батареи. Формат 26650 в значительной степени ограничен химией клеток LFP.Большие призматические ячейки LFP в диапазоне от 50 до 100 Ач приобрели популярность за последние несколько лет.
2. Рабочие характеристики типичных 18650 ячеек NMC и LFP.
Призматические форматы LFP большего размера обычно используются в электромобилях или промышленном оборудовании, таком как вилочные погрузчики (рис. 3) . Эти батареи классифицируются как средне- и крупноформатные и требуют очень высокой мощности. К сожалению, стандартов для крупноформатных призматических ячеек LFP недостаточно, поэтому любой элемент, выбранный для аккумуляторной батареи, будет поставляться из одного источника от определенного производителя.
3. Этот аккумулятор для вилочного погрузчика среднего формата основан на элементах LFP 100 Ач.
Заключение
При разработке мобильного или портативного устройства, в котором для питания используются литий-ионные батареи, важно помнить о различных форматах и химическом составе ячеек, представленных на рынке. Выбор элемента питания является наиболее важным решением на ранней стадии проектирования не только аккумуляторной батареи, но и конечного устройства. Выбор литий-ионного формата и химического состава с учетом динамики рынка может помочь гарантировать длительный жизненный цикл элемента и предоставить план повышения производительности и затрат на протяжении всего срока службы элемента.
Контроллер периферийного интерфейса (PIC)
Чтобы узнать более подробную информацию о PIC, нажмите на ссылки ниже
СМОТРЕТЬ: ВВЕДЕНИЕ В PIC
СМОТРЕТЬ: ОСНОВЫ МИКРОКОНТРОЛЛЕРОВ
Введение в контроллеры периферийного интерфейса (PIC)
Peripheral Interface Controllers (PIC) – один из передовых микроконтроллеров, разработанных с помощью микрочиповых технологий.Эти микроконтроллеры широко используются в современной электронике. Контроллер PIC объединяет все типы усовершенствованных интерфейсных портов и модулей памяти. Эти контроллеры более продвинуты, чем обычные микроконтроллеры, такие как INTEL 8051. Первый чип PIC был анонсирован в 1975 году (PIC1650). Как и обычный микроконтроллер, микросхема PIC также объединяет микропроцессор, называемый ЦП, и интегрирован с различными типами модулей памяти (RAM, ROM, EEPROM и т. Д.), Портами ввода-вывода, таймерами / счетчиками, портами связи и т. Д.
Микросхема PIC Изображение из
Все микроконтроллеры семейства PIC используют архитектуру Гарварда. Эта архитектура обеспечивает доступ к программам и данным из отдельных запоминающих устройств, поэтому устройство имеет шину памяти программ и шину памяти данных (более 8 линий в нормальной шине). Это улучшает полосу пропускания (пропускную способность данных) по сравнению с традиционной архитектурой фон Неймана, где программа и данные извлекаются из одной и той же памяти (доступ осуществляется по одной и той же шине). Разделение памяти программ и данных дополнительно позволяет иметь размер инструкций, отличный от 8-битного слова данных.
Базовая структура современной микросхемы контроллера периферийного интерфейса показана на рисунке ниже.
Структура ПИК
Источник изображения
CPU
Функция CPU в PIC такая же, как у обычного CPU микроконтроллера. ЦП PIC состоит из нескольких субблоков, таких как декодер команд, ALU, аккумулятор, блок управления и т. Д. ЦП в PIC обычно поддерживает архитектуру компьютера с сокращенным набором команд (RISC) (компьютер с сокращенным набором команд (RISC), тип микропроцессора, который ориентирован на быструю и эффективную обработку относительно небольшого набора инструкций.Дизайн RISC основан на предпосылке, что большинство инструкций, декодируемых и выполняемых компьютером, просты. В результате архитектура RISC ограничивает количество инструкций, встроенных в микроконтроллер, но оптимизирует каждую, чтобы ее можно было выполнять очень быстро (обычно в пределах одного тактового цикла). Такая структура RISC дает следующие преимущества.
• В структуре RISC всего 35 простых инструкций по сравнению с другими.
• Время выполнения одинаково для большинства инструкций (за исключением очень небольшого числа).
• Требуемое время выполнения очень мало (5 миллионов инструкций в секунду (приблизительно).
Память
Память в микросхеме PIC, используемая для временного или постоянного хранения данных и программ. Как и обычные микроконтроллеры, микросхема PIC также имеет определенный объем RAM, ROM, EEPROM, другую флэш-память и т. Д. ПЗУ
используется для постоянного хранения. Память ПЗУ также называется программной памятью. Чип PI имеет определенный объем ПЗУ.
EEPROM – это еще одна категория памяти ROM.Содержимое EEPROM изменяется во время выполнения, и в это время оно действует как оперативная память. Но разница в том, что после отключения питания данные остаются в этой микросхеме ПЗУ. Это одно из особых преимуществ EEPROM. В микросхеме PIC функция EPROM заключается в хранении значений, созданных во время выполнения. ОЗУ
– это один из сложных модулей памяти в микросхеме PIC. Эта память связана с различными типами регистров (регистры специальных функций и регистры общего назначения) и модулями БАНКА памяти (БАНК 0, БАНК 1 и т. Д.).). После отключения питания содержимое ОЗУ будет очищено. Как и в обычных микроконтроллерах, оперативная память используется для хранения временных данных и получения немедленных результатов.
Флэш-память
Это особый тип памяти, в котором операции READ, WRITE и ERASE могут выполняться многократно. Этот тип памяти был изобретен корпорацией INTEL в 1980 году. Чип PIC обычно содержит определенный объем флэш-памяти.
Регистры
Информация хранится в области памяти ЦП, называемой регистром.Регистры можно рассматривать как крошечный блокнот ЦП, временно хранящий инструкции или данные. Регистры в основном подразделяются на следующие.
1) Регистр общего назначения (GPR)
Регистр общего назначения (или регистр процессора) – это небольшая область памяти, доступная на ЦП, к содержимому которой можно получить доступ быстрее, чем к другой памяти, доступной на PIC. Регистр общего назначения может хранить оба адреса данных одновременно.
2) Регистры специальных функций (SFR)
Они также являются частью ячеек памяти RAM. По сравнению с георадаром их назначение предопределено во время изготовления и не может быть изменено пользователем. Это только для специальных функций.
прерывания
Прерывание – это временная задержка выполняющейся программы. Эти задержки останавливают текущее выполнение на определенный интервал. Этот интервал / задержка обычно называется прерыванием. Когда запрос на прерывание поступает в текущую исполняющую программу, она останавливает свое обычное выполнение. Прерывание может выполняться извне (аппаратное прерывание) или внутренне (с помощью программного обеспечения).
Автобус
BUS – это канал связи или передачи / приема данных в блоке микроконтроллера. В обычном чипе микроконтроллера обычно доступны два типа шин.
1) Шина данных
Шина данных используется для адресации памяти. Функция шины данных заключается в соединении всех компонентов схемы внутри микросхемы PIC.
2) Адресная шина
Адресная шина в основном используется для адресации памяти. Функция адресной шины заключается в передаче адреса от ЦП в ячейки памяти.
USART или UART
Эти порты используются для передачи (TX) и приема (RX) данных. Эти передачи возможны с помощью различных модулей приемопередатчиков цифровых данных, таких как RF, IR, Bluetooth и т. Д. Это один из самых простых способов связи PIC-чипа с другими устройствами.
Осцилляторы
Блок осциллятора в основном представляет собой схему генерации колебаний / синхросигнала, которая используется для обеспечения правильных синхроимпульсов на микросхему PIC. Эти тактовые импульсы также помогают приложениям для отсчета времени и счета.Микросхема PIC обычно использует различные типы генераторов тактовой частоты. В зависимости от приложения и типа используемого PIC генераторы и их частоты могут различаться. RC (резистор-конденсатор), LC (индуктор-конденсатор), RLC (резистор-индуктор-конденсатор), кварцевые генераторы и т. Д. Являются обычными генераторами, используемыми с микросхемой PIC.
СТЕК
На всей микросхеме PIC есть область для хранения адресов возврата. Эта область или блок, называемый стеком, используется в некоторых контроллерах периферийного интерфейса. Аппаратный стек недоступен для программного обеспечения.Но для большинства контроллеров он может быть легко доступен.
Порты ввода / вывода
Эти порты используются для взаимодействия с различными устройствами ввода / вывода и памятью. В зависимости от типа PIC количество портов может меняться.
Блоки расширенного функционирования
Эти разделы включают различные расширенные функции микросхемы PIC. В зависимости от типа PIC эти функции могут меняться. Различные расширенные функции контроллера периферийного интерфейса включают таймер включения, таймер запуска генератора, сброс при включении, таймер сторожевого устройства, сброс напряжения, отладчик схемы, программирование низкого напряжения, компаратор напряжения, модули CCP и т. Д.
Ограничения архитектуры PIC
• Контроллер периферийного интерфейса имеет только один аккумулятор.
• Небольшой набор инструкций.
• Зарегистрировать банковский переключатель, необходимый для доступа к ОЗУ других устройств.
• Операции и регистры не ортогональны.
• Программная память недоступна.
Преимущества системы, управляемой PIC
• Надежность
В системе, управляемой PIC, часто находятся машины, которые, как ожидается, будут работать непрерывно в течение многих лет без каких-либо ошибок и в некоторых случаях восстанавливаются самостоятельно в случае возникновения ошибки (с помощью поддерживающей прошивки).
• Производительность
Многие встроенные системы на основе PIC используют простой конвейерный процессор RISC для вычислений, и большинство из них предоставляют встроенную SRAM для хранения данных для повышения производительности.
• Потребляемая мощность
Система, управляемая PIC, работает с минимальным энергопотреблением без ущерба для производительности. Энергопотребление можно снизить за счет независимого и динамического управления несколькими силовыми платформами.
• Память
Большинство систем на базе PIC имеют возможность расширения памяти и помогут легко добавлять все больше и больше памяти в соответствии с использованием и типом приложения.В небольших приложениях может использоваться встроенная память.
Чтобы узнать об основах PIC 16F877, нажмите на ссылку ниже.
СМОТРЕТЬ: ВВЕДЕНИЕ В PIC 16F877
СМОТРЕТЬ: НАБОРЫ ИНСТРУКЦИЙ ДЛЯ ПРОГРАММИРОВАНИЯ PIC
Расширенные функции PIC, выбора генератора, сброса, прерываний и т. Д.
Статьи по теме
КОНТРОЛЛЕР ПЕРИФЕРИЧЕСКОГО ИНТЕРФЕЙСА (PIC)
ВВЕДЕНИЕ В PIC 167F877
МОДУЛИ USART В PIC 16F877
Большинство современных процессоров PIC, таких как устройства PIC16F87XA, имеют множество типов расширенных функций, которые способны выполнять дополнительные специальные задачи и операции. Эти функции повышают стабильность PIC и повышают его функциональную надежность. Разработчикам также полезно снизить полную стоимость разработанной схемы за счет интеграции и замены внешних компонентов, а также путем обеспечения множества средств защиты от энергосбережения. Общие особенности современного PIC-чипа приведены ниже (на основе PIC6F877A).
• Выбор осциллятора
• Сбросить
– Сброс при включении питания (POR)
– Таймер включения (PWRT)
– Таймер запуска генератора (ОСТ)
– Сброс короткого замыкания (BOR)
• Прерывания
• Сторожевой таймер (WDT)
• Сон
• Код защиты
• Местонахождение ID
• Внутрисхемное последовательное программирование
• Низковольтное внутрисхемное последовательное программирование
• Внутрисхемный отладчик
Функция выбора осциллятораСерия PIC16F8xx в основном поддерживает различные типы генераторов, а также устройства PIC16F87XA. Он также имеет сторожевой таймер, который можно отключить только с помощью битов конфигурации. Он работает от собственного RC-генератора для дополнительной надежности (конфигурации по сравнению с обычными микроконтроллерами / процессорами). Пользователь может легко выбирать различные режимы генератора. Пользователь может запрограммировать два бита конфигурации (foscillator1 и foscillator0) на выбор четырех основных режимов. Основные режимы осцилляторов и типичные значения, используемые для этих осцилляторов, приведены на рисунке ниже.
• LP маломощный кристалл
• XT Кристалл / Резонатор
• Высокоскоростной кристалл / резонатор HS
• RC-резистор / конденсатор
Режимы осциллятора PIC
Функция сброса
Функция сброса – одна из самых продвинутых функций, доступных на всех современных микроконтроллерах.Серия PIC16F8xx имеет различные виды сброса. Ниже приведены различные варианты сброса, доступные в серии PIC 16F877.
• Сброс при включении (POR).
• Сброс MCLR во время нормальной работы.
• Сброс MCLR во время сна.
• Сброс WDT (при нормальной работе).
• WDT Wake-up (во время сна).
• Сброс при пониженном напряжении (BOR).
Упрощенная блок-схема встроенной схемы сброса показана на рисунке ниже.
- PIC ON-CHIP генератор
MCLR
MCLR – это усовершенствованный путь сброса, который помогает фильтровать нежелательный шум. Этот фильтр помогает обнаруживать нежелательные тактовые импульсы и другие шумовые сигналы и фильтровать такие импульсы. Следует отметить, что сброс WDT не переводит вывод MCLR в низкий уровень. Поведение защиты от электростатического разряда на выводе MCLR отличается от предыдущих устройств этого семейства. Напряжение, приложенное к контакту, превышающее его спецификацию, может привести как к сбросам, так и к потреблению тока за пределами спецификации устройства во время события сброса. По этой причине Microchip рекомендует больше не подключать вывод MCLR напрямую к VDD.
Сброс при включении питания (POR)
Сигналы включения питания при сбросе генерируются на кристалле при обнаружении повышения VDD. В нормальных условиях напряжение VDD находится в диапазоне от 1,2 до 1,7 В. Чтобы воспользоваться преимуществом POR, подключите вывод MCLR к VDD с помощью цепи резисторного конденсатора (RC). Перед тем, как устройство будет настроено на запуск для нормальной работы, необходимо проверить различные рабочие параметры, такие как частота, напряжение, температура и т. Д., Чтобы убедиться, что они в норме или в норме.В противном случае микросхему / схему необходимо удерживать в состоянии сброса до тех пор, пока рабочие условия не станут нормальными или нормальными. Функция отключения-сброса обеспечивает поддержку этих операций.
Таймер включения (PWRT)
Таймер включения обеспечивает фиксированный номинальный тайм-аут 72 мс при включении питания только от POR. Таймер включения работает от внутреннего RC-генератора. Чип остается в состоянии сброса, пока активен PWRT. Задержка PWRT позволяет VDD повышаться до приемлемого уровня. Бит конфигурации предназначен для включения или отключения PWRT.Задержка включения питания будет варьироваться от кристалла к кристаллу из-за VDD, температуры и изменения процесса.
Таймер запуска генератора (ОСТ)
Таймер запуска генератора (OST) обеспечивает задержку в 1024 цикла генератора (от входа OSC1) после окончания задержки PWRT (если PWRT включен). Это помогает обеспечить запуск и стабилизацию кварцевого генератора или резонатора. Тайм-аут OST активируется только для режимов XT, LP и HS и только при сбросе при включении питания или выходе из спящего режима.
Сброс при пониженном напряжении (BOR)
Перезагрузка-сброс – это специальная функция сброса в современных контроллерах. Как только произойдет отключение питания, устройство будет оставаться в состоянии сброса после отключения питания до тех пор, пока VDD не поднимется выше VBOR. Затем таймер включения удерживает устройство в состоянии сброса для TPWRT. Если VDD упадет ниже VBOR во время TPWRT, процесс сброса напряжения будет перезапущен, когда VDD поднимется выше VBOR с помощью сброса таймера включения. Таймер включения всегда включен, когда включена схема сброса при пониженном напряжении, независимо от состояния бита конфигурации PWRT.
Последовательность тайм-аута
При включении питания последовательность тайм-аута следующая: задержка PWRT запускается (если включена), когда происходит сброс POR. Затем OST начинает отсчет 1024 циклов генератора по окончании PWRT (LP, XT и HS). По окончании OST девайс выходит из Reset. Если уровень MCLR сохраняется на низком уровне достаточно долго, тайм-ауты истекают. При повышении уровня MCLR выполнение начнется немедленно. Это полезно для целей тестирования или для синхронизации более чем одного устройства PIC16F87XA, работающих параллельно.В таблице показаны условия сброса для регистров состояния, PCON и ПК, а в таблице показаны условия сброса для всех регистров.
- Условия сброса для специальных регистров в PIC
Ross Bencina »DIY MIDI-контроллеры с использованием микроконтроллеров PIC и базовых штампов
Введение
Комбинируя микроконтроллер PIC или Basic Stamp II с несколькими пассивными компонентами, нетрудно создать свой собственный блок регуляторов, блок триггеров или другое устройство ввода MIDI.Для подключения к некоторым датчикам может потребоваться знание электроники. И Stamp, и PIC обеспечивают экономичную (менее 100 долларов США) точку входа в мир альтернативных MIDI-контроллеров.
Эта страница была создана, чтобы предоставить отправную точку для людей, заинтересованных в создании собственных устройств управления MIDI с использованием микроконтроллеров Microchip PIC или Parallax Basic Stamps. Если у вас есть какие-либо комментарии или предложения, пожалуйста, напишите мне.
Основные марки и фото
Базовый штамп состоит из крошечной печатной платы, на которой припаян PIC CPU, тактовый кристалл и немного памяти EEPROM для хранения программ. Он предоставляет 16 контактов двунаправленных данных (цифровой ввод / вывод), которые могут быть подключены к потенциометрам, простой выходной цепи MIDI, аналого-цифровым преобразователям и т. Д. Как следует из названия, Basic Stamp выполняет код, написанный на BASIC, который загружается на штамп с использованием последовательного интерфейса. Parallax, Inc. производит ряд различных моделей Basic Stamp, Basic Stamp II и IIsx обычно считаются достаточно быстрыми для приложений передачи MIDI, но ни одна из них не поддерживает ввод MIDI удовлетворительно.
Microchip Technology Inc. производит широкий спектр микроконтроллеров PIC. Для небольших проектов часто выбирают PIC16F84, поскольку он дешев и использует перепрограммируемую флеш-память для хранения программ. Микросхема PIC16F84 содержит 1к слов программной флэш-памяти, 68 байтов ОЗУ и 64 байта EEPROM для постоянного хранения данных. PIC16F84 имеет 13 двунаправленных выводов данных, которые можно использовать аналогично таковым на Basic Stamp. Микросхемы PIC программируются на языке ассемблера, который затем сохраняется в микросхеме с помощью специального программатора.Для пользователей ПК программатор на основе параллельного порта для PIC16F84 может быть построен примерно за 30 долларов. И Microchip, и Parallax распространяют бесплатное программное обеспечение ассемблера PIC для ПК.
Общее мнение таково, что Basic Stamp II – лучшая отправная точка для людей с небольшим опытом программирования или электроники или без него, поскольку использование PIC напрямую требует от вас изучения языка ассемблера PIC, что может быть утомительным, если вы не в этом роде. вещи. Если вы программист или собираетесь использовать более одного устройства, PIC16F84 – хороший выбор, так как он дешев и часто может работать быстрее, чем Basic Stamp.Вы можете собрать программатор, несколько микросхем PIC и схему блока питания дешевле, чем Basic Stamp II.
См. Статью Питера Х. Андерсона Работа с марками и PIC для подробного обсуждения относительных достоинств PIC и базовых марок.
Интерфейс к MIDI
Как для чипов Basic Stamp II, так и для PIC среднего класса, MIDI (то есть последовательный) вывод реализуется программно путем управления состоянием вывода данных. На базовом штампе это достигается с помощью команды SEROUT, на PIC вы должны свернуть свою собственную процедуру вывода MIDI – это может быть сложно, поскольку последовательная синхронизация определяется количеством выполненных инструкций и тактовой частотой PIC, однако в сети есть множество примеров, с которых можно начать.
Ни PIC среднего диапазона (например, PIC16F84), ни Basic Stamp (любая модель) не подходят для одновременного приема и передачи MIDI, поскольку они не поддерживают буферизованную последовательную связь. На Basic Stamp II любой MIDI, поступающий во время обработки Stamp, будет утерян. На PIC код должен быть тщательно разработан, чтобы чередовать последовательные чтения и другую обработку на уровне битов суб-MIDI, чтобы избежать потери данных.
Вход MIDI без выхода возможен на PIC, но не описан здесь – см. Раздел ссылок для некоторых примеров.Реализация одновременного ввода и вывода MIDI или мягкого перехода / слияния невозможна с использованием Basic Stamp II. Его сложно реализовать на PIC16F84, и он оставляет мало места для выполнения другой обработки. Предлагаемое решение – использовать два PIC – один для ввода и один для вывода, или использовать более дорогой PIC, такой как PIC16C7x, который имеет встроенный UART.
MIDI-выход
Подключение PIC или Basic Stamp для вывода MIDI не может быть проще:
- Подключите контакт 4 разъема MIDI к желаемому выходному контакту PIC или Basic Stamp через резистор 220 Ом
- Подключите контакт 5 разъема MIDI к + 5V через резистор 220 Ом
- Подключите контакт 2 разъема MIDI к земле
Важное примечание! Несколько человек написали мне, что контакты 4 и 5 на схеме подключения MIDI-выхода поменяны местами.Я не проверил, правда это или нет. Возможно, вам придется поэкспериментировать, поменяв местами соединения, если это не сработает.
См. Программу MIDI Sender Дэвида Б. Томаса (ассемблер Parallax) или мою программу midisend (сборка микрочипов) для примера отправки MIDI с использованием PIC-микросхемы. Для Basic Stamp II см. Программу Джеффа Манна MIDI out для BASIC Stamp II.
Если вы ищете информацию о MIDI, посетите Центр «промывания мозгов» MIDI Technical Fanatic. Схема электрических характеристик MIDI вместе с другой полезной информацией доступна на веб-сайте ассоциации производителей MIDI.
Сопряжение с переменным сопротивлением
Хотя в этом разделе обсуждаются потенциометры (используемые с регуляторами, фейдерами и джойстиками), эта информация также может быть применена к другим устройствам с переменным сопротивлением, таким как светозависимые резисторы (LDR) или резисторы, чувствительные к усилию (FSR).
Двойной ввод / вывод выводов данных PIC и Basic Stamp позволяет построить простую схему, которая может измерять значение потенциометра. Для выполнения этого измерения обычно используются две разные схемы: первая использовалась в сочетании с командой POT Basic Stamp I и полезна для PIC, поскольку исходный код для ее управления находится в свободном доступе (это версия, описанная ниже). Basic Stamp II заменил команду POT на команду RCTIME, которая требует другой схемы – см. Подробности в руководстве по Stamp II или на странице с ручками Basic Stamp DIY Джона Раденберга для рабочего примера.
Метод POT
Измерение выполняется сначала зарядкой конденсатора (установкой высокого уровня на выводе данных), затем установкой контакта на вход и медленной его разрядкой (переключением контакта между входом и выходом). Время, необходимое для того, чтобы вывод стал низким, соответствует времени, необходимому для разряда конденсатора, что связано с сопротивлением потенциометра.
Команда Basic Stamp I POT выполняет описанный выше процесс и возвращает масштабированное выходное значение. См. “Параллакс-ассемблерную версию команды POT” Скота Эдвардса в книге The PIC Source Book для примера использования вышеуказанной схемы с микросхемой PIC.
На 10 МГц PIC16F84 вышеуказанная схема заряжается за 6 мсек, а при максимальном сопротивлении требуется 138 отсчетов (0,5 мс) для разрушения. Преимущество PIC перед Basic Stamp при использовании нескольких горшков состоит в том, что все RC-цепи могут заряжаться одновременно, обеспечивая значительное увеличение скорости по сравнению с последовательной зарядкой и разрядкой каждой цепи.
Интерфейс для пьезоэлектрических преобразователей
В февральском выпуске (том 27, № 3) журнала Electronics Today International за 1998 год, в статье Тома Скарфа под названием MIDI Drum Pads описывается конструкция пьезоэлектрического триггера с 8 входами для MIDI-устройства на основе микроконтроллера PIC16C84. Устройство генерирует MIDI-сообщения при нажатии на триггеры, однако информация о скорости не измеряется. Статья Тома, включая исходный код и схемы, доступна в Интернете.
Схема выше иллюстрирует интерфейс между пьезопреобразователем и выводом данных PIC.Когда датчик (или поверхность, к которой он прикреплен) ударяют, генерируется напряжение, которое может быть обнаружено на выводе данных. Подходящее программное обеспечение будет сканировать контакты данных и передавать MIDI-сообщение при обнаружении высокого (1) логического состояния.
УPAiA есть несколько более сложных схем для взаимодействия с датчиками удара.
Дальнейшие направления
Интернет содержит множество примеров взаимодействия PIC, базовых штампов и других микроконтроллеров с переключателями, аналого-цифровыми преобразователями и другими устройствами, которые могут быть с пользой использованы для создания интересных MIDI-контроллеров.Страница Дэна О’Салливана по физическим вычислениям – отличный источник информации о посредничестве между физическим и цифровым мирами.
Комбинируя аналого-цифровой преобразователь и микросхему мультиплексора, можно легко создать MIDI-контроллер с увеличенным разрешением, более быстрым временем обновления и большим количеством потенциометров, датчиков или других устройств ввода. Для тех, кто любит приключения, Microchip производит более сложные PIC, поддерживающие более высокие тактовые частоты, встроенные аналого-цифровые преобразователи, таймеры и последовательные интерфейсы.
PIC и MIDI-ссылки Basic Stamp
Некоторые из приведенных ниже ссылок больше не действительны – если вам известно новое местоположение любой из этих страниц, сообщите мне, чтобы я мог обновить ссылки. Если вы хотите получить доступ к содержимому неработающей ссылки, попробуйте обратную машину – просто введите URL-адрес документа, которого там не было, и обратная машина загрузит архивную версию.
MIDI-выход
MIDI вход
Другое
Общие ссылки PIC
Производитель микросхем PIC Microchip Technology Inc.поддерживает большой веб-сайт, содержащий техническую информацию, заметки по применению и бесплатное программное обеспечение для разработки на ПК. Parallax, Inc., производитель Basic Stamps, предоставляет списки рассылки для разработчиков PIC и Stamp, а также имеет бесплатное программное обеспечение для разработки, доступное в Интернете.
Питер Х. Андерсон преподает программирование PIC и Basic Stamp, его веб-сайт Embedded Processor Control – это кладезь проектов, наборов и другой полезной информации. Если вы смотрите только на один другой сайт, сделайте это.
Dontronics продает различные продукты, связанные с PIC, включая платформу разработки SimmStick. Дон поддерживает большой набор ссылок и ресурсов PIC, а также размещает онлайн-версию Scot Edwards ‘ The PIC Source Book , которая содержит версии набора инструкций Basic Stamp на языке ассемблера – очень полезно!
Компания Russell Warburton’s Warburton Technology, базирующаяся в Великобритании, специализируется на распространении Parallax Basic Stamp и других продуктов и средств разработки на основе микроконтроллеров.
Многие компании производят программаторы PIC, большинство из которых предназначены для работы с более дорогими микросхемами PIC.В Интернете можно найти множество советов по программированию PIC своими руками, особенно для более дешевых PIC, таких как PIC16F84. Я использую программатор на основе чрезвычайно доступного программатора No Parts PIC от Майкла Ковингтона, который можно приобрести в виде комплекта в Oatly Electronics.
Если вы решили принять участие в разработке PIC, рассмотрите PICList, список рассылки с большим объемом трафика, который обеспечивает благоприятную среду для обсуждения разработки программного и аппаратного обеспечения PIC.
В Интернете так много общей информации об использовании PIC и базовых штампов, что следующей остановкой должна стать поисковая система – я использую Google.
Комментарии читателей
Хосе Соуто написал, чтобы сообщить мне, что:
Существует ряд бесплатных компиляторов C для PIC, и я очень доволен CC5xFree с www.bknd.com. Благодаря полной интеграции этого компилятора с MPLAB от Microchip, людям, желающим использовать PIC, не нужно полагаться на ассемблер для написания кода для MIDI.
В прошлом году я написал небольшой C-фрагмент для чтения MIDI с помощью PIC12C508, используя битовый C-код, написанный с помощью CC5xFree. Это из моего опыта написания полноценного MIDI-ресивера для клиента.Я разместил его в PicList
Питер М. Олсен написал мне о Picaxe, который можно программировать на BASIC:
Вы смотрели Picaxe? (www.picaxe.co.uk). Я использую их около 6 месяцев, и, насколько мне известно, они оставляют базовый штамп навсегда! По сути, это PIC Microchip с загрузчиком начальной загрузки. Я бы хотел, чтобы кто-то работал с MIDI.
Благодарности
Благодарность:
Джону Раденбергу (John Radenberg) из знаменитой страницы с ручками Basic Stamp DIY, который познакомил меня со многими идеями на этой странице.
Джим Соснин, чья работа с PIC и MIDI вселила в меня уверенность в том, что я могу попытаться построить свои собственные схемы.
Джеффа Манна за многочисленные предложения и исправления.
Введение PIC12F683 Учебное пособие по программированию схем
Рис. 1 Испытательная установка Mircochip PIC PIC12F683.
by Lewis Loflin
В управлении мощностью с широтно-импульсной модуляцией для микроконтроллеров мы исследовали использование PIC12F683 для управления выходной мощностью 12-вольтовой светодиодной лампы.Здесь мы рассмотрим сам PIC12F683 и некоторые советы по программированию.
Видео на YouTube: My Home Built PIC Dev. Доска
Для видеодемонстрации этой страницы см. Микроконтроллер PIC12F683 и схемы на YouTube.
В этой испытательной схеме (рис. 1) используется микросхема PIC PIC12F683 компании Mircochip с аналого-цифровым преобразователем (АЦП), принимающим аналоговое значение потенциометра, преобразующим показания 0–5 В в 10-битное значение из диапазона 0–1023. Это 10-битное значение отправляется в модуль широтно-импульсной модуляции на вывод GP2.
Это значение устанавливает рабочий цикл (по времени в зависимости от периода) прямоугольной волны 250 Гц, генерируемой внутренним таймером. Период = 1 / F = 1/250 = 4 мсек.
K150 PIC Programmer
Загрузки – нет гарантии, использование на свой страх и риск:
Драйвер для программатора K150 PIC: pl1303dtiver.exe
Программное обеспечение для K150: K150.rar
Я включил готовый шаблон с уже выполненной базовой настройкой и конфигурацией с несколькими заранее написанными процедурами задержки.(Мы рассмотрим их.) Я буду программировать на ассемблере по ряду причин, в частности, по стоимости и гибкости. Также потому, что несколько доступных примеров сборки просто ужасны.
Рис. 2 Характеристики и выводы PIC12F683.
На рис. 2 показаны лишь некоторые особенности PIC12F683, который включает 6 программируемых контактов ввода / вывода, 4-канальные аналого-цифровые преобразователи и по 1 каждому модулю ШИМ и компаратора. Он имеет гораздо больше функций, чем PIC16F84A, и имеет АЦП, которых не хватает в PIC16F628.Он имеет 2048 байт флэш-памяти, что более чем достаточно для большинства приложений.
В качестве бонуса его программируемые внутренние «часы» не требуют никаких внешних компонентов, только источник питания на 3-5 вольт. (См. Рис. 1). Я разработал это с тактовой частотой 4 МГц (по умолчанию, затем внутренне разделенной на 4), которая обеспечивает время тактового цикла 1 мксек – 35 инструкций в основном составляют 1 цикл, за исключением таких ветвей, как GOTO.
Рис. 3 Банки регистров PIC12F683.
Новый октябрь 2016 г .:
Доступ к регистрамPIC12F683 осуществляется в двух банках. Они контролируют оборудование и другие функции. Контакты ввода / вывода помечены как GP0 – GP5. их можно запрограммировать, как показано на рис. 2 путем установки и очистки битов в соответствующем регистре. Файл p12f683.inc определяет имена на основе меток регистров / банков. Посмотрите на этот код, который установит внутренние часы в шаблоне. Обратите внимание, что я использую компилятор MPLAB v8.92, который меняет метки и кодирует один тип в машинный код (файл HEX), запрограммированный в PIC.
BANKSEL OSCCON; Переключитесь на банк 1.MOVLW b'01100001 '; 4 МГц Clk, IntOsc, SysClk через IntOsc MOVWF OSCCON
Примечание 1: все, что находится после “;” является комментарием и игнорируется. Делайте много комментариев, чтобы делать заметки про себя!
Примечание 2: такие команды, как MOVLW, MOVWF и BANKSEL, НЕ чувствительны к регистру. Можно сказать “movlw” или “MOVlw” и т. Д. Будьте последовательны!
Примечание 3: серия PIC использует в основном 8-битные регистры, которые могут содержать десятичные числа от 0 до 255. Компилятору все равно, какая числовая база используется, поэтому 255 может быть d’255 ‘или.255 для десятичного числа; b’11111111 ‘или 0b11111111 для двоичного, или 0xff или 0xFF для шестнадцатеричного. Я не знаю насчет OCTAL – компилятор, похоже, не заботится, когда я пробовал 0777.
Примечание 4: включаемый файл в шаблоне определяет имена для числа. Посмотрите на таблицу банков на рисунке 3 и обратите внимание, что «OSCON» (или регистр управления генератором) находится в ячейке банка 1 Ox8F. В противном случае пришлось бы определять метку самостоятельно (OSCON EQU 0x8F) или просто использовать «MOVWF 0x8F».
Примечание 5: имена, определенные из включаемого файла, чувствительны к регистру! Итак, используя “oscon” и т. Д.вызовет ошибку компилятора.
Примечание 6: для изменения данных регистра, битов и т. Д. Необходимо находиться в правильном банке. Регистр STATUS (0x03 и 0x83) используется ОБОИМИ Bank0 и Bank1 соответственно. Бит 5 (помеченный как RP0) – это бит выбора банка. Очистка бита (0) помещает единицу в банк 0, а установка бита (1) помещает единицу в банк 1:
СТАТУС ЧФ, RP0; выбирает банк 1, устанавливая бит 5 - Rp0 определяется как 5 ; или же СТАТУС BCF, RP0; выберите банк 0
BSF – это «битовый файл», а BCF – «битовый файл».Для получения дополнительной информации о регистре STATUS см. P11 в техническом паспорте – убедитесь, что у вас есть этот технический паспорт!
Итак, чтобы изменить данные в регистре OSCON (P19 в таблице данных), я должен находиться в банке 1. BANKSEL избавляет от многих проблем, потому что компилятор знает, что в каком банке, и выполняет всю работу за вас. Так что, если мне нужно немного изменить и т. Д., Скажем, TMRO (банк 0 0x01), используйте «BANKSEL TMRO» и забудьте об этом RP0.
Примечание 7: W или рабочий регистр. Думайте о регистре W как о поле, которое может содержать любую комбинацию из 8 нулей и единиц.Я загружаю число от 0 до 255 в коробку, помещаю его в правильный регистр (например, OSCON) и помещаю туда. Большинство инструкций, которые программист должен указать, будет ли результат сохранен в регистре W или в файле: Пример. DECFSZ filename, 0 (или W) сохраняет результат в W; DECFSZ filename, 1 (или F) сохраняет результат в регистре файла.
Итак, что сделали мои три строчки кода в 3uSec. делать? Я выбрал банк 0, переместил буквальное число в двоичном формате в регистр W, затем регистр PIC W переместил этот байт в регистр OSCON из регистра W.
Теперь я уверен, что некоторые трясутся в ботинках – я должен делать все это ??? Вот почему я здесь, чтобы помочь другим избежать кошмаров, через которые я прошел, когда учился сборке PIC. Базовые компиляторы ДОРОГИ, а компилятор MPLAB C имеет некоторые проблемы с авторским правом и лицензированием. Для этих маленьких контроллеров нет смысла использовать что-либо, кроме сборки – да, побольше.
Как только вы изучаете сборку на одном PIC, он работает на других. Смотрите мой раздел PIC16F628A в сборке.
Рис. 4 Испытательная установка с использованием микросхемы Microchip 12F683 для демонстрации широтно-импульсной модуляции.
Программирование PIC12F683 и других
Работа оборудования и широтно-импульсная модуляция описаны в разделе «Управление мощностью с широтно-импульсной модуляцией для микроконтроллеров». Как показано на рисунке 1, переключатели подключены к GP3 и GP4, запрограммированным как цифровые входы. Контакты подтянуты к + 5V (HIGH) через два резистора 10K. При нажатии переключателя входы переходят на 0 В (НИЗКИЙ).
К GP2 подключен оптрон, запрограммированный как выход с широтно-импульсной модуляцией.Выход «переключается» на ВКЛ / ВЫКЛ всякий раз, когда нажимается SW1 и / или SW2. GP1 и GP5 также «переключаются» в положение ВКЛ / ВЫКЛ соответственно. Это использовалось для управления двигателем H-моста. Оптопара изолирует 12-вольтовую цепь от 5-вольтовой PIC.
Потенциометр подключен к GP0, запрограммированному как аналоговый вход с помощью 10-битного модуля АЦП. Это 10-битное значение считывается и используется для установки рабочего цикла для 10-битного модуля ШИМ на GP2.
Подумайте о PIC12F683 или любой другой PIC как о совокупности программируемых электронных модулей вместе с микроконтроллером.PIC, такие как ATMEGA168 и т. Д., Используемые Arduino, известны как процессоры RISC – , компьютер с сокращенным набором команд . В этом случае всего 35 инструкций.
Давайте углубимся в программирование. Обратитесь к template.asm и изучите спецификацию.
CBLOCK 0x20; Назначьте каждый рег. из области RAM банка 0. count1 count2 count3 count4 темп РЕЗУЛЬТАТ РЕЗУЛЬТАТ ENDC; Завершите назначение RAM банка 0.
Ссылаясь на рисунок 3, я использую статические положения плунжера, начиная с 0x20 для переменных.Я всегда объявляю несколько на случай, если они мне понадобятся. Функция CBLOCK избавляет от необходимости объявлять каждую переменную индивидуально с помощью EQU или с использованием самого шестнадцатеричного числа.
ORG 0x000; вектор сброса процессора GOTO setup; перейти к началу программы ORG 0x004; расположение вектора прерывания ; Код isr может находиться здесь или быть расположен как подпрограмма вызова в другом месте RETRIE; вернуться из прерывания
Когда контроллер сбрасывает счетчик адресов, начинается с 0x000.Ярлык «setup» указывает на расположение флэш-памяти для процедуры настройки, определяющей в основном функции оборудования. Это местоположение определяется компилятором.
ORG 0x004 – это вектор прерывания, указывающий на то, что известно как ISR или процедура обслуживания прерывания. PIC12F683 имеет ряд программируемых аппаратных прерываний. Как только происходит прерывание, PIC прекращает свои действия, сохраняет текущий адрес подсчета местоположения в STACK, а затем обслуживает ISR.
Здесь можно вызвать другую подпрограмму или выполнить функцию.У одного должен быть RETIE, который извлекает исходный адрес из СТЕКА и позволяет PIC вернуться к тому, что он делал.
настраивать BANKSEL OSCCON; Переключитесь на банк 1. MOVLW b'01100001 '; 4 МГц Clk, IntOsc, SysClk через IntOsc MOVWF OSCCON BANKSEL CMCON0; Переключитесь на банк 0. MOVLW b'00000111 '; Выключите компаратор. MOVWF CMCON0 БАНКСЕЛЬСКИЙ АНСЕЛЬ; Переключитесь на банк 1. CLRF ANSEL; Установите контакты ввода / вывода на цифровой. ; Определите входы и выходы.CLRF TRISIO; весь вывод BSF TRISIO, GP3; Вход GP3 BSF TRISIO, GP4 BANKSEL GPIO; Переключитесь на банк 0. CLRF GPIO ; Этот блок кода настраивает АЦП для опроса, ; Ссылка Vdd, частота Frc и вход GP0. БАНКСЕЛЬ ТРИЗИО; BSF TRISIO, 0; Установите GP0 для входа АЦП ; ANSEL; 0x9F P32 MOVLW 0b01110001; Часы ADC Frc, IORWF ANSEL; и GP0 как аналог BANKSEL ADCON0; 0x1F MOVLW 0b00000001; Выровнять по левому краю, MOVWF ADCON0; Vdd Vref, An0, Вкл. CALL delay_1ms; Задержка получения ; настроить ШИМ ; CCP1CON в банке 0, биты 4-5 являются младшими битами 10-битного ШИМ. MOVLW b'00000111 ' MOVWF T2CON; включить предварительную шкалу TMR2 16 - частота MOVLW d'127 '; рабочий цикл = TMR2 = CCPR1L: CCP1CON 5: 4 MOVWF CCPR1L MOVLW b'00001100 ' MOVWF CCP1CON; включить ШИМ GOTO loop; перейти к "циклу" основной программы
Вышеупомянутое делает то же самое, что и setup () в Arduino, и выполняется только один раз, если не вызывается. Я определил “часы” 4 МГц, выключил модуль компаратора, установил все входы / выходы на цифровые. С TRISIO в банке 1 я определил GP3 и GP4 (установил соответствующие биты) как входы, все остальные контакты как выходы. Я очищаю регистры, такие как GPIO (банк 0) и ANSEL (аналоговый выбор банка 1), чтобы убедиться, что они находятся в известном состоянии. Несоблюдение этого может создать всевозможные проблемы.
Примечание: GP3 можно запрограммировать только как вход!
Затем я настраиваю GP0 как вход АЦП, затем модуль ШИМ настраивается на 250 Гц через таймер 2 (T2CON), в то время как 10-битное значение для управления рабочим циклом находится в регистрах CCPR1L и CCP1CON в банке 0.
Настройка – это сложнее всего, поэтому начните с моего общего шаблона и научитесь делать одно, а затем переходите к другому.
Рис. 5 Часть микросхемы банка 0 12F683.
петля ; сделай что-нибудь GOTO loop
Вышеупомянутое – то же самое, что и петля Arduino в C. Давайте попробуем что-нибудь простое, например, замигать светодиодом, подключенным к контакту GP1, подключенному через резистор к земле. Чтобы программа заработала, нам нужно сохранить HIGH в регистре GPIO в GP1 или бите 1.Мы ждем while, затем сохраняем 0 в бит 1 или GP1 и снова ждем. В конце последовательности «GOTO loop» возвращает нас к началу. Обратите внимание на конфигурацию регистра для части банка 0.
Мы должны быть в банке 0 и, если не уверены, используем “BANKSEL GPIO”. Когда мы используем такие команды, как BSF и BCF, мы НЕПОСРЕДСТВЕННО переходим к регистру, в данном случае GPIO или 0x05. Обратите внимание на рисунок 5.
петля BSF GPIO, GP1; То же, что и BSF 0x05, 1 - бит 1 горит светодиод HIGH. ; ждать BCF GPIO, GP1; то же, что и BCF 0x05, 1 - бит 1 LOW LED не горит ; ждать GOTO loop
Как написано, время включения-выключения составляет 2 мкс.и можно увидеть только на осциллографе. Теперь мы подошли к использованию подпрограмм. Создайте набор небольших отлаженных подпрограмм и используйте их для построения других более крупных подпрограмм с помощью CALL. Нам нужна процедура задержки, чтобы замедлить процесс и что-то увидеть. Вернувшись в настройку, был ЗВОНОК на delay_1ms.
; Расчет задержки 1 мсек. 4 МГц делится на 4 внутри, чтобы ; 1,000,000. Возьмем обратное разделение 1 мсек на 1 мкСек = 1000. ; GOTO использует 2 цикла, DECFSZ - 1 цикл. delay_1ms ; Кристалл 4 мГц movlw D'2 ' movwf count1 aa movlw D'167 ' decfsz count2, F; внутренний цикл goto $ -1; два цикла decfsz count1, F; goto aa возвращаться
У нас есть подпрограмма delay_1ms, использующая так называемый программный цикл.У нас есть два цикла: один с count1 = 2, а другой count2 = 167. (Оба в десятичном формате). Это статические местоположения RAM, которые мы объявили ранее с CBOCK 0x20.
Что делает DECFSZ, так это уменьшает count1 или count2 и проверяет флаг Z в регистре STATUS_REG (0x03), бит 2, и если установлено (1), то результат последнего декремента равен нулю и следующая инструкция будет пропущена goto $ -1 и выйдите из цикла.
Для счетчика DECFSZ F – F означает сохранение результата в регистре «счетчик», в то время как W сохраняет результат во внутреннем рабочем регистре W.Многие инструкции делают это.
Каждый DECFSZ и GOTO занимает 3uSec. 167 раз примерно по 500 мс. общий. Внешний цикл (count = 2) дважды проходит цикл 500uSec с задержкой около 1 мсек – отсюда и название delay_1ms. (Используйте понятные имена.)
delay_250ms movlw d'250 ' movwf count1 aa call delay_1ms decfsz count1, F goto aa; aa можно не указывать, используйте "goto $ -2" возвращаться
Теперь мы использовали вторую процедуру задержки, которая вызывает delay_1ms 250 раз.Итак, теперь мы завершаем нашу программу, в которой светодиод будет мигать каждые полсекунды.
петля BSF GPIO, GP1; То же, что и BSF 0x05, 1 - бит 1 горит светодиод HIGH. Задержка звонка_250 мс BCF GPIO, GP1; то же, что и BCF 0x05, 1 - бит 1 LOW LED не горит Задержка звонка_250 мс GOTO loop
Надеюсь, этот пример был вам полезен. Чтобы увидеть всю программу, показанную на видео, см. Analog.asm для получения дополнительных примеров кода.
Посмотрите, как я попал в электронику
Основы программирования микроконтроллера PIC | Блог о проектировании печатных плат
Altium Designer| & nbsp 20 мая 2018 г.
Одна вещь, которую я извлек из родительского опыта: научить ребенка чему-то может быть невероятно сложно.Хотя они могут быть очень заинтересованы, и у них может быть все время и ресурсы в мире, если ребенок не готов учиться или упускает какой-то важный строительный блок, он может просто не получить навык или урок.
К счастью, программирование микроконтроллера PIC (MCU) значительно проще. С правильными инструментами программирования, схемой и функциональной прошивкой программист может заставить микроконтроллер PIC вести себя именно так, как нужно. Конечно, чтобы избежать ненужных хлопот и разочарований в будущем, по-прежнему важно придерживаться нескольких важных шагов.
Микроконтроллер PIC
Несмотря на появление одноплатных встроенных контроллеров, таких как Arduino, Raspberry Pi или BeagleBone, микроконтроллер PIC по-прежнему остается актуальным среди инженеров-электронщиков. Микроконтроллеры PIC, производимые Microchip, отличаются простотой использования, универсальными функциями и экономичностью. Программирование микроконтроллеров PIC варьируется от простых 8-битных MUC до мощных 32-битных моделей.
Универсальность микроконтроллеров PIC сделала их популярными не только среди инженеров, но и среди любителей.Широкий спектр периферийных устройств, памяти и вычислительной мощности обеспечивает подходящее решение практически для любого приложения. Программист, вероятно, найдет микроконтроллер PIC в своей стиральной машине или системе сигнализации.
Инструменты, необходимые программисту для программирования микроконтроллера
Программирование микроконтроллера PIC сегодня значительно проще, чем десять лет назад. В то время для некоторых микроконтроллеров PIC нижнего диапазона требовалось специальное оборудование программатора PIC для внедрения прошивки.Но если вы сегодня начинаете с микроконтроллера PIC, загрузка прошивки в микроконтроллер обычно является простым процессом.
Это инструменты, которые могут понадобиться программисту для программирования PIC-микроконтроллера сегодня:
1. MPLAB X IDE
MPLAB X IDE – это комплексная среда разработки от Microchip. Вам понадобится MPLAB X, чтобы написать свою прошивку, скомпилировать и собрать ее, прежде чем вы сможете программировать микроконтроллер PIC. В отличие от дорогой IDE, за которую раньше приходилось платить, MPLAB X IDE можно загрузить бесплатно.
Первый шаг – правильная прошивка.
2. PICKIT 4
PICKIT 4 – это новейший внутрисхемный отладчик от Microchip PIC, который позволяет программисту эффективно загружать программу в микроконтроллер. Это улучшенная версия своего предшественника PICKIT 3 с добавленной функцией слота для SD-карты, которая упрощает программирование различных прошивок на ходу. При программировании микроконтроллера PIC в лаборатории вам необходимо подключить PICKIT 4 между USB-портом вашего компьютера и выводом программирования микроконтроллера.
3. Схема программирования
Контакты для программирования микроконтроллеров PIC указаны в таблице данных. Микроконтроллеры PIC поддерживают внутрисхемное последовательное программирование (ICSP) или внутрисхемную отладку (ICD), причем последнее позволяет инженерам отлаживать микропрограммное обеспечение в режиме реального времени. Важно включить схему интерфейса программирования (ICSP или ICD) в конструкцию, к которой будет подключаться PICKIT 4 или PICKIT 3.
Программирование микроконтроллера
Когда все инструменты программирования готовы (независимо от ICSP или ICD) и собран прототип, программирование микроконтроллера становится почти интуитивным.Традиционные инструменты программирования требуют, чтобы программист включил оборудование перед загрузкой прошивки. Но программаторы PICKIT могут быть настроены для включения микроконтроллера, если он не превышает его максимальный предел по току.
Есть два способа загрузить прошивку в микроконтроллер PIC. В MPLAB X IDE программист найдет варианты «Запустить проект» или «Отладить проект» и, нажав «Запустить проект», скомпилирует и соберет вашу прошивку в производственном режиме, в то время как последний создаст отладочную версию следа прошивки.Вам нужно время, чтобы убедиться, что конечный продукт запрограммирован с использованием производственной версии микропрограммы.
Если все сделано правильно, ваш микроконтроллер начнет работать после загрузки программы.
Советы по разработке схемы программирования на печатной плате
Расположение выводов программирования на PICKIT 3 и PICKIT 4 аналогично, хотя PICKIT 4 имеет два дополнительных зарезервированных соединения выводов. Прошивка передается через сигналы PGD и PGC с выводом / MCLR для перевода микроконтроллера в режим программирования.
Программист захочет направить PGD и PGC параллельно и сохранить одинаковую длину, чтобы гарантировать минимальное повреждение сигнала. Кроме того, необходима надлежащая маркировка ориентации выводов программирования на печатной плате, поскольку легко ошибочно подключить PICKIT в обратном направлении, что может привести к повреждению как печатной платы, так и PICKIT.
Использование отличного программного обеспечения для проектирования печатных плат, такого как Altium Designer ® , значительно поможет вам в разработке схем программирования без помех для микроконтроллеров PIC.