У меня не приглушался, может вы имеете ввиду что становится примерно в половину тиши при низком уровне приема. Тогда здесь ничего не поделаешь так работает RDA.
Если я все правильно понял, бит SOFTMUTE_EN выделен подчеркиваниями. Пробовал его ставить и в "1", и в "0" - результат одинаков. Видимо это свойство самого чипа.
Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650.
Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель.
Да скорее всего так нет генерации при перестройки соответственно нет звука, Попробовал тоже сегодня ради спортивного интереса, выходит все таки затухание громкости при снижении уровня сигнала можно убрать, сбросив этот бит.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
есть ли вариант приемника на атмега8?жки-хоть семисегментный(оа либо ок),хоть WH1602,смотрел в сторону этого приемника http://radiokot.ru/circuit/digital/home/202/ но там ничего не понятно -схема одна,а прошивок более 20,начал читать форум и запутался совсем
вообще-то схем (разводок) две, плюс на каждую 4 варианта прошивки под разные типы индикаторов и способы управления ими. Берёте подходящую под железо прошивку и шьёте.
Спаял на макетке приёмник на модуле TEA5767 и Atmega32, добился работоспособности. Решил попробовать модуль RDA5807M, т.к. привлекла регулировка громкости. Посмотрел примеры (в том числе и в этой теме), переделал код, но не могу принять ни одну станцию, только шипение. Так делаю расчёт частоты и инициализацию, громкость программно регулируется, значит связь есть. Пишу в Codevision
Код:
unsigned int freqB; unsigned int freq; unsigned char wbyte1, wbyte2;
Всё-таки не пойму почему нужно сбрасывать бит TUNE, т.к. в даташите написано The tune bit is reset to low automatically when the tune operation completes..
Пробовал принудительно сбрасывать этот бит сразу после задания нового значения частоты, но приёма станций всё равно нет, зато звук стал пропадать каждую секунду, а потом плавно нарастать.
не пойму почему нужно сбрасывать бит TUNE, т.к. в даташите написано The tune bit is reset to low automatically when the tune operation completes..
В даташите не написано, что его нужно сбрасывать. Написано, что он сбрасывается сам после настройки. По коду в целом всё вроде правильно, но не совсем понятно, зачем вводить тюнер в interrupt mode (0b10001000 в 05H).
В любом случае, взял свой работающий код и заменил функцию инициализации и установки частоты на то, что написали Вы:
Разница лишь в названиях функций I²C и том, что у меня частота хранится в глобальной структуре tuner.freq. Хранится в виде 9950 для 99.5MHz, отсюда и деление на 10.
Итог - код работает, тюнер настраивается нормально.
Поэтому должно работать и у Вас.
По поводу нарастающей громкости - это фича RDA5807 (неотключаемая, судя по всему), которая при каждой перестройке (TUNE) приглушает на доли секунды звук.
ЕМНИП, у меня когда-то была такая микросхема, которая тоже только шипела и не работала.
Кстати, RDA5807 должна полностью работать с кодом для TEA5767. Если у Вас работало там, то при замене модуля c TEA5767 на модуль с RDA5807 всё должно продолжать работать. Если и так не работает - то точно неисправная RDA-шка.
WiseLord, спасибо за ответ. Попробовал второй имеющийся модуль, однако снова шипение. Пробовал и код для TEA, но ничего не меняется. Грешил поначалу на кварц, т.к. его замыкание не меняет звук, но осциллограф показал генерацию на нём. Видно придется возвращаться на TEA5767, хотя хотелось реализовать кнопочное управление громкостью.
PS А действительно у RDA низкая чувствительность по сравнению с TEA или как повезёт?
PPS похоже модули RDA надо заказывать десятками, т.к. очень высок процент брака, я так и надеялся, что из 2 заработает хотя бы один, но процент брака выше.
Цитата:
из 10 модулей работают 4, остальные просто шипят из тех 4 работающих у одного битый один аудивыход (не играет совсем)
Если будете брать время из RDS - учтите, что у большинства станций часы не синхронизированы с реальным временем. Так же, не все станции передают 0x0Ah в конце строки.
есть ли у кого пример расшифровки рдс?поделитесь пожалуйста!
Вот моя реализация для RDA5807. Хотя, по большому счёту, не только для неё.
Со стороны драйвера тюнера - он вызывает функцию rdsSetBlocks, передавая указатель на массив из 8 байтов RDS данных (они же 4 16-битных слова в спецификации), при этом идёт расшифровка. Вот для RDA5807 эта часть.
Со стороны основного потока программы вызывается rdsGetText, возвращающая уже готовую для вывода строку.
Я всю спецификацию не реализовывал, расшифровываю только 8-символьный PS (номер программы), он же RDS group = 0. Хотя по спецификации станция должна передавать в этих полях фиксированную информацию (название станции), но у нас они обычно отходят от стандартов и часто туда выводят и другую информацию - рекламу, название песни. Мне достаточно.
В принципе, код несложно доработать и расшифровывать ещё и RDS text (RDS group = 2), там целых 64 символа могут передаваться по тому же принципу.
Ну и в RDS group = 4 можно и время получать, если его передают.
В выложенной Albert_V pdf-ке вся информация о том, как закодированы разные группы, есть.
рдс идет с ошибками... примерно так- читаю все регистры,если bler = readbuf(4) mod 16 rda5807_rdss = 1 and rda5807_rdsr = 1 and bler = 0 то вычисляю rdsVersion,rdsGroup,если они ноль то вычисляю знакоместо rdsIndex=rdsIndex*2 и вывожу на экран,но! как определить что пора вывести на экран?а то у меня радио шансон 99,6 fm идет так shanson raanson radison radio n radio 99dio 99.6o 99.6 f 99.6 fm sh.6 fm shan fm и т д
Ибо по стандарту этот текст вообще должен быть фиксирован для конкретной станции и меняться не должен. Поэтому определить, к какому именно из нескольких передаваемых слов относится данная конкретная пара символов, вряд ли возможно.
Разве что придумать какой-нибудь хитрый алгоритм. Вроде как два буфера - один отображается, во второй идёт накопление данных. И только после последовательно принятых четырёх пар символов (начиная от пары 0 до пары 3), то сбрасывать в отображаемый буфер лишь после принятия пары 3. Но всё равно такой подход от ошибок не страхует, ибо какая-то из четырёх пар символов может быть передана некорректно.
ну должна же быть типа метка что слово передано и можно выводить на экран... вроде нашел на каткат-"Когда указатель переходит на 0 данные выводятся для индикации" такая же история,но когда вывожу после передачи указателя=3то боле-менее так и оставлю пока...
но на других станциях почему-то тект идет как положено,может станция чудит-не знаю
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения