Ввиду популярности темы насчет 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 сек. - спектр. И так по кругу.Схема и код уже есть - все работает.





