Jump to content
admin

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

Recommended Posts

Александр Павлович Спасибо Вам за предоставленные исходники, но к сожалению мой товарищ "программист" оказался полным разгельдяем, пришлось оставить как есть

IMG_20210112_234832.jpg

IMG_20210112_234329.jpg

IMG_20210112_234254.jpg

IMG_20210112_234225.jpg

7 минут назад, Yuraword сказал:

Усилитель на базе ОМ2.7, хотел чтобы при переключении каналов на диплее высвечивалось их значение, но увы)) 

 

Share this post


Link to post
Share on other sites

@asvetp Потестил новую прошивку FM_M8_N5110_scan_v8,  функция включения работает нормально, но вот с выключением по длинному нажатию не всё нормально, по крайней мере у меня так получается. Вообщем получается следующее, то выключается при удерживании кнопки (что, наверное, так и задумывалось), то выключается только когда отпустишь кнопку, то при удерживании кнопки уходит в какой-то цикл, при этом то включается, то выключается подсветка экрана. Кнопки пробовал разные и напрямую на общий провод соединял PD5.

Share this post


Link to post
Share on other sites

Изготовление 2-х слойных плат от 2$, а 4-х слойных от 5$!

Быстрое изготовление прототипа платы всего за 24 часа! Прямая доставка с нашей фабрики!

Смотрите видео о фабрике JLCPCB: https://youtu.be/_XCznQFV-Mw

Посетите первую электронную выставку JLCPCB https://jlcpcb.com/E-exhibition чтобы получить купоны и выиграть iPhone 12, 3D-принтер и так далее...

@Vladimir_L Буду искать причину. Странно, что я не обнаруживал этот баг на своём макете. Но на то и нужно тестирование в разных условиях.

Share this post


Link to post
Share on other sites

Материалы вебинара Параметры выше, цена ниже. Обновление в линейке AC/DC- и DC/DC-преобразователей MORNSUN

Опубликованы запись, ответы на вопросы и материалы вебинара, посвящённого преимуществам и отличиям новых источников питания и DC/DC-преобразователей Mornsun. На вебинаре были рассмотрены изолированные и неизолированные DC/DC-преобразователи последнего, четвертого, поколения (R4) и компактные модульные источники питания второго и третьего поколений (семейства LS/R3 и LD/R2) на плату, также новая группа продукции – встраиваемые источники питания в кожухе.

Подробнее

У меня отключается нормально,ни в какой цикл не уходит-подсветку не делал

Share this post


Link to post
Share on other sites

Запускаем новый BLE 5.2-чип BlueNRG-LP от STMicroelectronics

Любая разработка начинается с чтения документации и изучения доступных средств разработки. Данный материал целиком посвящен средствам разработки, включая детальные инструкции по запуску вашего первого приложения на BlueNRG-LP. Описана работа с отладкой STEVAL-IDB011V1, набором инструментов и пакетом ПО позволяющим разработчику быстро войти в курс дела.

Подробнее

Материалы вебинара Практическое использование TrustZone в STM32L5

Материалы вебинара, посвященного экосистеме безопасности и возможностях, которые дает новая технология TrustZone в МК STM32L5, содержат две подробные практические работы: создание простого приложения с изоляцией в TrustZone, и пример отладки и тестирования TFM-SBSFU. Программа рассчитана на технических специалистов и тех, кто уже знаком с основами защиты ПО в STM32.

Подробнее

@asvetp Попробовал новую прошивку FM_M8_N5110_scan_v8_1, выключение работает заметно стабильнее. Немного не удачно (как по мне) организована работа с длинным нажатием, событие завязанное на длинное нажатие происходит после отпускания кнопки, что не очень удобно (как понять что нажатие достаточно длинное). Удобнее, мне кажется, когда событие по длинному нажатию выполняется ещё при нажатой кнопке, и кнопку отпускаешь когда видишь произошедшее событие ( например, выключение приемника, вход в меню настроек, переход в автопоиск и обратно).   

Share this post


Link to post
Share on other sites

@Vladimir_L  Я подумаю над Вашим предложением. Со своей стороны,  прошу измерить потребляемый ток приёмника при отключенном кнопкой питании. 

Edited by asvetp
исправление

Share this post


Link to post
Share on other sites

Ух! В какую интересную тему я попал, даже зарегистрировался специально. Ув. asvetp, огромное спасибо Вам, за то, что потратили свое время на такой интересный проект, да еще и не пожадничали выложить исходники первых устройств! Это важно не столько для повторителей конкретный приемников, а больше для людей, изучающих ассемблер в живых примерах! Я например, искал образцы парсинга данных с GPS модулей, которые продают на али, для извлечения из них сверхточного времени на ассемблере и наткнулся случайно на эту тему. Очень много интересного и полезного! В качестве хобби занимаюсь минималистическими проектами на самых дохлых микроконтроллерах вроде attiny13, если будет время, хочется перенести необходимый и достаточный функционал из этого проекта туда, это можно сделать только на ассемблере или в машинных кодах и в этом вся прелесть. Придется сократить весь код, отказаться от внешних процедур,  от всего. Понятно, что есть за ту же цену намного более ногастые контроллеры с большей памятью. Дело не в стоимости, дело в принципе.

Очень не хватает в логическом завершении проекта - главной фишки цифрового радио - RDS. Подозреваю, что Вы ищете в неправильном направлении. Не могу сказать на 100% так как не знаком с данными по этому приемнику, но уверен, что если в даташитах не дается  детальная информация, значит она там и не нужна, все должно делаться намного проще. Например, в отношении RDS - Вы вероятно хотите парсить сигнал и вытаскивать из него названия станций, занося их в память, сталкиваетесь с ошибками, шумами и не знаете как это победить? Это вероятно и не нужно. Это очень простое устройство и там не предусмотрена такая сложная работа с данными RDS, все, что нужно, это прогонять их через МК и тем же самым потоком выводит на экран! ВСЕ!  Конечно, могу ошибаться, но по-моему это не так затратно по усилиям, как пытаться распарсить текст. Сам факт того, что станция сохраняется в памяти и настроен поток RDS через буфер на мк в строку на дисплее достаточен, чтобы не прописывать названия станций. Так сделано на большинстве промышленных приемников и это нормально)

немного сумбурно, извиняюсь. Еще раз спасибо за работу, очень было интересно ознакомиться!

 

Share this post


Link to post
Share on other sites

Так объясните как вытащить правильно данные RDS,а там дело пойдет быстрее!

Сразу скажу-я так и не смог сделать нормальный порядок раскодирования данных-где начало,где конец так и не понял...

Share this post


Link to post
Share on other sites
1 час назад, bulat943 сказал:

///////////////////

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

Edited by Falconist
Оверквотинг

Share this post


Link to post
Share on other sites

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

Раз уж вы заявляете что 

Цитата

Это очень простое устройство и там не предусмотрена такая сложная работа с данными RDS, все, что нужно, это прогонять их через МК и тем же самым потоком выводит на экран! ВСЕ! 

значит вы знаете как обработать эти сырые данные,так объясните как "прогнать"? и стандарт RDS один и не важно,каким чипом его принимаете

Edited by bulat943

Share this post


Link to post
Share on other sites

В описание на протокол RDS все есть, там все указывается какой номер символа в строке, что это название станции, радио текст или еще что то. Я уже давал asvetp процедуру декодирования потока RDS, но это не так быстро перенести код с Си на Ассемблер. Да и еще небольшой момент rda5807 декодирует ошибки только в первых двух блоках RDS, что влияет на качество приема данных, эту проблему можно частично решить принимая только максимально сильный уровень RDS (не путать с уровнем RSSI).Мои примеры работы с RDS можно посмотреть здесь https://pichobby.lg.ua/shemu/sound.html

Share this post


Link to post
Share on other sites

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

@booran Из вышесказанного вытекает ответ на Ваше замечание, что я не там ищу. То есть я пока не ищу. Но некоторый опыт в приёме RDS есть, хотя я и не стал выкладывать проекты с RDS, т. к. результат меня не устроил. Исходники я перестал выкладывать по нескольким причинам, в том числе потому, что программы стали громоздкими  и новичку  разбираться в них будет сложно. А для опытных программистов в моих программах нет ничего интересного. Подтверждением этих слов может служить первый пост на этой странице.

@bulat943 Я Вас тоже прошу измерить потребляемый ток  приёмника при отключенном кнопкой питании.  

Share this post


Link to post
Share on other sites

Так там все есть,это понятно,мне не понятно в какой момент времени обновлять строку RDS на экране

Насчет ошибки я повторю-это без проблем,они идут=0,группа выбрал=4

booran писал-

Цитата

Это очень простое устройство и там не предусмотрена такая сложная работа с данными RDS, все, что нужно, это прогонять их через МК и тем же самым потоком выводит на экран! ВСЕ! 

Если он такой спец,что может "прогонять" их через мк так пусть объяснит как?

В кратце говоря проблема вот в чем-

Полностью текст RDS 8 символов,4 раза передаются позиции и коды двух символов,с этим тоже вроде понятно-приняли 4 раза и вывели на экран,но проблема в том что они прут и прут (позиция и коды символов),бесконечно,повторю что ошибки=0,сигнал отличный,так как понять-когда начата передача текста и когда текст передан и надо его выводить на экран?

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

При громкости=0 ток 30 ма,при выключении после отпускания кнопки пару секунд 5,6 ма,потом 0,88 ма до включения

я как то делал отключение,там многое пришлось отключать (ацп помню,может еще чего то)

Share this post


Link to post
Share on other sites
1 час назад, bulat943 сказал:

Если он такой спец,что может "прогонять" их через мк так пусть объяснит как?

Да что ж вы так сразу с наскоку и по голове бьете) Я вроде понятно написал, что это только мои догадки. На самом деле у вас спрашиваю, что из себя представляют данные и пытаюсь понять в чем проблема их обработать? Повторю, я не работал с ними и ни сколько не принижаю ваши способности, просто спрашиваю. Возможно решение есть и оно относительно простое.

Share this post


Link to post
Share on other sites
1 час назад, asvetp сказал:

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

Это самое главное, мне с этим хорошо помог  baza3812.

Share this post


Link to post
Share on other sites
2 часа назад, bulat943 сказал:

проблема в том что они прут и прут (позиция и коды символов),бесконечно

Открыл стандарт, данные передаются группами по 104 бита, у них жесткое время передачи - 87.6мс, интересна только группа #2 в которой передается радиотекст. Текст передается в 7 битной кодировке  ISO/IEC 646, максимально в группе может быть 64 символа. Интересный поток)

Цитата

Алгоритм работы с RDS на RDA5807M

Сопоставим изложенный материал с нашим RDA5807M. Итак, радио включено и настроено на радиостанцию. 

Для работы с RDS мы устанавливаем флаг RDS_EN регистра 02H.

Если радиостанция передает сообщения по стандарту RDS, то приемник начнет принимать их, бит за битом. При этом еще не понятно к какому блоку относится очередной бит и где границы блоков и групп. Поэтому приемник анализирует входящую последовательность в поисках известных ему значений: смещений. Встретив такое значение, становится известно какой это блок. С этого момента RDS декодер синхронизирован. Данный факт отражается установкой флага RDSS регистра 0AH.

Когда принята очередная группа, RDA5807M помещает в регистры 0CH, 0DH, 0EH, 0FH декодированные информационные слова и устанавливает флаг RDSR регистра 0AH. Другие микросхемы данной серии, имеющие дополнительные выводы, позволяют выводить данный флаг на один из своих выводов и использовать его для генерации прерываний микроконтроллера. В RDA5807M таких выводов нет, поэтому нам остается периодически опрашивать флаг RDSR. Здесь встает вопрос как часто его опрашивать. Скорость передачи данных стандартом RDS составляет 1187.5 бит/c, передача одной группы (104 бита) занимает ~87.6мс, данный временной интервал делится примерно поровну на два промежутка, в течение которых RDSR установлен в 1 и сброшен в 0. Таким образом, чтобы не пропустить получение очередной группы, интервал опроса RDSR не должен превышать 40мс.

При передаче сообщений возможны ошибки, поэтому каждый блок дополняется контрольным словом. Декодер использует его для коррекции ошибок. Информация о количестве выявленных декодером ошибок указывается в битах BLERA, BLERB, BLERC, BLERD регистров 0BH и 10H. При числе ошибок более 5 блок считается поврежденным и не может быть использован.

Отследив установку флага RDSR и убедившись в корректности принятых данных, можно выполнять их расшифровку.

https://tsibrov.blogspot.com/2020/01/rda5807m-part2-rds.html

Edited by booran

Share this post


Link to post
Share on other sites
1 час назад, booran сказал:

Открыл стандарт, данные передаются группами по 104 бита, у них жесткое время передачи - 87.6мс, интересна только группа #2 в которой передается радиотекст. Текст передается в 7 битной кодировке  ISO/IEC 646, максимально в группе может быть 64 символа. Интересный поток)

https://tsibrov.blogspot.com/2020/01/rda5807m-part2-rds.html

Декодирование уже делает сама RDA5807, единственно нужно забрать эти данные и собрать в строку, кроме этого там есть еще и время с датой, но если дата считывается просто, то вот для даты нужна переменная с запятой, а это ой как увеличивает размер кода на мк с малым объёмом памяти.

Share this post


Link to post
Share on other sites

@asvetp Измерил ток потребляемый приёмником при выключении кнопкой (без учёта тока потребления стабилизатора 3,3В, у меня приёмник на макетной плате с питанием от лабораторного источника), получилось - 320мкА при 3.3В.

Edited by Vladimir_L

Share this post


Link to post
Share on other sites

Спасибо, Vladimir_L.  Думаю, что это многовато. Возможно нужно увеличить резисторы измерительного делителя напряжения (R8. R9). Какие номиналы этих резисторов в Вашей схеме? 

Edited by asvetp

Share this post


Link to post
Share on other sites

booran я у вас в третий раз повторяю-КАК ОПРЕДЕЛИТЬ НАЧАЛО И КОНЕЦ ТЕКТСТА?

прием идет замечательно,ваши 104 бита принимаются на ура-я вам это написал ,но это лишь 2 символа,а в тексте их 8

 

Edited by bulat943

Share this post


Link to post
Share on other sites
13 минут назад, bulat943 сказал:

booran я у вас в третий раз повторяю-КАК ОПРЕДЕЛИТЬ НАЧАЛО И КОНЕЦ ТЕКТСТА?

А я откуда знаю, это вы с RDA работаете несколько лет )) я второй день ее в глаза вижу и то, через даташиты только. Вот и скажите на чем застопорились, алгоритм я привел с blogspot выше. Начало и конец определяется через синхронизацию по нахождению смещений. У вас так?

Edited by booran

Share this post


Link to post
Share on other sites

Так вы же сами пишете что 

Цитата

Это очень простое устройство и там не предусмотрена такая сложная работа с данными RDS, все, что нужно, это прогонять их через МК и тем же самым потоком выводит на экран! ВСЕ! 

так объясните как их прогнать?

Я ЗАСТОПОРИЛСЯ НА НАЧАЛЕ И КОНЦЕ СТРОКИ РДС,КАК ИХ ОПРЕДЕЛИТЬ Я НЕ ЗНАЮ!!!

еще раз повторю-данные по 2 символа принимаются замечательно (ваши 104 бита),но это только 2 символа из строки рдс

 

Share this post


Link to post
Share on other sites

Подключил к программатору приемник последней версии,буду рыться с рдс по новой

Проблема вот в чем-объясню на пальцах

Допустим стация передает "радио___",потом "шансон__",данные передаются по 2 символа,проще говоря приходит "ра","ди","о_","__","ша","нс","он","__" (нижний прочерк это пробел-для наглядности),мы включили приемник,а станция уже передала первые 2 пары символов,то есть "ра","ди" мы прошляпали,приняли "о_","__"-вот тут надо знать что это конец строки рдс и дальше будет новая строка,это и есть мой затык

если тупо принять первые 4 пары "о_","__","ша","нс" и вывести на экран то получится "о___шанс",еще ситуация осложняется тем,что эти пары одной строки рдс передаются не последовательно как я написал выше("ра","ди","о_","__"),а по странному алгоритму,то есть например сначала идет "ди",потом "__",потом "о_",потом "ра",через круг в совершенно другом порядке,но у каждой пары есть свое положение в строке рдс

Share this post


Link to post
Share on other sites

@asvetp 320мкА это ток потребления контроллера и радио-модуля, напряжение на делитель (10К/10К) измерения напряжения подаётся от другого канала лабораторного блока питания.

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

    • Уж простите, речь не совсем про злектронику.  Купили недавно стиралку  BEKO HTV 8736 XSO   Смотрю теперь рекламная наклейка на ней     "Prosmart inverters motor 10 yer warranty"   Действительность или реклама ?   Не удалось найти ни сервисного руководство,  схемы ну хотя бы картинок.  Только для интереса машинку не вытаскивать же и разбирать.  Нужды нет но знать хочется.... 
    • Для одного из своих проектов понадобился управляемый от логики преобразователь цифровых импульсов в треугольное напряжение, "касающееся" нижним "углом" потенциала общей шины (нуля). Прежде, чем что-то ваять, отсимулировал несколько схем в Мультисиме. Первой - управляемый сдвоенный генератор тока на транзисторах. Не понравился, т.к. даже при использовании считающихся комплементарными 2N3903/2N3905, для получения симметричного треугольника, токозадающие резисторы в их эмиттерах пришлось применять с номиналом, отличающимся в три раза. Да и уровни выходного сигнала регулировались паршиво. Возможно, я чего-то недоучёл, но не стал "насиловать" эту схему дальше. Следующей отсимулированной схемой стал интегратор на ОУ. И с этой схемой оказалось не всё в порядке. Собственно, сама схема приведена ниже: На "осциллограмме" видно, что уровень выходного сигнала (при номинале потенциометра, задающего "среднюю точку" для ОУ = 74%) снижается от плюса к минусу питающего напряжения. В принципе, так оно и должно быть, поскольку интегратор по определению интегрирует входной сигнал до насыщения в плюс или минус. В известных схемах автогенератора на компараторе + интеграторе (думаю, что их схемы заскочившим в эту тему профессионалам известны, потому и не приводятся) выходные уровни фиксируются срабатыванием компаратора. Но у меня преобразователь управляться будет от внешнего 3-фазного генератора импульсов.  Ниже приводятся еще две "осциллограммы" при 73% "нолеустанавливающего" резистора:  снижение к нулевой линии наступает быстрее и 75%: Нуля сигнал вообще не достигает. Такое поведение интегратора с наибольшей вероятностью обусловлено входными токами утечки ОУ, но для реальной работы никак не подходит. Прошу подсказать, какие могут быть возможные пути решения данной проблемы. А с конкретикой я и сам разберусь.
    • Да, я так в итоге и решил сделать)) жаль что сразу не догадался 
    • У меня наоборот. САУ-М6 есть, а ардуины пока-что нет. Я про неё вообще не думал пока не посоветовали. Реле для ардуины - тоже нету, поэтому советовался.  Короче - реле надо брать гальванически развязаное. Питать телефонозарядкой - можно. Для двигателя - любой контактор на нужную мощность. Спасибо!
    • наличие пяти разрядного индикатора никакого отношения к точности не имеет...  на плате отсутствует  внешний АЦП , а внутренний для СТМ32  12разрядов  с погрешностью в идеале +/-3..5МЗР , 3.3V/2^12=0.8mV * 5 = 4mv такшта это такой же паказометр как и выше.
  • Similar Content

    • Guest Валерий
      By Guest Валерий
      Добрый вечер! Приобрёл модуль JQ-D082BT для установки в активные колонки и блок питания к нему  220 до 12 переменного тока. При первом подключении стрельнул конденсатор. Стоит ли менять этот конденсатор (может ли выжить этот модуль?) и как подобрать подходящий конденсатор, не могу найти схему к нему. Заранее спасибо! 
      https://cdn1.radikalno.ru/uploads/2020/2/2/71a0bff564b86581b40879345bfb2d75-full.jpg
      https://cdn1.radikalno.ru/uploads/2020/2/2/dcc5293e490981e1f3b58669bad6418a-full.jpg
       
    • Guest Юра
      By Guest Юра
      Добрый день!
      Очень нужна помощь, что бы понять, есть ли возможность модернизировать схему. В теме микроконтроллеров я не шарю.
      Есть устройство управления силовыми нагрузками с помощью реле, вот это:
      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 модуль без
      перепрограммирования не удастся? Или я все не так понимаю вообще?
    • Guest Борис
      By Guest Борис
      Здраствуйте. Проблемма такая существующие (доступные мне) радиомодули имеют мощность 8, 17, 20 дбм.
      Нужно дотянут до 30дбм (1Вт), Видимость непрямая и сигнал уже через сотню метров теряется, местность сильно пересечена, много зелени, посему обещаных 200...300м тупо нет и в помине.
      Проблемка в чем? Как сделать усилитель на определенную частоту я представляю: транзистор, колебательный контур, но тут несколько каналов. Я немного в замешательстве, как это делается, например в рациях? Как сделать широкополосный усь?
    • Guest Qant
      By Guest Qant
      Подскажите пожалуйста название хорошего радиомодуля, для передачи аналогового сигнала.
×
×
  • Create New...