УКВ – радиоприем, часть 2

Views: 6209


ch-cat-06

Пришло свободное время решил вторую часть проекта реализовать (правда есть мысль и третью с использование цветного OLED и функцией ch-светомузыки, но это только задумка…

Для понимания функций интегрального приемника RDA5807FP читайте описание http://catcatcat.d-lan.dp.ua/shemotehnika/integralnyie-radiopriemniki/


Фото прототипа, на плате только контроллер и приемник, часы потом прилеплю, сейчас интерес, это получить индикацию и RDS.

ch-cat-05


Сразу выписал станции Днепропетровска, чтобы смотреть что реально я нахожу…

Частота, Мгц Название радиостанции Сообщение RDS RSSI BLOCK_A (HEX) Информациолнный стиль
г. Днепропетровск
Последнее название на 2013 год. без антенны
88.1 Лаудж FM 64
88.5 Радио Релакс 68 Easy Listening
89.7 Ретро FM 64 Oldies
90.1 Радио Мелодия 67 AC
90.5 Radio ROKS 62 Rock
90.9 Стильное радио Перец FM 47* Top 40
91.4 Эра FM 61 News/Talk
100.5 Люкс FM LUX FM Да 58 1047 Hot AC
101.1 Русское Радио Украина PYCCKOE Да 61 1896 Russian Top 40
101.5 Super Radio 65 Hot AC
102.0 Хит FM HIT FM Да 58 1895 Hot AC/AC
102.5 Europa Plus Europa
Plus
Reclama
32-33-33
Да 51 CHR
102.9 Наше Радио 53 AC
103.3 Радио Ренессанс PEHECAHC 56 Contemporary Jazz
104.0 Радио Шарманка 54 CHR/Top 40
104.8 Авторадио Украина 58 AC
105.3 Радио Шансон SHANSON 56 Шансон
105.8 Просто Радио 105.8 61 AAA/Hot AC
106.4 Гала Радио 60 Hot AC
106.8 Kiss FM KISS FM Да 59 1894 Dance
107.3 Radio Mix In T3 35* Hot AC/CHR
107.7 Радио 24 RADIO 24
107.7
790-5353
Да 59 1021 AC

Скорректировал таблицу на наличие RDS…
* – станции со слабым сигналом.



ch-cat-08


Анализ регистров чтения на получения текстовой информации с радиостанции.

Регистры чтения
Байт Описание Назначение Описание
0x0A 0
1
0x0B 2
3
0x0C 4 BLOCK A или BLOCK E PI code
5
0x0D 6 BLOCK B или BLOCK E PTY
7 *-полубайт указатель расположения символов текстовой строке
0x0E 8 BLOCK C или BLOCK E 0xE0 Код указывающий, что следующие два байта текстовое сообщение
9 0xCD
10 BLOCK D или BLOCK E
11

BLOCK A

Байт чтения 4 Байт чтения 5
 PI code
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
Идентификатор страны Код Зона покрытия Код радиостанции как шестнадцатеричное число.
Programme Reference Number.

Блок А всегда один и то же для радио станции.

BLOCK B

Байт чтения 6 Байт чтения 7
B TP PTY Code
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
Тип группы Версия
0=version A
1=version B
Traffic
prog.
code
Тип передаваемой программы
радиостанции
Адрес передаваемых данных

Описание групп блока Б.

Тип группы
Версия (A/B)
Описание, назначение
0 A Основные настройки и только информационные переключения
0 B Basic tuning and switching information only
1 A Program Item Number and slow labeling codes only
1 B Program Item Number
2 A Только радиотекст
2 B Radiotext only
3 A Applications Identification for ODA only
3 B Open Data Applications
4 A Clock-time and date only
4 B Open Data Applications
5 A Transparent Data Channels (32 channels) or ODA
5 B Transparent Data Channels (32 channels) or ODA
6 A In House applications or ODA
6 B In House applications or ODA
7 A Radio Paging or ODA
7 B Open Data Applications
8 A Traffic Message Channel or ODA
8 B Open Data Applications
9 A Emergency Warning System or ODA
9 B Open Data Applications
10 A Program Type Name
10 B Open Data Applications
11 A Open Data Applications
11 B Open Data Applications
12 A Open Data Applications
12 B Open Data Applications
13 A Enhanced Radio Paging or ODA
13 B Open Data Applications
14 A Enhanced Other Networks information only
14 B Enhanced Other Networks information only
15 A Undefined2
15 B Fast switching information only

Код 0A – говорит, что передается информация о названии станции. Условие поиска данных текста может служить условие (Байт6 & 0b11111000). Если обнаружено в старших 5 битах 0, значить это передача текстовых данных. Для передачи Названия у наших Радиостанций используется только 2 бита данных. Т.е. это всего 8 символов в Байт чтения 7!

radio_nostalgie_by_abclic-d31oadt

PTY Code RDS Program type RBDS Program type
0 No program type or undefined No program type or undefined
1 News News
2 Current Affairs Information
3 Information Sports
4 Sport Talk
5 Education Rock
6 Drama Classic Rock
7 Culture Adult Hits
8 Science Soft Rock
9 Varied Top 40
10 Pop Music Country
11 Rock Music Oldies
12 M.O.R. Music Soft
13 Light classical Nostalgia
14 Serious classical Jazz
15 Other Music Classical
16 Weather Rhythm and Blues
17 Finance Soft Rhythm and Blues
18 Children’s programs Language
19 Social Affairs Religious Music
20 Religion Religious Talk
21 Phone In Personality
22 Travel Public
23 Leisure College
24 Jazz Music Unassigned
25 Country Music Unassigned
26 National Music Unassigned
27 Oldies Music Unassigned
28 Folk Music Unassigned
29 Documentary Weather
30 Alarm Test Emergency Test
31 Alarm Emergency

Этапы разработки …

Обсуждение проекта проводиться в клубе Musiccolor


Схема для Бета тестирования.

ch-cat-14

Прошивка для этапа тестирования v 0.1. 

На этом этапе реализовано, вывод названия радиостанции не в синхронном режиме. Индикация наличия RDS, СТЕРЕО, уровня сигнала, функции кнопок выбор станции и громкость.

IMG_6286

 


Декодирование названия станции и готовности сообщения. Передают не только имя, но и дополнительно, частоту, телефон… В этом варианте будут выделяться только коды сообщения 0A. Декодирование не идеально, но нигде пока не нашел принцип, но в этом варианте меньше всего ошибок.

Байт чтения 7
7 6 5 4 3 2 1 0
Бит готовности 1 Бит готовности 0 Адрес передаваемых пары байт сообщения.

Принцип получения данных названия станций.

  1. Контроллер постоянно читает 12 байт данных.
  2. Если обнаруживается установка бита RDSS и отсутствие ошибок BLERA и BLERB = 0. Производиться запись полученных байт (BLOCK D) Байт 10 и Байт 11 , в массив по адресу по 2 младшим битам байта 7 если код сообщения 0A.
  3. Если это условие не соблюдается массив очищается.
  4. Когда указатель переходит на 0 данные выводятся для индикации.
        if(dataread[0]&0b00010000 && !(dataread[3]&0b00001111))
        {
            if((dataread[6]&0b11111000)==0 && dataread[0]&0b00010000 )
            {
                test=(dataread[7]&0b00000011);//получения номера байт для строки
                if(baitzag==test)// сравниваем полученный номер равен текущему искомому
                {
                    //извлечение символов
                    if(dataread[10]>=0x20 && dataread[10]<=0x7A) datatext[test*2]=dataread[10];
                    if(dataread[11]>=0x20 && dataread[11]<=0x7A) datatext[test*2+1]=dataread[11];
                    if(++baitzag>3)baitzag=0; // изменение указателя получаемого символа
                }
            }
        }
        else if (!(dataread[0]&0b00010000)) // если не RDS станция стирание буфера
        {
            for (a=0;a<8;a++)datatext[a]=' ';// стирание надписи если нет синхронизации
        }
        if(!baitzag)// условие перезаписи сообщения baitzag == 0
        {
            // индикаци сообщения
            OledCurcor (30,0);
            for (a=0;a<8;a++)OledSymbol (datatext[a],0,0,1,1);
        }

ch-cat-16

 

Версия Бета 1.01, версия для тестирования… 4 кнопки управления выбор канала, регулировки громкости. Индикация частоты, названия станции, громкости, уровня сигнала, RDS, режима стерео.


Для упрощенной модели управление делается на тактовых кнопках (хотя контроллер легко может выполнить обработку сенсоров). Назначение кнопок управление следующая:

Номер Описание функций
Кнопка 1 Кнопка функция, предназначена для переключение окон индикации. Основное окно/Окно настройки функций.
Кнопка 2 Функции основного окна: Выбор регулировка громкости/выбор канала. По умолчанию установлено выбор станции. Нажатие – переход к регулировки громкости. Через 3 секунды возвращается функция на переключение станций.
Функции окон настройки параметров: Переключение параметр – задаваемое значение.
Кнопка 3 Увеличить выбранный параметр
Кнопка 4 Уменьшить выбранный параметр

Следующая промежуточная версия для тестирования v 1.05 [wpdm_file id=249 template=”link-template-calltoaction3.php”]

Видео работы

Изменены функции кнопок, изображение перевернуто на 180 градусов, изменена графика…

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

Добавлена индикация времени и календаря в нижней строке дисплея, индикация состояния будильника, и функция авто возврата функции кнопок из регулировки громкости в функции выбора каналов. Время авто возврата выбрана 3 секунды, после последнего нажатия кнопок. авто выход из функциональных окон.

ch-cat-17

ch-cat-18

Версия бета 1.10.

Значок

УКВ – радиоприем, часть 2 - прошивка - beta1.10 9.87 KB 435 downloads

УКВ – радиоприем, часть 2 - прошивка - beta1.10, изменена...


Слушаю радио, но тактовые кнопки сильно жесткие попались, поэтому прикрутил ДУ.

ch-cat-20

Схема обновленная.

ch-cat-19

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

Версия 1.20

Значок

УКВ – радиоприем, часть 2 - прошивка 1.20 бета 10.24 KB 516 downloads

УКВ – радиоприем, часть 2 - прошивка 1.20 бета, добавлено...

Схема в PDF

Значок

УКВ – радиоприем, часть 2 - схема версия 2 21.25 KB 1053 downloads

УКВ – радиоприем, часть 2 - схема версия 2, добавлен...


Непосредственный ввод частоты станции.

Для задания непосредственной частоты станции необходимо загрузить канал (частоту) в регистры Байт 02 (биты CHAN) и Байт 03 (биты CHAN). Выполнить это можно так:

            freg = 145;//137
            Control02.upr=freg>>2;  // старшие бит
            Control03.CHAN=freg;    // 7-6 младшие биты

Но этого недостаточно, чтобы синтезатор перестроился, дополнительно необходимо включить режим точной настройки и запустить поиск:

            Control03.TUNE=1;   // точная настройка на заданной частоте
            Control00.SEEK=1;   // включить настройку
            RDA5807FP_UP ();    // загрузка данных в приемник
            Control03.TUNE=0;   // сбросить биты в маске
            Control00.SEEK=0;   //

Версия 1.30 – использует функцию восстановления последней радиостанции, при подаче питания. Запоминание происходит в момент выключения по кнопки пульта ВЫКЛ (код 12).

Значок

УКВ – радиоприем, часть 2 - прошивка v1.30 10.77 KB 658 downloads

УКВ – радиоприем, часть 2 - прошивка v1.30 ...

Значок

УКВ – радиоприем, часть 2 626.13 KB 259 downloads

Проект, радиоприемника с часами реального времени,...


Это может быть интересно


  • Проект с использованием MCC часть 09Проект с использованием MCC часть 09
    Views: 913   Эта часть будет посвящена созданию практического проекта управления освещение. Тех задание: Два выхода управления ШИМ – светодиодным освещением. Две кнопки управления, каждая кнопка управляет, своим каналом, логика самая …
  • Мониторинг температурыМониторинг температуры
    Views: 1389 Настоящий проект создан как обучающий с применением библиотек ds18b20 и LCDHD44780 и компилятора Microchip MPLAB XC8 C Compiler V1.12. Если необходимо иметь информацию по состоянию температуры в помещении или в здании, с количеством до 6 точек (16), то …
  • ch-4000 – универсальная печатная платаch-4000 – универсальная печатная плата
    Views: 1012 На смену устаревшей плате ch-3000, пришла новая ch-4000. Плату уже можно приобрести в магазине Ворон. Схема. Плата позволяет создавать таймеры, часы реального времени, регуляторы температуры, регуляторы влажности, вольтметры, …
  • USB K-L-line адаптерUSB K-L-line адаптер
    Views: 5989 USB K-L-line адаптер предназначен для связи персонального компьютера с диагностической шиной автомобиля – интерфейс ISO-9141. Этот проект предназначен для сборки недорого устройства с использованием специально для этой цели …
  • Счетчики посетителейСчетчики посетителей
    Views: 1270 Вас сосчитали!? или счетчики посетителей.   Для чего нужны счетчики посетителей? Какие они бывают? ТОРГОВЛЯ. Подсчитайте, сколько ваш магазин посещает человек за день. Кок много человек приходит утром, какое …
  • Индикатор температурыИндикатор температуры
    Views: 2672 Проект для начинающих, на демо плате BB-2T3D-01. Простой индикатор температуры. Проект никак не задумывался, просто на витрину магазин Ворон нужна была демонстрационная модель на макетной плате, чего нибудь работающего. Остановились на индикаторе …
  • DIXELL XWEB500D-EVO + RUT900 или как пробить NAT-серверDIXELL XWEB500D-EVO + RUT900 или как пробить NAT-сервер
    Views: 1012 Когда необходимо под какой нибудь контроллер имеющий вэб сервер в инет, то нужен статический IP, что оказалось проблемой при работе с операторами сотовых сетей, конкретно с оператором сети …
  • Temperature measurement with NTC thermistor.Temperature measurement with NTC thermistor.
    Views: 325 Проекты в которых присутствовало измерение температуры начинал с цифровых датчиков, т.к. в них все просто и не надо ничего преобразовывать и вычислять. При использовании цифровых датчиков ты получаешь …
  • TM1650 драйвер LED семисегментного индикатораTM1650 драйвер LED семисегментного индикатора
    Views: 17850 Китайский производитель Shenzhen Titan Micro Electronics Co., Ltd.  Выпускает широкую линейку драйверов управления светодиодными дисплеями, которые позволяют разгрузить микроконтроллер для основной работы, главная особенность этих драйверов не только …
  • Проект с использованием MCC часть 04Проект с использованием MCC часть 04
    Views: 1140 Теперь простого горения светиков нам не достаточно, заставим их мигать. Для начала используем первобытно простой способ, но достаточно простой. Используем функции delay, напрягаться откуда они берутся не будем, самое …



 

Поделись этим!

Catcatcat

catcatcat

Development of embedded systems based on Microchip microcontrollers.

Продолжайте читать

НазадДалее

Комментарии

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.