Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12864

Вопросы и замечания по статьям и схемам, представленным на нашем сайте

При поддержке РадиоКОТструктор.ру


Andy_sv
Открыл глаза
Сообщения: 77
Зарегистрирован: Ср янв 05, 2011 23:21:02
Откуда: Ставропольский край

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение Andy_sv »

Режим mute с пульта - это лишь посылка в аудиопроцессор команды выставить громкость на ноль. На выход MUTE это не влияет. Его наличие, вкупе с STBY выходом - лишь для удобного управления микросхемами вроде TDA7293. Не знаю даже, считать ли это багом. Но, если хочется - можно глушить не только аудиопроцессор, но и оконечный усилитель этим сигналом. Переделка там в исходниках будет минимальная.

Да, хочется, чтобы был и аппаратный "mute" в дополнение к программному. Сделаете?
В планах есть изготовление усилителя на TDA7294 (MF-1). Платы уже давно изготовлены и собраны.
Ждут достойного темброблока и устройства управления, и похоже, в ближайшее время они его получат :)))

По второму вопросу - основательно вырезать поддержку тюнера из прошивки можно. Возни при этом, правда, многовато.
Гораздо проще - просто отключить возможность появления этого интерфейса.

Я так примерно и предполагал, почему и родился вопрос о возможности "выкусывания" лишнего при компиляции прошивки.
Например, сделать так, что если в makefile TUNER = NONE то выкидывается тюнер (или только его интерфейс) из прошивки.

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

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение WiseLord »

Реализовал обе ваши хотелки.
Первая чуть проще, вторая посложнее.

Правда, в железе не проверял, но, по идее, должно работать.

При сборке прошивки без поддержки тюнера указать TUNER = NOTUNER в Makefile.
Andy_sv
Открыл глаза
Сообщения: 77
Зарегистрирован: Ср янв 05, 2011 23:21:02
Откуда: Ставропольский край

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение Andy_sv »

WiseLord, СПАСИБО!!! :)) :)))

Потестируем... :solder:

Upd.
Попробовал обе прошивки:
Насчет тюнера, - все ОК! :)))
Проверял на версии под знакосинтезирующий индикатор KS0066

А вот "Mute" так и не работает. На PC5 по-прежнему постоянно высокий уровень при "Standby Off" и не реагирует на "Mute" On - Off.
Зато нажатие кн. "Mute" как на пульте, так и на лок. клаве теперь влияет на выход "Standby" - сбрасывается в 0 порт PC6 и уже не поднимается при "Mute Off".
Если затем сделать "Standby" On-Off, - на PC5, PC6 снова появляется лог. 1

Upd. 2
Кажись, разобрался :))

Файл проекта: "audio/tda7439.c"
В подпрограмме: void muteVolume(void)
STMU_PORT &= ~STDBY

исправил на:
STMU_PORT &= ~MUTE

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

Теперь, вроде бы все работает, как надо :)))
:music:
Аватара пользователя
u571
Открыл глаза
Сообщения: 58
Зарегистрирован: Вт окт 02, 2007 12:15:41

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение u571 »

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

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение WiseLord »

Andy_sv писал(а):Upd. 2
Кажись, разобрался :))

Файл проекта: "audio/tda7439.c"
В подпрограмме: void muteVolume(void)
STMU_PORT &= ~STDBY

исправил на:
STMU_PORT &= ~MUTE

Опечатался, видимо, не то скопипастил. Исправл в git.
Аватара пользователя
Djony
Прорезались зубы
Сообщения: 202
Зарегистрирован: Ср ноя 10, 2010 20:25:10
Откуда: Томск

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение Djony »

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

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение WiseLord »

Действительно, не качаются. Возможно, глюк форума.

Держите новые, с некоторыми последними фиксами из основной mega16-ветки.
Аватара пользователя
Djony
Прорезались зубы
Сообщения: 202
Зарегистрирован: Ср ноя 10, 2010 20:25:10
Откуда: Томск

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение Djony »

Спасибо :)
koka5555
Потрогал лапой паяльник
Сообщения: 344
Зарегистрирован: Вт окт 22, 2013 23:09:06

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение koka5555 »

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

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение WiseLord »

А я пока нигде и не говорил, что прошивка под RDA5807 рабочая.
Аватара пользователя
котопёс
Грызет канифоль
Сообщения: 273
Зарегистрирован: Ср янв 21, 2009 15:25:34

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение котопёс »

Что то я в ауте! На макетке всё работало. Собрал на плате, не запускается !
Всё шьётся и читается. Но не стартует.
Вложения
пред.на матрице.rar
(22.77 КБ) 370 скачиваний
Аватара пользователя
san-sanych
Встал на лапы
Сообщения: 127
Зарегистрирован: Вт июл 15, 2014 17:03:13
Откуда: Могилев, Беларусь
Контактная информация:

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение san-sanych »

Уважаемый WiseLord, в своих практических конструкциях усилков Вы какие-либо нормирующие или буферные каскады по входам TDA7439 используете? Если да, то поделитесь плиз схемками.
И ещё:
- как Вы управляете питанием фм тюнера?
- для управления оконечником на TDA7293/94 Вы обходитесь только сигналами stdby и mute7
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение WiseLord »

Нормирующих каскадов я никаких не использую. В принципе,TDA7439 сама по себе имеет 0-30дБ предусилитель по входам, так что этого вполне достаточно, на мой взгляд, для приведения сигналов по всем входам к одному уровню.

По поводу питания тюнеров - на данный момент ничего такого нет, питание постоянное. Возможно, и стоило бы посылать в TEA5767 команду на засыпание (что делать с прочими тюнерами - не знаю), но пока этого нет.

Для управления оконечными каскадами мне вполне хватает MUTE и STBY. Плюс в одной из двух конструкций в ждущем режиме реле отключает трансформатор питания оконечников.

Задачу сделать всё более правильно и красиво усложняет большое разнообразие вариантов конструкции и практическм полное при этом использование ресурсов МК. В следующей конструкции на ATmega32 (если она всё же выйдет в свет) я планирую ограничиться только 128х64 дисплеями и TEA5767/RDA5807 тюнерами, так что будет проще реализовать всё остальное более полно и правильно.
Аватара пользователя
котопёс
Грызет канифоль
Сообщения: 273
Зарегистрирован: Ср янв 21, 2009 15:25:34

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение котопёс »

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

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение WiseLord »

Что значит проверить? Как я понял, прошивается-читается. Значит, по идее, целая.

Если надо ножки проверить - можно написать простейший код, дёргающий ножкой раз в секунду, например. Залить и тем же тестером проверить, работает ли. И так для каждой ножки.

Хотя в Вашем случае всё может быть проще и просто где-то закоротка или наоборот, нет контакта. По плате я глянул - вроде бы всё более-менее правильно, если не учитывать зеркальную ориентацию слоёв (я привык в SL, что синий верхний слой так же как на плате выглядит, а зелёный дальний - зеркально, а у Вас наоборот). Но раз пишется-читается, то всё должно быть в порядке.
Аватара пользователя
котопёс
Грызет канифоль
Сообщения: 273
Зарегистрирован: Ср янв 21, 2009 15:25:34

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение котопёс »

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

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение WiseLord »

Не нужно быть семи пядей во лбу, чтобы написать что-то такое (код под avr-gcc / WinAVR / AVR Studio).
Спойлер

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

#include <avr/io.h>
#include <util/delay.h>

#define LED_DDR     DDRC
#define LED_PORT    PORTC

#define LED_RED     (1<<PC0)

int main(void)
{
   LED_DDR |= LED_RED;

   while (1) {
      LED_PORT &= ~LED_RED;
      _delay_ms(250);
      LED_PORT |= LED_RED;
      _delay_ms(250);
   }

   return 0;
}
Ну и менять каждый раз номер бита и название порта, переходя к новой ножке.
Аватара пользователя
котопёс
Грызет канифоль
Сообщения: 273
Зарегистрирован: Ср янв 21, 2009 15:25:34

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение котопёс »

Спасибо! Согласен. Для ВАС это пятиминутное дело.
А тут когда не знаешь да ещё и забудешь. :oops:
MSM78
Родился
Сообщения: 3
Зарегистрирован: Вс май 19, 2013 12:33:04

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение MSM78 »

"Если ты впервые столкнулся с микроконтроллерами, то наверняка у тебя стал выбор на чем писать.

На Си или на Ассемблере. Выбор не прост, не зря программисты однокристальщики раскололись на два непримиримых лагеря. Одни с пеной у рта доказывают, что те кто пишут на Си лохи изнеженные, а настоящий брутальный кодер должен воспринимать только ассемблер. Другие же, усераясь, доказывают, что на ассемблере разве что лампочками помигать можно, а какой либо серьезный проект делать на низком уровне невозможно.

Но, истинна, как всегда, находится посредине. Каждый уважающий себя программер должен знать ассемблер, а вот писать должен на том, что более подходит под масштаб задачи. Особенно это касается микроконтроллеров." (с) DI HALT

Простая программа выдающая на порты 0/1 могла бы выглядеть так:

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

.include "m16def.inc" ; ATMega16

; зададим имена используемым регистрам
.def   temp   =R16
.def   cnt0   =R17
.def   cnt1   =R18
.def   cnt2   =R19

; отсюда МК начинает выполнять команды после включения
.ORG $0000
RJMP START

; здесь могли быть вектора прерываний

.ORG INT_VECTORS_SIZE
START:
   ; настроим порты на вывод
   ldi temp, 0xFF
   out ddra, temp
   out ddrb, temp
   out ddrc, temp
   out ddrd, temp

INVERT:
   ; инвертируем значение, которое загружается в порт
   com temp
   ; загрузим новые значения в порты
   out porta, temp
   out portb, temp
   out portc, temp
   out portd, temp
   
   ; установим начальные значения в регистры счётчика
   ser cnt0
   ser cnt1
   ldi cnt2, 40
   
DELAY:
   ; задержка без применения таймера
   dec cnt0
   brne DELAY
   
   dec cnt1
   brne DELAY

   dec cnt2
   brne DELAY

   ; пора загружать новое значение в порты
   rjmp INVERT

Вложения
blink.zip
архив с проектом
(5.77 КБ) 245 скачиваний
Аватара пользователя
котопёс
Грызет канифоль
Сообщения: 273
Зарегистрирован: Ср янв 21, 2009 15:25:34

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128

Сообщение котопёс »

MSM78 огромное человеческое спасибо. Благодаря вашей программке нашёл косяк.
Тупо не пропай А4. Когда ставил на неё щуп тестера она прижималась и звонилась.
А когда снимал, всё не контакт .Я уже переживал что придётся сдувать мегу.
Ответить

Вернуться в «Статьи»