Заголовок сообщения: Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128
Добавлено: Ср фев 25, 2015 12:47:02
Родился
Карма: 1
Рейтинг сообщений: 4
Зарегистрирован: Вт сен 04, 2012 11:00:53 Сообщений: 14 Откуда: Санкт-Петербург
Рейтинг сообщения:0
Спасибо большое за Вашу тему Прочитал внимательно всю ветку,но не нашёл для себя. Можно дать ответ на сборку дисплей 16х2-Мега16TQFP-радио на базе TEA5767-TDA7439. Просто всё куплено,на TDA7439 уже сделана плата.Проблема заглушить предусилитель Оконечники http://www.electroclub.info/invest/tda7 ... 4_mini.htm Помогите сделать связку для всего ЭТОГО
Использование модульных источников питания открытого типа широко распространено в современных устройствах. Присущие им компактность, гибкость в интеграции и высокая эффективность делают их отличным решением для систем промышленной автоматизации, телекоммуникационного оборудования, медицинской техники, устройств «умного дома» и прочих приложений. Рассмотрим подробнее характеристики и особенности трех самых популярных вариантов AC/DC-преобразователей MW открытого типа, подходящих для применения в промышленных устройствах - серий EPS, EPP и RPS представленных на Meanwell.market.
Последние версии прошивок под вариант с ATmega16 я выкладывал пару страниц назад.
Схема для ATmega16 и символьного дисплея 16x2 - на googlecode.
Тюнер и аудиопроцессор подключаются к шине I2C, сигналы MUTE и STBY заводятся на TDA7293. Т.е. по схеме оконечника надо резисторы R7 и R8 оторвать от питания и подключить к контроллеру.
Правда, эта схема TDA7293 (инвертирующее включение) мне не понравилась наличием хлопков при управлении питанием, так как в ней не действует сигнал MUTE. Обычное включение, неинвертирующее, в этом плане интереснее.
Обновление прошивки для основного варианта (ATmega32 + графический дисплей).
Изменения:
- Оптимизация кода - уменьшено использование как RAM, так и Flash.
В основном, достигнуто это изменением способа получения данных от АЦП. Вместо одновременного сбора данных для обоих каналов с постоянным переключением входов АЦП (R - L - R - L - ... - R - L) данные принимаются и обсчитываются последовательно (R - R - R - ... - R - R, L - L - L - ... - L - L). Потенциально это должно улучшить точность, но на вид особо нет разницы.
- Полностью переделана архитектура поддержки аудиопроцессоров.
Теперь нет необходимости в отдельных прошивках под каждый тип аудиопроцессора. Все поддерживаются одновременно, выбор необходимого производится путём изменения байта по адресу 0x0E в EEPROM. Возможные варианты:
Также это привело к тому, что стало ну очень просто добавить поддержку других аудиопроцессоров. В планах пока TDA7448 (нужна мне для другого проекта, добавлю и сюда).
- Добавлена поддержка TDA7312 и TDA7314.
Вся линейка аудиопроцессоров TDA731x управляется аналогичным образом, отличия у микросхем только в разном количестве входов, наличии тонкоррекции и т.п. Поэтому исходный код для всех них сейчас общий с учётом этих мелких отличий.
- Улучшена работа с часами и будильником
Теперь микросхема часов опрашивается не постоянно в главном цикле программы, а раз в 200мс, чего вполне достаточно для отображения времени и "тиканья" секунд.
Новая прошивка проверена на работоспособность в железе на TDA7439 и TDA7313. Других аудиопроцессоров нет, но в эмуляторе всё выглядит рабочим и для них.
Большое спасибо за проект! Тоже решил присоединиться. Попробовал запустить в Proteusе эмуляцию, но почему-то не работают кнопки. Загрузил hex и eeprom, но работают только часы. Что я не так там настроил? Делал для того, чтобы можно было потом попробовать добавить поддержку разных других устройств, например интернет радио или встроенного mp3 плеера http://www.rlocman.ru/shem/schematics.html?di=55076 или что-то вроде этого http://masterkit.ru/shop/multimedia/players/1897998 Вот проект для Proteusa
Добрый день. Это проект от Proteusa 8.1, сейчас попробую ваш загрузить, спасибо. Не планируете ли вы прикрутить что-то вроде этого https://www.terraelectronica.ru/catalog ... DE=1232295 умеет читать почти все форматы и управление вроде удобное.
Я думал о том, чтобы что-то подобное прикрутить, но как-то не встречал чего-то с поддержкой ogg формата. Он у меня как бы основной, mp3 - так, побоку. Точнее, новую музыку я в flac качаю, но для плееров-телефонов в ogg кодирую.
Надо изучить этот девайс, возможно, смысл есть.
Хотя, судя по всему, для полноценного его использования надо что-то серьёзнее, чем ATmega32. Всё-таки там и работа с картой памяти, и прочие "тяжёлые" вещи. Для какой-нибудь stm32 это было бы более подходящей задачей.
Уважаемый WiseLord, очень жаль, что Вы перестали поддерживать LS020. Сейчас дисплеи такие дорогие, а эти более доступны и изображение достаточно хорошее. Я думаю, что многие были бы Вам благодарны.
Насколько известно то еще со времен Хамелеона эти дисплеи уже не найти ну или очень и очень проблематично.
не всем проблематично, давечи на рынке встречал пару сименсов с ls020 и по копеечной цене, а купить графический нынче в магазине дорого однако, с нашим нынешним курсом....
Sergey212 правильно сказал, что изображение на нём хорошее, как по мне так 128х64 с ним в сравнение не идёт ваще, просто у автора нет такого дисплея и ему не интересно делать его поддержку.
Абсолютно верно. Одна из причин - мне их найти сложно.
Гораздо легче и тоже сравнительно недорого было найти и купить такой дисплей. Он ещё "круче" того же ls020, да и проще в подключении - не надо возиться со шлейфами. По цене не знаю, сколько ls020 стоит, но и этот недорого.
Но всё равно, для этого проекта дисплеи эти тяжеловаты. Одно дело - нарисовать сравнительно статическую картинку, а другое - в реальном времени спектр отрисовывать. На том же ls020 с учётом всех применённых для увеличения скорости отрисовки хитростей удалось достичь в лучшем случае около 6-7 кадров в секунду (VeryLazyCat может меня поправить, если я ошибаюсь).
Я специально сконцентрировался на разрешении 128x64, так как это 8192 пикселов, или 1кБайт. В ATmega32 с 2кБ памяти половину занимает этот кадровый буфер, остальное - на остальной код программы. И при расширении функционала уже не нужно заботиться о том, каким способом на каком дисплее отрисовывать шрифты-иконки-прогрессбары и прочее. Всё делается однотипно, без привязки к дисплею - а только к этому виртуальному буферу 128x64. Это здорово упрощает разработку.
Дисплеи большего разрешения уже позволяют реализовать работу с ними через подобный кадровый буфер. Не откажись я от поддержки этих дисплеев (ls020 и символьного 1602), вряд ли бы мы имели сейчас в проекте поддержку иконок функций, термоконтроля, будильника, таймера и т.д. Потому что поддерживать всё это и по-разному отрисовывать на всём зоопарке дисплей - это муторно, долго, неприятно. Любую найденную ошибку приходилось исправлять в куче мест.
А вообще - проект открытый, исходники доступны. Кому надо - может доработать под что угодно. Я веду переписку с одним таким же радиолюбителем - он перешёл на ATmega64, добавил там поддержку ещё одного регулятора громкости (PGA2310), какого-то ещё дисплея 128x64, какого-то ЦАП-а для полностью цифрового тракта.
Проект написан достаточно, на мой взгляд, понятно, чтобы к нему подключиться. Было бы желание. Я буду только рад, если кто-то возьмётся добавить что-то в него, и помогу и подскажу при наличии вопросов.
Я же сейчас все усилия бросил на унификацию кода. Вот недавно выложил прошивку с улучшенной архитектурой поддержки аудиопроцессоров. Раньше поддерживалось 3 аудиопроцессора - было 15 * 3 = 45 разных прошивок под них, сейчас - только 15 осталось (под разные дисплеи и тюнеры), каждая из которых поддерживает 5 аудиопроцессоров.
Сейчас работаю над аналогичной архитектурой для тюнеров. Уже есть результат (пока ещё тестирую, но вроде всё работает) - число прошивок сократилось до трёх (под три разных дисплея), каждая из них может быть через eeprom настроена на нужный аудиопроцессор и тюнер. Правда, пришлось пока выбросить поддержку LM7001, так как она по выводам конфликтует с функцией термоконтроля.
Обновление прошивки для основного варианта (ATmega32 + графический дисплей).
Изменения:
- Переделана архитектура поддержки тюнеров.
Теперь нет необходимости в отдельных прошивках под каждый тип тюнера. Все поддерживаются одновременно, выбор необходимого производится путём изменения байта по адресу 0x1B в EEPROM. Возможные варианты:
Также эти изменения упростили добавление поддержки других тюнеров.
- При входе в ждущий режим FM-модули теперь переводятся имеющийся в них режим с низким энергопотреблением
Раньше они продолжали работать и в ждущем режиме, продолжая выдавать на нулевой вход аудиопроцессора аудиосигнал. Что, согласитесь, не совсем правильно.
- Временно (хотелось бы надеяться) удалена поддержка LM7001
LM7001 по используемым ногам контроллера конфликтует с функцией термоконтроля. Это и в прошлой прошивке обходилось "костылём" в коде, принудительно отключающим функцию термоконтроля при активации LM7001. Иначе не получалось. В новой версии прошивки костыли эти внедрять не хотелось, но если поддержка LM7001 актуальна, попробую добавить уже новый "костыль". Хотя очень не хотелось бы, на самом деле.
- Несколько изменено поведение кнопок пульта.
Раньше нажатие любой кнопки, управляющей тюнером (цифровые, изменение станции и прочих) принудительно переводило прошивку на вход 0, к которому подключен тюнер, и соответствующее действие выполнялось. Теперь кнопки, управляющие тюнером, неактивны, пока не выбран этот нулевой вход. Это своего рода задел на то, что эти кнопки в режимах "не тюнера" могут быть задействованы на что-то ещё.
Новая прошивка проверена на работоспособность в железе на TEA5767 и RDA5807M. Других тюнеров у меня нет, так что надеюсь, что поддержка той же TUX032 не была сломана.
Напоминаю, что аналогично выбору тюнера через значение байта в EEPROM сейчас выбирается и аудиопроцессор (см. прошивку несколько сообщений назад). В ближайших планах написать интерфейс для смены модели тюнера и аудиопроцессора, чтобы это можно было сделать кнопками с панели управления, без правки руками в hex-редакторе файла eeprom_*.bin.
Итого, вместо сорока пяти теперь осталось всего три прошивки под разные модели дисплея (KS0108A, KS0108B, ST7920).
Добрый вечер Всем. Поделюсь своими результатами. Тему прочитал 3 раза пока решил чтото делать. Взял 32 мегу и дисплей и какойто кварц. С пятой прошивки все включилось, засветилось. Поставил часы, кварц на 16Мгц настроил фьюзы стало еще круче. Вместо энкодера поклацал проводками все работает. Результатом доволен как слон. Спасибо автору за конструкцию. Теперь пару вопросов. порт PC5 я так понимаю используется только из-за того что у Вас УНЧ на микросхеме. А если УНЧ транзисторный смысла в нем нет. И тогда режим MUTE не работает (если ошибаюсь исправте ). И второй вопрос по поводу дисплея ls020 хочу на нем реализовать только спектроанализатор, можно ли вырезать весь лишний код с прошивки оставив только эту функцию.Ну и поддерживаю желающих наличия термоконтроля в основной конструкции.
выскажу свою мысль: режым MUTE реализоватьв в самом аудиопроцессоре
Это уже давно реализовано. В режиме MUTE не только вывод PC5 устанавливается в ноль, но и аудиопроцессорам посылается соответствующий сигнал. Также сейчас уже готова (вот-вот выложу) прошивка, где и тюнеры тоже уводятся в mute по этому сигналу.
alexfick писал(а):
и кнопки S4 и S5 в железе поменять местами
Это зачем? Чтобы энкодером mute нажимать? Ну так если так, эта кнопка ещё под многие другие функции задействована (управление станциями fm-тюнера, управление частотой). Уж лучше энкодер-кнопка будет аудиопараметры для регулировки перебирать, как сейчас и есть.
alexfick писал(а):
Ну и поддерживаю желающих наличия термоконтроля в основной конструкции.
Эта функция в основной конструкции давно есть. Под основной конструкцией я понимаю вариант с графическим дисплеем (как это было с самого старта проекта), но только на ATmega32, в которую этот функционал влезает, и у которой ещё есть запас flash-памяти для реализации рахных хотелок.
alexfick писал(а):
И второй вопрос по поводу дисплея ls020 хочу на нем реализовать только спектроанализатор, можно ли вырезать весь лишний код с прошивки оставив только эту функцию.
Да пожалуйста, я не против. Исходники проекта доступны. Собственно, с только спектроанализатора всё и начиналось, и лишь потом, после доводки его до ума, я решил на его базе делать цифровой темброблок с функцией спектроанализа.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения