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

 



Микроконтроллеры семейства 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 тактовых циклов хватит вполне, хотя насчет точного количества можно подискутировать. Если вам нужно много чего обработать, то лучше сгрести данные в буфер ожидания и позволить основному циклу или подпрограмме не-обработчика сделать все остальное.

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

25 классных вещей, которые можно сделать с помощью Raspberry Pi

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

Появление в 2012 году миникомпьютера Raspberry Pi пробудило творческую жилку у многих людей, что породило множество новаторских подходов к вычислительным системам, не виданных со времен восьмибитников.


Действительно, можно сказать, что вновь наступил золотой век компьютерной техники. В связи с этим ниже будут представлены 25 проектов, которые можно сделать с Raspberry Pi.


1. Mod My Pi


Mod My Pi


Mod My Pi предоставляет огромный выбор корпусов различных оттенков, выполненных по современной технологии литья пластмасс. И цена у них вполне приемлемая.

Знакомство с программируемыми логическими интегральными схемами типов FPGA и CPLD

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

В первой половине 60-х годов прошлого столетия электронные устройства разрабатывались на основе дискретных компонентов. Цифровые системы были похожи на лабиринты из лапши проводов, соединяющих компоненты. Однажды собрав схему, было сложно ее переделать. Иногда разработчики забывали о том, для чего вообще они проектировали свое устройство! Изготовление таких систем было очень затруднено, а при их починки или переделке у инженеров просто закрывались глаза от ужаса. Производители микросхем решили этот вопрос путем интеграции на одном кристалле не соединенных между собой вентилей ИЛИ-И, что в итоге назвали программируемым логическим устройством (programmable logic device или PLD).

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

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.