Цифровой ЧМ-Передатчик FmStick

Введение

На этой странице описаны аппаратное и программное обеспечение для цифрового USB FM-передатчика, называемого FmStick. Это оборудование не содержит аналоговой части как таковой (за исключением части ВЧ). Основная идея - создать передатчик, который выглядит как USB-Флешка. Эта идея не нова, вы можете увидеть некоторые из этих конструкций на рынке, такие как Griffin RocketFM или Keene USB FM Transmitter, оба доступны на "Амазоне". Но устройство, описанное ниже - немного отличается от них. Оно не имеет аналоговой части звукового тракта, поддерживает передачу RDS-сообщений, и ещё оно достаточно мощное. Основные характеристики этого устройства таковы:

  • Частота передачи: 76 ... 108 МГц.
  • Мощность передачи:                 -60 ... 20 дБм[1].
  • Компрессия звука:               Да
  • Ограничитель звука:                 Да
  • Измерение качества звука:       Да
  • Пред-Искажения:                     0/50/75 мкс.
  • RDS:                             Да
  • RDS РадиоТекст:                   Да
  • Время по RDS:                         Да
  • Необходимость в установке драйверов:     Нет[2]
  • Необходимость в программном обеспечении:  Нет[3]
  • Индикаторы состояния передатчика: Да
  • Необходимость в дополнительном питании: Нет

[1] Максимальное ЭМИ разрешённое E.T.S.I. в Европе

[2] Если у Вас нет уже запрограммированной EEPROM, то Вам необходимо использовать DFU-Util для загрузки прошивки в EEPROM. Эта операция выполняется только один раз и только в том случае, когда EEPROM вашего передатчика ни разу не прошивалась. Пролистайте страничку ниже до раздела "Установка Прошивки" чтобы узнать как это сделать.

[3] Вы можете сохранить параметры передатчика (частота, мощность, RDS и настройки компрессора/лимитера) в EEPROM. Если Вы сделаете это, Вам больше не нужно программное обеспечение для запуска вашего передатчика. Он будет автоматически запускать конфигурацию из EEPROM, в момент подключения к компьютеру. В таком варианте, программное обеспечение может пригодиться разве-что для обновления RDS-сообщений, ну или для индикации уровня передаваемого звука.

Приметка: Сейчас я доделываю трансивер, основанный на более доступных микросхемах: SI4721 и STM32. Будьте на связи!

Описание Оборудования

Block diagram

Эта блок-схема, иллюстрирует работу передатчика.

Как Вы видите, устройство состоит из 2 основных микросхем: TAS1020B (процессор) и SI4711 (передатчик). На плате так-же есть микросхема памяти 24LC64, в которой находятся прошивка и конфигурация передатчика. Звук, из ПК или MACа проходит через шину USB и попадает в TAS1020B, где он преобразуется в цифровой звук в формате I2S, который в свою очередь подаётся на ЧМ-передатчик SI4711, где он подготавливается к передаче в эфир (звук сжимается, ограничивается и проходит фильтр пред-искажений). После этого ЧМ-несущая модулируется этим сигналом.

Микросхема SI4711 как-таковая не содержит классической схемы ЧМ-модулятора (с использованием варикапа), вместо этого, в ней реализован современный квадратурный (I/Q) модулятор, где DSP управляет амплитудой и фазой несущей частоты. Более подробно о I/Q-модуляции вы можете узнать на странице википедии. Также после того как несущая уже сформирована, она попадает на транзистор BFG541 где сигнал усиливается до ~ 20 дБм (100 мВт). Эта схема (которая используют I/Q-модулятор) дает значительное улучшение качества передачи, иногда даже лучше, чем у коммерческих вещалок.

Устройство питается от шины USB, а максимальный потребляемый ток - 200 мА (при максимальной мощности передатчика). Устройство имеер 5 светодиодов, которые указывают на следующее:

  1. Желтый (мигающий): Микросхема передатчика включена (но это не значит что в эфире есть несущая).
  2. Синий: Передача несущей в эфир.
  3. Желтый: Сигнал обнаружения тишины.
  4. Зелёный: Сигнал наличия звука.
  5. Красный: Несущая перемодулирована (в таком случае нужно уменьшить громкоость или перенастроить компрессор/ограничитель).

 

Схема и плата

Полная схема устройства (кликните для увеличения):

 Schematic

Обратите внимание на наименование микросхем, которые вы возможно собираетесь покупать:

  • Процессор: Должен быть TAS1020A или TAS1020B! Просто TAS1020 (без букв в окончании) - не будет работать.
  • Передатчик: Работа передатчика подтверждена на микросхемах SI4711-A20-GM/SI4711-A20-GMR. Так-же (возможно) будут работать SI4711-B30-GM/SI4711-B30-GMR или SI4713-A20-GM/SI4713-A20-GMR а так-же SI4713-B30-GM/SI4713-B30-GMR. Остальные микросхемы (SI4711-A-GM/SI4711-A-GMR а так-же вся серия SI4710/SI4712) - не поддерживают цифровой звук, поэтому их использование в данном устройстве невозможно (хотя можно поставить микросхему-ЦАП, но это уже будет костыль).
  • EEPROM: Обычная i2c-микросхема памяти на 8КБайт: 24LC64.

Печатную плату нужно делать методом "фоторезиста". Обычный "лазерно-утюжный" метод тут не прокатит, так как выводы слишком тонкие. Плату можно сделать на одностороннем стеклотекстолите, где на обратной стороне будет несколько проволочных перемычек:

pcb

Готовый к печати документ в формате PDF: FmStick-normal.pdf Этот-же файл, но зеркально-отображённый: FmStick-mirrored.pdf

Исходные файлы платы и схемы в формате Eagle-проекта: FmStick-22.11.2011-pcb.tar.gz

 

Прошивка

Последняя версия прошивки доступна по ссылке: FmStick-r1.262-firmware.zip (не забудьте распаковать файл перед заливкой в устройство).

Изменения в прошивке FmStick 1.262 (20.11.2012):

  • Исправлена проблема мигания светодиодов связанных со звуком
  • Улучшена стабильность соединения между устройством и приложением

 

Установка прошивки

Если у Вас уже есть прошитая EEPROM, или вы сами прошили её при помощи программатора I2C, такого как IC-Prog или PonyProg, Вам больше ничего не нужно, и Вы можете пропустить следующий абзац.

Если-же у вас чистая (пока не запрограммированная) EEPROM, и Вы слишком ленивы чтобы спаять программатор I2C, тогда прийдётся немного помучиться с софтом. Вы должны установить прошивку на устройство при помощи DFU-Software разработанным TI, предварительно установив драйвер DFU (если у Вас Windows 7, этот драйвер установится автоматически). После установки драйвера, запустите DFUTEST.EXE, Вы увидите интерфейс программы, Картинки ниже показывают шаги, которые нужно сделать для установки прошивки:

dfu driver dfu-application dfu-application, completed device dispatcher after updated firmware
Откройте диспетчер устройств, и убедитесь что у Вас есть устройство "DFUUSB.sys TI DFU class driver". Запустите DFUTEST.EXE и установите флажки как на картинке. Нажмите на троеточие "..." в разделе "Download" и выбериет файл прошивки. После этого нажмите на кнопку "Download". Если всё в порядке, программа покажет Вам это сообщение. Далее Вам необходимо закрыть программу и вытянуть устройство из шины USB, и снова его подключить! В диспетчере задач должы появиться "Звуковая карта" и "Устройство HID"

 

После установки прошивки в устройство, необходимость в драйверах отпадает. Так-же Вы можете подключить передатчик к другому компьютеру, на котором ничего устанавливать не нужно (ну кроме программки управления).

Исходный код прошивки - условно открыт. Это значит, что при её разработке были использованы лицензионно-защищённые материалы от TI. Поэтому для того чтобы получить код прошивки, вам нужно быть зарегистрированным пользователем TI. Если Вы уже являетесь зарегистрированным пользователем TI,  просто сообщите мне ссылку на ваш профиль в e2e.ti.com, после чего я отправлю исходники на адрес этого профиля.

 

Программа управления передатчиком (для компьютера)

Программа написана с использованием библиотек Qt4, что позволяет её запускать на Windows/Linux/MacOS а так-же сделать её мультиязычной. Исходный код лицензирован GPLv2, также доступна лицензия на коммерческую разработку. Программа имеет 3 режима внешнего вида:

     
 1). Нормальное окно FmStick со всеми элементами управления (устройство не подключено)  2). Минимальный интерфейс, в котором показываются только самые необходимые элементы (устройство подключено, передатчик включен и передаёт звук)

 3). Программа спрятана в системном трее, и после того как мы подключили устройство к шине USB, она сообщает нам о том что оно подключено, и что ведётся передача сигнала в эфир.

 

Поддерживаемые языки: Английский, Русский, Украинский.

Собранные версии для различных операционных систем:

Windows:

Linux:

  • Пользователи Ubuntu могут просто добавить репозиторий с программой к пакетному менеджеру:
    $ sudo add-apt-repository ppa:piratfm/fmstick
  • Или Вы можете загрузить .deb - файлы для ручной установки: fmstick_1.0-1_amd64.deb
  • Вы так-же можете собрать программу из исходных кодов, представленных ниже. 

Исходные коды программы управления FmStick:

Вы можете загрузить проект Qt4 с исходными кодами по следующей ссылке:fmstick-1.0-src.tar.gz

Так-же не забудьте удовлетворить зависимости прилжения: libqt4-dev, qt4-dev-tools, qt4-qmake, cmake, libusb-1.0-0-dev

Средства разработки доступы на сайте: qt.nokia.com

 

Все исходные коды:

 

Проект на ГитХабе: github.com/piratfm/fmstick

 

Ограничения/Проблемы

Аппаратные:

  1. Внутренние ЦАП-ы (для I/Q-модулятора) недостаточно отфильтровываются, что делает выходной спектр немного грязным и с паразитическими ​​гармониками по всему спектру, посмотрите сами на спектр, представленный ниже.
  2. Если Вы передаёте сигнал с ноутбука и с максимальной мощностью, Ваше WiFi-соединение, может нестабильно работать за счет интерференции.
  3. Температура устройства иногда поднимается до 35° C,  это связано с малыми размерами устройства и отсутствием системы охлаждения (радиатора).

Программные:

  1. Когда компьютер уходит в спяший режим, программа может зависнуть. Эта проблема связана с неблокирующими чтением-записью устройства USB.
  2. Если выбрано "Живое Редактирование", интерфейс слегка подтромаживает, из-за того, что каждое изменеие любого из параметров немедленно отправляется на устройство. Эта проблема лучше всего наблюдается при редактировании названия радиостанции (PS) или РадиоТекста.

 

Спектральные Диаграммы

Спектр 2,5 МГц, 97,2 MHz Только несущая. Передатчик включается на середине "водопада":

1 - цифровой шум, генерируемый микросхемой, 2 - паразитические несущие

Спектр 2,5 МГц, 97,2 MHz несущая + пилот-тон + Л-П + RDS:

 

Спектр 0,5 МГц, 97,2 MHz несущая + пилот-тон + Л-П + RDS

 

 

 

Готовый к использованию FmStick

Если вы желаете приобрести готовое устройство, под названием HiFi-FMT V-FMT212R RDS HiFi FM Transmitter(HiFi-FMT), которое  1:1 совместимое по аппаратной и программной части, вы можете проследовать по ссылкам ниже:

 

vast design    vast pcb

 

Фотографии платы-прототипа

"Живые" фотографии прототипа (вид верхней части платы):

prototype photo top

"Живые" фотографии прототипа (вид нижней части платы) здесь ничего интересного:

prototype bottom

Прототип внутри термоусадочной трубки рядом с 3G-модемом:

prototype near 3g modem

prototype and 3g modem