Бит TUNE устанавливаете? Только с ним будет производится перестройка частоты.
А вот без этого бита удобно, например, громкость регулировать.
Прямой ввод частоты осуществляется же установкой бита FREQ_MODE (07L) и прямым вводом значения частоты в регистрах 08H,L. Значение указывается в кГц относительно установленного нижнего лимита частоты.
А у меня другая проблема запускаю авто поиск командой 0x20,0xD2,0x81. Станции находит но не принимает данные из RDA5807 после запроса 0х10,0х0А и запуска чтения, 0х11 приходит 0XFF
Бит TUNE устанавливаете? Только с ним будет производится перестройка частоты.
А вот без этого бита удобно, например, громкость регулировать.
Прямой ввод частоты осуществляется же установкой бита FREQ_MODE (07L) и прямым вводом значения частоты в регистрах 08H,L. Значение указывается в кГц относительно установленного нижнего лимита частоты.
Да, бит TUNE был установлен, но я пробовал вводить частоту в биты CHAN[9:0] регистра 03. Попробую через регистр 08. Кстати, а если частоту нужно устанавливать через регистр 08, то зачем нужны биты CHAN[9:0] регистра 03?
Регистр 03 - это ввод частоты по сетке. Базовая функциональность, с неё работает и автопоиск (можно автонастроиться и вычитать значение настройки в единицах этой сетки.
Регистр 08 - прямой ввод частоты (грубо говоря, сетка в 1кГц). Тут уже после автонастройки точную частоту вроде никак не узнать.
Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650.
Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Можно. Собственно, это и есть основной режим работы.
В принципе, можете глянуть на мою реализацию драйвера для RDA5807. Там, по идее, ничего сложного. У меня подход следующий - сначала нужные данные укладываются в буфер wrBuf[], а потом этот буфер закидывается в микросхему целиком. Аналогично, для чтения - свой буфер rdBuf[].
Наконец добился авто поиска, как оказалось не работала процедура аппаратного чтения I2C, залил программный I2C и все заработало. Собственно теперь работает перестройка по частоте в ручном режиме, регулировка громкости и собственно авто поиск, также здесь используется LCD NOKIA 5110. Писал программу для PIC16F873A
Оптимизировал свой код, теперь хочу попробовать чтение RDS, но полистав интернет так и не попалась инфа как получать данные текста из прочитанных байт. Народ прошу помощи с этим, если не сложно поделитесь опытом декодирования RDS данных.
Чуть выше я давал ссылку на свою реализацию RDA5807, там в том числе и поддержка RDS есть.
В двух словах - у RDA5807 периодически (в главном цикле) запрашивается статус, т.е. вызывается функция rda5807ReadStatus(), возвращающая массив данных. Часть этих данных является данными RDS, и если они достаточно корректные (цепочка условий), выполняется rdsSetBlocks() над концом этого массива. Эта функция (её реализация в rds.h/rds.c, идея подсмотрена где-то на просторах интернета) собственно декодирует эти данные и укладывает их в читаемом виде в 8-байтовую строку, которую можно запросить в любой момент функцией rdsGetText().
Да смотрел ваш пример, вот как раз интересует момент загрузки данных в массив и определения символа в строке, к сожалению с Си не очень, цепочка проверки на наличее RDS понятна, а вот что дальше делать не очень.
Вся магия где-то здесь. Я сам где-то в интернете нашёл принцип и сильно не вникал, но можно более-менее разобраться. rdsText - массив из 8 байтов, куда помещается принимаемый текст. Сам текст (два байта) находится в блоках 6 и 7 (RDS block D). Адрес этого текста - последние два байта rdsBlock[3] (RDS block B). Вот и выходит, что при приёме сигнала итоговый результат нужно собирать таким образом (все 4 строки передаются в разное время):
В итоге 8 байтов abcdefgh и соберутся в некую строку, передаваемой станцией. Обычно там бывает название радиостанции, или "прокручивается" название песни. Сам протокол позволяет и больше данных передавать, но это нужно разбираться как с протоколом, так и с тем, умеет ли его RDA5807. Возможно, она не все поля умеет принимать. А, возможно, все они тоже укладываются в эту схему, просто адресация у них (block B) будет другая.
Запустил чтение RDS, но к сожалению как я понял правильность вывода данных зависит от уровня сигнала, так корректный вывод получился при уровни сигнала 24, а так как я живу под бугорком у меня в дневное время сигнал от 16 до 20. Так что пока придется от RDS Отказаться. Да и так же подтверждаю при снижении уровня сигнала снижается громкость.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения