История создания PIC –контроллеров.
Прообразом контроллеров семейства PIC с RISC –архитектурой послужил периферийный контроллер ( Peripheral Interface Controller — PIC), разработанный в 1975 году отделением компании General Instrument Microelectronics Inc для поддержки ввода–вывода 16–разрядного процессора. Поскольку к контроллеру не предъявлялось высоких требований по обработке данных, он имел ограниченный набор команд, при этом почти все команды в нем выполнялись за один машинный цикл. Другая особенность контроллера — использование Гарвардской архитектуры, основанной на разделении шин и областей памяти для данных и команд.
Позже отделение компании General Instrument выделилось в самостоятельную фирму ( Microchip Technology Ltd .), которая в конце 1980–х годов разработала и изготовила первые модели микроконтроллеров семейства Р1С16С5х. Дальнейшее развитие и совершенствование контроллеров шло по пути расширения состава периферийных устройств и набора команд, совершенствования технологии и улучшения характеристик. За прошедшие годы фирмой выпущено несколько семейств PIC, каждое из которых постоянно пополняется новыми моделями (версиями).
Архитектура
Архитектура ПЛК:
ПЛК обычно называют микроконтроллером высокого уровня. По сути, они состоят из модуля процессора, источника питания и модулей ввода-вывода. Процессорный модуль состоит из центрального процессора (ЦП) и памяти. В дополнение к микропроцессору, ЦП также содержит как минимум интерфейс, через который он может быть запрограммирован (USB, Ethernet или RS232) вместе с сетями связи. Блок питания обычно представляет собой отдельный модуль, а модули ввода-вывода отделены от процессора. Типы модулей ввода-вывода включают дискретные (вкл. / Выкл.), Аналоговые (непрерывная переменная) и специальные модули, такие как управление движением или высокоскоростные счетчики. Полевые устройства подключаются к модулям ввода / вывода.
В зависимости от количества модулей ввода / вывода, имеющихся в ПЛК, они могут находиться в том же корпусе, что и ПЛК, или в отдельном корпусе. Некоторые небольшие ПЛК, называемые нано / микро ПЛК, обычно имеют все свои части, включая питание, процессор и т. Д., В одном корпусе.
Архитектура микроконтроллера
Описанная выше архитектура ПЛК в некоторой степени похожа на микроконтроллеры с точки зрения компонентов, но микроконтроллер реализует все на одном кристалле, от ЦП до портов ввода-вывода и интерфейсов, необходимых для связи с внешним миром. Архитектура микроконтроллера представлена ниже.
Пример кода на основе релейной логики / диаграммы показан выше. Обычно он выглядит как лестница, что и является причиной его названия. Такой упрощенный вид позволяет очень легко программировать ПЛК, так что если вы можете анализировать схему, вы можете программировать и ПЛК.
В связи с недавней популярностью современных языков программирования высокого уровня, ПЛК теперь программируются с использованием этих языков, таких как C, C ++ и базовый, но все ПЛК, как правило, по-прежнему соответствуют отраслевому стандарту систем управления IEC 61131/3 и поддерживают языки программирования, предусмотренные стандартные, которые включают; Релейная диаграмма, структурированный текст, функциональная блок-схема, список инструкций и последовательная блок-схема.
Современные ПЛК обычно программируются с помощью прикладного программного обеспечения на любом из упомянутых выше языков, работающих на ПК, подключенном к ПЛК с использованием любого из интерфейсов: USB, Ethernet, RS232, RS-485, RS-422.
С другой стороны, микроконтроллеры запрограммированы с использованием языков низкого уровня, таких как ассемблер, или языков высокого уровня, таких как C и C ++, среди других. Обычно это требует большого опыта работы с используемым языком программирования и общего понимания принципов разработки микропрограмм. Программистам обычно необходимо понимать такие концепции, как структуры данных, а для разработки очень хорошей прошивки для проекта требуется глубокое понимание архитектуры микроконтроллера.
Микроконтроллеры обычно также программируются с помощью прикладного программного обеспечения, работающего на ПК, и они обычно подключаются к этому ПК через дополнительное оборудование, обычно называемое программатором.
Однако работа программ на ПЛК очень похожа на работу микроконтроллера. В ПЛК используется специальный контроллер, поэтому они обрабатывают только одну программу снова и снова. Один цикл выполнения программы называется сканированием, и он похож на цикл микроконтроллера.
Рабочий цикл программы, работающей на ПЛК, показан ниже.
Микроконтроллеры 8051
Микроконтроллер 8051 – это 8-битное семейство микроконтроллеров, разработанное Intel в 1981 году. Это одно из популярных семейств микроконтроллеров, которые используются во всем мире. Кроме того, этот микроконтроллер изначально назывался «системой на кристалле», поскольку он имеет 128 байт оперативной памяти, 4 Кбайт ПЗУ, 2 таймера, 1 последовательный порт и 4 порта на одном кристалле. Процессор может обрабатывать до 8 бит данных одновременно. Если данные больше 8 бит, то они должны быть разбиты на части, чтобы процессор мог легко их обрабатывать. Большинство микроконтроллеров серии 8051 различных производителей содержат 4 Кбайт ПЗУ, хотя объем ПЗУ может быть расширен до 64 Кбайт.
Микроконтроллеры 8051 используются в огромном количестве устройств, главным образом потому, что их легко интегрироватьв проект. Ниже перечислены основные направления их применения.
Во первых, это контроль электроэнергии: эффективные системы измерения облегчают контроль использования энергии в домах и производственных помещениях. Эти измерительные системы оптимальны для возможности интеграции микроконтроллеров.
Сенсорные экраны. Большое количество поставщиков микроконтроллеров включает сенсорные функции в свои устройства. Примерами сенсорных экранов на микроконтроллерах являются портативная электроника, такая как сотовые телефоны, медиаплееры и игровые устройства.
Автомобили: микроконтроллеры 8051 находят широкое применение в автомобильных решениях. Они широко используются в гибридных транспортных средствах для обработки данных с двигателей и управления ими. Кроме того, такие функции, как круиз-контроль и анти-тормозная система, более эффективны с использованием микроконтроллеров.
Медицинские устройства: переносные медицинские устройства, такие как измерители артериального давления и мониторы глюкозы, используют микроконтроллеры для отображения данных, что обеспечивает более высокую надежность при предоставлении медицинских результатов.
Обзор PIC– контроллеров.
В настоящее время фирма Microchip выпускает пять семейств микроконтроллеров:
● PIC 16 C 5 X включает недорогие контроллеры с минимальным набором периферийных устройств:
● Р I С12Сххх содержит МК в миниатюрном 8–выводном корпусе со встроенным тактовым генератором и модулем 8–разрядного АЦП (для некоторых моделей);
● Р I С16х/7х/8х/9х объединяет МК с развитой периферией (таймеры–счетчики с опциями захвата/сравнения, широтно–импульсные модуляторы, аналоговые компараторы, АЦП, контроллеры последовательных интерфейсов);
● Р IC 17С4х/5хх включает высокопроизводительные МК с расширенной системой команд и обширной периферией. Микроконтроллеры этого семейства имеют встроенный аппаратный умножитель 8 r 8, выполняющий операцию умножения за один машинный цикл;
● Р I С18Сххх — новое семейство с оптимизированным под использование Си–компилятора RISC –ядром и частотой внутренней шины до 10 МГц.
Потребителям предоставляются три модели микроконтроллеров семейства PICMicro с различными сочетаниями характеристик и свойств.
Младшие модели.
К ним относятся МК серии 16С5х и 8–выводные МК серии 12С5хх, которые реализуют нижний уровень возможностей микроконтроллеров семейства PICMicro и используются для создания небольших и простых приложений. Они выполняют подмножество команд старших моделей и программно совместимы с ними. Младшие модели сыграли большую роль в развитии семейства PICMicro . Однако ограниченные возможности обработки прерываний, малый объем доступной памяти программ и RAM , отсутствие внутрисистемного программирования и портов ввода/вывода с расширенными функциями, снижение стоимости технологических затрат явились причинами перехода к моделям микроконтроллеров среднего уровня, которые продавались по такой же (и даже более низкой) цене, как и МК младших моделей.
Средние модели.
Модели среднего уровня образуют законченную линию микроконтроллеров (серия 16Схх) с множеством различных функций и получили наиболее широкое распространение. Они имеют такую же базовую архитектуру, как микроконтроллеры младших моделей, но существенно отличаются возможностями обработки прерываний.
Старшие модели.
Микроконтроллеры старших моделей (серии 17Схх) разрабатывались для взаимодействия с другими цифровыми устройствами. Поэтому в них отсутствуют имеющиеся в моделях среднего уровня АЦП и устройства для подключения датчиков. В контроллерах используются 16–битные команды, способные адресовать по 128К байт памяти программ и памяти данных (64К слов по 16 бит). Для чтения/записи памяти программ в МК используется модифицированное ядро центрального процессора, позволяющее различным командам обращаться ко всем регистрам процессора. Это повышает гибкость микроконтроллеров и расширяет области их применения. Младшие и средние модели такой возможностью не обладают. Кроме того, в старших моделях PICMicro имеется несколько векторов прерываний, в то время как в микроконтроллерах среднего уровня используется только один вектор прерывания.
Как прошивать микроконтроллер? С чего начать изучение?
Официальный программатор для семейств PIC – это PICkit V3, является наиболее распространенным. Программный код загружается в чип с помощью ПО, которое есть на диске, он идёт в комплекте с программатором. IDE имеет название MPlab. Является официальной средой разработки от производителя, между прочим, бесплатной. Для изучения устройств есть отличная книга на русском языке «Pic-микроконтроллеры. Полное руководство» автор её Сид Катцен. Кроме этой книги вы найдете огромное количество видео-уроков и текстовых материалов, которые вам помогут.
Применение микроконтроллеров PIC весьма широко, многие радиолюбители собирают металлоискатели и счетчики Гейгера на этих МК.
Программаторы, собранные вручную
А теперь, пожалуй, самое интересное – программаторы PIC-контроллеров, которые собираются вручную. Этим вариантом пользуются те, у кого нет денег или просто нет желания их тратить. В случае покупки у официального представителя можно рассчитывать на то, что если устройство окажется некачественным, то его можно вернуть и получить новое взамен. А при покупке «с рук» или с помощью досок объявлений в случае некачественной пайки или механических повреждений рассчитывать на возмещение расходов и получение качественного программатора не приходится. А теперь перейдём к собранной вручную электронике.
Программатор PIC может быть рассчитан на определённые модели или быть универсальным (для всех или почти всех моделей). Собираются они на микросхемах, которые смогут преобразовать сигналы с порта RS-232 в сигнал, который позволит программировать МК. Нужно помнить, что, когда собираешь данную кем-то конструкцию, программатор PIC, схема и результат должны подходить один к одному. Даже небольшие отклонения нежелательны. Это замечание относится к новичкам в электронике, люди с опытом и практикой могут улучшить практически любую схему, если есть куда улучшать.
Отдельно стоит молвить слово и про программный комплекс, которым обеспечивают USB-программатор для PIC, своими рукамисобранный. Дело в том, что собрать сам программатор по одной из множества схем, представленных в мировой сети, – мало. Необходимо ещё и программное обеспечение, которое позволит компьютеру с его помощью прошить микроконтроллер. В качестве такового довольно часто используются Icprog, WinPic800 и много других программ. Если сам автор схемы программатора не указал ПО, с которым его творение сможет выполнять свою работу, то придется методом перебора узнавать самому. Это же относится и к тем, кто собирает свои собственные схемы. Можно и самому написать программу для МК, но это уже настоящий высший пилотаж.
Выбор программного обеспечения для наших проектов
Микроконтроллеры PIC могут программироваться с помощью различного программного обеспечения, присутствующего сейчас на рынке. Некоторые энтузиасты до сих пор используют для их программирования язык ассемблера, но мы в нашей серии обучающих статей по микроконтроллерам PIC будем использовать инструменты, разработанные компанией Microchip.
Для программирования микроконтроллеров PIC нам понадобится интегрированная среда разработки (Integrated Development Environment, IDE), в которой мы непосредственно будем писать программы. Также нам будет необходим компилятор, который преобразовывать нашу программу в HEX файл – формат, который понимает наш микроконтроллер. И, наконец, нам понадобится интегрированная среда программирования (Integrated Programming Environment, IPE), которая будет записывать наш HEX файл в микроконтроллер. В качестве всех этих инструментов мы выберем следующие:
- IDE: MPLABX v3.35;
- IPE: MPLAB IPE v3.35;
- Compiler: XC8.
Компания Microchip предоставляет все эти инструменты бесплатно. После скачивания этих программ необходимо установить их на свой компьютер. Более подробно эти процессы вы можете посмотреть на видео, приведенном в конце статьи.
Микроконтроллеры AVR
Первые микроконтроллеры AVR были разработаны в 1996 году компанией Atmel (теперь часть Microchip). Проект AVR был разработан Альф-Эгилем Богеном и Вегаром Волланом, поэтому AVR аббревиатура получила две первые буквы от имен разработчиков: Alf-Egil Bogen Vegard Wollan RISC, после эта аббревиатура стала расшифровываться более официально как Advanced Virtual RISC. AT90S8515 был первым микроконтроллером в линейке AVR, хотя первым микроконтроллером, который попал на коммерческий рынок, был AT90S1200 (в 1997 году).
Микроконтроллеры AVR доступны в трех основных подсемействах:
TinyAVR: меньше памяти, небольшой размер, подходит только для более простых приложений.
MegaAVR: это популярные микроконтроллеры, в основном имеющие относительно большое количество памяти (до 256 КБ), большее количество встроенных периферийных устройств и подходят для довольно сложных приложений.
XmegaAVR: используются в коммерческих приложениях для решения сложных задач, которым требуется большая память программ и высокая скорость.
Достоинства контроллеров.
К достоинствам микроконтроллеров PIC следует отнести:
● высокую производительность, которая позволяет реализовывать различные устройства, работающие в реальном времени с большими скоростями (системы управления автомобильными и электрическими двигателями, видеоигры и др.). В частности, производительность Р I С16С5х при частоте тактирования в 20 МГц составляет 5 MIPS (Million Instruction Per Second — миллионов инструкций в секунду). Высокая производительность достигается благодаря использованию:
• RISC –процессора, большинство команд которого выполняется за один машинный цикл (команды перехода и операции табличного чтения выполняются за два цикла);
• двухступенчатого конвейера, совмещающего выполнение текущей команды с выборкой из памяти следующей команды;
• Гарвардской архитектуры, обеспечивающей одновременное считывание команд (12, 14 или 16 бит) и данных (8 или 1 бит);
● малое энергопотребление, открывающее широкие возможности для создания устройств с батарейным питанием, питанием от телефонной линии, солнечных батарей (мобильные телефоны, электронные сторожа и др.). Для микроконтроллеров PIC 17, имеющих широкий набор аппаратных средств, потребление тока составляет:
• менее 5 мА при 5 В, 4 МГц;
• 100 мкА при 4,5 В, 32 кГц;
• менее 1 мкА при 5 В в режиме ожидания;
● мощную поддержку разработок, которую осуществляет фирма Microchip .
В качестве средств поддержки разработчику приложений предоставлены ассемблер MPASM и макроассемблер, симулятор MPSIM, интегрированная система отладки для Windows MPLAB, программный, внутрисхемный и отладочный эмуляторы, универсальный программатор и компилятор С. Кроме того, имеются библиотеки для работы с фиксированной и плавающей точкой, с последовательным интерфейсом и с аналого–цифровым преобразователем, а также большое количество документированных примеров применения микроконтроллеров PIC в различных областях с исходными текстами. Обилие средств поддержки разработчика способствует сокращению сроков создания приложений;
● совместимость, проявляющуюся в том, что программы для микроконтроллеров более ранних семейств PIC16C5X и PIC16CXX могут быть легко перенесены на семейство устройств PIC17CXX;
● разнообразие используемых способов программирования «внутри» каждого семейства PIC.
Фирма Microchip выпускает:
• микроконтроллеры с ультрафиолетовым стиранием, в которых память может быть очищена и контроллер перепрограммирован с помощью программатора PRO МАТЕ фирмы Microchip для функционирования в любом режиме, например, в режиме с использованием RC –генератора. Эти микроконтроллеры предназначены для экспериментальных разработок и отладки программ;
• однократно программируемые контроллеры ( One – Time Programming PROM — OTP ), изготовленные в пластиковом корпусе, позволяют пользователю записать в память программу и биты конфигурации только один раз. Они применяются в тех случаях, когда нет необходимости часто менять содержание программы или конфигурацию микроконтроллера в выпускаемом устройстве;
• контроллеры, программируемые изготовителем по заказу пользователя ( Quality TP — QTP ). Этот сервис, предлагаемый фирмой Microchip , предназначен для устоявшегося кода программы;
• контроллеры с серийными номерами ( SQTP ), программируемые изготовителем по заказу пользователя. В этих МК несколько определенных пользователем ячеек содержат номер, уникальный для отдельного устройства. Серийный номер может быть случайным, псевдослучайным и последовательным. Его можно использовать как код доступа, пароль или идентификатор;
• масочные контроллеры ( ROM ), в которых используются масочные ПЗУ. Такие контроллеры, имеющие низкую стоимость, изготавливаются для массового потребителя или при больших объемах заказа;
● высокую надежность, низкую стоимость и др.
Благодаря указанным достоинствам микроконтроллеры находят широкое и разнообразное применение.
Программируемый логический контроллер
Программируемый логический контроллер (PLC), это просто специальное назначение вычислительного устройства, предназначенное для использования в промышленных системах управления и других системах, в которых надежность системы является высокой.
Первоначально они были разработаны для замены проводных реле, последовательностей и таймеров, используемых в производственном процессе промышленностью автоматизации, но сегодня они масштабируются и используются во всех видах производственных процессов, включая линии на основе роботов. В наши дни, вероятно, нет ни одной фабрики в мире, на которой не было бы машины или оборудования, работающего на ПЛК. Основная причина их широкого распространения и использования кроется в их прочности и способности противостоять грубому обращению / окружающей среде, связанным с производственными полами. Они также являются хорошим примером операционных систем реального времени. поскольку они обладают высокой способностью выдавать выходные сигналы на определенные входы в очень короткие сроки, что является ключевым требованием для промышленных установок, поскольку вторая задержка может нарушить всю работу.
Запускаем трансфлективный TFT дисплей на SSD1283A с помощью STM32
Tutorial
Введение
Модель дисплея называется H016IT01. Данный дисплей интересен прежде всего тем, что он является трансфлективным(transflective). Это означает, что изображение на нем должно быть видно даже под ярким солнцем. А также это чуть ли не единственная доступная модель с этой особенностью на известном китайском сайте. Статья же увидела свет потому, что информации по контроллеру SSD1283A очень мало(как в русском, так и западном сегменте сети), и руководства я нигде не встречал. В сети можно найти даташит, однако там нет информации по инициализации и работе с дисплеем, а из полезного только описания регистров. Хочу подчеркнуть, что данный материал конечно же не является истиной последней инстанции. Я привожу лишь свой опыт взаимодействия с устройством. Основная цель статьи проста — помочь всем тем, кто решил, хочет или захочет поработать с данным дисплеем, не более.
Работа с микроконтроллерами
Что же необходимо для работы всех программаторов с микроконтроллерами? Дело в том, что, хотя сами программаторы и являются самостоятельными схемами, они передают сигналы компьютера в определённой последовательности. И задача относительно того, как компьютеру объяснить, что именно необходимо послать, решается программным обеспечением для программатора.
В свободном доступе находится довольно много различных программ, которые нацелены на работу с программаторами, как самодельными, так и заводскими. Но если он изготавливается малоизвестным предприятием, был сделан по схеме другого любителя электроники или самим человеком, читающим эти строки, то программного обеспечения можно и не найти. В таком случае можно использовать перебор всех доступных утилит для программирования, и если ни одна не подошла (при уверенности, что программатор качественно работает), то необходимо или взять/сделать другой программатор PIC, или написать собственную программу, что является весьма высоким пилотажем.
Как прошивать микроконтроллер? С чего начать изучение?
Официальный программатор для семейств PIC – это PICkit V3, является наиболее распространенным. Программный код загружается в чип с помощью ПО, которое есть на диске, он идёт в комплекте с программатором. IDE имеет название MPlab. Является официальной средой разработки от производителя, между прочим, бесплатной. Для изучения устройств есть отличная книга на русском языке «Pic-микроконтроллеры. Полное руководство» автор её Сид Катцен. Кроме этой книги вы найдете огромное количество видео-уроков и текстовых материалов, которые вам помогут.
Применение микроконтроллеров PIC весьма широко, многие радиолюбители собирают металлоискатели и счетчики Гейгера на этих МК.
Классификация
Проблема рядового потребителя связана с запутанностью терминологии. Блоком питания называется источник, предназначенный для подключения любого радриоэлектроного оборудования, выдающий определенный уровень напряжения и тока.
Для большинства светодиодов требуется 4 В, при последовательном соединение максимальное количество 15 элементов, что соответствует напряжению 60 В. В российской сети 220 В, поэтому блок питания включается в систему обязательно.
Обозначать БП словом «драйвер» неверно, так как этот вид оборудования обеспечивает только стабильность тока (существуют модели, обеспечивающие диммирование). Драйвером можно назвать устройство, которое обеспечивает питание при подключении к сети 12 В или 24 В. Если осветительный прибор необходимо подключить к 220 В, требуется блок питания.
Исторически устройство, обеспечивающее параметры питания электроприбора, называется балластом (ПРА). При переходе на светодиодное освещение термин не стали менять. То же относится к термину «электронный трансформатор». Это устройство снижает напряжение и повышает частоты, запитать от него можно гирлянду или похожий на нее источник света.
БП может размещаться в корпусе или отдельно от осветительного прибора, включаться в комплект поставки или приобретаться отдельно.
По конструкции эти приборы делятся на 2 большие группы:
- изолированные;
- неизолированные.
У изолированного БП отсутствует гальваническая связь между входом и выходом, что повышает уровень безопасности во время эксплуатации благодаря невысокому уровню напряжения на выходе. Этот вид блоков питания производится на основе трансформатора, первичная обмотка которого подключается к сети. Светодиодный светильник или лента присоединяется к вторичной обмотке
Изолированные модели сравнительно дорогие, но хорошо сглаживают скачки и импульсы напряжения, что особенно важно для российской электросети
В неизолированных БП между входом и выходом есть гальваническая связь. На выходе напряжение не превышает 60 В, но показатель между землей и одной из линий выхода может достигать значения сетевого напряжения. Это оборудование компактное и сравнительно дешевое, но с низким КПД. В комплект поставки их включают производители дешевой светодиодной продукции. Если в процессе монтажа присоединить выключатель к нулевому проводу, светодиодный осветительный прибор будет светиться в выключенном состоянии.
Исходя из вышеизложенного, источники питания для светодиодов можно разделить на 3 группы;
- трансформаторные;
- импульсные;
- драйверы.
Первые два типа предназначены для выработки постоянного напряжения, которое остается стабильным независимо от колебаний сети и изменения тока.
Трансформаторный БП состоит из:
- трансформатора;
- выпрямителя;
- фильтра;
- стабилизатора.
Такой прибор просто установить, он хорошо переносит режим холостого хода, но не терпит перегрузок, имеет большой вес и низкий КПД.
Импульсный БП меньше по размерам и легче благодаря работе с более высокими импульсами, но плохо переносит холостой ход и перегрузки.
Функция драйвера – выровнять уже стабилизированный электроток. Он состоит из дросселя, транзисторного ключа и схемы, управляющей ключом. Драйвер работает с частотами 30-50 Гц, контролирует ток, поступающий на светодиоды, регулирует вольтаж. Качественное оборудование этого типа имеет встроенный каскад для подавления гармотик, искажающих ток сети.
https://youtube.com/watch?v=FiGOY4cBIWY
Возможные проблемы
Увы, даже самая идеальная техника не лишена возможных проблем, которые нет-нет, да и возникнут. Для улучшенного понимания необходимо составить список. Часть из этих проблем можно исправить вручную при детальном осмотре программатора, часть — только проверить при наличии необходимой проверочной аппаратуры. В таком случае, если программатор PIC-микроконтроллеров заводской, то вряд ли починить представляется возможным. Хотя можно попробовать найти возможные причины сбоев:
- Некачественная пайка элементов программатора.
- Отсутствие драйверов для работы с устройством.
- Повреждения внутри программатора или проводов внутри компьютера/USB.