Доброе время суток!
Расскажу я как можно собрать себе радиомодем мощностью 100мВт на 433МГц, по стоимости выходящий примерно на 6-7 долларов. Мощный радиомодем за 200 рублей — заманчиво? Тогда начнём.
Требуются скиллы пайки немного выше среднего и опыт заказа в интернет-магазинах.
Конструкция
Модем состоит из радиомодуля Si4432 и управляющего им контроллера на базе ATMega8/168/328. Подойдёт любой. Если применяете старшие версии (168 и 328) — конфигуратор параметров модема будет чутка покрасивее. Радиомодуль питается 3.3 вольтами через стабилизатор AMS1117-3.3. Процессор питается 5 вольтами, и работает на 16МГц, частота стабилизирована кварцем. Линии связи с радиомодулем согласованы по уровню напряжения при помощи стабилитронов.
ATMega8 либо ATMega168 либо ATMega328
Кварц Murata CSTCE16M0V53-R0 16MHz. В принципе, подойдёт и выводной кварц, но устанавливать его придётся с обратной стороны платы, и нужны будут конденсаторы на землю.
AMS1117-3.3 (LM1117)
VD1-VD3 — BZV55C3V3 — стабилитрон на 3,3V, без выводов
VD4 — LL4148 (DL4148) — выпрямительный диод, также без выводов
C1 — 1000pF (типоразмер 0805). Можно не ставить.
C2,C3 — 4.7...25 uF танталовый (типоразмер 1210)
C4 — 0.1uF (0.01...0.2uF)
R1-R3 — 470 Ом (470...510)
R4,R5 — 4.7 K (4.7...10K)
R6,R7 — 1K (0...2K)
R8,R9 — 330 Ом (220...680)
R0 — 0 Ом — перемычка
Все резисторы типоразмера 0805, в скобках указан возможный диапазон значений, однако, лучше придерживаться указанных.
LED1,LED2 — светодиоды SMD, типоразмер 0805, разных цветов.
Также, кроме собственно компонентов модема, для его повторения понадобятся: ISP программатор и FTDI адаптер(Девайс по ссылке не покупал, но выглядит он интересно — якобы в нём есть ISP). Можно обойтись и исключительно ISP программатором.
Внимательный читатель тут же заметит, мол «какой модем за 7 баксов, если только 328-ая мега стоит 200 рублей?» А также заметит, что все ссылки в спецификации ведут на интернет-магазины. К сожалению, если покупать компоненты в России, модем выйдет золотой (как, впрочем, и всё, что производится в России). Поэтому, чтобы достичь минимальной стоимости — приходится заказывать радиодетали в Китае. Отрицательный момент — придётся ждать прихода посылок. Однако, Si4432 так и так заказывать в Азии, так что ждать всё равно придётся. Зачастую партия из 10 штук, тех же ATMega328, получается по цене такая же, как партия из 5 штук. Надо мониторить цены и искать подходящий вариант.
Схема и плата
Принципиальная схема устройства представлена на рисунке ниже:
Печатная плата была разведена в Sprint Layout в 2 вариантах: под антенну-спиральку, и под установку ВЧ разъёма типа SMA. Оба варианта оптимизированы под ЛУТ. Если вам не нравится заливка сеточкой (лучше для ЛУТ) — можно включить в редакторе сплошную.
Сборка платы
Сборка проходит в 2 этапа:
На первом — устанавливаются мелкие детали, стабилизатор, процессор.
После чего необходимо прошить процессор при помощи ISP программатора бутлоадером Arduino. Это делается для упрощения себе жизни — после заливки бутлоадера нет необходимости тыкать ISP в плату, чтобы залить новую прошивку. Заливается тестовая прошивка, чтобы не попалить радиомодуль.
На втором этапе на плату устанавливается радиомодуль, после чего заливается «боевая» прошивка.
Собственно, на изображении 1 — вытравленная плата, 2 — установлена мелочёвка, 3 — залита тестовая прошивка, 4 — установлен радиомодуль, плата покрыта лаком, 5 — установлен экран от помех, из жести.
Прошивка
Прошивка модема написана в Arduino. Программист из меня никакой (я инженер) — поэтому качество кода весьма так себе. Можете подсказать, где можно что-то улучшить — буду рад.
В основу программы положен проект OpenBee. Собственно, мои изменения — это настроечный режим, который не был сделан в оригинальной прошивке, и исправление косяка с очисткой буфера передачи. Также в оригинальной прошивке был косяк — не настраивалась частота (дефайн был, но потом данные затирались данными из EEPROM, которые никогда не записывались) и радиометка устройства. Сейчас всё настраивается.
Процесс прошивки выглядит следующим образом:
Записывается бутлоадер при помощи ISP. Для платы на меге8 — бутлоадер для платы «Arduino NG or older w/ATMega8». Для платы на меге 168 и 328 — «Arduino Pro or Pro mini (5V,16MHz) w/ ATMega 168» и «Arduino Pro or Pro mini (5V,16MHz) w/ ATMega 328» соответственно.
Способ называется «Voodoo», несложно догадаться, почему =)
Записывается тестовая прошивка. Уже напрямую из Arduino. Она инициализирует EEPROM, мигает светодиодами и выставляет все ноги процессора в режим High-Z.
Ну, и в последнюю очередь, записывается рабочая прошивка. Также из Arduino.
Настройка
Настройка модема происходит при включении модема с замкнутым на +5V выводом «SET».
При этом в порт на скорости 9600 бод выдаётся настроечное меню, в котором можно поменять рабочую частоту, скорость последовательного порта и радиомодуля, и т.н. радиометку (RF Header), по которой модемы «сцепляются» друг с другом.
Обязательно нужно настроить радиометку, чтобы отделить свои модемы от остальных устройств. Крайне не рекомендуется метка OLRS (это метка по умолчанию для всех устройств Open LRS, к которым относится и модем).
Бег по граблям
Запись тестовой и «боевой» прошивки из Ардуино ведётся с использованием стандартного USB-UART преобразователя на FTDI. Разъём на модеме не совместим со стандартным «ардуиновским», подключать RX-TX, TX-RX, DTR-Reset, +5, GND. При отсутствии в хозяйстве FTDI (как так???) — прошивку можно залить и при помощи ISP.
Есть в прошивке неустранённая недоработка. По-идее, скорость последовательного порта ограничена 115К. Однако, из-за записи в EEPROM uint — по факту скорость может быть не более 65535 бод. В связи с чем поставлена затычка — при превышении 65534 — записывается 57600. Если есть желание — можно отключить конфигурирование с компьютера, и задать скорость в прошивке. Однако, большого смысла это делать — нет, ибо максимальная скорость в аэро канале — 57600.
Также есть ограничение на длину пакета, принятого по последовательному порту. Это 37 байт. Это ограничение было введено авторами оригинального проекта, и, видимо, обусловлено глубиной буфера радиомодуля (64 байта). Тут я ничего не менял.
Хочу повторить!
Исходники, чертежи печатной платы, схема — находятся в каталоге по ссылке.
Вариант для плохишей (с)
Если 100 мВт вам недостаточно — есть вариант переделать этот модем на модуль RFM23BP. Его выходная мощность составляет 1 ватт.
Надо понимать, что использование такой штуки — незаконно в этой стране.
Автор: gorbln