Страница 17 из 240
Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128
Добавлено: Вс авг 31, 2014 16:58:11
Andy_sv
Режим mute с пульта - это лишь посылка в аудиопроцессор команды выставить громкость на ноль. На выход MUTE это не влияет. Его наличие, вкупе с STBY выходом - лишь для удобного управления микросхемами вроде TDA7293. Не знаю даже, считать ли это багом. Но, если хочется - можно глушить не только аудиопроцессор, но и оконечный усилитель этим сигналом. Переделка там в исходниках будет минимальная.
Да, хочется, чтобы был и аппаратный "mute" в дополнение к программному. Сделаете?
В планах есть изготовление усилителя на TDA7294 (MF-1). Платы уже давно изготовлены и собраны.
Ждут достойного темброблока и устройства управления, и похоже, в ближайшее время они его получат
По второму вопросу - основательно вырезать поддержку тюнера из прошивки можно. Возни при этом, правда, многовато.
Гораздо проще - просто отключить возможность появления этого интерфейса.
Я так примерно и предполагал, почему и родился вопрос о возможности "выкусывания" лишнего при компиляции прошивки.
Например, сделать так, что если в makefile TUNER = NONE то выкидывается тюнер (или только его интерфейс) из прошивки.
Ну, а пока вручную попробую подправить.
Спасибо!
Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128
Добавлено: Вс авг 31, 2014 18:00:33
WiseLord
Реализовал обе ваши хотелки.
Первая чуть проще,
вторая посложнее.
Правда, в железе не проверял, но, по идее, должно работать.
При сборке прошивки без поддержки тюнера указать TUNER = NOTUNER в Makefile.
Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128
Добавлено: Вс авг 31, 2014 19:35:19
Andy_sv
WiseLord, СПАСИБО!!!
Потестируем...
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
В файлы поддержки других аудиопроцессоров необходимо внести аналогичные исправления.
Теперь, вроде бы все работает, как надо

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128
Добавлено: Ср сен 03, 2014 14:53:18
u571
Уважаемый SergeyK поделитесь пожалуйста вашей печаткой цифровой части.
Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128
Добавлено: Ср сен 03, 2014 16:38:33
WiseLord
Andy_sv писал(а):
Upd. 2
Кажись, разобрался
Файл проекта: "audio/tda7439.c"
В подпрограмме: void muteVolume(void)
STMU_PORT &= ~STDBY
исправил на:
STMU_PORT &= ~MUTE
Опечатался, видимо, не то скопипастил. Исправл в git.
Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128
Добавлено: Ср сен 03, 2014 17:46:50
Djony
Здравствуйте

Где мне найти файлы "Поддержка LM7001 для варианта спектроанализатора на ATmega8." на стр 13 которая...пишет нет вложений
Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128
Добавлено: Ср сен 03, 2014 21:39:07
WiseLord
Действительно, не качаются. Возможно, глюк форума.
Держите новые, с некоторыми последними фиксами из основной mega16-ветки.
Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128
Добавлено: Ср сен 03, 2014 21:54:02
Djony
Спасибо

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128
Добавлено: Ср сен 03, 2014 23:29:35
koka5555
Уважаемый WiseLord, протестировал последнюю выложенную Вами прошивку для rda5807.Ничего не блокируется,но на выходе тюнера только шум,радиостанций не находит.
Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128
Добавлено: Чт сен 04, 2014 05:36:13
WiseLord
А я пока нигде и не говорил, что прошивка под RDA5807 рабочая.
Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128
Добавлено: Пт сен 05, 2014 16:01:57
котопёс
Что то я в ауте! На макетке всё работало. Собрал на плате, не запускается !
Всё шьётся и читается. Но не стартует.
Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128
Добавлено: Пт сен 05, 2014 21:49:18
san-sanych
Уважаемый WiseLord, в своих практических конструкциях усилков Вы какие-либо нормирующие или буферные каскады по входам TDA7439 используете? Если да, то поделитесь плиз схемками.
И ещё:
- как Вы управляете питанием фм тюнера?
- для управления оконечником на TDA7293/94 Вы обходитесь только сигналами stdby и mute7
Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128
Добавлено: Сб сен 06, 2014 06:52:06
WiseLord
Нормирующих каскадов я никаких не использую. В принципе,TDA7439 сама по себе имеет 0-30дБ предусилитель по входам, так что этого вполне достаточно, на мой взгляд, для приведения сигналов по всем входам к одному уровню.
По поводу питания тюнеров - на данный момент ничего такого нет, питание постоянное. Возможно, и стоило бы посылать в TEA5767 команду на засыпание (что делать с прочими тюнерами - не знаю), но пока этого нет.
Для управления оконечными каскадами мне вполне хватает MUTE и STBY. Плюс в одной из двух конструкций в ждущем режиме реле отключает трансформатор питания оконечников.
Задачу сделать всё более правильно и красиво усложняет большое разнообразие вариантов конструкции и практическм полное при этом использование ресурсов МК. В следующей конструкции на ATmega32 (если она всё же выйдет в свет) я планирую ограничиться только 128х64 дисплеями и TEA5767/RDA5807 тюнерами, так что будет проще реализовать всё остальное более полно и правильно.
Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128
Добавлено: Сб сен 06, 2014 09:02:19
котопёс
А ни кто не подскажет как мегу проверить?
Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128
Добавлено: Сб сен 06, 2014 10:02:46
WiseLord
Что значит проверить? Как я понял, прошивается-читается. Значит, по идее, целая.
Если надо ножки проверить - можно написать простейший код, дёргающий ножкой раз в секунду, например. Залить и тем же тестером проверить, работает ли. И так для каждой ножки.
Хотя в Вашем случае всё может быть проще и просто где-то закоротка или наоборот, нет контакта. По плате я глянул - вроде бы всё более-менее правильно, если не учитывать зеркальную ориентацию слоёв (я привык в SL, что синий верхний слой так же как на плате выглядит, а зелёный дальний - зеркально, а у Вас наоборот). Но раз пишется-читается, то всё должно быть в порядке.
Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128
Добавлено: Сб сен 06, 2014 10:26:52
котопёс
В том то весь и прикол. Вчера пол ночи просидел с тестером. Проверил всё.
Ни кз ни обрывов нет. Может мега бракованная? Поищу какую ни будь программку
типа мигалки. Я сам писать не умею. Может правда какие то порты битые.
Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128
Добавлено: Сб сен 06, 2014 11:02:37
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;
}
Ну и менять каждый раз номер бита и название порта, переходя к новой ножке.
Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128
Добавлено: Сб сен 06, 2014 11:58:27
котопёс
Спасибо! Согласен. Для ВАС это пятиминутное дело.
А тут когда не знаешь да ещё и забудешь.

Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128
Добавлено: Сб сен 06, 2014 12:56:08
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
Re: Темброблок/спектранализатор на ATmega16, TDA7439 и SG128
Добавлено: Сб сен 06, 2014 13:55:06
котопёс
MSM78 огромное человеческое спасибо. Благодаря вашей программке нашёл косяк.
Тупо не пропай А4. Когда ставил на неё щуп тестера она прижималась и звонилась.
А когда снимал, всё не контакт .Я уже переживал что придётся сдувать мегу.