3 КОНСТРУКТИВНЫЕ ОСОБЕННОСТИ МИКРОКОНТРОЛЛЕРНОГО УСТРОЙСТВА БЕСПРО-ВОДНОЙ ПЕРЕДАЧИ ЦИФРОВЫХ ДАННЫХ ПРОТОКОЛА MIDI ДЛЯ КОНЦЕРТНЫХ ЭЛЕКТРОМУЗЫКАЛЬНЫХ УСТАНОВОК
3.1 Аппаратная реализация устройства
Главное назначение устройства состоит в беспроводной передаче цифрового сигнала команд MIDI. Воспроизводящий синтезатор в этом случае будет slave устройством, а лёгкий переносной MIDI-контроллер - master устройством. Таким образом музыкант будет полностью развязан по рукам и ногам.
Для этого необходимо спроектировать устройства - приёмопередатчики в лучшем случае (иногда музыканту требуется двухсторонняя связь), подключаемые в гнёзда IN и OUT синтезатора и MIDI-контроллера. В силу отсутствия большого времени на разработку и многих проблем на пути к физической реализации, было решено использовать в построении готовые модули и сделать связь между устройствами односторонней.
По своей сути, MIDI - это последовательная асинхронная шина UART, настроенная на скорость 31250 бод, содержащая 1 старт-бит и 1 стоп-бит.
Это значительно облегчает работу над устройством, которое будет уметь говорить на языке MIDI, поскольку продукция каждой уважающая себя фирмы-изготовителя микроконтроллеров не обходится без порта UART.
Для организации радиопередачи было решено использовать распространенные на рынке радиотоваров приёмопередатчики норвежской фирмы Nordic Semiconductors с усилителем и антенной 2 дБ. Самая низкая скорость передачи у которых - 250 кбит/сек. Это больше чем скорость потока MIDI, значит применение данных модулей - возможно. Так как ими необходимо управлять по синхронному последовательному протоколу SPI, встала необходимость выбора контроллеров. Основным критерием стало наличие у контроллеров hardware поддержки UART асинхронного последовательного порта, SPI в свою очередь присутствует на всех современных контроллерах. В итоге в качестве контроллера была выбрана вполне избыточная по своим возможностям платформа для разработки Arduino nano. В качестве элемента питания используется батарея "крона" 6LR61.
Рассмотрим, из чего состоит устройство:
Микроконтроллерный модуль "Arduino nano"
модуль приёмо-передатчика на базе микросхемы nrf24l01
элемент питания
разъёмы MIDI с оптоизоляторной гальванической развязкой
Теперь подробней рассмотрим модули:
3.1.1 Микроконтроллерный модуль "Arduino nano"
Arduino nano — это электронный конструктор и удобная платформа быстрой разработки электронных устройств для новичков и профессионалов на базе 8-разрядного микроконтроллера RISK архитектуры - Atmega328P, производства американской фирмы Atmel. Платформа пользуется огромной популярностью во всем мире благодаря удобству и простоте языка программирования, а также открытой архитектуре и программному коду. Устройство программируется через USB без использования программаторов, благодаря микросхеме "USB to UART" ch340 китайской фирмы WCH или более надёжной - FT232, производства именитой шотландской фирмы FTDI и микропрограмме "bootloader", уже вшитой во flash память контроллера.
Таблица 3.1 - Основные характеристики микроконтроллерной платформы
Наименование параметра
|
|
Микроконтроллер
|
ATmega328
|
Рабочее напряжение
|
5В
|
Напряжение питания (рекомендуемое)
|
7-12В
|
Напряжение питания (предельное)
|
6-20В
|
Цифровые входы/выходы
|
14 (из них 6 могут использоваться в качестве ШИМ-выходов)
|
Аналоговые входы
|
6
|
Максимальный ток одного вывода
|
40 мА
|
Максимальный выходной ток вывода 3.3V
|
50 мА
|
Flash-память
|
32 КБ (ATmega328) из которых 0.5 КБ используются загрузчиком
|
SRAM
|
2 КБ (ATmega328)
|
EEPROM
|
1 КБ (ATmega328)
|
Тактовая частота
|
16 МГц
|
Также на борту устройства имеются такие последовательные порты как UART, SPI и I2C, что позволяет работать со множеством периферийных устройств. На рисунке 4.1 можно подробно рассмотреть назначения портов микроконтроллера.
Рисунок 4.1 - Назначение портов Arduino nano
3.1.2 Модуль приёмо-передатчика на базе микросхемы nrf24l01
Радиомодуль на базе однокристального приемопередатчика NRF24L01+ работает в диапазоне частотах от 2,4 ГГц до 2,5 ГГц. Радиомодули могут обмениваться информацией в обе стороны на скоростях передачи данных до 2 Мбит/с. Небольшая мощность передатчика не требует получения лицензии для использования. Дальность действия в прямой видимости до 100 м а в помещениях - до 30 м.
Связь модуля с управляющим микроконтроллером осуществляется по последовательному SPI интерфейсу. Каждый модуль можно программно конфигурировать для работы, как в качестве приемника, так и в качестве передатчика. Разработчику нет необходимости знать протокол передачи модулем данных, а достаточно правильно настроить работу SPI интерфейса и корректно произвести настройку внутренних регистров модуля NRF24L01+. В модуле производится установка выходной мощности передатчика, номера канала обмена, адреса модуля и т.п.
На плате модуля размещены все компоненты, необходимые для работы чипа NRF24L01+, и разьем для подключения к схеме изделий. Встречается несколько разновидностей печатных плат. Для увеличения расстояния уверенной связи существуют модули с усилителем и внешней антенной. Дальность связи модуля с усилителем может достигать до 1100 м при скорости 250 кбит/с, при скорости до 1 Мбит/с - 750 м, а при скорости 2 Мбит/с - 520 м. Все эти параметры указаны для прямой видимости.
Основные характеристики:
Работа по шине SPI, которая поддерживается Arduino аппаратно и существует соответствующая библиотека;
3.3 В на питание;
Входы толерантны к напряжению до 5v, то есть можно подключать к микроконтроллеру, работающему от 5v;
Три скорости передачи - 250 кбит/с, 1 Мбит/с и 2 Мбит/с, причем на медленной - выше чувствительность. По умолчанию установлена средняя скорость;
Количество каналов — 126, с шагом 1 мГц. Если установлена скорость передачи 2 Мбит/с, то используется ширина двух каналов;
несколько уровней мощности передачи;
Энергопотребление около 0,9 мкА в режиме "power-down", до 11,3 мА при передаче, и до 13,5 мА при приёме;
Передача в буфер (за раз, за сеанс) до 32 байт. Регулируемая величина;
прослушивание одновременно шести pipe (труба). То есть возможен одновременный прием сигналов от шести таких же модулей, передающих на одном частотном канале;
передача по одной трубе;
включаемый/выключаемый режим контроля получения адресатом сообщения. В этом режиме задается количество попыток;
при включенном режиме контроля полученного сообщения, приемник может обратно отправить заранее заготовленную информацию.
Последний режим очень интересен для организации опроса датчиков, например - датчиков температуры. Ведомый периодически измеряет температуру и отправляет ее к себе в буфер - при этом, ничего не отправляя, он не засоряет эфир. Ведущий обращается к ведомому, когда ему надо с любой командой, а в ответ принимает температуру, или любую другую информацию. При такой работе количество прослушиваемых неограниченно.
Рисунок 4.2 - внешний вид и назначение входов радиомодуля
Описание выводов:
GND – Общий провод, земля.VCC - Питание, от 1.9 до 3.6В.
-
CE – Chip Enable. Назначение ножки зависит от режима работы:
если чип сконфигурирован как приемник, то высокий уровень на CE позволяет получать пакеты от других радио модулей. Низкий уровень переводит чип в Standby-I.
если чип настроен на передачу: CE всегда держится на низком уровне, в этом случае для передачи данных нужно положить их в очередь FIFO и сформировать импульс на выводе CE минимум на 10 мкс.
CSN – Chip Select. С помощью данного сигнала происходит активация ведомого устройства.
SCK - Стробирующий сигнал SPI. Используется для синхронизации при передаче данных.
MOSI - Master Output, Slave Input. Данный сигнал предназначен для последовательной передачи данных от ведущего к ведомому.
MISO - Master Input, Slave Output. Данный сигнал предназначен для последовательной передачи данных от ведомого к ведущему.
IRQ. Interrupt Pin. Данный вывод предназначен для прерываний. Активный уровень – низкий. Значит когда происходит событие прерывания эта ножка из напряжения из высокого уровня в низкий.
3.1.3 Плата соединитель
Модуль nrf24l01 питается от 3,3 В. На борту модуля Arduino nano присутствует вывод 3v3, обеспечивающий питанием 3,3 В подобную периферию, однако же, он реализован внутри микросхемы, преобразующей UART в USB и обладает недостаточным выходным током для подключения радио-модуля. Для этого необходим отдельный стабилизатор.
Чтобы решить данную проблему, было решено спроектировать, развести и вытравить плату - переходник, которая будет выполнять несколько функций:
соединять воедино контроллер и приемопередатчик
обеспечивать приемопередатчик должным питанием
иметь на борту разъёмы MIDI с соответствующей обвязкой
Разводка платы производится в САПР Sprint-Layout, которая является простым в использовании программным обеспечением для разработки односторонних, двусторонних и многослойных печатных плат (PCB). Программное обеспечение включает в себя все функции, которые необходимы для разработки платы. На рисунке 4.3 можно видеть процесс разведения дорожек.
При проектировании платы было принято решение использовать двухслойный текстолит, поскольку схемы на двухсторонних печатных платах разводятся гораздо легче. При разводке платы я руководствовался следующими правилами:
Минимум пересекающихся трасс, дабы исключить наводки.
Свободные от трасс площади заполняются общими полигонами в качестве земляной шины и экранирования микроконтроллера от радио модуля.
Сглаживание углов проводников, чтобы исключить эффекты отражения сигнала.
Рисунок 4.3 - Процесс проектирования печатной платы в ПО Sprint Layout.
Когда работа над разводкой плат закончена, трафареты печатаются лазерным принтером на глянцевой бумаге, с которой потом переводятся посредством утюга на медное напыление текстолитовой болванки. Этот процесс в простонародье называется аббревиатурой "ЛУТ", что расшифровывается как лазерно - утюжная технология. Далее болванка проходит протравку в растворе хлорного железа, отмывку, залуживание и напайку компонентов, после чего плата в полной боевой готовности. На рисунках 4.4, 4.5, 4.6 представлен технологический процесс.
Рисунок 4.4 - Переведённые трафареты на болванку текстолита
На рисунке 4.7 можно наблюдать плату в итоговом варианте.
А на рисунке 4.8 устройство в разъёмах синтезатора.
Рисунок 4.5 - Вырезанные и протравленные платы
Рисунок 4.6 - Напайка компонентов
Рисунок 4.7 - Два готовых устройства
Рисунок 4.8 - Устройство, готовое к работе, размещено в гнёздах синтезатора
|