Страница 1 из 2

FM-tuner на TEA5757H, ищу единомышленников

Добавлено: Чт дек 03, 2009 08:13:46
Igor_67
Мяу, ребятки-котятки!
:)))
Ввиду популярности темы насчет FM-тюнеров с МК управлением, я тоже решил приобщиться к этому вопросу. Имеем следующее:
1. Плата FM-тюнера для ПК на шину ISA (т.к. шина устаревшая и уже нигде не применяется, можно смело расковырять девайс и применить куда надо), в состав которой входит м/с TEA5757H (STR-Self Tuned Radio)
2. МК ATMega 8535
3. ЖК индикатор Winstar WH-1602D (16х2)
4. Мелкосхема RTC DS1307-часики
5. Термодатчик DS18B20
6. Немножко (совсем чуть-чуть) знаний в программировании МК
7. Куча свободного времени
8. Огромное, жгучее желание собрать/спаять все это в кучу
Задача:
Написать программу для того, чтобы правильно рулить TEA5757H, даташит имеется.
Пишу в BasComAVR, т.к. там уже все готовые функции и ничего не надо выдумывать.
Вобщем, выкладываю поект в Протеусе и код для Баскома.
Кого заинтересует, давайте вместе все это сваяем и напишем статью.
Управление м/с часов и датчиком температуры уже работает и все выводится на индикатор (в железе тоже проверено).
Просьба посмотреть код на предмет ошибок и багов. Код не закончен, т.к. в Баскоме мало кто пишет и посоветоваться не с кем, поэтому все криво :))) . Критика принимается любая.
Примерно, алгоритм такой: после инициализации всего, что возможно, выдаем в линию Dat последовательность, синхронизируемую по линии Clk (частота = 300 кГц, это важно!), при активном высоком уровне на линии We. Эта операция запускает на STR автоматический поиск р/станций. Если нашлись работающие радиостанции, то их надо записать в память МК(это еще не реализовано). Или в режиме предустановки считываем частоту + слово конфигурации из МК и отправляем в STR. То есть загружаем заранее известную частоту в TEA5757H.
ТЕА5757 работает по интерфейсу, похожему на SPI, но с некоторыми особенностями:
Линия приема/передачи данных одна, а не две, как у SPI (DATA)
Направление потока данных зависит от сигнала на выводе WRITE-ENABLE. Если он (сигнал) в 1, то происходит запись в сдвиговый регистр, если 0 - чтение
Тактируется сдвиг частотой 300 КГц на выводе BUS-CLOCK
Причем необходимо отслеживать состояние сигнала на выводе MONO/STEREO. Если на нем 1, то необходимо настроить тюнер (нет несущей или слабая), если 0 - все настроено и горит индикатор "STEREO".
Количество передаваемых бит данных: при чтении из STR - 24; при записи в STR - 25
TEA5757H содержит в себе сразу и синтезатор и тюнер и стереодекодер, поэтому больше ничего лишнего лепить не надо - выход звуковой частоты 250мВ - подавай на усилок и готово!
Просьба к заинтересовавшимся: Немного не получается с алгоритмом чтение частоты из МК - сложение с промежуточной - вычисление по таблице из даташита реального значения частоты, предназначенной для отправки в STR - сложение со словом конфигурации - отправка в STR.
Имеется желание еще сюда прикрутить анализатор спектра с выводом на все тот же ЖКИ, например, 10 сек. показываем время, температуру, частоту, и 10 сек. - спектр. И так по кругу.Схема и код уже есть - все работает.

Добавлено: Чт дек 03, 2009 09:35:50
Igor_67
Небольшое примечание: Фузы выставлены так
CKSEL 3...0 = 0011 (внутр. генератор на 4МГц)
SUT 1...0 = 00 (вкл. задержку через BOD)
BODEN = 0 (BOD разрешен)
BODLEVEL = 0 (уровень BOD=4,7В)
EESAVE = 0 (вкл. сохранение EEPROM)
SPIEN = 0 ( последовательное программирование разрешено)
Функции кнопок:
But_minus Alias Pinb.3 -кнопка "-"
But_plus Alias Pinb.2 - кнопка "+"
But_set Alias Pinb.1 - кнопка "SET"
But_mode Alias Pinb.0 - кнопка "MODE" (режим)
Подсветка индикатора выведена на PORTC.6, включается при нажатии на любую кнопку и светится, пока TIMER1 не досчитает до 0.(Light Alias Portc.6)
На эти пины выведены сигналы для управления TEA5757H (STR):
Clk Alias Portc.5 - шина BUS-CLOCK
Dat Alias Portc.4 - шина DATA
We Alias Portc.3 - сигнал WRITE-ENABLE
Stm Alias Portc.2 - сигнал STEREO/MONO
В режиме тюнера (когда все настроено и ничего не редактируется), нажатие кнопки "SET" выводит на индикатор текущую дату на 10 секунд. Можно еще добавить энкодер - в Баскоме это ваще не проблема.
Вот еще на просторах интернета нарыл такую схему (см. вложение), пытался связаться с автором, но, к сожалению, "абонент недоступен" - такого E-mail адреса не существует. :shock:

Добавлено: Чт дек 03, 2009 11:19:09
Pavel V.
У меня был готовый исходник для TEA5767/8 на Сях, дома поищу выложу. Тоже в свое время купил две такие микрухи, но так и не собрался плату под нее развести.

Добавлено: Чт дек 03, 2009 11:53:10
Igor_67
Ну, на Сях, так на Сях. Выкладывай!

Добавлено: Чт дек 03, 2009 12:01:44
Pavel V.
Нашел тот проект. Выложил здесь. Там куча всего, от даташитов и аппнотов до исходников и фотографий девайса.

Добавлено: Чт дек 03, 2009 12:33:21
Igor_67
Ну скачалось кое-как. Чего-то скорость сегодня отвратительная (3,85МВ за 18 минут, аффигеть). Спасибо, буду изучать. :tea:

Добавлено: Чт дек 03, 2009 13:04:13
Igor_67
Мммм-дя! Хорошая подборочка, но это немного не то. ТЕА5767 управляется по интерфейсу I2C, хотя там есть возможность использования такого режима передачи данных, как в ТЕА5757 - по трехпроводной шине, но в данном проекте она не используется. А жаль.
Было бы у ТЕА5757 управление по I2C, ваще проблем бы не было. Но кому-нибудь пригодится и этот проект (кто ваще с нуля начинает собирать тюнер). К тому же там еще и дисплей от Нокиа-3310, а это сейчас так модно - прикручивать дисплеи от сотиков к своим девайсам!!! :)))
Вобщем, все вопросы остаются в силе.

Добавлено: Чт дек 03, 2009 13:48:25
Pavel V.
Igor_67, ой, действительно, я перепутал названия. Этот проект относится к чипам TEA5767/5768 (я купил 5768).

А они в плане обвязки не совместимы? Может перепаять просто?

Добавлено: Чт дек 03, 2009 14:07:36
Igor_67
К сожалению не совместимы. На ТЕА5757 кварц на 75МГц, а на ТЕА5767 кварц на 32768 Гц или на 50000Гц, а это две большие разницы. К тому же 5757 - в корпусе TQFP44, 5767 - в корпусе TQFP40. Как же я ее туда лепить буду? На проводках - несерьёзно.

Добавлено: Пт дек 04, 2009 14:56:29
Igor_67
Что-то тема заглохла. Или никому не интересно? Тогда хоть бы с кодом помогли... :tea:
Вот нарыл в инете код, язык, вроде как Си. Только это для линукса. Кто поможет переделать код для МК, применительно к моей схеме?

Добавлено: Пт дек 04, 2009 21:16:59
Aheir
А кто Вас научит длинные листинги оформлять вложением? Отредактируйте свои посты в соответствии с правилами, иначе тема может не только заглохнуть, но и закрыться ненароком... :wink:

Добавлено: Сб дек 05, 2009 11:25:56
Igor_67
Извиняюсь, все исправил. :oops:
Теперь, к делу. Вобщем, ситуёвина такая: после некоторых танцев с бубном пришлось переписать весь код заново, по другому алгоритму. В Мегу 8535 уже не влезло, пришлось шить в Мегу 16-16PI.
Программа 55% памяти заняла!!! :shock: . И то, еще не все завершено. кнопки оставил три (плюс, минус и выбор). Добавил отображение названий радиостанций и пользовательские символы, им соответствующие (но это на любителя). Схема остается та же, что и была для Меги 8535, по ногам они идентичны. Кнопки плюс и минус прикрутил к прерываниям INT0 и INT1. На PORTC.6 выведен сигнал для включения подсветки индикатора. Выключается по прерыванию TIM1_OVF.
Кнопка "выбор/режим" подключена на PINB.7, на PORTB.0 завел линию DQ от DS18B20. Все входные сигналы, естественно, с внешней подтяжкой на +5В.
Есть одна засада: кнопка "выбор" работает не по прерыванию, а так как в программе довольно много всяких ветвящихся алгоритмов и задержек, она (кнопка) ужасно тормозит. Кто знает, как лучше организовать ее опрос? И еще одно: как при помощи кнопок выставлять нужное время и дату в RTC? Если можно, поподробнее.
Вобщем, выкладываю новый код. Проект Протеуса выкладывать не буду, т.к. схема та же. Достаточно просто изменить подключение кнопок и DS18B20. Всё пока! Все "мягкое" - во вложении.

FM-tuner на TEA5757H, ищу единомышленников

Добавлено: Чт янв 21, 2010 10:40:56
maiklab
Igor_67
Почитал тему, но схемы так и не увидел.
На фото индикатор выглядит прилично.
Поковырялся в старых платах от мобилок и нашол TEA5757H.
Сам не программигую, но на МК изделия повторяю.
С удовольствием повторил бы на TEA5757H+ATvega8+ЖКИ,
без температуры и градусника (таскать провода с улицы по квартире
не хочется).
Спасибо.

Re: FM-tuner на TEA5757H, ищу единомышленников

Добавлено: Чт янв 21, 2010 13:27:39
ibiza11
maiklab писал(а):Поковырялся в старых платах от мобилок и нашол TEA5757H.
В какой мобиле она используется?

Добавлено: Чт янв 21, 2010 16:01:42
Igor_67
но схемы так и не увидел.

Прикреплен же проект в протеусе - это и есть схема!

Добавлено: Пт янв 22, 2010 00:55:55
maiklab
ibiza11

Мне просто попалась плата, вот фото обратной стороны

Добавлено: Пт янв 22, 2010 08:28:30
Igor_67
Ну так как насчет помочь с кодом? С меня пиво!!! :beer:

Re: FM-tuner на TEA5757H, ищу единомышленников

Добавлено: Пт янв 28, 2011 23:49:25
MATAFIXXX
:o я тоже хочу такое сделать! У меня тюнер компутерный гемтек псфм-001 валяется,дров на хрюху под него нету,только 98 и 2000 окна её тянут. Все говорят выбрось,но рука не поднимается. К сожалению программирование для меня очень непонятная штука,только на уровне-запись,чтение МК,если у вас чего получится с теа5757н то приступлю к повторению :)))

Re: FM-tuner на TEA5757H, ищу единомышленников

Добавлено: Пт янв 28, 2011 23:52:10
MATAFIXXX
:? мда,рано обрадовался.... последнее сообщение январь 2010 , а не 2011 :cry:
Значит всё просто заглохло у всех

Re: FM-tuner на TEA5757H, ищу единомышленников

Добавлено: Сб янв 29, 2011 13:39:50
shurikss123
Есть такое у меня и плата которая в начале поста, и микруху выпаял немного поковыряв на самой плате добился неких результатов, а вот куда дел их не помню, можете кстате посмотреть в сторону готовых модулей которые стоят в автомагнитолах я на ней как раз и делаю счас усилитель на 4 вход. канала 1 из которых FM-тюнер(нарыл на один модуль инфу здесь http://monitor.net.ru/forum/sony-cdx-xxxxx-processor-info-346823.html впринципе работает практически так же как и 5757 тока в готовом исполнении), так что вариантов много, и еще температура хорошо, но почему все поголовно берут один и тот же датчик? часы тоже от туда МК может и сама работать как часы (или к примеру взять ds12887) Как вам?