admin

Радиомодуль с RDA5807M продлевает жизнь старых радиоприёмников

915 сообщений в этой теме

admin    2 256

В статье приводится описание четырёх вариантов FM-радиоприёмников на микроконтроллерах ATMega8 и ATTiny2313 и на FM-тюнере RDA5807M.

3e26a43de8fb59afb02c694a98842b7c.jpg

Ссылка на статью: http://cxem.net/tuner/tuner87.php

Автор статьи: http://cxem.net/profile/12798/

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Быстрый заказ печатных плат

Полный цикл производства PCB по низким ценам!

  • x
    мм
Заказать Получить купон на $5.00
asvetp    70

Программы для микроконтроллеров написаны на ассемблере. Доступны для скачивания как исходники, так и файлы моделирования схем в Протеусе. Изображение текстовой информации на модели в Протеусе практически не отличается от реального в железе, поэтому было решено не загромождать статью фотографиями.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
asvetp    70

При использовании микроконтроллера в планарном корпусе и других SMD-компонентов печатная плата полчится очень компактной и пометится в любой радиоприёмник.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
CheAl    1

Название станций пишется в программе, а как для другого города.

Не программист, повторитель. Для таких как я, необходимо написать инструкцию,

как прописывать свои станции, хотя бы краткую.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
asvetp    70

Для того, чтобы прописать частоту и название станций в Вашем городе, нужно открыть ассемлерный файл программы (например RDA5807M_&_WH1602.asm) в любом текстовом редакторе, можно даже в блокноте, но удобнее это будет сделать в привычной вам среде программирования. Далее нужно перейти в конец файла, где перечислены названия станций (ниже метки freq_st:). Здесь вы увидите строки вида:

.DB 140,' ','R','a','d','i','o',' ','S','h','a','n','s','o','n',0 ;Радио Шансон 1010 8C

После директивы "DB" нужно ввести число шагов настройки частоты (один шаг равен 100 КГц). Это число определяется как разность между частотой радиостанции представленной в виде числа шагов и нижней границей диапазона равной 870 шагов (87 МГц). В привдённом выше примере для частоты 101,1 МГц имеем:

1010-870=140

Далее через запятую в кавычках идут 14 символов названия станции, в том числе пробелы, при помощи которых вы можете оцентрировать название на экране. Заканчивается строка нулём, который является признаком окончания вывода сообщения на дисплей. После точки с запятой идёт Ваш комментарий, который при компилляции игнорируется, поэтому можно писать там, что угодно.

Произведя таким образом изменения в программе, запускаете компиллятор (например AVRASM2) и получаете готовый для программирования HEX- файл. Удобнее это делать, в среде программирования, (например AVR Studio 4) по команде "Build". Если у вас установлена программа Proteus, то вы можете, нажимая виртуальные кнопки, понаблюдать на экране как будет выглядеть название станции на дисплее. Если что-то вас не устроит, вы можете оперативно, не прибегая к программированию микроконтроллера, исправить программу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
CheAl    1

Спасибо за ответ.

Буду пробывать, для этого всё есть.

Успехов и удачного развития конструкции.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
asvetp    70

Сегодня заметил, что в приведённом мною выше примере есть неточность. Этот расчёт относится к частоте 101,0 МГц, а не 101,1. Что касается проверки работы радиоприёмника в Протеусе, то хочу добаить, что у меня установлен Протеус версии 7.7 и, соответственно, выложенные мною файлы относятся к этой версии. В более новых версиях Протеуса программа симуляции может не работать. Поэтому, возможно придётся переустановить в схеме I2C DEBUGGER, а так же необходимо убедиться, что в библиотеке вашей версии Протеуса имеется модель дисплея Nokia3110. Если модели нет, то её нужно скачать и установить, после чего, также на схеме нужно удалить старый и поставить вновь установленный дисплей.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Vitemk    7

Чтобы не плодить темы, спрошу здесь.

В даташите на RDA5807M указано, что он(а) может работать с опорной частотой в 32768 Гц, 12МГц, 24МГц и т.д. Но на всех схемах, что находил, всегда использовался модуль с уже установленным кварцем на 32768Гц. Мне интересно, ставил ли кто-нибудь другие кварцы. Просто считаю, что с кварцем на более высокую частоту и настраиваться будет точнее. Но нет ли каких подводных камней.

P.S. Чтобы предотвратить вопросы, что мешает использовать установленный кварц, предупреждаю: у меня нет модуля с кварцем, есть только сама микросхема и кварцы на 32768Гц и 12МГц, причем 12МГц-ых кварцев больше.

RDA5807M.pdf

Изменено пользователем Vitemk

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
taif    18

Толково! Подобные темы на сайте "умерли". Сваял я на атмеге8 с нокиевским дисплеем. Облазил инет, нашел пару прошивок , но не то! Эта, Ваша,с автопоиском само, что надо!!! 

И главное, как здорово и доходчиво, Вы описали "переделку" прошивки под свои станции.  Спробую обязательно! 

У меня дисплей, при нажатии кнопок перебора  готовых станций, заполняется буквами и символами. Как избавиться?  И конечно бы контрастность подправить.

Спасибо, asvetp!

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
asvetp    70

Настроить контрастность дисплея даже проще, чем записать частоты радиостанций в вашей местности. Для этого в драйвере ЖК-индикатора (файл Nokia5110_driver.asm) нужно найти раздел "Таблица кодов команд инициализации LCD". Там вы увидите строку
.db 0x21, 0xBC, 0x06, 0x13, 0x20, 0x0C
В этой строке замените шестнадцатеричное число 0xBC на другое, например на 0xC8 и перекомпилируйте проект в Протеусе или в другой программе. Возможно придётся подобрать это число, если контрастность будет слишком большой и будут видны тёмные прямоугольники вокруг знаков.

Уважаемый taif, что касается искажения информации на дисплее, то возможно у вас слишком длинные провода от кнопок. Попробуйте припаять параллельно кнопкам конденсаторы ёмкостью от 10 до 33 nF. Кроме того развязывающие конденсаторы С2 и С3 должны быть как можно ближе к микросхемам. Желательно поставить такой же конденсатор 0,1 мкФ на ножки питания LCD (6-я и 8-я ножки Nokia5110).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
taif    18

Доброго дня asvetp. Спасибо, за толковое и доброжелательное отношение к бездарям от программирования. Редко кто, здесь,  на ресурсе,  так доходчиво объясняет.

С кракозябрами я так и подозревал, хотя, дополнительных проводов от платы у меня  нет, но, видимо, придется переразвести плату, согласно Вашим рекомендациям.

Ну и, как водится у неведующих: Как можно увеличить буквы шрифта. Хочется заставку  в верху дисплея другую написать

С контрастностью же - заменил дисплей и контрастность что надо.

Превеликое Вам спасибо!

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
serg123    29
В 27.04.2016 в 10:07, asvetp сказал:

Для того, чтобы прописать частоту и название станций в Вашем городе, нужно открыть ассемлерный файл программы

Зачем прописывать названия станций, сейчас практически все они передают эту информацию через RDS остается только ее прочитать и все, ну а частота просто прописывается из регистра настройки или авто поиска, я у себя так делал, правда под пик и нокиевский дисплей.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
taif    18
42 минуты назад, serg123 сказал:

Зачем прописывать названия станций.

А Вы, расскажите, как это сделать, так же доступно, как это делает  asvetp.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
asvetp    70

По мнению многих радиолюбителей информация по каналу RDS безошибочно распознаётся только от мощных радиостанций и при хороших условиях приёма. Часто на дисплее отображаются нечитаемые наборы символов. Кроме того многие радиостанции нарушают правила размещения информации и она содержится не в том блоке,  который предназначен для передачи названия станции.

Впрочем, я думаю, было бы всем интересно, если бы кто-то из форумчан поделился успешным решением этой проблемы применительно к обсуждаемым схемам.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
serg123    29

На счет уровня сигнала согласен, если будет интересно могу поделится своим вариантом схемы под RDA5807M и pic16f88 правда а также исходником.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
asvetp    70

Спрашивает taif как увеличить размер шрифта. В этом месте, уважаемый taif, Вы подошли к самому интересному в радиолюбительской практике, а именно к творческому подходу и стремлению усовершенствовать собранную схему. И как раз решение таких задач и привлекает нас к сборке радиоприёмников и других самоделок и доставляет массу удовольствия. Ведь в конце концов радиоприёмник можно купить и готовый.

Что касается увеличенного шрифта, то его в моих файлах нет, за исключением цифр. Шрифт можно поискать в интернете или создать самому. Для этого существуют специальные программы. Затем нужно переделать файл основной программы в той её части, которая отвечает за вывод информации. Вот вам подходящий случай для того, чтобы лучше разобраться в программировании.

 

 

Изменено пользователем asvetp
опечатка

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
serg123    29

Собственно вот реставрировал карманный приемник и собирал чуть помощнее для дачки. 

RDA5807.zip

Изменено пользователем serg123

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
taif    18

Здравствуйте, asvetp. Я опять со своими тараканами, с кракозябрами, то бишь. Самая длинная дорожка к кнопке платы 5.5см. Запараллелил все кнопки 30пф. Конденсаторы указанные Вами на ноги МК поставил. А избавления нет. Лишние символы появляются при включении записанных станций. В режиме авто все нормально. Пропадают кракозябры после выключения-включения питания.

serg123, где же Вы раньше были?? ))) Месяц я таскался по сайтам  в поисках примерно такого девайса. Ладно хоть у asvetp, нашел. А тут и Вы. Надоть и ваш вариантик спробовать. Меня именно с  RDS интересует. Нынче это уже не "писк", но престижно! :-))

Изменено пользователем taif
запятая

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
serg123    29

У меня RDS пока рассчитан только на чтение названия станций, вторую строку пока не выводил да и сома прошивка это пока первый вариант так сказать, будет свободное время допишу запись в eeprom громкости и частоты. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
taif    18
Только что, serg123 сказал:

У меня RDS пока

Ну, что же, будем подождать.))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
asvetp    70

taif , трудно сказать, не видя перед собой устройства. Я вначале предположил, что нарушается синхронизация при обмене с модулем RDA5807M, но Вы пишете, что кнопки автопоиска работают нормально. А не могли ли Вы нечаянно изменить программу при записи частот своих радиостанций? Проверьте это путём сравнения например в программе "Тотал Командер". Попробуйте также перезаписать программу в контроллер, предварительно стерев память программ и EEPROM. Нормально ли отображается на дисплее информация о ранее сохранённой станции  при включении радиоприёмника?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
taif    18

Добрый вечер, asvetp  Нет, эта проблемка возникла и не с переделанной прошивкой. Вот моя плата, возможно развел не совсем правильно.

FM.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
asvetp    70

taif, я не могу открыть ваш файл программой Sprint-layout 6.0. Или может он из другой программы. Преобразуйте файл в графический формат. Не думаю, однако, что при различной разводке платы так стабильно повторяется описываемый дефект. Здесь что-то другое.  Какой конкретно дисплей стоит у Вас? Повторю вопрос: нормально ли отображается на дисплее информация о ранее сохранённой станции  при включении радиоприёмника?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ваша публикация должна быть проверена модератором

Гость
Вы не авторизованы. Если у вас есть аккаунт, пожалуйста, войдите.
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

  • Похожие публикации

    • Гость Юра
      Автор: Гость Юра
      Добрый день!
      Очень нужна помощь, что бы понять, есть ли возможность модернизировать схему. В теме микроконтроллеров я не шарю.
      Есть устройство управления силовыми нагрузками с помощью реле, вот это:
      http://www.carymart.com/2-channel-10a-dc-reversing-motor-remote-controller-speed-adjustable-p-1528.html
      Этими реле через сборку транзисторов uln2003a управляет микроконтроллер em78p156elpj-g
      http://html.alldatasheet.net/html-pdf/60152/EMC/EM78P156ELP/325/6/EM78P156ELP.html
      который получает команды через приемник:
      http://www.carymart.com/super-regeneration-rf-wireless-receiver-module-dc-5v-p-699.html
      он же на ebay:
      http://www.ebay.com/itm/5PCS-MX-05V-Chip-Super-Regenerative-RF-Wireless-Receiver-Module-DC5V-315Mhz-/151572645578?hash=item234a6f06ca:g:CFEAAOSwdzVXvBpB
      Этот приемник впаян в основную плату и имеет четыре пина
      1 GND
      2 RXD
      3 закорочен с 2
      4 VCC
      GND идет на общий минус
      RXD идет на ногу 8 контроллера em78p156elpj-g
      VCC идет на ногу 14 контроллера em78p156elpj-g (в даташите обозначена VDD)
      Описание приемника:
      Model No.: 0020238
      Working voltage: DC5V
      Working current: 4mA
      RF Sensitivity: -103dBm
      Modulation Method: Amplitude modulation (ASK or OOK)
      Output Level : TTL Level (5V)
      Output Type : Serial Output (manchester code)
      Working temperature: -20°C ~ +70°C
      Type: Receiver Module for Fixed Code (without decode)
      А вопрос такой: можно ли заменть радио приемник на какой-то wi-fi модуль с управлением через приложение для Android?
      Являются ли стандартными команды, передаваемые через RXD и есть ли такие модули у китайцев?
      или контроллер em78p156elpj-g программируется под конкретные команды от радио модуля и подобрать wi-fi модуль без
      перепрограммирования не удастся? Или я все не так понимаю вообще?
    • Гость Борис
      Автор: Гость Борис
      Здраствуйте. Проблемма такая существующие (доступные мне) радиомодули имеют мощность 8, 17, 20 дбм.
      Нужно дотянут до 30дбм (1Вт), Видимость непрямая и сигнал уже через сотню метров теряется, местность сильно пересечена, много зелени, посему обещаных 200...300м тупо нет и в помине.
      Проблемка в чем? Как сделать усилитель на определенную частоту я представляю: транзистор, колебательный контур, но тут несколько каналов. Я немного в замешательстве, как это делается, например в рациях? Как сделать широкополосный усь?
    • Гость Qant
      Автор: Гость Qant
      Подскажите пожалуйста название хорошего радиомодуля, для передачи аналогового сигнала.