цифровая электроника
вычислительная техника
встраиваемые системы

 

Микроконтроллеры семейства PIC32. Модуль UART.

Автор: Mike(admin) от 9-09-2013, 07:43

UART или универсальный асинхронный приемопередатчик присутствует практически во всех микроконтроллерах. Он позволяет обмениваться данными с периферийными устройствами и персональными компьютерами по протоколам RS232, RS485, LIN, IrDA.


PIC32 UART


Передача и прием данных с помощью UART в PIC32 производятся по линиям UxTX (для передачи) и UxRX (для приема). Кроме того, для более надежного использования UART в микроконтроллере предусмотрено аппаратное управление потоком данных, реализуемое с помощью выводов UxCTS и UxRTS.


Правила использования прерываний

Автор: Mike(admin) от 6-09-2013, 18:00

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


I love Interrupts

  • Постарайтесь делать обработчик прерываний как можно короче. В идеале он должен быть не более полстраницы кода на языке C. Если пишите на ассемблере, то постарайтесь уместить код максимум на одной странице. Длинные обработчики, могут нарушить время работы программы.

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

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

Дверная сигнализация на базе микроконтроллера PIC12F635

Автор: Mike(admin) от 31-08-2013, 17:12

Систему дверной сигнализации можно создать на базе компактного микроконтроллера PIC12F635. Схема представляет собой устройство звукового оповещения, которое выдает сигнал предупреждения, когда кто-то открывает дверь. Можно установить это устройство в парадной двери или в двери черного хода в качестве охранной сигнализации, чтобы отпугнуть воров и злоумышленников. Данный модуль питается от четырех батареек типа AA/AAA напряжением 1.5 В, что в итоге дает 6 В.

Микроконтроллерное управление реле

Автор: Mike(admin) от 29-08-2013, 16:22

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

MPLAB X Парсинг в реальном времени

Автор: Mike(admin) от 29-08-2013, 13:22

MPLAB X имеет мощный парсер, позволяющий устранять синтаксические ошибки при написании кода.




Микроконтроллеры семейства PIC32. Прерывания.

Автор: Mike(admin) от 29-08-2013, 13:18

Говоря простым языком, прерывание это какое-либо внешнее или внутреннее событие, требующее от процессора немедленной реакции на него. При этом выполнение текущей программы на время завершается, процессор сохраняет значения служебных регистров, входит в обработчик прерывания, обрабатывает это прерывание, по выходу восстанавливает служебные регистры и вновь возвращается к месту выполнения основной программы, на котором его прервали. Вообще, в ядре MIPS (а в PIC32 используется именно оно) все прерывания попадают в категорию исключений. К исключениям здесь относится все, что «мешает» нормальной работе основной программы. Например, выполнение процедуры сброса – исключение, ошибка при делении – исключение, и, конечно же, различные прерывания, как внутренние, так и внешние, тоже исключения.


Прерывания


В PIC32 имеются 96 источников прерывания и 64 векторов прерывания. Это значит, что несколько источников могут быть «приписаны» к одному вектору, то есть указателю к функции обработчика прерывания. Нужно учитывать, что механизм прерываний поддерживает одновекторный и мультивекторный режимы. При одновекторном режиме в таблице исключений будет представлен один вектор для прерываний, и, следовательно, будет лишь один обработчик прерываний. Многовекторный режим предоставляет возможность работать с прерываниями в собственных обработчиках, тем самым повышая гибкость и читабельность программы. Давайте начнем разбирать это на примерах и потихоньку вникать во все тонкости прерываний.

MPLAB X Навигация с помощью гиперссылок

Автор: Mike(admin) от 29-08-2013, 13:14

MPLAB X с помощью гиперссылок позволяет находить места объявлений переменных и функций как внутри, так и вне одного файла




Микроконтроллеры семейства PIC32. Работа с таймерами.

Автор: Mike(admin) от 29-08-2013, 13:08

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


Таймеры


В PIC32 имеется два типа таймеров – таймеры A (по сути, он один – TMR1) и таймеры B (TMR2, TMR3, TMR4, TMR5). Все они 16-разрядные, могут тактироваться от внешнего или внутреннего источника и вызывать прерывания. Но таймер A может работать в качестве асинхронного таймера/счетчика, тактируемого от отдельного осциллятора, функционировать в спящем режиме микроконтроллера и иметь предделитель со значениями 1:1, 1:8, 1:64, 1:256. Таймеры B могут формировать в паре один 32-разрядный таймер, иметь предделитель со значениями 1:1, 1:2, 1:4, 1:8, 1:16, 1:32, 1:64, 1:256, влиять на срабатывание триггера события.

MPLAB X Шаблоны кода

Автор: Mike(admin) от 29-08-2013, 13:04

MPLAB X может автоматически продолжить строку или даже вставить целый фрагмент кода в зависимости от введенных первых символов




Микроконтроллеры семейства PIC32. Первый проект.

Автор: Mike(admin) от 29-08-2013, 12:37

Компания Microchip давно и широко известна отечественным радиолюбителям благодаря линейке дешевых 8-битных микроконтроллеров, которые успели найти себе применение в различных приложениях, вроде терморегуляторов, сенсорных устройств, приборов малой автоматизации и т.д. и т.п. Там российский разработчик не брал МК компании Atmel (прямой конкурент Microchip), он пользовался именно PIC’ами. Выбирать особо не приходилось. STM, NXP, TexasInstruments и уж тем более Renesas лет 10-15 назад были не так широко представлены на отечественном рынке по сравнению с сегодняшним днем. Да и PIC’и и AVR’ки были просты в освоении, в первую очередь благодаря немалому количеству русскоязычной документации. Но потом эти компании начали массово выпускать 32-разрядные микроконтроллеры (преимущественно с ядром ARMCortex) и заполнять ими мировые рынки. Чтобы не увидеть себя в хвосте этой гонки и не прослыть компанией, выпускающей «DIP’овых тараканов для самопайщиков», Microchip в 2007 году вывела на рынок свои 32-битные микроконтроллеры семейства PIC32.