Pic16f877a – отладочная плата

Отладочная плата для микроконтроллеров PIC16F1827 и PIC16F1847. Часть 1. Основные характеристики, состав и принципиальная схема платы

Микроконтроллер PIC16F628A компании Microchip относится к семейству 8-разрядных микроконтроллеров Enhanced Mid-Range core 8-bit PIC. Прибор недорог, доступен и является хорошим выбором для разработки проектов. Благодаря своим компактным размерам (корпус DIP18) он занимает небольшую площадь на плате, но имеет богатую периферию для разработки различных приложений. Эти микроконтроллеры являются совместимыми со своими предшественниками PIC16x84, для которых в сети Интернет можно найти огромное количество примеров и информации. А не так давно компания Microchip сообщила о пополнении серии Enhanced Mid-Range core, представив микроконтроллеры PIC16F(LF)1847, которые совместимы с PIC16F628A, но имеет больше периферийных модулей и усовершенствованные функции.

Микроконтроллер PIC16F1847 имеет 14 КБайт Flash-памяти и 1 КБайт RAM, и возможно это первый 18-выводный 8-битный микроконтроллер с таким количеством Flash и RAM. C целью изучения возможностей и проведения экспериментов на базе микроконтроллера PIC16F1847 или PIC16F1827 было решено разработать собственную отладочную плату.

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

  • коннектор ICSP для внутрисхемного программирования микроконтроллера посредством программатора PICkit3;
  • интегрированный регулятор напряжения +5 В;
  • 2-х строчный символьный ЖК индикатор на базе контроллера HD44780;
  • восемь светодиодов, позволяющих отслеживать состояние выходных линий;
  • шесть кнопок, для возможности ввода данных;
  • потенциометр, обеспечивающий аналоговый ввод;
  • конвертер сигналов интерфейса RS232;
  • внешняя EEPROM с последовательным интерфейсом I2C (24LC512);
  • расширитель портов ввода/вывода (MCP23008);
  • четырехканальный операционный усилитель (MCP604) для усиления и нормирования аналоговых сигналов;
  • цифровые потенциометры (DS1868);
  • усилитель с программируемым коэффициентом усиления (MCP6S92);
  • датчик температуры (TC74A0);
  • область для макетирования.

Расположение указанных элементов на плате показано на рисунке ниже. Компоненты установлены на макетную плату с размерами 18 см × 12.8 см.


Расположение компонентов на плате

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

Питание платы возможно от 9 В батареи, питание микроконтроллера и периферии осуществляется от регулятора напряжения LM7805.

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

Как вы видите, на схеме изображена перемычка для вывода RA5/MCLR микроконтроллера, который может использоваться как вывод сброса или как линия ввода/вывода. Для тактирования микроконтроллера может использоваться внешний керамический резонатор, для установки которого имеется 3-выводный слот. При использовании внутреннего осциллятора микроконтроллера, выводы RA6 и RA7 также могут использоваться как линии ввода/вывода.

На плате установлено 3 устройства производства компании Microchip с интерфейсом I2C: MCP23008 (8-битный расширитель портов), TC74 (датчик температуры) и 24LC512 (EEPROM). Адресные выводы MCP23008 и 24LC512 подключены к общему проводу (GND). Датчик температуры TC74 не имеет адресных выводов. На рисунке ниже показано включение трех I2C устройств на плате с их соответствующими адресами.

Подобным образом, на схеме ниже, обозначено подключение интерфейса UART, четырехканального операционного усилителя MCP604, цифрового потенциометра DS1868 и усилителя с программируемым коэффициентом усиления MCP6S92. Преобразование уровней интерфейса UART ТТЛ-RS232 осуществляет микросхема MAX232 в стандартном включении. Все рабочие выводы также разведены на разъемы для возможности коммутирования.

Оставшиеся узлы платы – регулятор напряжения +5 В, кнопки, светодиоды и ЖК индикатор, схема включения изображена ниже. Диод 1N4008 предназначен для защиты от переполюсовки питания. Выводы управления и данных ЖК индикатора подключены к 6-выводному разъему. Массив из 8 кнопок также подключен к разъему, активный уровень кнопок – низкий.

Дополнительный материал: расположение выводов основных компонентов платы

Перевод: Vadim по заказу РадиоЛоцман

PIC16F877A – Отладочная плата

Статья адресована тем, кто знаком с электроникой и , может быть, с микроконтроллерами, но , так как и Я, не работал с конкретным видом микроконтроллеров. В ней я хочу изложить свой опыт освоения PIC-контроллера PIC16F877A. В основе изучения создание несложной схемы «Отладочной платы», как универсального электронного устройства, сравнимого с ПЛК для АСУ. В том смысле, что одно и то же устройство, по необходимости, становится различным изделием, в зависимости от программы. Рассмотрим создание нескольких устройств и освоение приемов программирования. В дальнейшем «Отладочную плату» можно будет использовать для создания многих иных проектов. В статье будут рассмотрены вопросы :

  1. Программирование с использованием бесплатно предоставляемых производителем MicroCHIP программных средств MPLAB-XIDE и компилятора XC8.
  2. Освоение программирования портов ввода-вывода, 7-ми сегментных индикаторов, таймеров, прерываний, ADC- преобразователя.

«Отладочные платы», как изделие, появились по инициативе производителей электронной продукции, в частности – микроконтроллеров . Они позволяют быстро и легко осваивать использование продукции. Кроме того – они с успехом могут заменять «макетные платы», изготовление которых является неотъемлемой составной частью проектирования любого электронного устройства. Однако, пока микроконтроллер малоизвестен, производители, в рекламных целях, всячески снижают стоимость «отладочных плат», иногда даже присылают в подарок всем желающим. Но, как только приходит популярность, стоимость такой продукции становится «не по карману» многим желающим. Достаточно взглянуть на цены серий популярных отладочных комплектов : ARDUINO, EasyPIC, NUCLEO, DISCOVERY. При этом стоимость основного компонента – микроконтроллера сравнительно невысока. Для примера, стоимость PIC16F877A находится в районе 5$. Цель данной статьи – показать как создать свою недорогую и оптимальную, без излишеств, отладочную плату. Монтажная схема и печатная плата не рассматривается в виду нецелесообразности определенного вида конструкции. Наиболее приемлемым можно считать вариант монтажа на «универсальной печатной плате». Например такой.

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

Полная принципиальная схема показана на рисунке №1. Для более детального рассмотрения используйте ссылки на ресурсы.

Подробнее рассмотрим принципиальную схему. В основе устройства микроконтроллер PIC16F877A. Синхронизация тактирования работы производится кварцем 14 МГц, подключенного стандартно согласно документации к выводам 13 и 14. К портам А и B подключены выходные индикаторные светодиоды. К этим выводам (параллельно резистор-светодиод) можно подключить выходные ключи для увеличения нагрузочной способности. Ключи могут быть любого типа – от транзисторно-релейных – до оптопарно–симисторных . Поэтому на принципиальной схеме они не указаны (все-таки «отладочная» плата). Одним из лучших вариантов можно считать «твердотельное реле типа SSR-10DA или SSR-25DA». К портам D, C и E подключены семисегментные индикаторы типа KW2-561AGA с общими анодами, которые можно заменить величайшим количеством аналогов сдвоенных, четверных или одинарных индикаторов с общим анодом, управляемых отдельным подключением анодов. Аноды подключаются через ключи pnp- транзисторов. Также подключены 7 кнопок без фиксации. А, В и С – отдельно к порту С. Использованы дополнительные подтягивающие резисторы 15-24 ком. Использовать внутренние не рекомендую – некоторые экземпляры микроконтроллеров не вытягивают входы, как следствие – ложные срабатывания, особенно в условиях дополнительных помех. Еще четыре кнопки – 1-4 подключены к портам индикатора таким образом, что бы их состояние можно было бы определять одновременно со сканированием анодов индикаторов через единственный порт ввода – RD6. Тем самым экономится три ввода, в сравнении с отдельным подключением. На схеме так же отображен разъем для внутрисхемного программирования ICSP. Вывод MCLR/VPP подключен к +5В через диод, чтобы после программирования, при подаче напряжения питания, микроконтроллер переходил в рабочий режим. Следует помнить, так же, что, программатор должен «отпускать» выводы программирования PGD & PGC. Некоторые самодельные программаторы этого не делают, вследствие упрощения схемы. Имеются несколько незадействованных выводов, которые, при необходимости, можно подключить в схему для наращивания вводов-выводов.

Таким же образом ищем XC8 Compilers. Так же скачиваем и стандартно устанавливаем в систему на компьютер.

Запустим среду программирования MPLAB X IDE. В меню выбираем «Создать новый проект». Выбираем «Стандартный проект» (см.рис) затем – «тип микроконтроллера»-PIC16F877A.

После этого MPLABX предлагает выбрать тип программатора. В данном случае принципиального значения в выборе нет. Можно выбрать Simulator или PICKit. HEX-файл прошивки будет сгенерирован в любом случае. Следующий шаг – выбор компилятора. Выбираем XC8 – компилятор СИ, который был предварительно скачан (free-версия) и установлен. В следующем примере используем MPASM-компилятор, поставляемый бесплатно со всеми MPLAB. Заключительный шаг создания проекта – Выбор имени проекта («AUTOMATIC_LIGHTING_EFFECTS») и папки расположения проекта. Нажатие кнопки Finish заканчивает создание проекта. Теперь в проект необходимо добавить исходный файл программы. Нажимаем правую кнопку на разделе исходные файлы проекта. Затем New ->main.c даем имя файлу, жмем Finish.

Читайте также:  Lcd часы на attiny2313

Рассмотрим программу, превращающую «универсальное электронное устройство», каковым, несомненно и является отладочная плата, в устройство определенного назначения. Одной из программ-прошивок, достаточно разнообразно использующей многие возможности аппаратного устройства платы, может быть программа «Автомат Световых Эффектов» . Ее исходный текст приведен ниже. По сообщениям MPLAB-X программа использует до 24% памяти программ и до 17% памяти данных. Ещё она использует 96 байт EEPROM, что так же является далеко не полным использованием. Т.е. у микроконтроллера остается еще масса ресурсов для развития программы.

Рассмотрим основные модули программы. В начале программы указана конфигурация работы микроконтроллера (то что в avr называют fuses). Слово конфигурации записывается в скомпелированную прошивку, благодаря чему отпадает необходимость ручной настройки программатора. Для этого в данном компиляторе существуют директивы #pragma config

В данной конфигурации выбран источник тактирования XT-кварц 4 Мгц, отключены WDT,BOR,LVP и защита памяти. В данном примере эти опции не нужны.

Благодаря использованию EEPROM программа запоминает какая «световая картина» была запущена на «Автомат Световых Эффектов» перед выключением.

Еще в EEPROM запрограммировано семь различных «световых картин» и знакогенератор для семисегментного индикатора.

Благодаря использованию EEPROM размер программы значительно компактнее, нежели все коды-сочетания пришлось бы программировать прямо в программе. Впрочем, PIC-контроллеры имеют возможность использовать свободную Flesh-память программ, даже если нет EEPROM. В данной программе для работы с EEPROM используются стандартные макросы XC8 – компилятора. Для загрузки знакогенератора – __EEPROM_DATA(8байт). Это «не исполняемый» макрос. Он обеспечивает загрузку данных не вовремя выполнения программы микроконтроллера, а во время программирования прошивки. Но в исходном тексте программы он обязательно должен вызываться в теле main(). EEPROM_READ(ADR) и EEPROM_WRITE(ADR,байт) – макросы выполняющие обмен данных во время выполнения программы микроконтроллера.

Кнопки A и С – функционируют как установка номера световой картины. При этом номер 8 – режим АВТО, в котором все программы повторяются по очереди. Кнопка В – реверс. А кнопка №1 – СТОП, №2 – быстрое включение АВТО, №3 – резервная, №4 – запуск после нажатия СТОП. Используемые порты ввода-вывода инициируются в теле функции Init_Ports(). Названия всех определений регистров и битов находятся в файле pic16f877a.h компилятора, где их и можно посмотреть. А включать этот файл в тело программы – не обязательно. MPLAB-X сама указывает компилятору какой микроконтроллер был выбран на этапе создания проекта. О том как создавать проекты – смотрите далее. Функция Init_TMR0() настраивает таймер на работу по прерываниям. Благодаря чему обеспечивается запланированное свечение индикаторов и опрос кнопок.

Так же в обработчике прерываний обрабатываются прерывания ADC – преобразователя. Показания которого, определяемые переменным резистором R1 схемы, используются как задатчики темпа работы «Автомат Световых Эффектов». Собственно, это и есть все модули программы , рассмотренные вкратце. При внимательном рассмотрении исходного текста программы легко и быстро можно понять как запрограммировать ту или иную функцию микроконтроллера с помощью компилятора XC8-Free edition.

В следующем примере программы для «PIC16F877A – Отладочная плата», рассмотрим устройство «ЧАСЫ/ТАЙМЕР-ТЕРМОРЕГУЛЯТОР».

Проекты


Макетная плата предназначена для отладки программ, написанных для микропроцессоров фирмы Microchip типа PIC 16 F 627, PIC 16 F 628 и PIC 16 F 84, кроме этого она подойдет для всех микроконтроллеров фирмы Microchip, имеющих корпус DIP и 18 ног на борту .

Когда я только начинал заниматься разработкой устройств на микроконтроллерах фирмы Microchip , мне часто приходилось собирать их стандартную обвязку: цепь сброса микроконтроллера MCLR , цепь питания, цепь подключения внешнего кварцевого резонатора или RC – цепочки. Иногда нужно было связать микроконтроллер с компьютером – приходилось делать преобразователь уровней RS -232 – TTL . И все это приходилось собирать при разработке каждого нового устройства заново. Перед тем как начать писать основную программу, приходится писать тестовую, предназначенную для проверки работоспособности микроконтроллера на собранной макетной плате, чтобы быть уверенным в том, что микроконтроллер исправен и правильно работает только что собранная основная часть схемы.

Для отладки микроконтроллеров наиболее часто используются следующие типы макетных плат:

· Универсальная макетная плата сделанная на основе фольгированого гетинакса или стеклотекстолита – она предназначена для отладки любых радиоэлектронных устройств. Довольно универсальная плата, но вместе с тем она обладает рядом существенных недостатков: цена – самая дешевая стоит не меньше 100 руб. – возможно кого-то эта цена устраивает, но я считаю что эти деньги можно использовать более продуктивно, хотя это мое личное мнение; очень часто при длительном использовании отваливаются проводники – в следствии перегрева паяльником или от времени; разводка проводников не всегда оптимальна и часто вносит дополнительные помехи в работу устройства; для соединения между собой элементов используется пайка. Я считаю что оптимальное ее использование – сборка отлаженных устройств, которые настроены, но нет времени или желания разрабатывать печатную плату.

· Наиболее распространенные макетные платы фирмы WISHER – позволяют производить быстрый монтаж довольно сложных устройств используя проволочные перемычки (джамперы). Комплект поставки включает в себя клемники для подачи питания на плату и проволочные перемычки. Довольно хорошее решение, но и ему присущи недостатки: цена – например самая простая макетная плата WB -102+ J стоит 190 руб., более оптимальная для макетирования несложных устройств WB -104-3+J стоит 380 руб. по прайсу фирмы «Платан»; низкая надежность контактов – особенно это проявляется после того как пытаешься получить контакт в гнезде в котором до этого побывал относительно толстый проводник (например от сопротивления МЛТ-2); присутствует паразитная емкость между параллельными рядами контактов.

· Разработки радиолюбителей – [1] – интересная разработка для PIC 16 F 877, но она предназначена скорее для изучения этого микроконтроллера, чем для разработки своих конструкций, т.к. выводы микроконтроллера жестко распределены для выполнения определенных функций: индикация, ввод/вывод данных, звуковая индикация и т.п.. Вторая конструкция [2] – предназначена для изучения PIC 16 F 84, обладает тем же недостатком, что и первая конструкция, но для первоначального освоения этих микроконтроллеров они очень хорошо подходят.

· Интересные макетные платы представлены на сайте «Мега-Электроника» [3] – PIC – IO , PIC – MT , PIC – PG 4 D -628. Дополнительной информации по их устройству автору не удалось получить. Могу только сказать, что цена их высока – начинается от 702 руб. за PIC – PG 4 D -628 и заканчивая 1091 руб. за PIC – MT .

· Простые макетные платы представлены на сайте [4] для микроконтроллеров PIC 16 F 84, PIC 16 F 873, PIC 16 F 874. Цена от 16$ до 20$. Содержат стабилизатор на 5 В, кварцевый резонатор, разъемы для подключения к портам, цепи сброса. Основной минус, а может быть и плюс – это их простота.

· Робототехнический сайт «Железный Феликс» [5] – представлена интересная система SimmStick – макетная плата состоит из кросс платы от старых разъемов для установки модулей памяти типа SIMM . На них подано питание, сигналы от периферийных разъемов. Схема собирается на отдельной макетной плате в виде SIMM модуля и вставляется в разъем SIMM . Основные недостатки – маленькая плата для макетирования, необходимость применять паяльник для сборки.

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

· схема формирования напряжения питания + 5 В;

· цепь сброса MCLR и обязательно кнопка сброса;

· цепь подключения резонатора;

· схема связи с компьютером при помощи RS -232;

· цепь подтягивания портов к + 5 В или земле;

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

· наличие разъемов и одиночных разъемных соединителей для подключения к портам;

· простота реализации и настройки.

Проанализируем расположение выводов распространенных микропроцессоров серии PIC 16 F 62 x и PIC 16 F 84, как наиболее часто применяемых в радиолюбительской практике, и представим их в виде таблицы 1.

Open16F877A Package B for PIC16F including Open16F877A development board PIC16F877A LCD AD Keypad USB FIFO Board Push Buttons

New user coupon on orders over US $4.00

Money Back Guarantee Refund in 15 Days

  • Brand Name: Waveshare
  • Model Number: Open16F877A Package B
  • Demo Board Type: ARM
  • Category: PIC16F Development Board
  • For use with: PIC16F877A Development & Evaluation
  • Onboard MCU: Microcontroller PIC16F877A-I/P (PIC8, DIP40)
  • Supports: 2.2″ 320×240 touch screen LCD
  • Features: Open & Modular design, features various communication interfaces
  • Man-machine interface: 2 x LCD, 1 x PS/2, 8 x LEDs, 2 x User keys, 1 x Joystick
  • Demo Board Type: Others

PIC development board designed for PIC16F series, features the PIC16F877A MCU, and integrates various standard interfaces, pretty easy for peripheral expansions.

Overview

Open16F877A is a PIC development board that features a PIC16F877A device as the microcontroller. It supports further expansion with various optional accessory boards for specific application. The modular and open design makes it the ideal for starting application development with PIC microcontroller.

What’s on Board

1. PIC16F877A-I/P: the high performance PIC MCU which features:
* Core: PIC 8-bit RISC;
* Operating Frequency: 20MHz Max;

* Operating Voltage: 2-5.5V

* Package: DIP40;

* I/Os: 33;

* Memories: 14kB Flash, 368B RAM, 256B EEPROM

* Communication Interfaces: 1 x MSSP(SPI/I2C), 1 x A/E/UART, 2 x PWM, 8 x ADC;

* Debugging/Programming: ICSP interfaces
2. AMS1117-3.3: 3.3V voltage regulator ;

3. Power switch;

4. Power indicator;

5. LEDs: Convenient for indicating I/O status or program debugging running state;

6. User keys: for I/O input test and/or program control ;

7. Joystick: five positions ;

Читайте также:  Лабораторный бп на основе psmr3010p

8. Reset button;

9. Buzzer;

10. Infrared receiver;

11. 4M crystal oscillator;

12. 16 I/Os interface | 8-bit AD interface

* For connecting accessory boards which using I/O control, such as FT245 USB FIFO, 8 SEG LED, etc.

* There’s also 8-bit AD interface can be used for AD testing

13. 8 I/Os interface: for connecting accessory boards which using I/O control, such as 8 Push Buttons, Motor, etc.

14. SPI interface: for connecting SPI peripherals, such as DataFlash (AT45DBxx), SD card, MP3, etc.

15. I2C interface: for connecting I2C peripherals, such as I/O expander (PCF8574), EEPROM (AT24Cxx), etc.

16. 1-WIRE interface: for connecting 1-WIRE devices (TO-92 package), such as temperature sensor (DS18B20), electronic registration number (DS2401), etc.

17. UART interface: for connecting UART peripherals, such as RS232, RS485, USB TO UART, etc.

18. PS/2 interface: for connecting PS/2 keyboard and/or mouse

19. Graphic multi-color LCD interface: for connecting 2.2 inch multi-color touch screen LCD which using SPI control

20. Character LCD interface: for connecting character LCD, such as LCD1602 (3.3V blue backlight)

21. 5V DC jack;

22. Custom crystal socket;

23. VCC power input/output: usually used for power supply output, and/or common ground with other application board;

24. MCU pins connector: all the MCU pins are accessible on expansion connectors for further expansion;

25. ICSP interface: for debugging/programming

26. LEDs jumper;

27. User keys jumper;

28. Joystick jumper;

29. PS/2 jumper;

30. 1-WIRE jumper;

31. Buzzer jumper;

32. IR jumper

33. VCC selection jumper

34. Crystal selection jumper

35. RA4 pull-up jumper

For jumper 26-32:

* short the jumper to connect to I/Os that used in example code;
* open the jumper to connect to other custom pins via jumper wires.

Photos

(Easy expansion, you can add accessory boards as you like!!)
Note: The Open16F877A does NOT integrate any debugging function, a debugger is required.

ICSP Interface

The figure below shows the header pinouts of ICSP interface

Development Resources

The User Guide CD includes development resources listed as follow:
1. Related Software (MPLAB, etc.);

2. Demo Code (examples in C)

3. Schematic (PDF);

4. PIC Development Documentations (Datasheets etc.);

Open16F877A Package B Contains

Standard Package

  1. Open16F877A development board x 1
  2. PIC16F877A x 1
  3. 4-pin wire x 2
  4. 2-pin wire x 2
  5. USB power cable x 1

Accessory Boards Package

  1. USB type A plug to mini-B plug cable x 1
  2. PL2303 USB UART Board (mini) x 1
  3. 2.2inch 320×240 Touch LCD (A) x 1
  4. AD Keypad (for testing embedded ADC) x 1
  5. FT245 USB FIFO Board (mini) (16 I/Os) x 1
  6. AT45DBXX DataFlash Board (SPI) x 1
  7. PCF8563 RTC Board (I2C) x 1
  8. Micro SD Storage Board (SDIO/SPI) x 1
  9. NRF24L01 RF Board (B) (SPI) 2pcs x 1
  10. DS18B20 (ONE WIRE) x 1
  11. Infrared Remote Controller (IR) x 1
  12. LCD1602 (3.3V Blue Backlight) (parallel) x 1
  13. 8 SEG LED Board (16 I/Os) x 1
  14. 8 Push Buttons (8 I/Os) x 1

Terms & Conditions

1. Payment:
* We accept Escrow as the payment method. Currently, you can pay by Visa, MasterCard and bank transfer. For more information about making payment, please go to ‘Escrow FAQ’ to get more details. http://escrow.aliexpress.com/escrow-faq/payment/what-payment-methods-can-i-use.html

2. Shipping:
* We ship items to Worldwide!
* Please make sure that your shipping address is 100% correct.
* All items will be shipped within 48 working hours on receipt of cleared payment.
* We’ll add a tracking number after sending the item so that you can track your parcel.

3. Returns Policy:
* We are happy to return any unused item in its original packaging within 14 days of delivery.
* Buyers are responsible for the round(two-way) shipping cost.

4. Feedback:
* We’ll leave POSITIVE FEEDBACK on receipt of cleared payment.
* If you’re satisfied with the item and our service, please leave POSITIVE FEEDBACK, it’s important to us.
* Once any problems occured, please contact us first. We’ll try our best to work things out.

Please feel free to contact us for any questions, on trademanager, or send message to me. If you need to adjust the total price, pls contact us in advance. It’s our pleasure to serve you! We appreciate your business!!

Простая отладочная плата для микроконтроллеров PIC

Это устройство предназначено в первую очередь для изученuя основ микроконтроллерной техники u получения практических навыков программирования u отладки программ для широко распространённых микроконтроллеров среднего семейства фирмы Microchip PIC16F84A, PlC16F628А и может быть использовано в лабораторных и исследовательских целях. Прu подключении внешних периферийных устройств оно может служить макетом разрабатываемой микроконтроллерной системы, позволяя отлаживать программы во взаимодействии с реальными источниками сигналов и исполнительными устройствами.

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

Для микроконтроллеров рассматриваемого семейства сегодня выпускают достаточно много промышленных программаторов, в том числе PicProg, Uniprog, EXTRA-PIC, PICkit-2.

Имеется и большой ассортимент пригодных для повторения программаторов любительской разработки. А вот разнообразие отладочных плат значительно скромнее: отечественные ЛОК-2, ЛОК-4 [1, 2], зарубежные PIC-Easy [3], PIC-PG4 [4], PIC-MT-USB [5], LAB-X1 [6] и др. Эти платы, однако, сложны по конструкции и слишком дороги для простого радиолюбителя.

Предлагаемая простая отладочная плата «PIC-ЛАБ» предназначена для отладки программ для таких широко распространённых микроконтроллеров, как PIC16F84A и PIC16F628A, в лабораторных и домашних условиях. Схема платы приведена на рис. 1.

Для микроконтроллера DD2 с отлаживаемой программой предусмотрена панель DIP-18, что позволяет легко заменять его. Кроме микроконтроллеров указанных на схеме типов в панель можно устанавливать и другие 18-выводные, имеющие аналогичное назначение выводов, например PIC16F648.

Все линии порта А установленного на плату микроконтроллера выведены на разъём XS2, а порта В — на разъём XS3. Сюда подключают необходимые при отладке внешние устройства. На плате имеются восемь единичных светодиодов HL2—HL9 и семиэлементный светодиодный индикатор HG1. С помощью блоков DIP-выключателей SA2—SA5 их можно подключить к порту В микроконтроллера через ограничивающие ток резисторы R8—R15.

Включают светодиоды HL2—HL9 записью лог. 1 в соответствующие разряды регистра PORTB микроконтроллера. Поскольку индикатор SA15-11EWA (HG1) с общим анодом, его элементы включают записью лог.0 в соответствующие разряды того же регистра. Если заменить индикатор аналогичным, но с общим катодом, например, SC15-11EWA, то его выводы 1 и 5 необходимо отключить от плюсового провода питания и соединить с общим проводом, как показано на схеме крестом и штриховой линией. Тогда элементы индикатора будут включаться, как и светодиоды HL2—HL9, записью единиц в разряды регистра PORTB.

DIP-выключателями блока SA1 к линиям RA0—RA3 порта А микроконтроллера при необходимости могут быть подключены кнопки SB1—SB4. При чтении регистра PORTA нажатым кнопкам соответствуют нули в соответствующих разрядах, не нажатым — единицы.

На плате предусмотрены также подключённый к выводам тактового генератора микроконтроллера кварцевый резонатор ZQ1, управляемый звуковой генератор на микросхеме DD1 с пьезоизлучателем НА1, коммутатор на транзисторе VT1 для управления нагрузкой, подключаемой к контактной колодке ХТ1. Работу звукового генератора разрешают записью лог. 1 в разряд RB7 регистра PORTB микроконтроллера. При этом должны быть замкнуты контакты 1—12 и 3—10 блока выключателей SA5. Громкость звукового сигнала можно увеличить, отключив один из выводов излучателя звука от общего провода и соединив его с выходом элемента DD1.3, как показано на схеме штриховой линией. Если вместо контактов 1 — 12 замкнуть контакты 2—11, то разряд RB7 станет управлять состоянием транзистора VT1.

Состояния выключателей блоков SA1—SA5, необходимые для организации работы отладочной платы «РIC-ЛАБ» в перечисленных ниже режимах, указаны в таблице ( • — контакты замкнуты, о — контакты разомкнуты).

Режим 1 — индикация состояния всех линий порта В микроконтроллера восемью светодиодами HL2—HL9.
Режим 1.1 — светодиодная индикация состояния только семи линий порта В (RBO—RB6), выход RB7 управляет генератором звуковой частоты с пьезоизлучателем звука НА1.
Режим 1.2 — то же, что режим 1.1, но выход РВ7 управляет не звуковым генератором, а транзистором VT1.
Режим 2 — к линиям RB0—RB6 подключены катоды семиэлементного индикатора HG1.
Режим 2.1 — то же, что 1.1, но вместо светодиодов HL2—HL8 к линиям RB0—RB6 подключены катоды семиэлементного индикатора HG1.
Режим 2.2 — то же, что 1.2, но вместо светодиодов HL2—HL8 к линиям RB0—RB6 подключены катоды семиэлементного индикатора HG1.
Режим 3 — к портам микроконтроллера подключены только внешние устройства (через разъёмы XS2 и XS3).
Режим 3.1 — к порту А микроконтроллера через разъём XS2 подключены внешние устройства, порт В используется, как в режиме 1 или 2.
Режим 3.2 — к порту В микроконтроллера через разъём XS3 подключены внешние устройства, выводы RAO—RA3 порта А соединены с кнопками SB1 — SB4.

Детали и конструкция отладочной платы

Все детали устройства смонтированы на односторонней печатной плате из фольгированного стеклотекстолита толщиной 1,5мм (рис. 2). Расположение на ней элементов показано на рис. 3. Плата рассчитана на установку постоянных резисторов С2-23-0.25 (R19) и 02-23-0,125. Конденсаторы С1, С2 — плёночные К73-17, а СЗ, 04 — керамические КТ-2 или К10-7В. Блоки выключателей SA1— SA4 — SWD1-4, SA5 — SWD1-6, кнопка SB5 — PSM1-1-0. Гнездо питания XS1 — DS-225, разъёмы XS2 и XS3 — однорядные цанговые панели соответственно SCSL-7 и SCSL-9, колодка XT 1 — DG301-5.0-03P. При необходимости к ней можно подключить динамическую головку 0,5ГД-30 или другую нагрузку сопротивлением не менее 16 Ом.

Читайте также:  Электрошок от 5 в

Вместо транзистора КТ829Б можно использовать другой той же серии. Семиэлементный индикатор с общим анодом SA15-11EWA заменяется A-1501R. Об установке индикатора с общим катодом было рассказано выше. Одну из проволочных перемычек на плате в этом случае следует перенести в положение, показанное на рис. 3 штриховой линией. Светодиоды L-816Н можно заменить на КИПМ15М10-К4-П5, а пьезоизлучательКР1-32101_— на ЗП-1.

Отладочная плата »PIC-ЛАБ» пригодна для использования в качестве средства обучения, при выполнении лабораторных экспериментов, а также для макетирования и отладки программ практических разработок на базе микроконтроллеров. Питать её можно от любого стабилизированного источника напряжения +5 В, в том числе от сетевого адаптера, способного отдавать ток не менее 200 мА.

Источник: Радио №11 2012г.
Автор: Е. КОЛЕСНИКОВ, г. Новомосковск Тульской обл.

C этой схемой также часто просматривают:

ЗАЖИГАЛКА ДЛЯ ГАЗА
Зарядное устройство для автомобильных и мотоциклетных батарей
Зарядное устройство для автомобильных аккумуляторов
Имитатор для проверки телефонных аппаратов
Простые датчики для охранной сигнализации
Стабилизаторы напряжения на микросхеме ВА6220
Выключатель для настольной лампы
Усилитель ЗЧ с низким напряжением питания
Ограничитель разрядки аккумуляторной батареи

PIC Урок 25. Модуль ADC (АЦП). Измеряем напряжение. Часть 1

Переходим к изучению следующего модуля контроллера PIC – ADC, я считаю, одного из самых важных модулей.

ADC (Analog-to-Digital Converter, в переводе на русский АЦП или аналого-цифровой преобразователь) – это периферия, которая преобразует электрический сигнал на её входе в цифровой код. Затем данный код мы уже используем для обработки или для отображения тем или иным образом данной электрической величины. Это очень распространённая периферия или технология. АЦП активно используется в звукозаписи, измерительной технике, видеозаписи и во многих других случаях. Поэтому нам обойти данную вещь стороной никак не получится, тем более АЦП поддерживается аппаратно в контроллерах PIC16.

Как вообще работает цифровое преобразование?

Берётся опорное напряжение и сравнивается с измеряемым. Соответственно, опорное напряжение всегда должно быть больше измеряемого. Если это не так, то нужно будет применять делители напряжения.

Изобразим схематично процесс измерения

Отрезок — это диапазон измерений. Он находится между нулём и опорным напряжением. А стрелка — это измеряемое напряжение.

Данный отрезок делится пополам, и АЦП оценивает, в какой половине находится приложенное напряжение

Если оно находится в стороне нуля, то в самый старший бит результата записывается 0, а если в стороне максимального напряжения, то единица. У нас будет единица. Затем та половина отрезка, на которой находится измеряемое напряжение делится ещё пополам, и АЦП опять измеряет, в какой половинке уже данного отрезка у нас находится измеряемое напряжение

Оценка идёт по тому же принципу — в какой стороне отрезок. В нашем случае будет 0. И этот ноль записывается в следующий более младший бит.

Затем та четвертинка опять делится пополам и АЦП опять оценивает, где находится отрезок

И АЦП так и продолжает такой процесс до тех пор, пока не кончатся ячейки для битов. То есть если мы используем 10-битный режим, то. соответственно, и будет 10 подобных измерений и заполнятся 10 бит величины. Чем больше бит, тем точнее результат, но уже потребуется на это больше времени и более серьёзный и точный АЦП. Имея данный результат, нам несложно будет посчитать величину измеренного напряжения. Мы знаем. что если у нас АЦП 10-битный, то данный результат у нас лежит в промежутке от до 1023 (0xFFFF), получается всего у нас 1023 отрезка. И мы затем наш результат делим на 1024 (количество отрезков плюс 1) и умножаем на величину опорного напряжения.

Теперь посмотрим, как устроен модуль ADC в контроллере PIC16 (нажмите на картинку для увеличения изображения)

Измеряемый сигнал поступает на коммутатор входов, управляемый с помощью битов CHS2:CHS0, в A/D конвертер, в котором преобразовывается в цифровой код. Также в конвертер подаётся опорное напряжение, которое также может поступать из различных источников, что управляется тоже определёнными битами регистров настроек, с которым и сравнивается поступивший сигнал.

A/D-конвертер работает следующим образом. Сигнал, который поступил в него через коммутатор, заряжает внутренний конденсатор CHOLD. Затем модуль преобразует напряжение, удерживаемое на конденсаторе в соответствующий 10-разрядный цифровой код методом, описанным выше (данный метод называется методом последовательного приближения).

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

Теперь давайте познакомимся с регистрами модуля ADC, которые, я надеюсь, внесут ещё большую ясность в понимание процесса работы АЦП.

Управляющий регистр ADCON0

Рассмотрим отдельные биты данного регистра:

ADCS1:ADCS0 (A/D Conversion Clock Select bits): Выбор источника тактового сигнала. Также есть третий бит выбора источника тактового сигнала ADCS2, который находится в регистре ADCON1. Вот как зависит выбор источника тактового сигнала, а также его частота от состояний этих трёх битов

ADCS2:ADCS0Частота преобразователя
000FOSC/2
001FOSC/8
010FOSC/32
011FRC (Внутренний RC генератор модуля АЦП)
100FOSC/4
101FOSC/16
110FOSC/64
111FRC (Внутренний RC генератор модуля АЦП)

CHS2:CHS0 (Analog Channel Select bits): Выбор аналогового канала

000 = Канал 0 (AN0)

001 = Канал 1 (AN1)

010 = Канал 2 (AN2)

011 = Канал 3 (AN3)

100 = Канал 4 (AN4)

101 = Канал 5 (AN5)

110 = Канал 6 (AN6)

111 = Канал 7 (AN7)

GO/DONE (A/D Conversion Status bit): Статус модуля АЦП

1 – модуль АЦП выполняет преобразование (установка бита вызывает начало преобразования)

– состояние ожидания (сбрасывается аппаратно по окончанию преобразования).

ADON (A/D On bit): Бит включения модуля АЦП

1 – модуль АЦП включен

– модуль АЦП выключен. Ток модулем не потребляется.

Управляющий регистр – ADCON2

Рассмотрим биты данного регистра:

ADFM (A/D Result Format Select bit): Формат сохранения 10-битного результата

1 – правое выравнивание (два старших бита находятся в двух младших битах регистра ADRESH, остальные нули, а 8 младших битов – в регистре ADRESL)

– левое выравнивание (два младших бита находятся в двух старших битах регистра ADRESL, остальные нули, а 8 старших битов – в регистре ADRESH).

ADCS2 (A/D Conversion Clock Select bit): Старший бит выбора источника тактового сигнала

Был рассмотрен выше.

PCFG3:PCFG0 (A/D Port Configuration Control bits): Управляющие биты настройки каналов АЦП. Данные биты настраивают тип входов (цифровой или аналоговый), а также влияют на выбор источника опорного напряжения. Для этого в технической документации существует вот такая таблица

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

Теперь поговорим о последовательности действий при работе с модулем ADC.

  1. Сначала мы настраиваем модуль, в том числе и биты PCFG3:PCFG0, выбираем направление ножек портов (ножки, участвующие в измерении сигналов, должны быть включены на вход). Затем выбираем канал, на котором будет производиться замер напряжения сигнала, выбираем источник тактирования АЦП и включаем модуль.
  2. Затем настраиваем прерывание от ADC, если необходимо. Прерывания настраиваются следующим образом: бит ADIF сбрасывается в , ADIE устанавливается в 1, также включаем глобальные прерывания с помощью битов PEIE и GIE.
  3. Выдерживаем паузу, необходимую для зарядки конденсатора.
  4. Начинаем аналого-цифровое преобразование с помощью установки бита GO/DONE.
  5. Ждём окончания преобразования путём отслеживания состояния бита GO/DONE или обрабатывая соответствующее прерывание.
  6. Считываем результат из регистров ADRESH:ADRESL, сбрасываем бит ADIF при необходимости.
  7. Чтобы начать следующее преобразование, процесс повторяется с шага 1 или 2. Минимальное время ожидания перед запуском следующего преобразования должно быть не менее двух периодов преобразования одного бита.

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

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

В качестве подопытного контроллера мы возьмём PIC16F877A, расположенный на плате от WaveShare, а в качестве источника испытуемого сигнала соберём примитивный делитель с помощью переменного резистора на 10 килоом, подключенного с одной стороны к плюсу питания контроллера, а с другой – к общему проводу. Центральный провод соединим с ножкой AN0.

Подключим резистор к плате

Подключим программатор, подключив его затем и к ПК, а также подключим внешний блок питания к плате.

В следующей части занятия мы настроим проект, АЦП, напишем код для измерения напряжения и проверим код на практике.

Купить программатор (неоригинальный) можно здесь: PICKit3

Купить программатор (оригинальный) можно здесь: PICKit3 original

Отладочную плату PIC Open18F4520-16F877A можно приобрести здесь: PIC Open18F4520-16F877A

Дисплей LCD 20×4 можно приобрести тут: Дисплей LCD 20×4

Переходник I2C to LCD можно приобрести здесьI2C to LCD1602 2004

Смотреть ВИДЕОУРОК (нажмите на картинку)

Рейтинг
( Пока оценок нет )
Загрузка ...
Adblock
detector