Не должно быть, да и в принципе не может быть никакой метки о передаче слова. Станция не знает, принял ли приемник все слово, или только последнюю пару символов. Станция просто транслирует их по очереди. По стандарту - всегда одни и те же 4 пары. Можно просто их сразу выводить на экран по мере приема, что приведет к такому эффекту. А можно дожижаться четвертой пары (чем этот номер не признак конца слова?) и только затем выводить.
короче решил отказаться от рдс,в итоге получилось так- приемник собран в корпусе-,бокс для 4*ааа батареек с выключателем(пергородки и выключатель удалены) управляющий контроллер атмега168,дисплей нокиа 5110,4 кнопки,кварц 32768 гц (используется в часах на атмега168),аккумулятор от сотового (сониэриссон),зарядка на LTC4054 c USB-разьемом,стабилизатор питания 3,3 в на LP2981_3.3 кнопки + - меню on в дежурном режиме потребление 0,5 ма,на экране время и напряжение батареи.... при нажатии on включается радио,кнопками - + регулируем громкость,кнопка on-откл радио,коротким нажатием меню переключаем каналы(по кругу) ---------- МЕНЮ---------------------------------- кнопка меню имеет 3 варианта нажатия(ее состояние высвечивается в верхнем правом углу экрана): 1)нажатие менее 0,5 сек(в углу справа наверху CH+) -переключение частот из памяти 2)нажатие более 0,5 сек и менее 2 сек(в углу справа наверху SKAN+) -автопоиск вверх,как станция будет найдена-стоп поиска 3)нажатие более 2 сек(в углу справа наверху MENU)-вход в меню настроек,которое имеет 5 пунктов ---------- МЕНЮ--------------------------------- >автопоиск ручной поиск удаление канала автоотключение установка времени
если кому интересно-скину архив(потеус,нех,плата),исходники пока дать не могу
Уважаемые форумчане, помогите разобраться, пожалуйста. Сам я не особо силен в программировании, хочу сделать нормальное радио на stm32f100, взял отладочную плату, Keil, написал программу, используя библиотеку вот от этого примера к видео https://www.youtube.com/watch?v=HGBqD09_n0M. Все казалось бы работает, но ручного задания частоты нет ни в какую ((( Может кто поможет исправить текущую библиотеку или у кого есть готовая для stm32 keil?
Беглый взгляд на исходник показывает, что у текущей библиотеки уже есть функция ручного задания частоты (void rda5807_SetFreq_In100Khz(uint16_t Freq100kHz)), так что не совсем понятно, что Вы там хотите исправить.
Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.
Беглый взгляд на исходник показывает, что у текущей библиотеки уже есть функция ручного задания частоты (void rda5807_SetFreq_In100Khz(uint16_t Freq100kHz)), так что не совсем понятно, что Вы там хотите исправить.
Да, но она не задает частоту, и функция чтения текущей частоты читает что то совершенно не то. При этом автопоиск работает великолепно ----------
Проблема решилась, библиотека более чем рабочая, под stm32f100rbt6 работает идеально.
Косяк был в настройках компилятора, была задрана частота под 24 МГц, выставил 8 и все заработало
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
А никто не знает как у rda5807 сделать так, что бы во время перестройки звук не приглушался? Так же будет удобнее, в ручную, станции искать.
Действительно, как так сделать? При последовательной записи сразу во все регистры приемник издает адские хлопки, при перестройке по частоте, звук пропадает на каждом шаге энкодера. Будет ли щелкать при записи частоты отдельно в регистры 03H:03L?
Другими словами при загрузке младших бит номера канала (частоты) в регистр 03L мы всегда будем тревожить бит TUNE устанавливая его в 1 и будем иметь приглушение звука?
P.S. Из добытых в интернете материалов неясно, есть ли у RDA5807M режим загрузки данных в отдельные регистры? Конкретно с индексом "M" в конце. Пишут что по адресу чипа 0x22 можно работать с каждым регистром по отдельности, но у меня по адресу 0x22 чип не отвечает, ACK не устанавливается.
Нормально работает только по адресу 0x10 указанному в даташите, и плюс к тому откликается по адресу, если не путаю, 0x60. Что там по 0x60 я хз, наверное режим совместимости с TEA. Пробовал адреса 0x20, 0x22, 0x12, все глухо как в танке, чип не отвечает подтверждением приема данных.
P.P.S. ЦУК!!! Только сейчас понял, что ардуинщики в этих наших интернетах додумались писать адрес чипа на шине I2C вместе со значением бита приема-передачи по I2C... Значит адрес прямой записи в отдельные регистры будет 0x11. Чип отвечает по этому hex адресу 11 с нулем на месте бита приема-передачи выставляя ASK на шине. Дальше буду пробовать.
Значит адрес прямой записи в отдельные регистры будет 0x11. Чип отвечает по этому hex адресу 11 с нулем на месте бита приема-передачи выставляя ASK на шине. Дальше буду пробовать.
Да, у меня в текущих исходниках все операции с чипом производятся по адресу 0x11.
Да, у ардуинщиков адреса в диапазоне 0..127, а READ/WRITE идёт уже отдельной сущностью. В их интерпретации адреса будут 0x10 (последовательный доступ) и 0x11 (порегистровый). Ну и 0x60 в режиме совместимости с TEA5711.
Ну а в другой интерпретации это будут, соответственно, адреса 0x20(0x21), 0x22(0x23) и 0xC0(0xC1).
Что-то не получается у меня загрузить данные в конкретный регистр чипа 03H:03L. Вероятно совершаю такую ошибку: сначала загружаю последовательно данные сразу во все регистры, потом начинаю новую передачу по I2C и записываю номер канала в отдельный регистр 0x03. Есть у меня подозрение, что нужно выбирать один из вариантов, либо грузить данные сразу во все регистры, либо адресно в каждый регистр, но опять же во все начиная с регистра 0x02 и заканчивая регистром 0x07. Я прав?
нужно выбирать один из вариантов, либо грузить данные сразу во все регистры, либо адресно в каждый регистр, но опять же во все начиная с регистра 0x02 и заканчивая регистром 0x07. Я прав?
Ничего не понял..... Обращаться к чипу можно как по адресу последовательного доступа (0x10), так и по адресу произвольного доступа (0x11). Вперемежку. Всё работает.
PS: Да - и адресов регистров всего не 2...7, а 2...15.
Вот здесь непонятно. Там же вроде 6 16-разрядных регистров, по два байта в регистре. Адрес указывается для регистра от 2 до 7 и по каждому адресу последовательно загружаются 2 байта. Или я чего-то не догоняю? P.S. Я имею ввиду количество регистров для записи управляющих байтов в чип. Регистры для чтения пока не рассматривал.
Что-то не получается у меня загрузить данные в конкретный регистр чипа 03H:03L
Перезагрузил комп, передернул PICkit3, перекомпилировал и перепрошил, и заработала адресная загрузка данных в регистры. Глюки были. Но, от щелчков и пропадания звука при перестройке это мне не помогло. Долго настройка устаканивается при каждом шаге. Попробую напрямую управлять синтезатором, может так удастся избавится от неприятных эффектов. Непрерывным вращением ручки энкодера вообще невозможно нормально настроиться. Проворачиваешь на один щелчок и ждешь появления звука, потом еще шаг и снова ждать. Если крутить быстро, звук вообще не появляется, даже шипения нет.
Долго настройка устаканивается при каждом шаге. Попробую напрямую управлять синтезатором, может так удастся избавится от неприятных эффектов. Непрерывным вращением ручки энкодера вообще невозможно нормально настроиться. Проворачиваешь на один щелчок и ждешь появления звука, потом еще шаг и снова ждать. Если крутить быстро, звук вообще не появляется, даже шипения нет.
Эта опция (автоматическое отключение звука при скане) где-то в регистрах отключается. Я уже точно не помню где, но у меня раньше тоже так было. Сейчас у меня и скан частот и ручная перестройка частоты делается без гашения звука. Там был какой-то битик, поищите. Если не найдёте, то я потом пороюсь в исходниках - вспомню где. Скан, перестройка частоты или канала - тоже у меня всё чётко - без артефактов. Это возможно
PS: Насколько помню по памяти, там есть какой-то битик, который разрешает автоматическое кратковременное гашение звука при любой операции записи в регистры. Мне это сначала тоже очень мешало - невозможно было даже громкость выставить. Но потом я его нашёл и выключил. Возможно, что это бит softMuteEna в регистре 4.
#define RDA_REG_W_START 2 //RDA5807M: стартовый регистр для операции записи в TUNER_ADDR_NATIVE_SEQ #define RDA_REG_R_START 10 //RDA5807M: стартовый регистр для операции чтения из TUNER_ADDR_NATIVE_SEQ #define RDA_REG_W_N 7 //RDA5807M: кол-во регистров для операции записи в TUNER_ADDR_NATIVE_SEQ #define RDA_REG_R_N 6 //RDA5807M: кол-во регистров для операции чтения из TUNER_ADDR_NATIVE_SEQ #define RDA_REG_N 64 //RDA5807M: всего адресов регистров
Если писать только громкость (порегистровая запись), то звук не глушится. Глушится он только когда тюнер настраивается на задаваемую частоту. И, если не ошибаюсь, SOFTMUTE бит не влияет на это.
Нет, бит SOFTMUTE тут не при делах, походу. Как я понял, это мягкое приглушение звука. В отличие от DMUTE отключающего звук полностью, SOFTMUTE только снижает громкость раза в два.
Назрел еще один вопрос. Работает ли БШН при ручной настройке частоты? В режиме поиска шума во время настройки не было, а с установленным битом TUNE шумит во всю при перестройке. Бит SOFTBLEND_EN устанавливал, в биты TH_SOFRBLEND загонял все возможные значения. Но подавления шума в отсутствии сигнала так и не добился.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения