Цифровой приёмник на TEA5767 c часами на DS1307

Обсуждаем контроллеры компании Atmel.
Cheal
Грызет канифоль
Сообщения: 265
Зарегистрирован: Пн окт 31, 2011 12:35:59
Откуда: Родился в Сибири

Re: Цифровой приёмник на TEA5767 c часами на DS1307

Сообщение Cheal »

Добрый день WiseLord.

При проверке точности хода часов возникают некоторые неудобства.

Если у Вас появится желание и позволят возможности железа,

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

С Уважением Александр.
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Цифровой приёмник на TEA5767 c часами на DS1307

Сообщение WiseLord »

Можно сделать проще - при изменении минут обнулять секунды.

И зачем в меню настройки - пункт с коррекцией хода часов? Что он будет делать? Это лишняя сущность.

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

То есть, нужны либо часы типа DS3231 с термостабилизированным кварцем, точные сами по себе, либо нужна внешняя коррекция по сигналам точного времени или GPS.

Просто так же изменение времени раз в сутки на N секунд делать не имеет смысла, т.к. если контроллер будет выключен, никакой коррекции не произойдёт.
Cheal
Грызет канифоль
Сообщения: 265
Зарегистрирован: Пн окт 31, 2011 12:35:59
Откуда: Родился в Сибири

Re: Цифровой приёмник на TEA5767 c часами на DS1307

Сообщение Cheal »

WiseLord спасибо за ответ.

Про коррекцию я знаю, сталкивался с этим, соглашусь с Вами - смысла не имеет.

Приёмник в этой конструкции первичен, время и температура как бонус.
Тогда, если это не влечёт за собой много работы, можно сделать как предлагаете Вы,
при изменении минут - секунды обнуляются. Если это хлопотно, тогда и не надо - приспособлюсь.

С Уважением.
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Цифровой приёмник на TEA5767 c часами на DS1307

Сообщение WiseLord »

Несложно. Просто одну строку удалить - тогда при изменени минут будут и секунды обнуляться.

Пока ради такой мелочи не лень компилировать все варианты прошивок.

Сейчас хочу ещё один экземпляр приёмника сделать (два уже сделанных разошлись по родственникам), переписать местами код, возможно, добавить функцию будильника, поддержку часов DS3231 (хотя она и так совместима с DS1307).

Если срочно надо - что делать с исходником, я написал, скомпилируйте под себя.
Cheal
Грызет канифоль
Сообщения: 265
Зарегистрирован: Пн окт 31, 2011 12:35:59
Откуда: Родился в Сибири

Re: Цифровой приёмник на TEA5767 c часами на DS1307

Сообщение Cheal »

WiseLord Спасибо за ответ.
Извините за назойливость, ну такой я.
Привык все дела доводить до логического конца, когда всё понятно и хорошо.

Мне не срочно, подожду Вашу новую прошивку (скомпилировать не смогу).
А пока у меня ещё есть дела с этой конструкцией.

Прошил версию СС-no-rda5807, eep-кнопки-стерео.
Яркость также не регулируется, другие функции работают.
Прошиваю SinaProg 2.1.1 RUS c сайта http://www.getchip.net/.
Программатор Громова. Может что не так записывается?

В eep по адресу 0х04 яркость по умолчанию 08, какую величину поставить
чтобы яркость была максимальной (на случай если не одолею кнопки).
В принципе она мне не особа и нужна, хотя вечером красные индикаторы нужно приглушать.
В крайнем случае перейду на зелёные, они не выедают глаза - проверено днём и ночью.

Успехов.
Cheal
Грызет канифоль
Сообщения: 265
Зарегистрирован: Пн окт 31, 2011 12:35:59
Откуда: Родился в Сибири

Re: Цифровой приёмник на TEA5767 c часами на DS1307

Сообщение Cheal »

Добрый вечер WiseLord.

Прочитал про новую версию и появились мысли вслух.

В некоторый магнитолах да и в радиолюбительских конструкциях применяют клавиатуры
с испольцованим аналогового входа. То есть для каждой кнопки с помощью делителя
на сопротивлениях поступает на вход своё напряжение.

Если использовать такую клавиатору, то освобождаются выводы МК, которые можно использовать.

WiseLord использовывали Вы своих конструкциях такое схемное решение.
Конечно есть и минусы, при загрязнении кнопок клавиатура работает неустойчиво.

Для этой конструкции можно применить и комбинирование схем клавиатуры.
"Аналоговую" клавиатуру использовать для кнопок редко используемых - Set, Standby...

Почему я задал этот вопрос - в нашем городе из 13 станций только 3-4 станции
у которых приходится иногда подбирать положение антенны, остальные имеют вполне приличное стерео.
Поэтому захотелось иметь кнопку (если это возможно программно) Mono-Stereo и индикатор режима M-S/

WiseLord что вы думаете по этому вопросу ? Возможно ли это.

С Уважением.
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Цифровой приёмник на TEA5767 c часами на DS1307

Сообщение WiseLord »

Cheal писал(а):подожду Вашу новую прошивку (скомпилировать не смогу).
По каким-то религиозным убеждениям? :) Это несложно, инструкцию я выкладывал.
Cheal писал(а):В eep по адресу 0х04 яркость по умолчанию 08, какую величину поставить
тыц
Cheal писал(а):захотелось иметь кнопку (если это возможно программно) Mono-Stereo и индикатор режима M-S/
В принципе, можно запоминать для каждой станции режим моно/стерео, а настроить его переключение длинным нажатием той же 4-й клавиши. Сейчас при этом выполняется стирание/запись станции в EEPROM как в режиме настройки, так и рабочем, а переделать надо на то, чтобы в рабочем режиме переключалось моно/стерео, а в режиме настройки станций функция осталась бы прежней.

В общем, возьму себе на заметку эти фунции. Сегодня купил ещё один корпус с динамиком, вчера спаял управляющий блок (индикатор + ATmega8). На днях постараюсь сделать аудиочасть с TDA7052, соберу это всё вместе и постараюсь реализовать.

А то уже сделанные приёмники, как я уже писал, разошлись как горячие пирожки, по родственникам. Не на чем поэкспериментировать.
Cheal
Грызет канифоль
Сообщения: 265
Зарегистрирован: Пн окт 31, 2011 12:35:59
Откуда: Родился в Сибири

Re: Цифровой приёмник на TEA5767 c часами на DS1307

Сообщение Cheal »

Здравствуйте WiseLord.

В качестве индикатора моно-стерео можно использовать десятичную точку,
которая разделяет при показании частоты целую часть от десятичной.

Например: при стерео точка горит (как сейчас) а при моно мигает, своего рода сигнализация о низком уровне сигнала.

Успехов.

Дополню.

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

В своей конструкции хочу заменить переднию панель.
Использую другие индикаторы (раздельные), чтобы сделать двоеточие в часах (не люблю в часах одну точку),
ну и для последующего - вдруг WiseLord что нибудь реализует из моих размышлений.

Успехов и здоровья (унас в городе некоторые школы отправили на карантин)
denvik
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Пт окт 31, 2014 12:35:23

Re: Цифровой приёмник на TEA5767 c часами на DS1307

Сообщение denvik »

WiseLord, разрешите и свои "5 копеек" по поводу коррекции часов.
У RDA5807 есть поддержка RDS. У этого протокола есть сообщение CT, которое передает раз в минуту эталонное время с FM станции.

Процентов 60 украинских FM станций используют данный протокол для передачи сообщений пользователям (наименование станции, рекламные телефоны и пр.) Мне думается, что и CT они тоже передают.

Было бы отлично использовать данное сообщение (при его наличии в трансляции) для корректировки времени в часах приемника.


UPD Если заинтересует, вот, накопал в нете кусок кода разбора сообщения CT, оно в блоке 4A RDS данных.. Данный код написан для дешифровки RDS и передачи его в комп посредством RS232. Но, думаю можно его адаптировать под текущий проект.
Спойлер

Код: Выделить всё

      //Type 4A groups : Clock-time and date
      if (groupType == 4 && groupVersion == 'A') {
     
        //bits 0-5 are in block4 as bits 6-11
        utcMinutes = (block4  / 64) & 0x3F;
     
        if (utcMinutesPrevious != utcMinutes) {
       
          utcMinutesPrevious = utcMinutes;
       
          //bits 0-14 are in block3 as bits 1-15
          //bits 15-16 are in block2 as bits 0-1
          modifiedJulianDay = (block3 / 2) + (block2 & 0x03) * 32768;
         
          //bits 0-3 are in block4 as bits 12-15
          //bit 4 is in block3 as bit 1
          utcHours = (block4 / 4096) + (block3 & 0x01) * 16;
         
          //local time offset are bits 0-4 in block 4
          localTimeOffset = block4 & 0x1F;
          //sign is in bit 5 of block4, 0=+ 1=-
          if (block4 & 0x20)
            localSign = '-';
          else
            localSign = '+';
         
          //multiply by 30 so that we have offset in minutes (offset is in multiples of .5 hours)
          localTimeOffset *= 30;
 
          printf_P(PSTR("CT: 0x%01X%04X%04X, "), (block2 & 0x03), block3, block4);
         
          //Modified Julian date to year-month-day conversion
          utcYear = floor((modifiedJulianDay - 15078.2) / 365.25);
          utcMonth = floor((modifiedJulianDay - 14956.1 - floor(utcYear * 365.25)) / 30.6001);
          utcDay = modifiedJulianDay - 14956 - floor(utcYear * 365.25) - floor(utcMonth * 30.6001);
       
          if (utcMonth == 14 || utcMonth == 15)
            i = 1;
          else
            i = 0;
       
          utcYear = utcYear + i + 1900;
          utcMonth = utcMonth - 1 - (i * 12);
 
          printf_P(PSTR("UTC %04u-%02u-%02u (MJD %u) %02u:%02u:00 %c%02u:%02u, "),
                   utcYear, utcMonth, utcDay,
                   modifiedJulianDay,
                   utcHours, utcMinutes, localSign,
                   localTimeOffset / 60, localTimeOffset % 60);
         
          //TODO: half hour timezones and negative timezones not tested because lack of station transmitting it.
          //lets calulate local time
          if (localSign == '-') {
            localHours = utcHours - (localTimeOffset / 60);
            localMinutes = utcMinutes - (localTimeOffset % 60);
          } else {
            localHours = utcHours + (localTimeOffset / 60);
            localMinutes = utcMinutes + (localTimeOffset % 60);
          }
         
          if (localMinutes < 0) {
            localMinutes += 60;
            localHours--;
          }
           
          if (localMinutes > 59) {
            localMinutes -= 60;
            localHours++;
          }
         
          if (localHours < 0)
            localHours += 24;
 
          if (localHours > 23)
            localHours -= 24;
           
          printf_P(PSTR("TIME %02u:%02u:00\r\n"), localHours, localMinutes);
        }
Последний раз редактировалось denvik Ср фев 18, 2015 15:26:04, всего редактировалось 1 раз.
Cheal
Грызет канифоль
Сообщения: 265
Зарегистрирован: Пн окт 31, 2011 12:35:59
Откуда: Родился в Сибири

Re: Цифровой приёмник на TEA5767 c часами на DS1307

Сообщение Cheal »

WiseLord Вы писали:

В другой своей теме я снимал видео про то, как другой мой проект можно собрать под windows. Для этого всё аналогично.


Не могу зайти, не пускают, предупреждают о безопасности.

Если ещё видео действует повторите адресс.
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Цифровой приёмник на TEA5767 c часами на DS1307

Сообщение WiseLord »

Тут про другой мой проект, но структура их у меня везде одинаковая.
https://www.youtube.com/watch?v=rKHn2OTTeg0
Cheal
Грызет канифоль
Сообщения: 265
Зарегистрирован: Пн окт 31, 2011 12:35:59
Откуда: Родился в Сибири

Re: Цифровой приёмник на TEA5767 c часами на DS1307

Сообщение Cheal »

Добрый день.

Спасибо denvik, попробывал Вашу прошивку, всё работает - секунды обнуляются.
После выходных посмотрю какая получилась точность у часов.

Ну и самому надо учится, а то на печатке много перемычек, необходимо поправлять pins.h.

Поэтому вопрос к WiseLord.

Скачал и установил программы WinAvr и Avr-Gcc - версия 4.9..., дошёл до скачивания исходников и затормозился.
На Вашем примере есть пункт - "загрузка-zip", а на гитхабе такого пункта нет, подскажите пожалуйста как скачать.

Успехов.
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Цифровой приёмник на TEA5767 c часами на DS1307

Сообщение WiseLord »

Изображение
Cheal
Грызет канифоль
Сообщения: 265
Зарегистрирован: Пн окт 31, 2011 12:35:59
Откуда: Родился в Сибири

Re: Цифровой приёмник на TEA5767 c часами на DS1307

Сообщение Cheal »

Благодарю WiseLord.

Обращал внимание на "загрузку", но подумал что относится к рекламе.

Успехов.
Аватара пользователя
gear3d
Первый раз сказал Мяу!
Сообщения: 36
Зарегистрирован: Сб май 18, 2013 18:21:00
Откуда: г. Волгодонск

Цифровой приёмник на TEA5767 c часами на DS1307

Сообщение gear3d »

Доброй ночи! Подскажите пожалуйста, почему у меня не работают модули FM. Я напаял к ним провода, типа сделал из них "пауки", RDA5807 и TEA5767 соответственно использовал каждый со своей прошивкой. Часы RTC идут, температура показывается, а приёмник не работает. Пробовал приёмник отдельно без всего подключать, тоже не хочет работать. К усилителю подключаю через постоянный резистор 10k, и конденсатор 1мкФ, динамик пищит, а FM не работает.
Всё собрано пока на макетных платах.
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Цифровой приёмник на TEA5767 c часами на DS1307

Сообщение WiseLord »

Вариантов не так много - либо неисправны модули, либо, скорее всего, неправильное подключение.

Попробуйте сориентироваться по фотографии, правильно ли Вы своего "паука" сделали. В обоих модулях цоколёвка одинаковая, ориентир - кварц; он расположен около VCC/GND. Во вложении сама плата.

Изображение Изображение
Вложения
fm_module_3.3v.lay6.7z
(5.55 КБ) 571 скачивание
Аватара пользователя
gear3d
Первый раз сказал Мяу!
Сообщения: 36
Зарегистрирован: Сб май 18, 2013 18:21:00
Откуда: г. Волгодонск

Цифровой приёмник на TEA5767 c часами на DS1307

Сообщение gear3d »

Подключение для обоих вариантов правильное. Не знаю как проверить что у него на выходе. Динамик подключенный к усилителю TDA пищит даже когда не подключен FM-модуль.
Аватара пользователя
VeryLazyCat
Опытный кот
Сообщения: 832
Зарегистрирован: Пн май 17, 2010 22:21:01
Откуда: Madagaskar

Re: Цифровой приёмник на TEA5767 c часами на DS1307

Сообщение VeryLazyCat »

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

можно снять питание с усилка, припаять к выходу модуля FM разъём для ушей и послушать
работает приёмник или нет, ну а потом уже разбираться с возбудом усилка.
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Цифровой приёмник на TEA5767 c часами на DS1307

Сообщение WiseLord »

Не получится.

Если модуль (особенно RDA5807) нагрузить, он вообще не поёт.

Он рассчитан только на работу на усилитель с высокоомным (килоомы) входом.

Было столкнулся с таким - не мог понять, почему не играет, хотя всё было вроде правильно. Оказалось, резисторы к выходу FM-модуля (на землю) подвесил, порядка нескольких сотен Ом. Без них заработало.
Cheal
Грызет канифоль
Сообщения: 265
Зарегистрирован: Пн окт 31, 2011 12:35:59
Откуда: Родился в Сибири

Re: Цифровой приёмник на TEA5767 c часами на DS1307

Сообщение Cheal »

Здравствуйте.

Я использовал готовый блок (фотографии моего макета на 8 странице),
но там использована RDA5802E, конструкция работает и на наушники 32 ома.

gear3d, попрубуйте на фабричный усилитель, тот что вы используете с компьютером (надеюсь он есть).
Я на данное время и использую такой для прослушивания моего макета.

Проверьте преобразователи уровней, просто перемкнув их, подтяжка SDA, SCL у Меге8 на 5 в., а приёмника на 3,3 в.
При испытании своего блока радиоприёмника, использовал схему для проверки блоков,
там преобразователей уровня не было, отработало пара дней, потом разобрал.

Успехов.
Ответить

Вернуться в «AVR»