Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: AVR АЦП отследить сигнал в линии
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
wired
плиз ткните носом в алгоритм опредения наличия переменного напряжения в линии(звуковьіе частотьі) , точнее отсутствия сигнала в оной.
GDI
БПФ?
Вообще то поточнее надо задачу ставить.
wired
Цитата(GDI @ Jul 29 2008, 10:43) *
БПФ?
Вообще то поточнее надо задачу ставить.

та вроде как точно поставил sad.gif
интересует в реальном устройстве возможность отключение его при отсутсвии сигнала на входе.
уход усилка в стендбай при тишине на входе.
БПФ для такого избьіточно...явно smile.gif
Stanislav_S
Цитата(wired @ Jul 29 2008, 12:46) *
та вроде как точно поставил sad.gif
интересует в реальном устройстве возможность отключение его при отсутсвии сигнала на входе.
уход усилка в стендбай при тишине на входе.
БПФ для такого избьіточно...явно smile.gif

Диодный мостик + ФНЧ, сигнал меньше порога вырубаемся.
wired
Цитата(Stanislav_S @ Jul 29 2008, 10:48) *
Диодный мостик + ФНЧ, сигнал меньше порога вырубаемся.

нуу... єто не спортивно, хотелось подать сигнал прям она ножку АВРки... не заморачиваясь с фильтрами диодами и т.д.
Stanislav_S
Цитата(wired @ Jul 29 2008, 13:04) *
нуу... єто не спортивно, хотелось подать сигнал прям она ножку АВРки... не заморачиваясь с фильтрами диодами и т.д.

Тогда мерять среднее (действующие ) напряжение за некий период, и его оценивать, можно сделать програмный ФНЧ невысокого порядка, все зависит от внутренних ресурсов.
GDI
Цитата
интересует в реальном устройстве возможность отключение его при отсутсвии сигнала на входе.
уход усилка в стендбай при тишине на входе.

Вот это уже более точное описание, еще бы нужную полосу частот добавить и назначение самого девайса. АЦП то в АВР-ке сдюжит полосу? Если да, то подавайте на вход, ну может фильтр какой простейший, и сравнивать с порогом, чтоб решение об отключении принимать.
wired
Цитата(Stanislav_S @ Jul 29 2008, 11:15) *
Тогда мерять среднее (действующие ) напряжение за некий период, и его оценивать, можно сделать програмный ФНЧ невысокого порядка, все зависит от внутренних ресурсов.

я думал запонять массив значениями, и сравнивать уровни, не годится?
MrYuran
У меги по-моему, АЦП до 100kSps выдаёт, по полосе протащит.
Простейший фильтр:
Код
F+=(ADCvalue-F)/T

без никаких массивов. Т - постоянная времени.
GDI
В опишите поточнее устройство ваше, как оно схемотехнически сделано. На АЦП АВР нельзя подавать отрицательное напряжение, он его не в состоянии измерять, как вы это планируете решить? Сдвинуть сигнал на некоторое постоянное напряжение? Чем вы это планируете сделать? Может вместо этого сделать какую то аппаратную обработку сигнала? Например, простейший детектор из диода и конденсатора.
wired
Цитата(GDI @ Jul 29 2008, 11:49) *
В опишите поточнее устройство ваше, как оно схемотехнически сделано. На АЦП АВР нельзя подавать отрицательное напряжение, он его не в состоянии измерять, как вы это планируете решить? Сдвинуть сигнал на некоторое постоянное напряжение? Чем вы это планируете сделать? Может вместо этого сделать какую то аппаратную обработку сигнала? Например, простейший детектор из диода и конденсатора.

простейший будет полюбому, єто очевидно
GDI
Ну тогда усредняющий фильтр, любой в зависимости от имеющихся ресурсов, например moving average(есть такой апноут у атмела) и сравнение с порогом, ну и вероятно надо какой то гистерезис сделать по уровню и задержку включения выключения по времени.
wired
Цитата(MrYuran @ Jul 29 2008, 11:44) *
У меги по-моему, АЦП до 100kSps выдаёт, по полосе протащит.
Простейший фильтр:
Код
F+=(ADCvalue-F)/T

без никаких массивов. Т - постоянная времени.

сори, разжуй плиз ...
MrYuran
Цитата(wired @ Jul 29 2008, 13:24) *
сори, разжуй плиз ...

А чего жевать -то...
F - фильтрованное значение.
ADCvalue - измеренное значение с АЦП.
Через равные промежутки времени запускаем преобразование и проводим указанные действия.
F плавно ползёт вслед за ADCvalue.
Чем больше Т, тем медленнее ползёт.
В общем-то, действительно, надо задачу в целом описывать. Каково назначение устройства, параметры (в первую очередь временные).
Можно поставить на входе диодный детектор, и он будет фактически пиковым детектором. Тогда и фильтрация особая не понадобится.
VladimirYU
Цитата(wired @ Jul 29 2008, 13:24) *
сори, разжуй плиз ...

Апериодическое звено 1-го порядка.
sKWO
Цитата(wired @ Jul 29 2008, 11:04) *
нуу... єто не спортивно, хотелось подать сигнал прям она ножку АВРки... не заморачиваясь с фильтрами диодами и т.д.

Как по-мне то у Вас присутствует только один интерес - сделать что-нибуть на контроллере и не более. Ваша задача легко решается на дискретных салдеповских элементах.
ещё будет полезным почитать Вам апноут атмела AVR120, (измерение отрицательного напряжения возможно)
Цитата
Дифференциальный диапазон преобразования

В дифференциальном режиме преобразования два входных канала подключаются к дифференциальному усилителю с опциональным усилительным каскадом. Затем напряжение с выхода усилителя поступает к логике преобразования, как показано на рисунке 3б. В этом случае разности напряжений в диапазоне от -Vион до +Vион соответствуют выходные значения в диапазоне от -512 до +511. Выходное значение представляется в формате двоичного дополнения. Несмотря на возможность образования отрицательного напряжения на выходе дифференциального усилителя входные напряжения должны быть в диапазоне GND…AVCC.
alexander55
Пример фильтра
//---------------------------------------------------------
// Фильтрация RMS перед выводом
//---------------------------------------------------------
void TDisplay::FilterCurr(void)
{
#define T 1.0
#define TAU 200.0
// #define TAU 100.0

for(unsigned char i=0;i<3;i++)
RMS2F[i] = (Read_Sum(i) + (RMS2F[i] * TAU)) / (TAU + T);
}
//---------------------------------------------------------
Здесь 3 фильтра.
wired
Цитата(sKWO @ Jul 29 2008, 13:22) *
Как по-мне то у Вас присутствует только один интерес - сделать что-нибуть на контроллере и не более. Ваша задача легко решается на дискретных салдеповских элементах.
ещё будет полезным почитать Вам апноут атмела AVR120, (измерение отрицательного напряжения возможно)

"Несмотря на возможность образования отрицательного напряжения на выходе дифференциального усилителя входные напряжения должны быть в диапазоне GND…AVCC."
ваша же цитата.
иньіми словами, необходимо смещать уровень.


За сеанс психоанализа спасибо.
sKWO
Цитата(wired @ Jul 29 2008, 14:01) *
иньіми словами, необходимо смещать уровень.

Именно, и Вашем случае ещё и понижать. Правда диф усилители есть не у всех типов МК причём в одной серии не у всех видах корпусов. Ну а нормировать уровни учитывая задачу можна простенькими операционниками и делителями.
да и ещё wired, у Вас русская расскладка клавы не работает?
wired
Цитата(sKWO @ Jul 29 2008, 14:35) *
Именно, и Вашем случае ещё и понижать. Правда диф усилители есть не у всех типов МК причём в одной серии не у всех видах корпусов. Ну а нормировать уровни учитывая задачу можна простенькими операционниками и делителями.

да, собсно так наверное и буду делать, заодно на операционнике и ФНЧ реализую.
Уговорили smile.gif
sKWO
Цитата(wired @ Jul 29 2008, 10:46) *
интересует в реальном устройстве возможность отключение его при отсутсвии сигнала на входе.
уход усилка в стендбай при тишине на входе.

wired, а тишина - это фон усилителя во всём спектре частотного диапазона не такли? и чем больше громкость тем больше уровень фоновых шумов. именно поэтому вы хотите отправлять его в режим stand by? А выводить как?
wired
Цитата(sKWO @ Jul 29 2008, 14:53) *
wired, а тишина - это фон усилителя во всём спектре частотного диапазона не такли? и чем больше громкость тем больше уровень фоновых шумов. именно поэтому вы хотите отправлять его в режим stand by? А выводить как?

євона как... вопросто почти философский, в свете размьішлений о тишине.

намек я понял.
sKWO
Цитата(wired @ Jul 29 2008, 14:44) *
да, собсно так наверное и буду делать, заодно на операционнике и ФНЧ реализую.
Уговорили smile.gif

Уговорите меня поменять своё мнение, может и я зря Вас сбил с толку.
ФНЧ - вы обрежете звуковой спектр, а не его же Вам нужно анализировать?(хотя конечно ФНЧ - ФНЧ рознь)
Уровень фона на выходе кроме прочего, зависит от того что подключено ко входу и в какой-то мере рассположения близлежащих радиостанций длинноволнового диапазона. Дальше, привязываться к абсолютному значению как по мне вообще глупость (источники сигнала наверное разные + старение деталей + различная выходная мощность = изменение уровня).
В общем, люди на форуме не глупые и если я протупил то меня поправят. Может Вам действительно делать всё с помощью контроллера, так наверное реальнее выполнить Вашу задачу. Извините что поспешил с Выводами нащёт простоты реализации.
wired
Цитата(sKWO @ Jul 29 2008, 15:42) *
Уговорите меня поменять своё мнение, может и я зря Вас сбил с толку.
ФНЧ - вы обрежете звуковой спектр, а не его же Вам нужно анализировать?(хотя конечно ФНЧ - ФНЧ рознь)
Уровень фона на выходе кроме прочего, зависит от того что подключено ко входу и в какой-то мере рассположения близлежащих радиостанций длинноволнового диапазона. Дальше, привязываться к абсолютному значению как по мне вообще глупость (источники сигнала наверное разные + старение деталей + различная выходная мощность = изменение уровня).
В общем, люди на форуме не глупые и если я протупил то меня поправят. Может Вам действительно делать всё с помощью контроллера, так наверное реальнее выполнить Вашу задачу. Извините что поспешил с Выводами нащёт простоты реализации.

не знаю, из простой, вроде бьі, задачи вьірубить нафиг усилитель, если нет на входе сигнала звуковой частотьі (традиционно 20-20000Гц). получилось чтото, окончательно меня запутавшее.
как видел єто я,
с некоторой частотой АЦП пишет в буфер(масив) отсчетьі,
допустим примем некоторьій порог шумов, его отбрасьіваем загрубляем чувствительность
сравниваем значения.
если за некоторе время (таймаут например 5 минут) отсчетьі не менялись принимаем решение вьіключить
вроде так...
GDI
Цитата
если за некоторе время (таймаут например 5 минут) отсчетьі не менялись принимаем решение вьіключить

И что вы все 5 минут будете в массиве держать? Так никакого озу не хватит. Лучше считать что то типа RMS и если уровень опустился ниже какого то уровня, то запустить счетчик таймаута, если уровень вдруг превысит некий другой уровень(который чуть выше того первого) то счетчик сбрасывается, а если не превысил, то благополучно отключаем усилитель(или что там у вас).
Stanislav_S
Можно еще добавить, что в музыкальном сигнале большая часть мощности приходится на НЧ, поэтому поставить на входе ФНЧ было бы разумно и снизило бы частоту сэмплирования АЦП.
wired
Цитата(GDI @ Jul 29 2008, 16:07) *
И что вы все 5 минут будете в массиве держать? Так никакого озу не хватит. Лучше считать что то типа RMS и если уровень опустился ниже какого то уровня, то запустить счетчик таймаута, если уровень вдруг превысит некий другой уровень(который чуть выше того первого) то счетчик сбрасывается, а если не превысил, то благополучно отключаем усилитель(или что там у вас).

совсем необязательно держать все 5 минут, ничего не мешает возводить и сбрасьівать флажок например сравнив пару отсчетов, тогда и массив не надо.
хотя с RMS интереснее.
Stanislav_S
Цитата(wired @ Jul 29 2008, 18:27) *
совсем необязательно держать все 5 минут, ничего не мешает возводить и сбрасьівать флажок например сравнив пару отсчетов, тогда и массив не надо.
хотя с RMS интереснее.

Все таки это не однотонный сигнал, а шумоподобный тут всякое может быть, поэтому действующее или среднее значение намного надежней.
wired
Цитата(Stanislav_S @ Jul 29 2008, 16:55) *
Все таки это не однотонный сигнал, а шумоподобный тут всякое может быть, поэтому действующее или среднее значение намного надежней.

а если , например, постоянку отловить хочется?
sKWO
Цитата(wired @ Jul 29 2008, 17:12) *
а если , например, постоянку отловить хочется?

постоянку очень просто, любая схема защиты усилка даст Вам практическое решение и избавит от излишних геморойных проб.
Извините, в предыдущем посте навеяло на меня про включение режима mute в перерывах между композициями cranky.gif
Stanislav_S
Цитата(wired @ Jul 29 2008, 19:12) *
а если , например, постоянку отловить хочется?

Постоянку, если на выходе усилка, лучше сделать апаратно так намного надежней.
wired
Цитата(Stanislav_S @ Jul 29 2008, 18:29) *
Постоянку, если на выходе усилка, лучше сделать апаратно так намного надежней.

ктобьі спорил.
однако я так и не решил основной вопрос...
как загнать усилитель в стендбай минут через 5-10 после окончания музьікальной программьі.
неужели нет стандартного прверенного решения... может я велосипед изобретаю sad.gif
например:
детектор(диод - емкость) вход АЦП - следим за понижением уровня ниже некоторого порога.
Stanislav_S
Цитата(wired @ Jul 30 2008, 11:59) *
ктобьі спорил.
однако я так и не решил основной вопрос...
как загнать усилитель в стендбай минут через 5-10 после окончания музьікальной программьі.
неужели нет стандартного прверенного решения... может я велосипед изобретаю sad.gif
например:
детектор(диод - емкость) вход АЦП - следим за понижением уровня ниже некоторого порога.

Да нет тут велосипеда, только на входе ставте мостик, зачем вам пиковый детектор? Вам надо мерять все же среднее (действующиее) значение, поэтому ставте мостик + ФНЧ (хотя в принципе может и конденсатора хватит), ну а дальше понятно.
GDI
Конечно же велосипед.

Цитата
Выключатель сети с режимом "«sleep»"
А. ПЕТРОВ

Радиолюбитель, 2000, № 10, стр. 6
Сервисные устройства для УЗЧ. Схема бесконтактного коммутатора сети обеспечивает режим выключения через заданное время после пропадания сигнала.
Ищите этот номер, в сети наверняка есть.
Это первое что гугль нашел, а если порыться в старых номерах журналов Радио и т.п. то можно еще с десяток схем найти...

P.S. Кстати вот он этот номер http://www.ddrservice.info/download/Journa...00_10.djvu.html
wired
Цитата(GDI @ Jul 30 2008, 10:40) *
Конечно же велосипед.

Ищите этот номер, в сети наверняка есть.
Это первое что гугль нашел, а если порыться в старых номерах журналов Радио и т.п. то можно еще с десяток схем найти...

P.S. Кстати вот он этот номер http://www.ddrservice.info/download/Journa...00_10.djvu.html

жесть... cranky.gif
две платки
и главное на сАвецких детальках smile.gif
777777
Цитата(sKWO @ Jul 29 2008, 14:22) *
Как по-мне то у Вас присутствует только один интерес - сделать что-нибуть на контроллере и не более. Ваша задача легко решается на дискретных салдеповских элементах.


Каких, простите, элементах?

Сделать, конечно, можно, но я уверен что они займут места намного больше, чем ATtiny13
defunct
Цитата
как загнать усилитель в стендбай минут через 5-10 после окончания музьікальной программьі.

Схема:
Код
---С--+--R---+----[ADC T13]---> control pin
      R      C
      |      |
     GND    GND


Меряем, если непрерывно получаем значения ниже заданного порога на длительном отрезке - загнать в снендбай. В чем проблема-то собсно?. Отсекающий диод на входе T13 уже есть, нужно только подобрать C и R так чтобы ток протекащий через защитный диод в отрицательной полуволне не превышал 1ma.
wired
Цитата(defunct @ Jul 30 2008, 14:57) *
Схема:
Код
---С--+--R--+----[ADC]
      R      C
      |      |
    GND     GND


Меряем, если непрерывано получаем значения ниже заданного порога на длительном отрезке - загнать в снендбай. В чем проблема-то собсно?.

респект
особо проблем не вижу
но если почитать топик ...
sKWO
Цитата(777777 @ Jul 30 2008, 14:45) *
Каких, простите, элементах?
Сделать, конечно, можно, но я уверен что они займут места намного больше, чем ATtiny13

хотя бы по ссылке пройдите, которую выложил любезно GDI.
как по мне то с МК я бы не заморачивался, большого выиграша я не вижу а мороки , пускай не особой всё же будет. да и про ограничение в размерах автор топика ничего не говорил.
defunct
Цитата(sKWO @ Jul 30 2008, 17:57) *
как по мне то с МК я бы не заморачивался, большого выиграша я не вижу

Сходу 2 больших выигрыша:
1. Простота аппаратной части.
2. Гибкость изменения алгоритма работы без модификации аппаратной части.

Размер, потребление - доп. бонусы.

Цитата
а мороки , пускай не особой всё же будет.

Мороки в аппаратной части - практически 0.
В программной - кому как, я бы расценил написание такой программы как отдых.
sKWO
Цитата(defunct @ Jul 30 2008, 20:06) *
2. Гибкость изменения алгоритма работы без модификации аппаратной части.

А смысл в даной задаче для автора если есть готовое решение?

Цитата(defunct @ Jul 30 2008, 20:06) *
Размер, потребление - доп. бонусы.

Ограничений и таких требований небыло, извиняюсь что может быть повторюсь.

Цитата(defunct @ Jul 30 2008, 20:06) *
Мороки в аппаратной части - практически 0.

Это есть.

Цитата
В программной - кому как, я бы расценил написание такой программы как отдых.

Я в этом ине сомневаюсь.

Цитата
Простота аппаратной части.

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

Конечно же исходя из здешних обсуждений я бы сделал с помощью контроллера, просто как для кого.
wired
Цитата(sKWO @ Jul 30 2008, 17:57) *
хотя бы по ссылке пройдите, которую выложил любезно GDI.
как по мне то с МК я бы не заморачивался, большого выиграша я не вижу а мороки , пускай не особой всё же будет. да и про ограничение в размерах автор топика ничего не говорил.

мое отношения к схеме по ссьілке я уже вьісказал, с МК заморачиваюсь именно от того , что уже есть готовьій девайс с управлением на МК, задача добавить "малой кровью" доп. функционал.
Более того, если бьі меня интересовала реализация єтого функционала на "савдєповских" елементах, очевидно вопрос я бьі задавал в соотвествующем разделе форума, и соотвественно указал бьі тему.
С тезисами, озвученньіми defunct, согласен на 100%.
GDI
Никто не мешает заменить "савдеповские" элементы на иностранные или применить от тех старых схем только входную часть, а саму логику сделать на МК, либо вообще взять оттуда только идею и ее реализовать чисто программным способом. Вариантов масса и выбрать один можете только Вы, потому что нам неизвестны ни назначение вашего девайса, ни загрузка контроллера, ни схемотехника...
wired
Цитата(GDI @ Jul 31 2008, 10:13) *
Никто не мешает заменить "савдеповские" элементы на иностранные или применить от тех старых схем только входную часть, а саму логику сделать на МК, либо вообще взять оттуда только идею и ее реализовать чисто программным способом.

тьі совершенно прав, и за ссьілку спасибо... наверное я бьіл слишком резок всвоей оценке, извини.
Но, мне всегода бьіло интересно, почему одни люди на форуме могут сразу дать решение, идею, направить в нужном направлении (в хорошем смьісле smile.gif ) другие начинают говорить о...
Цитата(GDI @ Jul 31 2008, 10:13) *
Вариантов масса и выбрать один можете только Вы, потому что нам неизвестны ни назначение вашего девайса, ни загрузка контроллера, ни схемотехника...

хотя єто все лирика и явньій оффтопик.
sKWO
Цитата(wired @ Jul 31 2008, 10:23) *
хотя єто все лирика и явньій оффтопик.

В следующий раз можете задать вопрос здесь, ну а форум для телепатов поищите, найдёте, задавайте вопрос, угадают - хорошо, неугадают - стоит задуматься.
А как же всё упростилось если бы Вы спросили примерно так:
Цитата
Народ, подскажите как сделать так, что-бы усилитель отключался с помощью контроллера когда нету звукового сигнала. Просто необходимо дополнить функциональность уже имеещегося блока управления на МК в усилителе. Поскольку МК занят своими задачами прошу совета по методу уводящего усил в стенд бай наименьшими затратами. Аппаратная часть уже готова (неготова, готова неполностью), но есть разъём для подключения внешних дополнительных устройств.

топик занял-бы не более страницы.
просто участвовать в конкурсе телепатов - авось- не приносит удовольствия, поверьте, да и тратить своё личное время тем более.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.