Применяем радиочастотный трансивер Spirit1
Компания STMicroelectronics выпустила новый радиочастотный приёмопередатчик SPIRIT1, полностью законченный многофункциональный модуль двусторонней радиочастотной связи.
Что может потребоваться в устройстве с радиочастотным интерфейсом? Кроме самой ВЧ части с преобразователем принятого сигнала в цифровые данные вероятно понадобится:
- шифрование;
- проверка контрольной суммы;
- фильтрация;
- хранение передаваемых/принятых пакетов.
Кроме того, желательно иметь надёжную связь (чувствительный + избирательный приёмник, достаточную выходную мощность) в нескольких частотных диапазонах в сочетании с низким энергопотреблением и некровожадной ценой. Собственно говоря, радиочастотный трансивер Spirit1 обладает всеми перечисленными свойствами.
В силу того, что большинство операций с данными трансивер выполняет сам, не требуется мощного внешнего хост контроллера.
В круг задач внешнего контроллера входит:
- настройка SPIRIT1 (микросхема универсальная и имеет множество подключаемых внутренних модулей);
- отправка данных;
- приём данных.
Все указные операции выполняются по SPI интерфейсу. Операции по добавке преамбулы к данным, вычислению и добавке контрольной суммы, криптографию, синхронизацию источника с приёмником и множество других операций выполнит Spirit1. Вам надо только корректно его настроить при старте.
Для лёгкости освоения компания STMicroelectronics выпустила отладочную плату: STEVAL-IKR001 (с несколькими версиями в зависимости от частоты несущей).
Комплект содержит две платы с хост-контроллерами STM32L152VBT6 и две платы с приёмопередатчиками Spirit1 с необходимым «обвесом» из пассивных компонентов, включая антенну (в нашем случае, в комплекте STEVAL-IKR001V3 весь пассив и топология платы рассчитаны на частоту 433МГц). Вы можете скачать необходимое ПО с сайта ST здесь. Кроме того, по указанной ссылке вы найдёте: описание отладочного комплекта, перечень компонент, схему электрическую принципиальную, топологию платы. Установив ПО, вы сможете соединить по беспроводному интерфейсу 2 комплекта приёмопередатчиков из STEVAL-IKR001, полностью протестировать их на предмет дальности, чувствительности, работу в условиях помех и т.д.
Мы, конечно, выполнили эти операции вначале. Но это не наш метод. Правильное изучение – это непосредственная работа с компонентом. Инженеры компании "Промэлектроника" портировали часть кода приложения, который ST также предоставила в исходниках, на контролер STM8L101F2P6. Код, который мы взяли – это, главным образом, настройка SPIRIT1.
Как проще всего настроить SPIRIT1?
Запускаем программу из cкачанного ПО SPIRIT1 DK. Подключаем один комплект из STEVAL-IKR001 (подключаем шнур USB, выбираем com-порт, нажимаем кнопку «Open»). Настраиваем связь так, как нам хочется (базовая частота, количество полос и т.д.). В конце нажимаем кнопку «CONFIGURE RADIO». На вкладке «Packet setting» устанавливаем параметры пакета (вид преамбулы, синхронизации и т.д) .). В конце нажимаем кнопку «CONFIGURE RADIO».
То же самое можно проделать с подключением аппаратного криптографа (AES, если требуется его подключить).
И самое главное. Заходим на последнюю вкладку «Low level commands» и нажимаем кнопку: «SAVE».
Далее в файле register.txt, а также в выделенном окне появятся состояния всех регистров SPIRIT1. Настройка трансивера сведётся к выдаче этих данных из вашего любимого контроллера, к которому вы привыкли в Spirit1. Data sheet на Spirit1, конечно, придётся почитать (управление мощностью, уход в сон, запуск таймеров и т.д.), но для старта с любой платформы вполне достаточно вышесказанного. Есть тонкий момент: запись регистров надо производить, когда Spirit1 находится в режиме STAND_BY.
Как говорилось ранее, инженеры компании "Промэлектроника" подключили передающий модуль к недорогому контроллеру с низким энергопотреблением STM8L101F2P6.
Коротко о работе программы:
Пакеты с сообщениями принимались «родной» платой из комплекта STEVAL-IKR001V3, которая умеет общаться с ПО на ПК. Дальше мы провели тестирование на дальность беспроводной связи. Мощность источника была выбрана близкая к максимальной (но не максимальная). Условия передачи: несколько бетонных перекрытий. Дальность, на которой проводилось тестирование передачи, не превышала 30 метров. Протокол результатов измерения перед вами:
Код такого простейшего приложения занял 1849 байт флэш памяти и 294 байта памяти ОЗУ. Пока в проекте односторонняя связь. Однако, железо позволяет сделать двустороннюю.
Компания "Промэлектроника" выполнила эту работу, чтоб вам было ещё проще использовать передовые новинки от мировых брендов электронной индустрии.