Страница 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, СПАСИБО!!! :)) :)))

Потестируем... :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:

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
котопёс
Спасибо! Согласен. Для ВАС это пятиминутное дело.
А тут когда не знаешь да ещё и забудешь. :oops:

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. Когда ставил на неё щуп тестера она прижималась и звонилась.
А когда снимал, всё не контакт .Я уже переживал что придётся сдувать мегу.