NeoPixel LED и PIC18

  Еще раз об управлении светодиодами на драйвере WS2812 и ему подобных. Как известно эти светики управляются по однопроводной шине. Основная особенность, что программно можно описать передачу данных, но это будет поглощать значительную часть времени работы микроконтроллера, но в новых микроконтроллерах появилась возможность организовать этот интерфейс с применением периферии. Метки:MCC, MPLAB® Code Configurator, MPLAB® X …
Читать далее NeoPixel LED и PIC18

MCC PIC24 – модуль OUTPUT COMPARE – режиме ШИМ

Во многих системах управления, для формирования управляющих сигналов требуется модуль ШИМ, он позволяет не только формировать импульсы заданной длительности, но и с применением обычного RC фильтра строить простые ЦАП. MCC -позволяет быстро и легко настроить модули OC в PIC24 для работы с ШИМ. Структурная схема модуля в режиме ШИМ: Процедура настройки модуля для работы в …
Читать далее MCC PIC24 – модуль OUTPUT COMPARE – режиме ШИМ

Тестирование модуля генератора

  Тестирование модуля генератора Настройка, запуск и проверка рабочей частоты на примере PIC18F26K40. PIC18F26K40 Чтобы понять из-за чего зависит производительность микроконтроллера просто надо понять как работает его задающий тактовый генератор. Для тестирования соберём небольшую схему на PIC18F26K40 (покупаем в Гамме). Для тестирования частоты нам потребуется выход RA6 настроить на вывод частоты синхронизации. Надо учесть, что …
Читать далее Тестирование модуля генератора

MPLAB® Code Configurator and Encoder

Еще раз про энкодер… Для некоторых приложений очень удобно и экономически выгодно, для настройки и управления использовать энкодер. Такие энкодеры имеют строенную тактовую кнопку которую можно применить для выбора режимов работы устройства. В настоящей статье пойдет речь об энкодерах формирующих код “Грея”. Их формируемая последовательность несколько отличается от классической. Метки:MPLAB® Code Configurator

Проект с использованием MCC часть 16

Продолжим изучение EUSART. На этом этапе отработает передачи данных с ПК и получения эха. Для этого в основной цикл программы добавим код

Суть его проста постоянно в главном цикле проверяется наличие данных в буфере (размер нашего буфера не забываем 8 байт). Если флаг установлен сосчитать байт из буфера EUSART_Read() и вернуть его в ПК. Протестируем: …
Читать далее Проект с использованием MCC часть 16

Проект с использованием MCC часть 15

EUSART – Универсальный асинхронный приёмопередатчик (УАПП, англ. Universal Asynchronous Receiver-Transmitter, UART) — узел вычислительных устройств, предназначенный для организации связи с другими цифровыми устройствами. … читать на вики. Внесем изменения в нашу схему, добавим выход на USART. Для связи с ПК будем использовать любой мост в моем случае я буду использовать MCP2200 – USB – USB Bridge. Наша схема преобразиться следующим …
Читать далее Проект с использованием MCC часть 15

Проект с использованием MCC часть 14

С выводом данных на дисплей мы справились (но могу сразу сказать библиотеку графики к этой статьи пришлось доработать, поэтому в этом проекте она обновлена). У нас на текущем этапе имеется двухканальный регулятор светодиодного освещения подключенный к ОЛЭД дисплею, воспользуемся этим для индикации состояния работы регулятора. Будем делать индикацию по мере продвижения по логики работы регулятора. …
Читать далее Проект с использованием MCC часть 14

Проект с использованием MCC часть 13

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

сразу скажем для чего нужна конструкция

Она необходима, чтобы компилятор при использовании нашей библиотеки …
Читать далее Проект с использованием MCC часть 13

Проект с использованием MCC часть 12-2

Настало время для изучения шины I2C. Изучать будем на примере работы с индикатором RET012864E. Что изменили со старой схемы: В прошлой теме я затупил и не добавил подтягивающие резисторы которые необходимы для работы I2C интерфейса. Номинал резисторов может быть в пределах от 1,8к до 10к, в зависимости от скорости которую мы хотим использовать. Принцип простой скорость …
Читать далее Проект с использованием MCC часть 12-2

Проект с использованием MCC часть 12-1

В настоящее время без визуализации информации уже не интересно. Поэтому научимся выводить информацию на дисплей. Для это возьмет простенький OLED RET012864E/REX012864J я такой приобретал в фирме “Гамма-Украина”, описание можно почитать здесь http://catcatcat.d-lan.dp.ua/oled-ret012864e-rex012864j/ . Индикатор по умолчанию выпускается сконфигурированным на работу с параллельным интерфейсом, но драйвер может работать и I2C и SPI. Мы с конфигурируем его для …
Читать далее Проект с использованием MCC часть 12-1

Проект с использованием MCC часть 11

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

Проект с использованием MCC часть 10

Алгоритм управления освещением от нажатия кнопки. Обработка удержания кнопки: Мы должны проверить кнопка в настоящий момент нажата и флаг удержания установлен, если да Проверить таймер удержания “отработал” – это значит, что кнопка нажата и удерживается, если да Включить модуль, естественно он включиться на ранее заданной яркости. После чего в зависимости от состояния флага NAP1 начать изменять …
Читать далее Проект с использованием MCC часть 10

Проект с использованием MCC часть 09

  Эта часть будет посвящена созданию практического проекта управления освещение. Тех задание: Два выхода управления ШИМ – светодиодным освещением. Две кнопки управления, каждая кнопка управляет, своим каналом, логика самая простая, нажимаем и удерживаем кнопку включается режим (в зависимости от предыдущего состояния) нарастания яркости или уменьшения, если канал отключен он включается на предыдущей установленной яркости. При повторном …
Читать далее Проект с использованием MCC часть 09

Проект с использованием MCC часть 08

И так создадим проект в котором при помощи двух кнопок мы сможем управлять яркостью светодиодов. При использовании МСС у нас лафа полная, добрые дяди с Microchipa подготовили функции, которыи позволяет изменять значения ШИМ, это PWM1_LoadDutyValue и PWM2_LoadDutyValue. Надо только понимать, что их параметр это не процент, а число, в нашем случае число 10 битное, т.е. от 0 …
Читать далее Проект с использованием MCC часть 08

Проект с использованием MCC часть 07

Модуль PWM – широтно импульсная модуляция (ШИМ). ПИК контроллеры часто на борту имеют модули ШИМ. На их основе строятся многие узлы управления электро приводами. В нашем варианте мы будем его использовать для управления яркостью светодиодов. Модуль ШИМ работает совместно с таймером TMP2, поэтому так же в этой главе будет изучена его работа. Для изучения так …
Читать далее Проект с использованием MCC часть 07

Проект с использованием MCC часть 06

Изменим схему следующим образом добавим две тактовые кнопки BT1 и BT2. Теперь переключимся на конфигурацию выводов, для этого сделаем двойной клик в окне Ресурсы проекта на Pin Module. В окне Pin Module настроим RB6 и RB7 Настроим на вход убрав птички в колонке выход, подключим к этим входам подтягивающие резисторы, теперь на входе будет высокий уровень, при …
Читать далее Проект с использованием MCC часть 06

Проект с использованием MCC часть 05

Эту часть назовем так как избавься от delay, там где а это реально не надо. Для это нам потребуется научиться использовать прерывания и работать с таймерами. Что такое таймер? Это аппаратное периферийное устройство которое может подсчитывать импульсы от системного генератора или от внешнего источника и формировать прерывания по достижению переполнению. Конфигурация таймер мы можем задавать …
Читать далее Проект с использованием MCC часть 05

Проект с использованием MCC часть 04

Теперь простого горения светиков нам не достаточно, заставим их мигать. Для начала используем первобытно простой способ, но достаточно простой. Используем функции delay, напрягаться откуда они берутся не будем, самое главное , что пишутся они так: __delay_ms(x) // request a delay in milliseconds – задержка в миллисекундах __delay_us(x) // request a delay in microseconds – задержка в микросекундах …
Читать далее Проект с использованием MCC часть 04

Проект с использованием MCC часть 03

Первым делом перенастроим регистры конфигурации, следующим образом: Отключим выход генератора (CLKOUT function is disabled. I/O function on the CLKOUT pin) Включим сторожевой таймер (WDT enabled) После этой настройки мы должны будем увидеть в изменении графического вида контроллера было: стало: Настройки конфигурации должна выглядеть так Теперь перейдем к настройке портов, необходимо перейти к окну Pin Manager: …
Читать далее Проект с использованием MCC часть 03

Проект с использованием MCC часть 02

Когда мы запустили конфигуратор, самое главное понять, что с этим делать и как проверить, то что мы делаем работает или нет. Для начала настроим регистры конфигурации микроконтроллера и настроем тактовый генератор. Настроим работу тактового генератора на максимальную скорость, для нашего микроконтроллера это 16 мГц. Для этого будем использовать внутренний встроенный генератор. Схема генератора Нам надо настроить …
Читать далее Проект с использованием MCC часть 02

Проект с использованием MCC часть 01

Для изучения MCC я выбрал простой контроллер PIC16F1509. Выбор его был обусловлен богатой новой периферией которую можно изучить. Для начала была собрана схема на макетной плате Внешний вид собранной схемы Начнем создавать проект, нажмите иконку создать, выбираем создать станрдатный проект Нажимаем далее, выбираем наш микроконтроллер. Нажимаем далее, Метки:MPLAB® Code Configurator

MPLAB® Code Configurator

MPLAB ® Code конфигуратор (MCC) является свободно распространяемым плагином, это графическая среда программирования, которая генерирует бесшовный, легкий для понимания кода на Cи, чтобы вставить его в свой проект. Метки:MPLAB® Code Configurator