USB FM-передатчик
Автор: Aheir Есть у нас в Питере такое развлечение: на выходные, праздники или в отпуск съездить на несколько дней в Финляндию,
благо что до границы недалеко, а визу получить несложно. И все бы хорошо, но приходится по дороге пересекать границу, а поскольку
желающих бывает много, процесс этот часто растягивается часа на 2-3, а то и больше. Как можно провести это время, сидя в собственном
автомобиле? Мы с супругой предпочитаем посмотреть на ноутбуке какой-нибудь фильм, и вот в какой-то момент мне подумалось, что выводить
при этом звук через динамики ноутбука, имея аудиосистему в авто, как-то неправильно. Обычно этот вопрос решается с помощь так называемых
автомобильных FM-модуляторов (кто не знает, это такое небольшое устройство, которое втыкается в разъем прикуривателя и умеет передавать
в эфир звуковые файлы со встроенной или подключенной к нему USB-флешки или сигнал с линейного входа, достаточно настроить приемник
автомобиля на заданную на модуляторе частоту, чтобы услышать этот звук через аудиосистему авто), однако при этом занят разъем прикуривателя,
который был бы больше полезен для зарядки ноутбука, и появляется дополнительный провод от выхода звуковой карты ноутбука к модулятору —
не сильно удобно, как мне кажется, да и вообще, не наш метод. После анализа существующих на данный момент решений, мне больше всего
приглянулось одно, о котором и пойдет речь ниже...
Несколько расстраивает политика фирмы Silabs, согласно которой документация на большинство их изделий предоставляется разработчикам только
после заключения партнерского соглашения, но Интернет - великая вещь, так что нам вполне хватит для начала того, что выложено
здесь. Да и корпус QFN не радует особо, ну да это меньшая из проблем.
Подключение к ПК — USB, далее — хаб TUSB2046 (см. статью), к которому подключены
преобразователь USB-RS232 FT232BM (см. статью), USB аудио-декодер
PCM2702, USB флешка (ну не оставлять же порт свободным) и внешний разъем Mini-USB типа B (все таки пришлось оставить один порт, по сути, пустым).
С преобразователем интерфейсов связан управляющий микроконтроллер Atmega8, реализующий все сервисные функции в системе. Сигнал с аналогового выхода
PCM2702 поступает на вход SI4711, управление которой осуществляет уже упомянутый микроконтроллер (в качестве интерфейса взаимодействия выбрана шина I2C).
На ОУ собран простейший усилитель сигнала с внешнего источника, его выход также подключен к аналоговому входу SI4711, тем самым позволяя передавать в
эфир сигнал с внешних источников, подключаемых к 3,5 мм разъему типа мини-джек. Разъем там хитрый (см. фото ниже), от CD-плеера, и поэтому содержит 4
дополнительных контакта. На них на всякий случай выведено питание и аналоговый выход PCM2702: при необходимости можно прицепить внешний усилитель
для наушников, например. Также на плате расположены управляющая кнопка и набор светодиодов. Питание (кому из микросхем какое требуется) 5 или 3,3 В,
последнее получается с помощью LDO стабилизатора LM1117-3.3. Также имеется простейший усилитель мощности на транзисторе BFG541, исходный вариант
схемы взят отсюда, спасибо коллеге m818181,
он не против ее использования и распространения.
В окончательном варианте добавился разъем для флешки рядом с кварцем на 6 МГц и мини-USB разъем рядом с кнопкой, а также экран на ВЧ-части. Кстати,
решил сэкономить на кварцах и затактовал чип хаба и FT232 от одного резонатора — работает без вопросов. Ну а SI4711 изначально не имеет встроенного
генератора, так что на нее подается тактовая частота 7,3728 МГц с генератора Atmega8. В конце статьи доступны для скачивания проект в P-CAD, содержащий
следующие файлы: схема, по которой собиралось (1v1.sch); исходная плата, на которой все собиралось (1v0.pcb); плата, на которой стоило бы все собирать,
т.е. с исправленными неточностями и максимально соответствующая схеме (1v1.pcb).
При подключении устройства к ПК исходно обнаруживается три устройства: универсальный USB-концентратор, виртуальный COM-порт (FT232BM) и «Динамики USB» (PCM2702). СОМ-порт потребует установки драйверов (доступны на сайте производителя микросхемы, см. статью), PCM-ке ничего не нужно (это устройство становится «устройством вывода звука по умолчанию»). Параметры СОМ-порта — 115200 8N1. При длительном нажатии на кнопку (удержании до звукового сигнала) происходит подача питания на флешку, в терминал выдается сообщение «USB disk on-line» и в системе появляется дополнительный съемный носитель данных — флешка.
Флешку можно использовать для хранения, например, необходимых устройству драйверов, управляющей программы, плеера, музыки и т.п. Отключение — аналогично,
удержанием кнопки.
Устройство запоминает последнюю частоту, на которой происходила передача, в энергонезависимой памяти и при включении устанавливает этот параметр и
активирует передатчик. Таким образом, практически сразу после включения устройства начинается передача в эфир как звуковых данных, так и
предустановленного сообщения RDS (в текущей версии прошивки сообщение RDS задается при программировании микроконтроллера). Короткими нажатиями на
кнопку можно переключать частоту передачи в диапазоне 88-108 МГц с шагом в 1 МГц (всего 21 «пресет»), номер «пресета» отображается в двоичном коде
5-ю светодиодами на лицевой панели. По команде из терминала «АА ХХ ХХ» (в шестнадцатеричном виде), где ХХ ХХ — желаемая частота в явном написании,
можно установить любую допустимую частоту вещания. Например, для перехода на частоту 102,3 МГц следует набрать «АА 10 23», а для 98 МГц - «АА 09 80».
По команде «ВВ ХХ ХХ», где ХХ ХХ — код параметра микросхемы по даташиту, в терминал выводится значение этого параметра и байт с флагами занятости
и ошибками микросхемы. Команда «СС ХХ ХХ YY YY» устанавливает значение параметра XX XX равным значению YY YY, в терминал выводится байт с флагами
занятости и ошибками микросхемы. Команда «55» приводит к переинициализации микросхемы (полезно, например, при смене антенны и т.п.). При работе
передатчика на частоте, заданной через терминал, 5 зеленых светодиодов отображают в двоичном коде значение циклически инкрементируемой переменной —
просто чтобы что-то отображать. При активности микросхемы PCM2702 (если через нее выводится звук) мигает красный светодиод D3, в остальное время он
просто горит.
С такой антенной передача устойчива на расстоянии до 50 м в городских условиях (но в прямой видимости), при применении в качестве антенны отрезка
провода около метра длиной дальность передачи возрастает примерно вдвое, устойчиво покрывается весь мой двор («коробочка» из 4 пятиэтажек),
пробиваются перекрытия всех 5 этажей. В качестве приемника использовался MP3-плеер с радио.
Отличия следующие: отсутствие органов управления, отсутствие усилителя, не используется преобразователь USB-RS232 (хотя изображен на схеме и разведен на плате — TUSB3410). Плата выглядит следующим образом: Окончательно собранный вариант, с установленной флешкой:
Здесь с тактированием получилось еще веселее, чем раньше: от кварца 12 МГц тактуется Atmega8, от нее — PCM2702, к выходу ее буфера подключен к SI4711 —
все работает. Только у TUSB2046 собственный резонатор на 6 МГц. Как видно — все корпуса (кроме PCM-ки) — QFN или аналогичные. На выход «Play» PCM-ки
подключен светодиод для индицирования ее активности. Флешка подключена навесным монтажом. Один момент: я использовал микроконтроллер Atmega8L (других
не удалось приобрести), что неверно при питании 3,3В на частоте 12 МГц. У меня все работает стабильно, но это отдельный случай. Здесь нужно использовать
МК без индекса «L». Как и ранее, в конце статьи доступны для скачивания проект в P-CAD, содержащий следующие файлы: схема, по которой собиралось
(2v1.sch); исходная плата, на которой все собиралось (2v0.pcb); плата, на которой стоило бы все собирать, т.е. с исправленными неточностями и максимально
соответствующая схеме (2v1.pcb).
После включения устройство вещает на частоте 100.0 МГц, передавая в том числе и RDS-сообщение, которое также жестко задано в прошивке.
Для «USB FM Transmitter» потребуется установка драйвера. Вообще, название устройства, а также пару VIP/PID идентификаторов USB можно настроить в
конфигурационном файле USB в исходниках. Я поменял VIP/PID (в исходнике и в драйвере), поскольку в исходном варианте устройство прикидывалось
программатором AVR910 от Prottoss’a, так как они разработаны на основе одного и того же кода и драйверы совместимы.
Дальность не великая, но метров 10 обеспечивает, в пределах квартиры работает, в машине при подключении к ноуту тоже проблем не замечено.
В принципе, впечатления от знакомства с микросхемой SI4711 остались положительные. Хотя есть и ряд негативных моментов. Помимо цены решения,
это еще и проблемы с доступонстью микросхем: приходится их поискать. Из двух приобретенных сначала микросхем заработала одна, хорошо что та, с которой я
начал опыты. У второй работала только цифровая часть. Проходила инициализация, и – все. Тишина в эфире. Т.е. не тишина, а помехи, поскольку несущей нет.
Запаял микросхему из другой партии – завелась без проблем.
Файлы:
Ну а все вопросы, как всегда, в Форум.
|
|
|||||||||||||||
|
||||