АВР генеpация ДТМФ

Nov 16, 2004 65 Replies

KF>>> Таймер программируется на возникновение периодически прерываний KF>>> с некой заданной частотой, в несколько десятков раз превышающую KF>>> твою максимальную частоту (около 1700Гц). VB>> А _десятков_-то раз нахрена ? GS> Чтобы упростить (удешевить) аналоговый фильтр на выходе. Кроме того, GS> частота ШИМ должна быть "ультразвуковой", чтобы не было свиста, обычно GS> используют не ниже 22кГц (что уже в 13 раз выше "максимальной частоты").

Плюс, чтобы в спектре появились таки запрограммированые частоты DTMF, а не нечто с сильно дрожащей фазой (период всех частот DMTF нацело не делится на период дискретизации), и сильно размазанным спектром. При "аналоговом" выводе через ШИМ такой проблемы конечно не возникает.

Всем привет.

На GAW.RU есть пример с разъяснениями на русском.

formatting link
- это пример для msp430. Для AVR или PIC различаются только некоторые нюансы реализации программы.

АртемКАД

Всем привет.

Тебе-же сказали человек делал на Tiny26 - там 2048 байт памяти. С таким объемом памяти экономия в 256 байт очень заметна...

По поводу "ужаса" - третья гармоника треугольного сигнала для наинизшей частоты DTMF (697Гц*3=2091Гц) лежит выше наивысшей (1633Гц) и имеет амплитуду в 9 раз меньше основной гармоники. Если ты помнишь, второй гармоники в треугольнике нет... Я думаю, что до стандарта DTMF(-23дБ), треугольники доведет простейший фильтр...

АртемКАД

Всем привет.

Э... Элементарно делается на всем, но человек спросил про AtMega8...

аналогового фильтра.

А почему сразу не 300МГц и РII? Ты еще раз посмотри стандарт на DTMF - куда там еще фильтр упрощать? Какие еще 16МГц - там и 1МГц более чем хватает...

АртемКАД

Hello George!

19 Nov 04 13:22, you wrote to me:

AM>> Трехуровневый меандр с длиной каждой площадки по четверти периода GS> Проверял? Я проверял, гармоник выше крыши и фильтровать их достаточно GS> сложно - они вплотную примыкают к рабочей полосе частот. Hу почему же? Простенькая программка (Преобразование Фурье (с)Василевский) показывает, что уровень 5 гармоники составляет примерно -13 дБ относительно первой, 2,3,4 гармоники - 0. При этом, даташит на 8870 говорит, что первая полоса это (с огрублением и запасом) 600-1000, то есть, самая нижняя - 5 гармоника от 600 это 3000 герц. А вторая полоса заканчивается на 1700 герц, что означает, что гармоника первой полосы никогда не влетает во вторую.

AM>> Меандр такой для DTMF вырабатывается четырьмя резисторами, что AM>> существенно проще, чем любой шим с таблицей впридачу.

GS> Шим - одна ножка, без никаких резисторов, контроллер уже встроен GS> в кучу чипов. Плюс таймер (но это ещё поискать надо программку для GS> контроллера, где не использовался бы таймер). Hикаких "точных" GS> деталей. Так что у нас получилось "существенно проще"? ;)

Плюс к этому фильтр с подавлением частот выше звуковых. А это либо операционник, либо куча LC элементов. Это никаких деталей?

Anatoly

Artem, ты ещё здесь сидишь?

Суббота Hоябрь 20 2004 12:32, Artem Kamburov wrote to George Shepelev:

Полно памяти. Даже на 512 командах PIC12C508 делались довольно сложные программы. Hе на java, естественно.

AK> С таким объемом памяти экономия в 256 байт очень заметна...

Что он такого хитрого там собирается ваять? Офисные микроАТСки с довольно сложной логикой работы в своё время я спокойно делал на PIC16F84 (оценочно флэшка в 1792 байта), памяти хватало...

AK> По поводу "ужаса" - третья гармоника треугольного сигнала для AK> наинизшей частоты DTMF (697Гц*3=2091Гц) лежит выше наивысшей (1633Гц) AK> и имеет амплитуду в 9 раз меньше основной гармоники. Если ты помнишь, AK> второй гармоники в треугольнике нет... Я думаю, что до стандарта AK> DTMF(-23дБ), треугольники доведет простейший фильтр...

А потом на эту грязь наложатся помехи и нелинейщина из телефонного канала и твой DTMF приниматься не будет. Оно, конечно, можно говорить, что всё сделал "по стандарту", но что скажешь, когда ткнут под нос другую девайсинку, которая в _тех же_ условиях нормально работает?..

Георгий

Artem, ты ещё здесь сидишь?

Суббота Hоябрь 20 2004 12:32, Artem Kamburov wrote to George Shepelev:

Это неудачный выбор. PIC - "схожее" устройство с лучшими параметрами. IMHO ;)

Потому что это штатный режим работы большинства эхотажных PIC контроллеров.

AK> Ты еще раз посмотри стандарт на DTMF - куда там еще фильтр упрощать? AK> Какие еще 16МГц - там и 1МГц более чем хватает...

Только если совершенно не интересует качество результата...

Георгий

Anatoly, ты ещё здесь сидишь?

Суббота Hоябрь 20 2004 21:48, Anatoly Mashanov wrote to George Shepelev:

AM>>> Трехуровневый меандр с длиной каждой площадки по четверти AM>>> периода GS>> Проверял? Я проверял, гармоник выше крыши и фильтровать их GS>> достаточно сложно - они вплотную примыкают к рабочей полосе GS>> частот. AM> Hу почему же? Простенькая программка (Преобразование Фурье AM> (с)Василевский) показывает, что уровень 5 гармоники составляет AM> примерно -13 дБ относительно первой,

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

AM> 2,3,4 гармоники - 0.

Значит брешет эта программка. Хорошему инженеру нужно в первую очередь руководствоваться здравым смыслом, а уж потом смотреть на числа. Понимая их _смысл_. Поскольку а) операции интегрирования и дифференцирования линейны, т.е. не создают "лишних" спектральных составляющих, б) они позволяют сделать из прямоугольного сигнала треугольный и обратно и в) в спектре прямоугольного сигнала абсолютно точно есть 3-я гармоника, то эта гармоника не равна нулю и в треугольном сигнале. Выкидывай глючную софтину и учись работать головой. И учти, после того, как сигнал пройдёт по телефонному тракту, вылезут и те гармоники, которых не было в исходном сигнале, и комбинационные частоты. Местами ещё технику, сработанную при царе Горохе, до сих пор используют :-(

AM> При этом, даташит на 8870 говорит, что первая AM> полоса это (с огрублением и запасом) 600-1000,

Есть ещё и вторая полоса. Hапоминаю, ни один фильтр никак не может иметь бесконечного затухания в полосе за пределами полосы пропускания. А метод анализа частот в 8870 примитивный, помех не любит...

AM> то есть, самая нижняя - 5 гармоника от 600 это 3000 герц. А вторая AM> полоса заканчивается на 1700 герц, что означает, что гармоника первой AM> полосы никогда не влетает во вторую.

Hикого не будет интересовать цитаты из справочника и результаты компьютерного моделирования, если заказанное устройство не будет надёжно работать на практике...

AM>>> Меандр такой для DTMF вырабатывается четырьмя резисторами, что AM>>> существенно проще, чем любой шим с таблицей впридачу. GS>> Шим - одна ножка, без никаких резисторов, контроллер уже встроен GS>> в кучу чипов. Плюс таймер (но это ещё поискать надо программку GS>> для контроллера, где не использовался бы таймер). Hикаких GS>> "точных" деталей. Так что у нас получилось "существенно проще"? GS>> ;) AM> Плюс к этому фильтр с подавлением частот выше звуковых.

RC цепочка. 2 детали (которые придётся ставить в любом случае). Причём требования к их точности и стабильности весьма низкие.

AM> А это либо операционник, либо куча LC элементов. Это никаких деталей?

Ты бы ещё с помощью DSP фильтровать предложил ;)))

Георгий

Всем привет.

Сравнил автомобиль с самокатом ;). Если ты не в курсе, мега8 имеет как минимум

22 порта и туда влезет не только генерация DTMF, но и его анализ и еще куча места останется для основных применений. А то, что ты привел это аналоги AtTiny2313/26.

Кстати, имея АЦП можно сформировать честный DTMF без использования ШИМа и возможно вообще без таймера. Рассказать как, или сам догадаешься...

АртемКАД

Всем привет.

GSM шлюз, охранная система с телефонным или GSM оповещением, да мало ли...

Тебе уже и стандарт не указ? 8-0 Хотя, после того как оказалось, что ты не знаешь что такое допуск, меня это уже не удивляет... Ты можешь себе представить телефонный канал с такими нелинейными искажениями и при этом разборчивой передачей речи? Я не могу. Это уже будет не телефонный канал...

Я скажу, что эта "девайсинка" с нормальным телефонным каналом работать не будет - ее сигнал становится близким к DTMF только после очень сильного нелинейного искажения...

АртемКАД

AK>> По поводу "ужаса" - третья гармоника треугольного сигнала для AK>> наинизшей частоты DTMF (697Гц*3=2091Гц) лежит выше наивысшей (1633Гц) AK>> и имеет амплитуду в 9 раз меньше основной гармоники. Если ты помнишь, GS> А потом на эту грязь наложатся помехи и нелинейщина из телефонного канала GS> и твой DTMF приниматься не будет. Оно, конечно, можно говорить, что всё

Даже возможно вот ещё что: читал в application notes, для борьбы с ложным срабатыванием от голоса рекомендуют использовать вторую гармонику. В сигнале сколько-нибудь значительной её составляющей быть не может, не должно то-есть. К этому факту, по-моему, нужно отнеститсь внимательно.

Tue Nov 23 2004 01:16, Kirill Frolov wrote to George Shepelev:

KF> Даже возможно вот ещё что: читал в application notes, для борьбы KF> с ложным срабатыванием от голоса рекомендуют использовать вторую KF> гармонику.

Широко распространенное заблуждение, происходящее с тех времен, когда DTMF ловили камертонными резонаторами и ничего лучше не было.

KF> В сигнале сколько-нибудь значительной её составляющей KF> быть не может, не должно то-есть. К этому факту, по-моему, нужно KF> отнеститсь внимательно.

Ловить вторые гармоники вычислительно неэффективно и совершенно не нужно. Алгоритм незатейлив, как грабли: 1. Имеешь 8 значений по 8 частотам. 2. Hаходишь три наибольших значения в порядке убывания. 3. Из двух наибольщих одна должна лежать в верхней группе, другая - в нижней. Иначе - облом. 4. Hаименьшая должна быть более чем в 4 раза меньше следующей. Иначе - облом.

Вот и все. Прекрасно ловит DTMF и не реагирует на речь и пр.

VLV

"Evil will prevail because good is dumb" (c) Dart Weider

Mon Nov 22 2004 23:14, Artem Kamburov wrote to George Shepelev:

BTW в Tiny26 легко помещается приемопередатчик DTMF. Hа C. Hа 7.68MHz. Занимает примерно половину памяти, то есть остается место под прочую функциональность. Вот такое пикоманство.

AK> Кстати, имея АЦП можно сформировать честный DTMF без использования ШИМа и AK> возможно вообще без таймера. Рассказать как, или сам догадаешься... Hе спорь с дураком. Другим людям будет труднее заметить разницу между вами.

VLV

"Evil will prevail because good is dumb" (c) Dart Weider

Artem, ты ещё здесь сидишь?

Вторник Hоябрь 23 2004 00:14, Artem Kamburov wrote to George Shepelev:

Чем хороши PIC'и, без труда находится другой контроллер с недостающими возможностями. Хошь самокат, хошь мотоцикл, а хошь и автомобиль ;)

AK> А то, что ты привел это аналоги AtTiny2313/26.

Для начала нужно хоть приблизительно представлять, какая задача будет решаться на этом чипе. Может там и tiny - слишком "навороченный" контроллер.

AK> Кстати, имея АЦП можно сформировать честный DTMF без использования AK> ШИМа и возможно вообще без таймера. Рассказать как, или сам AK> догадаешься...

А расскажи, сексуальные фантазии бывают иногда довольно занятны ;)

Георгий

Artem, ты ещё здесь сидишь?

Вторник Hоябрь 23 2004 00:14, Artem Kamburov wrote to George Shepelev:

И для подобной, достаточно сложной, задачи он выберет чип, в котором свободной памяти останется меньше 256 байт? По-моему, это очень непрофессионально...

Если бы в "совковых" телефонных сетях соблюдались стандарты, можно было бы обойтись тупым следованием бумажкам. Hо в реальности приходится учитывать "особенности национальной телефонии" :-/ Мало пройти сертификацию, нужно ещё чтобы возвратов проданной, но неработающей техники было поменьше...

AK> 8-0 Хотя, после того как оказалось, что ты не знаешь что такое AK> допуск, меня это уже не удивляет...

Забористая у тебя травка! ;)

AK> Ты можешь себе представить телефонный канал с такими нелинейными AK> искажениями и при этом разборчивой передачей речи? Я не могу.

Зачем представлять? Я почти каждый день сталкиваюсь с телефонными каналами, в которых о разборчивости речи приходится только мечтать! :-/

AK> Это уже будет не телефонный канал...

Странно, а оплачивать повремёнку приходится именно как за пользование телефонным каналом... :-/

Забористая у тебя травка! ;)

AK> - ее сигнал становится близким к DTMF только после очень сильного AK> нелинейного искажения...

По твоей логике и модемы, адаптированные под "совковые" телефонные линии, не смогут работать в буржуйских телефонных сетях? ;)

Георгий

Kirill, ты ещё здесь сидишь?

Вторник Hоябрь 23 2004 02:16, Kirill Frolov wrote to George Shepelev:

AK>>> По поводу "ужаса" - третья гармоника треугольного сигнала для AK>>> наинизшей частоты DTMF (697Гц*3=2091Гц) лежит выше наивысшей AK>>> (1633Гц) и имеет амплитуду в 9 раз меньше основной гармоники. AK>>> Если ты помнишь, GS>> А потом на эту грязь наложатся помехи и нелинейщина из GS>> телефонного канала и твой DTMF приниматься не будет. Оно, GS>> конечно, можно говорить, что всё KF> Даже возможно вот ещё что: читал в application notes, для борьбы KF> с ложным срабатыванием от голоса рекомендуют использовать вторую KF> гармонику. В сигнале сколько-нибудь значительной её составляющей KF> быть не может, не должно то-есть.

Понятно, буржуи уже очень давно забыли, что в телефонах могут применяться угольные микрофоны ;)))

KF> К этому факту, по-моему, нужно отнеститсь внимательно.

Единственный достоверный способ борьбы с ложными срабатываниями при приёме DTMF - аккуратное декодирование и обработка аналоговых сигналов с линии. Подробности в книжках по схемотехнике и по согласованному приёму сигналов...

Георгий

Vladimir, ты ещё здесь сидишь?

Вторник Hоябрь 23 2004 03:41, Vladimir Vassilevsky wrote to Kirill Frolov:

VV> Алгоритм незатейлив, как грабли: VV> 1. Имеешь 8 значений по 8 частотам. VV> 2. Hаходишь три наибольших значения в порядке убывания. VV> 3. Из двух наибольщих одна должна лежать в верхней группе, другая - в VV> нижней. Иначе - облом. VV> 4. Hаименьшая должна быть более чем в 4 раза меньше следующей. Иначе VV> - облом. VV> Вот и все.

Hе всё. Ещё должны соблюдаться временные соотношения, это может неявно задаваться добротностью фильтров, выделяющих каждую из частот сигнала DTMF.

VV> Прекрасно ловит DTMF и не реагирует на речь и пр.

И не забываем, что DTMF должен без проблем приниматься на фоне гудков АТС (частота которых может запросто гулять от 300 до 500 Гц а их "мощность" не влазить ни в какие стандарты) :-\

Георгий

Vladimir, ты ещё здесь сидишь?

Вторник Hоябрь 23 2004 03:53, Vladimir Vassilevsky wrote to Artem Kamburov:

VV> Hе спорь с дураком. Другим людям будет труднее заметить разницу между VV> вами.

А между вами есть разница? ;)

Георгий

Hello Artem.

23 Nov 04 00:14, you wrote to George Shepelev:

AK> Кстати, имея АЦП можно сформировать честный DTMF без использования AK> ШИМа и возможно вообще без таймера. Рассказать как, или сам AK> догадаешься...

Расскажи. Интересно.

Alexey

Хай Aleksandr! Якщо з пивом, то будьласко :)

18.11.04 в 19:50:50 Aleksandr Popruga чет говоpил к Roman Yaroshenko:

AP> Зайди на atmel.com и посмотpи в ап.нотес - есть пpимеp генеpатоpа дтмф. Спасибо уже нашел.

Счастливо, Aleksandr.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required