Делаю часы на RGB индикаторах с FM приемником на RDA5807M . Сначала поставил модуль TEA5767. С ним проблем не было все работает , но не устроила чувствительность. Находил всего 3 станции. Поставил модуль RDA5807M. В автоматическом режиме находит около 12 станций. Хочу записывать в него принудительно частоту станции. Но не получается.
По даташиту такая формула Frequency = Channel Spacing (kHz) x CHAN+ 87.0 MHz. CHAN=0:9
Записывается частота в регистры 03H и 03L (6 и 7 бит ) . У меня частота сканирования Channel Spacing=100 кНz. допустим мне надо станцию на частоте 105,4мГц . Получаем 100*4+105 = 1054 в .Пишем в 03H 10000011 в 03L 11хххххх и нет результата. Пишу на ассемблере. Подскажите где я ошибся или что-то нужно еще модулю дослать в регистры ?
Как то вы странно считаете... При сетке частот 100kHz и диапазоне 87–108 MHz (US/Europe): Канал 0 - это 87.0MHz, 1 - 87.1MHz и т.д. Частота 105,4MHz = канал 184d. Согласны?
_________________ С Уважением, Альберт (Albert_V).
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Правильнее (105,4-87)/0,1=184 (номер канала). Номер канала всегда 10бит и записывается по адресу 03H в биты с 15-го по 6-ой. 6-ой бит соответствует биту 0 в номере канала. P.S. А в программе проще считать, если частоты изначально умножены на 10 (точку на индикаторе поставить не сложно). К примеру, для вычисления номера канала: 1054-870=184 . Для вычисления частоты по номеру канала 184+870=1054 (частота приёма).
_________________ С Уважением, Альберт (Albert_V).
Сейчас на работе немного по другому пишу процедуру для вычисления канала по примеру (105-87)*10+дробь. т.к у меня целая и дробная часть содержаться в разных регистрах. Так мне кажется немного проще чем с 16 битными числами работать.
Да, пёс его знает, что кому проще... Я хранил бы в памяти настроек станций номера каналов (один байт (два старших бита будете "доставлять нулями" для сетки частот 100kHz) + возможно, текстовое название канала), а при выводе частоты на индикатор пересчитывал бы канал>частота и "работал" бы с цифрами частот, умноженными на 10. Если бы была "на борту" клавиатура для ввода частоты - десятичный ввод с клавиатуры с пересчётом в номер канала после подтверждения ввода. Т.Е., "основное число" - номер канала. Но, это уже "как кому удобнее". Лично я, ненавижу "лишние" операции умножение/деление когда можно обойтись без них.
_________________ С Уважением, Альберт (Albert_V).
Путем эксперементов выяснил , что в регистры 03L и 03H записывается частота с которой начинается поиск или вверх или вниз по диапазону. Если сигнал нормальный то включиться на записанном диапазоне, а если чуть слабее то нет и ведется поиск следующей станции. Не хочется возвращаться на TEA5767 из-за чувствительности. Т.к радио будет использоваться в качестве будильника в часах хотелось бы ,что бы включалась определенная станция. Какие есть FM микросхемы которые поддерживают прямую запись в них нужной станции ?
именно так. вот код принудительной записи. так находит но на станцию ниже rcall IIC_Start ldi temp,0b00100000 ;адрес FM модуля с битом записи rcall IIC_Send ldi temp,0b11010011 ;02H байт rcall IIC_Send ldi temp,0b00000101 ;02L байт rcall IIC_Send ldi temp,0b10100010 ;103,2 настраивается на 101.5 rcall IIC_Send ldi temp,0b01000000 ;03L байт rcall IIC_Send rcall IIC_Stop
а так не настраивается: rcall IIC_Start ldi temp,0b00100000 ;адрес FM модуля с битом записи rcall IIC_Send ldi temp,0b11010010 ;02H байт rcall IIC_Send ldi temp,0b00000101 ;02L байт rcall IIC_Send ldi temp,0b10100010 ; rcall IIC_Send ldi temp,0b01000000 ;03L байт rcall IIC_Send rcall IIC_Stop
Почему номер канала 1010001001b = 649d??? Это частота приёма 151,9MHz ---------- P.S. Понял Вы забыли, что номер канала не 8, а 10бит. Младший бит номера канала отметил красным цветом.
PDF смотрим один и тот же. Я этот бит пробовал и в 0 устанавливал и в 1. Результата никакого.
PS: в pdf ошибка там нет регистров 04L и 06L если записывать конфигурацию кристала без этих регистров то приемник не работает. Приходится в них записывать нули.
на счет 0Ah бит1 ошибся . он равен 0 при настройке, так же ка и бит0. Данные с этих регистров вывожу в двоичном коде на светодиодную матрицу, и не стой стороны считал начало 0 бита. Да и станцию записывал я не правильно. Допустим частота 107.9 надо было записывать как в 03H=00110100 03L=01 , а я записывал в 03H=11010001 03L=00. После записи установил бит точной настройки и сбросил бит настройки и все заработало. Albert_V спасибо за терпение и помощь.
Код для радио дописал. Единственное звук в самый минимум не уходит. При записи в регистр 05L в бит 3:0 значения 0000 звук по мануалу должен выключиться , а на деле не выключается. Все модули для будущих часов отлаживаю на Atmega8A. Кнопки для изменения диапазона подключены в порт в бит 4 и 5. I2C стандартные выводы Atmega8A.
Может кому пригодится код на ассемблере для RDA5807M. RDS пока не делал. файл во вложении
Вложения:
Комментарий к файлу: код RDA5807M.txt [7.06 KiB]
Скачиваний: 778
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 18
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения