Микроконтроллеры pic для начинающих: схемы, программирование

Микроконтроллеры pic для начинающих: схемы, программирование

Atmel Studio

Интегрированная среда разработки (IDE) от компании Atmel для разработки приложений под микроконтроллеры ARM Cortex-M и AVR. Freeware

Микроконтроллеры pic для начинающих: схемы, программирование

AVRDUDE

Консольная программа для считывания, изменения и записи содержимого памяти микроконтроллеров архитектуры AVR, применяющая технологию внутрисхемного программирования. Есть русифицированные графические оболочки. Freeware

Микроконтроллеры pic для начинающих: схемы, программирование

WinAVR

Мощная среда разработки с открытым исходным кодом, созданная с целью написания программ для микроконтроллеров серии AVR от компании Atmel. Freeware

Микроконтроллеры pic для начинающих: схемы, программирование

BASCOM-AVR

Среда разработки программного кода для микроконтроллеров серии AVR компании Atmel на языке, подобном стандартному Бейсику. Freeware (бесплатная с ограничением на код 4 кБ) и Shareware

Микроконтроллеры pic для начинающих: схемы, программирование

CodeVisionAVR

IDE для AVR микроконтроллеров. Из основных достоинств CodeVisionAVR можно отметить то, что он не слишком сложен для самостоятельного освоения, поддерживает все многочисленное семейство микроконтроллеров AVR, формирует емкий и результативный программный код. Платная, есть бесплатная Evaluation-версия с ограничением на код 4 кБ.

Микроконтроллеры pic для начинающих: схемы, программирование

VMLAB

Инструмент для разработки и отладки программного кода, а также моделирования работы радиотехнических устройств на базе AVR микроконтроллеров. Freeware

Микроконтроллеры pic для начинающих: схемы, программирование

MPLAB

Единая бесплатная интегрированная среда разработки для контроллеров производства Microchip Микроконтроллеры pic для начинающих: схемы, программирование

MPIDE

Среда разработки, выполненная на базе открытой системы Arduino IDE и предназначенная специально для контроллеров PIC32 от компании Microchip Technology.

Микроконтроллеры pic для начинающих: схемы, программирование

WinPic800

Небольшой, но весьма эффективный бесплатный программный пакет для прошивки PIC-микроконтроллеров различных серий. Есть русский язык.

Микроконтроллеры pic для начинающих: схемы, программирование

PICPgm

Простое программное обеспечение для прошивки PIC-микроконтроллеров, отличающееся стабильностью, качеством и скоростью программирования. Freeware

CooCox CoIDE

Бесплатная высокоинтегрированная программная среда, предназначенная для разработки кода микроконтроллеров архитектуры ARM и др.

Keil uVision

Среда разработки, представляющая собой набор утилит для выполнения полного комплекса мероприятий по написанию программного обеспечения для микроконтроллеров различных семейств. Платная, но есть демоверсия с рядом ограничений, в т.ч. на размер кода — не более 32 КБ.

IAR Embedded Workbench

Многофункциональная среда разработки приложений на языках C, C++ и ассемблере для целого ряда микроконтроллеров от различных производителей. Среда разработки платная, но бесплатная версия с ограничениями на размер кода в зависимости от микроконтроллера.

Flowcode

Один из передовых графических языков программирования для микроконтроллеров. Поддержка русского языка. Платная, но есть бесплатная версия с ограничениями и только для микроконтроллеров PIC.

Algorithm Builder

Бесплатная графическая среда программирования для разработки приложений под микроконтроллеры с архитектурой AVR от отечественных разработчиков.

MikroC

Мощнейшая среда разработки программ для микроконтроллерных устройств, включающая редактор кода, компилятор, отладчик, программные и аппаратные библиотеки, использующие готовые функции. Программа платная. Есть бесплатная версия с ограничениями.

mikroPascal

Мощная среда разработки приложений на языке Паскаль для различных архитектур микроконтроллеров. Программа платная. Есть бесплатная версия с ограничениями на размер кода (до 4096 байт).

mikroBasic

Среда разработки программ на языке Бейсик для микроконтроллеров различных производителей. Программа платная от 199$. Есть бесплатная версия с ограничениями на размер кода (до 4096 байт).

MicroCode Studio Plus

Программа для создания и отладки кода, написанного на языке программирования BASIC, под PIC-микроконтроллеры. Программа платная 50$. MicroCode Studio – облегченный, бесплатный вариант с ограничением на кол-во строк кода.

IC Prog

Одна из самых популярных бесплатных оболочек для программирования, поддерживающая огромное число микроконтроллеров, ППЗУ и адаптеров различной конструкции. На русском языке.

Pony Prog 2000

Нетребовательная и многофункциональная программа — программатор, предназначенная для работы с микроконтроллерами и постоянными запоминающими устройствами с последовательным доступом различных производителей. На русском языке.Freeware.

SinaProg

Графическая оболочка для программы AVRdude, включающая в себя простой и функциональный AVR fuse-калькулятор. Freeware.

AVR8 Burn-O-Mat

Графическая оболочка для популярной программы AVRDUDE, использующейся при прошивке микроконтроллеров компании Atmel. Freeware.

Khazama AVR Programmer

Небольшая программа, созданная с целью быстрой прошивки микроконтроллеров Atmel AVR. Freeware.

UniProf

Простой, бесплатный, универсальный программатор для микроконтроллеров семейства AVR.

eXtreme Burner — AVR

Бесплатное программное обеспечение, предназначенное для прошивки AVR-микроконтроллеров.

Code Composer Studio

Интегральная среда проектирования, предназначенная для создания программного обеспечения, использующегося в процессорах и микроконтроллерах компании Texas Instruments Incorporated. Программа платная, бесплатная версия CCS-FREE с рядом ограничений.

TivaWare

Набор высококачественных, полноценных библиотек для контроллеров семейства TIVA от Texas Instruments. Freeware.

FastAVR

Один из лучших компиляторов Basic-подобного языка для серии восьмибитных микроконтроллеров AVR.

Atollic TrueSTUDIO

Интегрированная среда разработки программ для ARM-процессоров, включающая в себя GNU компилятор и отладчик. Среда разработки платная, но есть бесплатная версия TrueSTUDIO Lite с рядом ограничений.

Sourcery CodeBench

Самодостаточная интегрированная среда разработки, предназначенная для создания приложений на C/C++ для IA32, ColdFire, Power, MIPS, ARM и некоторых других архитектур микроконтроллерных устройств. Платная 400$ (есть 30-дневная ознакомительная версия)

CODESYS

Программно-инструментальный комплекс, основанный на стандарте IEC 61131-3 и предназначенный для программирования промышленных контроллеров и компьютеров. На русском языке. Freeware.

Flash Magic

Бесплатное приложение для программирования микроконтроллеров компании NXP Semiconductors

STEP 7-Micro/WIN

Простое и удобное программное обеспечение, созданное для работы с программируемыми контроллерами серии SIMATIC S7-200 компании Siemens AG. Платная.

PIC Simulator Studio

многофункциональное и высокопроизводительное программное обеспечение, предназначенное в первую очередь для симуляции в реальном времени цифровых и аналого-цифровых схем, ядром которых выступает микроконтроллер PIC micro. Бесплатное

PIC Simulator IDE

Программа, предназначенная для отладки кода контроллеров microPIC компании Microchip Technology. Платная от 39 евро (есть ознакомительная версия с ограничениями)

4D Workshop IDE

Специализированная программная среда, предназначенная для работы с микропроцессорами в графических контроллерах и готовых дисплейных модулях компании 4D Systems. Freeware.

Программирование микроконтроллеров семейства PIC начинающим

Первые микроконтроллеры появились в 60-х годах. Автоматизированные системы до этого времени обычно строились на основе реле. В принципе, релейные системы исполняли требуемую функцию вполне успешно.

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

В этом смысле программируемый логический контроллер оказался куда более предпочтительным устройством. Теперь программируемые логические контроллеры распространены повсеместно. Однако тонкости программирования таких систем остаются малопонятными для многих радиолюбителей.

Рассмотрим этот важный момент – как программировать контроллер на примере широко известной серии ПЛК (PLC — Peripheral Interface Controller): продукта компании Microchip Technology Inc.

Общий взгляд на устройства ПЛК

Системы на базе микропроцессора (микроконтроллеры) выступают в качестве программируемых электронных устройств, для которых специально разработаны языки программирования.

Благодаря таким языкам программирования, существенно облегчается процесс программирования контроллеров. Язык высокого уровня, созданный для ПЛК, обеспечивает простоту, эффективность и дружелюбную среду для пользователя.

Микропроцессор фактически можно рассматривать электронной схемой, поддерживающей обработку команд, хранящихся в системной памяти. Эта же схема работает с инструкциями — арифметическими и логическими, использует внешние устройства:

  • память,
  • входные порты,
  • выходные порты.

В свою очередь, микроконтроллер представляет собой интегральную схему, в составе которой присутствуют:

  • микропроцессор,
  • память программ и данных,
  • генератор тактовых импульсов,
  • интерфейсы ввода и вывода,
  • таймеры,
  • аналого-цифровые преобразователи,
  • внешние коммуникационные порты и другие схемы.

Макрос языка высокого уровня — это инструкция, которая является сокращённой строкой, содержащей несколько инструкций. Запись программы с повторяющимися действиями (схожестью инструкций) при использовании макросов значительно сокращается.

PIC18F4550

Микроконтроллеры pic для начинающих: схемы, программированиеПрограммируемые микроконтроллеры используются в составе современной электроники повсеместно. Умение работать с этим функциональным инструментом открывает широкие горизонты

Эффективность программы на основе макросов столь же эффективна, как и запись программы на языке «C». Компилятор отвечает за создание соответствующих подстановок для генерации кода, который передаётся в память программы микропроцессора или микроконтроллера.

Программирование широко распространённых микроконтроллеров PIC12 / PIC16

Микроконтроллеры PIC программируются с использованием проприетарного последовательного протокола. Поэтому конечному пользователю недостаточно просто взять и подключить микросхему контроллера PIC напрямую к любому «стандартному» интерфейсу.

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

Помимо рабочего напряжения, микроконтроллерам требуется ещё три сигнала:

  1. Программируемое напряжение (около 13В).
  2. Таймер программирования (ICSPCLK).
  3. Данные (ICSPDAT).

Поскольку большинство выпускаемых экземпляров PIC допускают программируемое напряжение несколько ниже значения, указанного спецификацией, открывается возможность использования уровней сигналов ± 12В, присутствующих на интерфейсе последовательного порта настольного ПК. Таким образом, «записать» PIC вполне допустимо без необходимости подключения дополнительного источника питания.

Преобразование уровней допускается выполнять при помощи нескольких компонентов. Однако представленная ниже упрощённая схема, обладает некоторыми ограничениями.

Читайте также:  Как адаптировать кондиционер для работы зимой

В частности, позволяет считывать и программировать непосредственно PIC устройства.

Нет никакой гарантии, что эта схема способна обеспечить программирование всех контроллеров, поскольку не соответствует полной спецификации программирования.

ISD1700

Микроконтроллеры pic для начинающих: схемы, программированиеСхема принципиальная упрощённого программатора микроконтроллеров серии PIC и обозначенные линии подключения интерфейсов RS232 / ISSP

Внутрисхемное программирование микроконтроллера PIC

Разъём внутрисхемного программирования (ICSP) предоставляет возможность запрограммировать микроконтроллер непосредственно в рамках прикладной схемы. Этот вариант видится особенно полезным в домашних условиях или в другой не специальной среде, где по каким-либо причинам требуется повторное изменение программированием PIC и тестирование схемы.

Применение разъёма ICSP позволяет избежать рисков при перемещении микроконтроллера PIC между различными гнездами (например, в случае изгиба контактов или воздействия на микроконтроллер электростатических разрядов). Также работа с разъёмом ICSP обеспечивает экономию времени.

PIC K150 ICSP

Микроконтроллеры pic для начинающих: схемы, программированиеВот такой вариант ICSP соединителя вполне подойдёт для подключения линий связи на случай выполнения программирования микроконтроллера серии PIC12/PIC16

Следует внимательно использовать интерфейс и кабель ICSP, принимая во внимание, что схема не должна нарушать ход сигналов программирования. Другими словами – точное соответствие месту назначения сигналов необходимо выполнять безукоризненно.

Основные условия программирования:

  • время переключения напряжения программирования «0 – 13В» составляет несколько микросекунд;
  • полный размах напряжения сигналов таймера и данных достигается в течение одной микросекунды;
  • вывод сигнала PGM остаётся низким всё время программирования.

Некоторые микроконтроллеры PIC требуют применения напряжения программирования до подачи рабочего напряжения. В этом случае напряжением программирования управляют через модуль программатора. Самый простой способ выполнить первые два условия — не использовать корреспондирующие выводы в цепях схемы. Если необходимо, следует использовать отладчик.

Рекомендации относительно процедуры программирования

Не рекомендуется подключать активные цепи к линии внешнего (основного) сброса (MCLR – Microcontroller Line Reset).

Если сигнал MCLR используется для сброса PIC, следует устанавливать резистор номинальным сопротивлением более 56 кОм между выводами MCLR и подачи напряжения питания.

Рекомендуется в цепь резистора включать конденсатор небольшой ёмкости — менее 100 пФ со смещением на землю (вывод GND).

Сигнальные выводы программирования должны исключать наличие индуктивной или ёмкостной нагрузки. Когда рабочее напряжение питания берётся от модуля программатора, требуется изолировать вывод питания PIC от остальной части прикладной схемы в процессе программирования.

TL866II USB

Микроконтроллеры pic для начинающих: схемы, программированиеСхемные доработки программатора микроконтроллера, рекомендуемые с целью обеспечения более качественного процесса программирования устройства

Этот вариант может иметь место, если схема содержит собственный стабилизатор напряжения питания и оснащается развязывающим конденсатором большой ёмкости. Модуль программатора, предназначенный под напряжение питания 3,3В, не в состоянии заряжать конденсатор достаточно быстро, а для программирования PIC требуется не менее 4,5В.

Между тем вариант изолирования можно исключить, если в схеме используется диод Шоттки. Чтобы удерживать вывод перевода микроконтроллера в режим программирования (PGM) на низком уровне, рекомендуется подключать этот вывод к земле через резистор номиналом от 2,2 кОм до 10 кОм.

Всегда рекомендуется таймер включения питания вносить в «слово» конфигурации. Задержка таймера более 40 мс даёт достаточно времени для стабилизации напряжения питания перед началом любой операции. Такой шаг позволяет избежать непреднамеренного выполнения программы до входа в режим программирования.

Во время программирования остальные контакты порта остаются в режиме ввода — имеют высокий импеданс. Используемой схемой необходимо обрабатывать такое состояние по возможности неактивным способом. Чтобы избежать нежелательных «побочных эффектов», следует рассмотреть возможность дополнения подтягивающими резисторами.

Для обеспечения повторного программирования микроконтроллера PIC в условиях напряжения питания ниже 4,5В, область памяти необходимо отключить от защиты. Это обусловлено применением «Chip Erase», единственного способа удаления кода или защиты данных, которого требуют практически все микроконтроллеры PIC с напряжением питания выше 4,5В.

Сигналы ICSP соответствующие контактам PIC 12Fxxx / 16Fxxx

Число ниже аббревиатуры сигнала соответствует выходу разъема ICSP модуля программатора. Для использования модуля с тестовыми платами сторонних производителей требуется адаптер.

АДАПТЕР

Микроконтроллеры pic для начинающих: схемы, программированиеСледует обратить внимание: разъём ICSP этого модуля программатора имеет различный порядок сигналов по сравнению с другими программаторами микроконтроллеров PIC

Следующие схемы показывают, как подключать сигналы программирования к микроконтроллерам PIC 12Fxxx / 16Fxxx:

ARDUINO UNO

Микроконтроллеры pic для начинающих: схемы, программированиеСхемы, определяющие порядок подключения сигнальных проводников, участвующих в процедуре чтения/записи данных микроконтроллеров разной конфигурации

Фирменные средства программирования

Существует солидная группа фирменных программаторов для микроконтроллеров семейства PIC. Наиболее известные аппаратные средства:

  • REAL ICE
  • Pickit 1-2-3
  • IC PROG
  • ICD 2-3-4

Характерные отличия отмеченных программаторов – устройства обладают не просто классическими функциями чтения/записи. Фирменным программаторам присущ целый ряд расширенных функций, включая полный контроль содержимого памяти и стёка.

На основе информации: Uolsinectis

PIC Урок 1. Знакомство с семейством PIC

  • Урок 1
  • Наконец-то сегодня нашлось время познакомить вас с ещё одним семейством микроконтроллеров – это микроконтроллеры PIC.
  • Данные микроконтроллеры также являются очень известными, устанавливаются во многие устройства и давно уже снискали у радиолюбителей очень сильный интерес.
  • Разработчиком данного семейства является компания Microchip, которая также ялвяется очень известной и её продукция востребована по всему миру.

Изучение данной серии контроллеров является очень нелёгким вопросом, я этим заниматься начал уже давно, но нормально разобрался с линейкой только сейчас. Последнее время я немного ускорил процесс изучения микроконтроллеров PIC благодаря вашим просьбам в группах и чатах, на которые я не мог не откликнуться.

Также к тому, чтобы поделиться своими знаниями в области программирования данной линейки, меня подтолкнуло то, что я видел много блогов, уроков (в том числе и видео) очень хорошего качества по контроллерам PIC именно с использованием языка ассемблер. А вот на языке C уроков очень мало, что подчёркивает их востребованность.

Поэтому замечу, что программировать МК PIC мы будем именно на языке C. Какую мы выберем среду программирования и компилятор, мы решим чуть позже, а пока же в данном уроке нас ждёт краткое знакомство с самими контроллерами, с их архитектурой и их разновидностями.

Разновидностями контроллеров мы будем считать их деление по архитектуре. Примем за основу разрядность их ядра.

Например, те контроллеры AVR, с которыми мы до сих пор работаем, являются 8-битными, а контроллеры STM, которые мы изучаем – 32-битными.

Вот и контроллеры PIC также делятся по битности.

Первая линейка – это 8-битные контроллеры PIC. Наименование их моделей начинается с префикса PIC10/PIC12/PIC16.

Данная линейка также делится на 3 семейства.

1. BASELINE – данная архитектура присутствует у контроллеров PIC10. От более мощной серии она отличается количеством выводов (от 6 до 28), дешевизной.

2. MID-RANGE – данную архитектуру имеют ядра микроконтроллеров PIC12/PIC16. Количество выводов в данной серии увеличено (от 6 до 64), стоят они несколько дороже, зато имеют помимо 35 машинных инструкций, поддерживаемых серией BASELINE, ещё 14 дополнительных инструкций (оптимизированных под компилятор языка C).

Также у данной серии производительность увеличена на 50%, они имеют более глубокий и улучшенный аппаратный стек, увеличенный объём памяти и некоторые прочие прелести, с которыми мы познакомимся в дальнейшем, так как, скорее всего, мы с данной серии и начнём процесс изучения программирования микроконтроллеров PIC.

3. 8-битовые микроконтроллеры PIC18 – это улучшенная серия контроллеров, здесь на борту много другой периферии, количество выводов от 18 до 100, производительность 16 MIPS, поддержка технологии NanoWatt, наличие программироуемого генератора.

Вторая линейка – это 16-битные контроллеры PIC. Они имеют префикс PIC24F и PIC24H. Это уже более мощные контроллеры.

В отличие от первой линейки, машинная команда выполняется уже не за 4 такта генератора, а за 2.

Также периферия еще более расширена по разновидностям шин, прямой доступ к памяти DMA (у PIC24H), расширенный набор инструкций. Также есть очень много других особенностей.

Третья линейка – это 32-битные контроллеры. Префикс у них уже PIC32. Частота тактирования таких контроллеров до 120 МГц, а у новой серии MZ – до 200 и даже выше.

У меня, например, есть отладочная плата, на которой устрановлен контроллер PIC32MZ2048EFH064, у которого тактовая частота составляет 252 мегагерца. Также здесь ещё более увеличена производительность ядра.

Данное семейство построено на ядре MIPS32®, которое также кроме высокой производительности отличается ещё и низким потреблением энергии.

Читайте также:  Самое экономичное электрическое отопление дома

Вообщем, вот такие вот краткие характеристики существующих на данный момент контроллеров PIC. Если брать по наименованиям, то наименований очень много, на любой, как говорится, вкус.

Также, как и рассмотренные, а также рассматриваемые нами контроллеры AVR и STM32, контроллеры PIC работают приблизительно по той же схеме.

Сочиняется программа, собирается в машинный код, понятный арифметическо-логическому устройству контроллера, загружается (прошивается или заливается) в контроллер и затем обеспечивает работу по определённому алгоритму.

Основной интерфейс, используемый для прошивки данных контроллеров – это ICSP, предназначенный для внутрисхемного программирования. Подробнее с ним мы познакомимся, когда будем прошивать данные контроллеры.

Давайте немного разберёмся с организацией памяти в контроллерах PIC. Так как мы начнём изучение семейства PIC с более простых 8-битных (принцип от простого – к сложному ведь не отменял никто), то и организацию памяти мы посмотрим у данной серии.

Сначала посомтрим блок-схему контроллера на примере МК PIC16F84A (нажмите на картинку для увеличения изображения)

Микроконтроллеры pic для начинающих: схемы, программирование

В левом верхнем углу сразу бросается в глаза модуль памяти FLASH, в которой обычно хранится программа контроллера (прошивка). А в правом верхнем углу мы видим память EEPROM, которая уже исользуется для хранения данных.

Эти два вида памяти являются энергонезависимыми и после отклчения и сброса контроллера не стираются.

Но данная память не является быстрой, поэтому код при старте программы распределяется уже в память RAM (ОЗУ), которая уже является быстродействующей и предназначена для функционирования контроллера при работе. Поэтому данную память мы уже рассмотрим несколько поподробнее.

Оперативная память контроллера PIC делится на память программ и память данных.

Вот так организована память программ у контроллера PIC16F84A

Микроконтроллеры pic для начинающих: схемы, программирование

Микроконтроллеры данной серии имеют счётчик команд, способный адресовать 8К x 14 слов памяти программ и 14-разрядную шину данных памяти программ. Вся память программ разделена на 4 страницы по 2 килослов каждая (0000h-07FFh, 0800h-0FFFh, 1000h-17FFh, 1800h-1FFFh).

Ну это общая информация, поэтому у тех контроллеров, у которых память небольшая перемещение между данными страницами приведёт к циклической адресации. Поэтому размер памяти того контроллера, который мы хотим программировать, мы обязаны знать твёрдо.

В общем случае память программ состоит из счётчика команд, стека нескольких уровней, память для хранения векторов прерываний, а также внутренней памяти программ.

Также немного познакомимся с организации оперативной памяти, отведённой под хранение данных.

Память данных разделяется на регистры общего назначения и регистры специального назначения. Посмотрим, как организована память данных контроллера PIC16F84A

Микроконтроллеры pic для начинающих: схемы, программирование

Регистры специального назначения (SFR) – это регистры, которые предназначены для хранения строго отведённых величин и имеют определённые имена. С ними мы будем знакомиться постепенно, когда будем писать какой-то исходный код, который будет широко их использовать.

Регистры общего назначения (GPR) – это ячейки памяти, которые имеют только адреса и предназначены они для хранения любых данных.

Также из приведённого выше рисунка мы видим, что у нашего контроллера память данных разделена на 2 страницы (или банка) переход между которыми осуществляется посредством установки определённых битов в регистре STATUS. Поэтому данный регистр присутствует в обеих банках и обратиться к нему мы можем в любой момент, чтобы сменить текущую страницу памяти.

Адресация может быть как прямая, так и косвенная или относительная, когда адрес отсчитывается относительно текущего адреса. С этим мы возможно не будем знакомиться, так как такая задача возникает у программистов, которые пишут программы на ассемблере.

Соответственно, у каждого контроллера кроме памяти существует много чего ещё интересного, в том числе порты ввода-вывода. Наши контроллеры PIC – также не исключение. Посмотрим назначение ножек контроллера PIC16F84A

Микроконтроллеры pic для начинающих: схемы, программирование

У данного контроллера два порта – порт A и порт B. Из порта A наружу выведены 5 ножек – RA0-RA4, а из порта B – все 8 ножек RB0-RB7.

Также ножки портов могут иметь и другое назначение в зависимости от того, как мы их сконфигурируем. Наример ножка 6 или RB0 может в любой момент превратиться в ножку для захвата внешних прерываний, а ножка 3 или RA4 – стать ножкой для тактирования таймера от внешнего генератора.

Тактирование МК PIC также может осуществляться как от внешнего генератора, так и от кварцевого резонатора, от внутреннего резистора, а также существует ещё несколько вариантов, которые поддерживают не все контроллеры данного семейства. На практике как правило используется тактирование от кварцевого резонатора. Скорее всего, мы также последуем данной традиции в наших дальнейших занятиях.

Думаю, на этом мы закончим знакомство с контроллерами PIC. Знакомство получилось кратким, но на первое время нам и этого хватит за глаза. С более расшифрованной информацией мы столкнёмся, когда будем сочинять наши программы.

Так что ждите следующих занятий, которые обещают быть очень интересными.

Мы познакомимся сначала с установкой среды и компилятора, изучим, как с ними работать, какие тонкости программирования присутствуют в настройках различной периферии, а также в работе с ней.

  1. Программирование МК PIC Следующий урок
  2. Смотреть ВИДЕОУРОК (нажмите на картинку)
  3. Микроконтроллеры pic для начинающих: схемы, программирование

Примеры программирования микроконтроллеров

Новостная лента

Microchip расширяет экосистему Arduino-совместимой отладочной платформы chipKIT
Микроконтроллеры pic для начинающих: схемы, программирование Компания Microchip сообщила Рѕ расширении экосистемы отладочной платформы chipKIT. Р’ состав Arduino-совместимой платформы chipKIT вошла высокоинтегрированная отладочная плата СЃ Wi-Fi модулем Рё плата расширения для управления электродвигателями, разработанные компанией Digilent. Подробнее >>>
�сточник: http://www.rlocman.ru Просмотров: 28590 Дата добавления: 02.10.2014
MicroView — супер миниатюрная Arduino-совместимая отладочная плата СЃ OLED дисплеем
Микроконтроллеры pic для начинающих: схемы, программирование РќР° портале Kickstarter представлен проект супер миниатюрной отладочной платформы Arduino, выполненной РІ форм-факторе 16-выводного РєРѕСЂРїСѓСЃР° DIP Рё имеющей встроенный OLED дисплей СЃ разрешением 64×48 точек. Несмотря РЅР° то, что отладочная плата является полностью завершенным решением, РѕРЅР° может устанавливаться РЅР° макетную плату или непосредственно впаиваться РІ печатную плату для расширения функционала Рё управления внешней периферией. Подробнее >>>
�сточник: http://www.rlocman.ru Просмотров: 27934 Дата добавления: 17.04.2014
Размеры самого миниатюрного в мире ARM-микроконтроллера Freescale сократила еще на 15%
Микроконтроллеры pic для начинающих: схемы, программирование Freescale Semiconductor совершила новый технологический прорыв, добавив Рє семейству Kinetis самый миниатюрный Рё энергоэффективный РІ РјРёСЂРµ 32-разрядный микроконтроллер Kinetis KL03 СЃ архитектурой ARM. Основанный РЅР° микроконтроллере предыдущего поколения Kinetis KL02, новый РїСЂРёР±РѕСЂ получил дополнительную периферию, стал намного проще РІ использовании, Рё РїСЂРё этом сократился РІ размерах РґРѕ 1.6 × 2.0 РјРј. Подробнее >>>
�сточник: http://www.rlocman.ru Просмотров: 1871 Дата добавления: 17.04.2014
Как вырастить микросхему с помощью белка
Микроконтроллеры pic для начинающих: схемы, программирование Без кремния немыслимо производство полупроводников, РіРґРµ РѕРЅ буквально нарасхват. РџСЂРё этом, естественно, большое значение имеют чистота вещества Рё строение кристаллов кремниевых соединений. Р�сследователи РёР· Университета Лидса (Великобритания) предлагают СЃРїРѕСЃРѕР± выращивания таких кристаллов СЃ помощью молекулярной биологии. РџРѕ РёС… мнению, это позволит создавать электронные микросхемы более высокого качества. Подробнее >>>
�сточник: http://www.newscientist.com/ Просмотров: 3019 Дата добавления: 06.03.2014
Открытие нового раздела на сайте MCULAB.RU
Микроконтроллеры pic для начинающих: схемы, программирование РќР° нашем сайте открыт новый раздел. Раздел посвящён моделированию различных схем РїРѕ сопряжению микроконтроллеров Рё датчиков. Освещается схемотехника подключения Рє РњРљ внешних устройств. Р’ данной области РґРѕ СЃРёС… РїРѕСЂ отсутствует систематизация, поэтому сделана попытка создать банк типовых решений, который РІ дальнейшем может дополняться, уточняться, расширяться. Подробнее >>>
�сточник: / Просмотров: 129718 Дата добавления: 04.02.2014

На сайте представлены примеры программирования, которые будут полезны как для опытного разработчика схем на микроконтроллерах, так и для новичка.

Особо рассматривается программирование микроконтроллеров для начинающих пользователей. Программные примеры программирования разбиты на различные разделы.

Основную массу составляют примеры программирования микроконтроллеров avr и микроконтроллеров microchip.

Пользователю предлагается познакомиться с различными примерами программирования и различными средами программирования: MicroLab, AVRStudio, MikroC, FloweCode.

Представлены схемы на микроконтроллерах ведущих производителей: PIC и AVR. Рассматривается огромное количество схем для начинающих разработчиков. Если Вы начинающий радиолюбитель, то для Вас мы приготовили раздел микроконтроллеры для начинающих.

Современные микроконтроллеры относятся к классу микропроцессорных устройств.

В основе принципа действия таких элементов лежит исполнение последовательного потока команд, называемого программой.

Микроконтроллер получает программные команды в виде отдельных машинных кодов.

�звестно, что для создания и отладки программ, машинные коды подходят плохо, так как трудно воспринимаются человеком. Этот факт привел к появлению различных языков программирования и огромного количества различных компиляторов.

В основе языков программирования микроконтроллеров лежат классические языки для компьютеров.

Единственным отличием становится ориентированность на работу со встроенными периферийными устройствами. Архитектура микроконтроллеров требует, например, наличия битово-ориентированных команд.

Последние выполняют работу с отдельными линиями портов ввода/вывода или флагами регистров. Подобные команды отсутствуют в большинстве крупных архитектур.

Читайте также:  Подключение трёхфазного двигателя к бытовой сети

Например, ядро ARM, активно применяемое в микроконтроллерах, не содержит битовых команд, вследствие чего разработчикам пришлось создавать специальные методы битового доступа.

Примеры программирования микроконтроллеров будут представлены на хорошо всем известном языке Си.

А перед тем как постигать азы программирования микроконтроллеров и схемотехнику устройств на микроконтроллерах, авторам предлагается ещё раз вспомнить основы микропроцессорной техники, основы электроники, полупроводниковую электронику, аналоговую и цифровую схемотехнику, а так же азы аналогового и цифрового представления сигнала. Для тех, кому хочется получить новые знания в области современного программирования, можно будет познакомиться с графическим языком программирования LabView.

Выбор языка программирования зависит от множества факторов. В первую очередь, типо решаемых задач и необходимым качеством кода.

Если Вы ведёте разработку малых по объёму и несложных программ, то можно использовать практически любой язык.

Для компактного кода подойдет Ассемблер, а если ставятся серьезные задачи, то альтернативы С/С++ практически нет. Также необходимо учитывать доступность компилятора.

В итоге самым универсальным решением можно назвать связку Ассемблера и C/C++. Для простого освоения языков, можно воспользоваться примерами программ для микроконтроллера.

�спользование примеров программирования упростит и ускорит процесс освоения программирования микроконтроллеров.

Схемы на микроконтроллерах позволят начинающим разработчикам освоить тонкости проектирования, моделирования и программирования микроконтроллеров.

Программирование PIC16F876A. Собираем схему с плавно мигающим светодиодом

Микроконтроллеры pic для начинающих: схемы, программированиеЭта статья направлена на новичков в программировании микроконтроллеров семейства PIC16 от Microchip. В нашем случае, я выбрал немного превосходящий микроконтроллер для таких задач, а именно — PIC16F876A. Программирование микроконтроллера будем производить в MPLAB IDE.

Цель работы: собрать схему, которая будет мигать светодиодом, внимание, с применением ШИМ.

И так, цель задачи обозначили. Теперь перейдем к реализации наших планов.

Часть 1. Железо

В первую очередь нам понадобятся компоненты, из которых мы будем собирать схему. А именно:

  • Микроконтроллер PIC16F876A
  • Рассыпуха к нему
  • Светодиод
  • Макетная плата

Светодиод можно взять любой по вкусу, какой Вам больше нравится. Макетную плату желательно иметь в наличии.

В понятие «рассыпухи» входят такие детали как: пара конденсаторов для кварца и конденсатор на выход модуля CPP (Для того что бы сгладить пульсации). Собранная схема выглядит следующим образом: Микроконтроллеры pic для начинающих: схемы, программирование Это типовое включение микроконтроллера, ничего нового я тут не придумывал.

Так же, для программирования микроконтроллера я пользуюсь программатором-отладчиком ICD2. Он подключается к компьютеру по USB и прекрасно работает как на системе Windows, так и на GNU/Linux. В нашем случае будем использовать родной MPLAB IDE в Windows.

Скрин в процессе разработки: Микроконтроллеры pic для начинающих: схемы, программирование

Часть 2. Программная

Светодиод подключаем на 1й модуль CPP (ШИМ). За настройку модуля в микроконтроллере отвечает регистр CPP1CON. Чтобы модуль у нас заработал, предварительно необходимо инициализировать таймер. Для режима ШИМ используется таймер TMR2.

За его конфигурацию отвечает регистр T2CON. Инициализация: movlw  .

0      bcf   STATUS, 5 movwf  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. Информация

Микроконтроллер в цепи последовательного программирования (ICSP) с Microchip PIC и Atmel AVR | Lirtex — Технология на краю времени

Метки: AVR , Электроника , Embedded , ICSP , микроконтроллер , PIC

В цепи последовательного программирования является метод прямого программирования микроконтроллеров PIC и Atmel AVR в то время как они подключены к схеме, в отличие от программирования чипа впереди, и только после этого пайка его цепи. Есть много преимуществ для ICSP, а также некоторые важные соображения дизайна, которые я постараюсь выделить. Микроконтроллеры pic для начинающих: схемы, программирование

В схеме программирования имеет много преимуществ:

  • Это сокращает цикл разработки — это действительно раздражает взять чип из платы каждый раз необходимо перепрограммировать, а это еще сложнее с SMD.
  • Позволяет клиенту и обновления прошивки поле
  • Калибровка системы в процессе производства или в сфере
  • Назначение уникального идентификатора серийный номер продукта

Как подготовить схему для работы с ICSP?

Программист использует последовательный сигнализации схема для программирования чипов в цепи. Сигнализация осуществляется через программирование часов (PGC или ICSPCLK) и программирования данных (ПГД или ICSPDAT) контакты. Кроме того, MCLR / VPP вывод использоваться как сигнал высокого напряжения программирования или внимания индикатора на устройстве.

Везде, где приложение позволяет использовать выделенные контакты для ICSP. Это сэкономит вам много неприятностей. Не разделяя вывод как для ICSP и ввода / вывода, например, свести к минимуму подготовительные работы, который необходимо сделать, чтобы ICSP.

Часто, и особенно с низким устройства PIN-код, не представляется возможным выделить 3 необходимых контактов только для ICSP, а когда хотят их иметь двойной функциональностью.

В этом случае:

1. Изолировать Vpp от схемы с использованием диодов Schotkey и R / C. Примечание: в некоторых устройствах, например, PIC12F629, этот вывод будет определяться до 13 вольт программист при программировании устройства. Убедитесь, что все, что связано с выводом Vpp может выдержать это напряжение, или изолировать его с соответствующим резистор или диод Schotkey.

2. Изолировать ICSP_Clock и ICSP_Data от остальной части схемы. Изоляция методом является применение конкретного, к сожалению, означает, что нет готовых рецептов. Часто, резистивный изоляции работает отлично. Рекомендуемые значения резистор 1k до 10k.

3. Физически найти ICSP заголовок как можно ближе к запрограммировано чипа, уменьшить затухание.

Микроконтроллеры pic для начинающих: схемы, программирование

Общие Microchip PIC ICSP макетов

Микроконтроллеры pic для начинающих: схемы, программирование

Дополнительная литература и ссылки

Подпишитесь сейчас через RSS и никогда не пропустите сообщение!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Adblock
detector