Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Генерация DTMF - требуется помощь.
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Checker
Возникла проблема и требуется помощь.

Генерю DTMF. Шим - 16 кГц.
На выходе обыкновенный RC- фильтр и спектроанализатор.
Получаю такую фигню - уровень разностной частоты на 30-35 дб меньше основных частот и детектор с большой вероятностью сбивается, принимая другую цифру.
Например передаю символ "D", частоты 941/1633, принмаю "A", частоты 697/1633.
Т.е разностная частота 1633-941 в декодере уверенно принимается!.

Че делать и как бороться. Бошка уже не варит...
Make_Pic
Цитата(Checker @ Nov 3 2005, 08:16)
Возникла проблема и требуется помощь.

Генерю DTMF. Шим - 16 кГц.
На выходе обыкновенный RC- фильтр и спектроанализатор.
Получаю такую фигню - уровень разностной частоты на 30-35 дб меньше основных частот и детектор с большой вероятностью сбивается, принимая другую цифру.
Например передаю символ "D", частоты 941/1633, принмаю "A", частоты 697/1633.
Т.е разностная частота 1633-941 в декодере уверенно принимается!.

Че делать и как бороться. Бошка уже не варит...
*

Причем тут разностная частота??? - Проблема в уровне шумов (конкретно нелинейные искажения/гармоники), что требует современный стандарт - где-то -33дБ. Дык вот - 16 кГц маловато для ШИМ. Мы делали 32кГц. Второе - простой RC фильтр не пройдет, нужно 3/4-й порядок. В принципе все это считается, если задаться уровнем шума. Да еще, если вы не корректно формируете частоты, то у вас еще появится джиттер, который только усугубит проблему.
Вдогонку, а вы у нижней группы частот на 3дБ понижаете уровень?
Checker
Цитата(Make_Pic @ Nov 3 2005, 13:28)
Причем тут разностная частота??? -

Ну так 1633-941 = 693 Гц и она попадает как раз та низшую тональную частоту. В спектрее ее хорошо видно. Я подумал, что именно из-за этого и происходит сбой в декодере. С другой стороны непонятно то, как такая частота могла возникнуть. Это возможно только при нелинейных преобразованиях. И где это - я не могу найти.
sad.gif
Цитата(Make_Pic @ Nov 3 2005, 13:28)
Проблема в уровне шумов (конкретно нелинейные искажения/гармоники), что требует современный стандарт - где-то -33дБ. Дык вот - 16 кГц маловато для ШИМ. Мы делали 32кГц.

Уровень этой гармоники как раз вроде вписывается в допуск 30 дб. Как бы еще удавить... Попробую 32 кГц сделать.

Цитата(Make_Pic @ Nov 3 2005, 13:28)
Второе - простой RC фильтр не пройдет, нужно 3/4-й порядок.

Так фильтр в корне не изменит ситуации, потому как помеховая частота находится как раз на месте тональной ... sad.gif
Если бы помеха была за полосой 697-1633 Гц, тогда - согласен...

Цитата(Make_Pic @ Nov 3 2005, 13:28)
В принципе все это считается, если задаться уровнем шума. Да еще, если вы не корректно формируете частоты, то у вас еще появится джиттер, который только усугубит проблему.

Это чуть подробнее...

Цитата(Make_Pic @ Nov 3 2005, 13:28)
Вдогонку, а вы у нижней группы частот на 3дБ понижаете уровень?

Да. Обязательно. Без этого намного хуже..
G}{OST
А PCD3312C поставить? Или мы не ищем лёгких путей? wink.gif
Checker
Цитата(G}{OST @ Nov 3 2005, 14:44)
А PCD3312C поставить? Или мы не ищем лёгких путей?  wink.gif
*

Увы, я заказчику предлагал несколько вариантов, но прошел только этот.
В основном по причине габаритов-стоимости.
G}{OST
Цитата(Checker @ Nov 3 2005, 12:57)
Цитата(G}{OST @ Nov 3 2005, 14:44)
А PCD3312C поставить? Или мы не ищем лёгких путей?  wink.gif
*

Увы, я заказчику предлагал несколько вариантов, но прошел только этот.
В основном по причине габаритов-стоимости.
*


Неужто 8-выводный корпус за 40 рублей так сильно увеличивает габариты и стоимость? Ну что ж, раз взялся за гуж... huh.gif
Checker
Цитата(G}{OST @ Nov 3 2005, 15:08)
Неужто 8-выводный корпус за 40 рублей так сильно увеличивает габариты и стоимость? Ну что ж, раз взялся за гуж...    huh.gif


Эх. Зато мороки добавляет.... smile.gif

Сделал ШИМ 32 кГц. Прикрутил более-менее НЧ фильтр.
Ничего не изменилось. Ну вообще ничего.
Перепроверил алгоритм. По отдельности верхний и нижний тоны генерятся идеально.

Может кто-что еще присоветует? Годятся любые идеи и гипотезы, вплоть до "возможности детектирования сигналов на нелинейностях входных характеристик" .. smile.gif
Не ужели никто не сталкивался с такими граблями?
G}{OST
Цитата(Checker @ Nov 3 2005, 15:03)
Цитата(G}{OST @ Nov 3 2005, 15:08)
Неужто 8-выводный корпус за 40 рублей так сильно увеличивает габариты и стоимость? Ну что ж, раз взялся за гуж...    huh.gif

Эх. Зато мороки добавляет.... smile.gif
*


Мороку я сейчас наблюдаю laugh.gif
Make_Pic
Цитата(G}{OST @ Nov 3 2005, 11:44)
А PCD3312C поставить? Или мы не ищем лёгких путей?  wink.gif
*

Умерла она, если серия, то лучше HT9200
Make_Pic
>Проблема в уровне шумов (конкретно нелинейные искажения/гармоники), >что требует современный стандарт - где-то -33дБ. Дык вот - 16 кГц маловато >для ШИМ. Мы делали 32кГц.
>>Уровень этой гармоники как раз вроде вписывается в допуск 30 дб. Как >бы еще удавить... Попробую 32 кГц сделать.
Вообще то уровень мерится суммарный всех соотовляющих акромя двух основных тональных частот. Можно еще померить нелинейные искажения основных частот - по памяти должны укладываться в 1,8%
>Так фильтр в корне не изменит ситуации, потому как помеховая частота >находится как раз на месте тональной ... sad.gif
>Если бы помеха была за полосой 697-1633 Гц, тогда - согласен...

>>В принципе все это считается, если задаться уровнем шума. Да еще, если >>вы не корректно формируете частоты, то у вас еще появится джиттер, >>который только усугубит проблему.
>Это чуть подробнее...
Выдавать в ЦАП вы дожны через временной интервал = cost. Дрожжание фазы или джиттер может привести к похожим проблемам.
Еще одна подсказка: когда суммируете две частоты в цифре - значение нигде не переполняется? wink.gif
И наконец последний совет - чем детектируете DTMF - может в декодере проблема? Возможна проблема у вас из за большого уровня на входе DTMF приемника. По ОСТ для первой группы уровень -6 +/- 2 дБ для второй -3 +/- 2 дБ.
Checker
Цитата(Make_Pic @ Nov 3 2005, 19:55) *
Вообще то уровень мерится суммарный всех соотовляющих акромя двух основных тональных частот. Можно еще померить нелинейные искажения основных частот - по памяти должны укладываться в 1,8%

Мда. Померить нелинейные искажения я пожалуй не смогу. Таких приборов у меня нет. Только с помощью глазомера. biggrin.gif

Цитата
Выдавать в ЦАП вы дожны через временной интервал = cost. Дрожжание фазы или джиттер может привести к похожим проблемам.
Еще одна подсказка: когда суммируете две частоты в цифре - значение нигде не переполняется? wink.gif

Ну с этим полный порядок. Все, что от меня зависило, как от от программиста.

Цитата
И наконец последний совет - чем детектируете DTMF - может в декодере проблема? Возможна проблема у вас из за большого уровня на входе DTMF приемника. По ОСТ для первой группы уровень -6 +/- 2 дБ для второй -3 +/- 2 дБ.

Угу, спасибо. Проверю.

На выходных сделал двух-канальный вариант. Тоны генерятся на разных лапках. Далее стоит (опять же) простейший 2-х каскадный ФНЧ. В результате - помеха меньше. Но сбои проходят. Похоже придется брать в руки паяльник и городить сложные фильтры на выходе процессора. sad.gif
Кто может чего подсказать. Если цифровой фильтр я могу посчитать и реализовать на АВР, то в аналоговой фильтрации я полный чайник. sad.gif Может надо полосовые фильтры городить?
_artem_
Da dumayu ti chtoto namudril v tom meste gde chastoty skladivayutsya .
Vmesto skladivaniya u tebja peremnozenie ili chtoto tomu podobnoe poluchaetsya otsyuda i A vmesto D gde niznyaya chastota v vide raznici proxodit . Sluchayno perepolneniya (PWM counter value)ne proisxodit pri skladivanii? Ili ze vernie li chastoty skladivaes?

Sluchayno ne otsyuda kopirues :
AVR314: DTMF Generator (8 pages, revision B, updated 5/02)
This Application Note describes how DTMF (Dual-Tone Multiple Frequencies) signaling can be implemented using any AVR microcontroller with PWM and SRAM.
http://www.atmel.com/dyn/resources/prod_do...nts/DOC1982.PDF
http://www.atmel.com/dyn/resources/prod_documents/AVR314.zip
Checker
Цитата(_artem_ @ Nov 7 2005, 21:20) *
Vmesto skladivaniya u tebja peremnozenie ili chtoto tomu podobnoe poluchaetsya otsyuda i A vmesto D gde niznyaya chastota v vide raznici proxodit . Sluchayno perepolneniya (PWM counter value)ne proisxodit pri skladivanii? Ili ze vernie li chastoty skladivaes?

Проверил. Переполнения нет. Специально уменьшал амплитуды. Частоты по отдельности вполне нормальные. Но умножение или какая-то непонятная вещь все же происходит. Может ли такой эффект
происходить если выход АВР-ки нагружен на простую RC-цепь (5кОм-47н)? Без буферных усилителей.

Цитата
Sluchayno ne otsyuda kopirues :
AVR314: DTMF Generator (8 pages, revision B, updated 5/02)

Это посмотрел. Открытий для себя не сделал. Вроде даже похоже.
sad.gif
Make_Pic
>>Проверил. Переполнения нет. Специально уменьшал амплитуды. Частоты по отдельности вполне
>>нормальные. Но умножение или какая-то непонятная вещь все же происходит. Может ли такой
>>эффектпроисходить если выход АВР-ки нагружен на простую RC-цепь (5кОм-47н)? Без буферных
>>усилителей.

Честно говоря уже немного утомил. Последний раз - это RC цепь делает перекос частот, т.к. частота среза 700 ГЦ! Нужно срез делать на частоте 1700 - 2000 Гц. И видимо уровни у тебя от фонаря! Говорю ведь - померь уровни: например для цифры 1 уровень частоты 697Гц - 0.39В и 1209Гц - 0.55
В
vlader
А уменя на AVR c ШИМом 14 кГц и RC цепью все работает. Если интересно могу дать свой вариант проги.
proba
Цитата
Получаю такую фигню - уровень разностной частоты на 30-35 дб меньше основных частот и детектор с большой вероятностью сбивается, принимая другую цифру.
Например передаю символ "D", частоты 941/1633, принмаю "A", частоты 697/1633.

если разностной сигнал на 30db менше основного то DTMF декодер не должен реагировать, уже разница 6db в амплитуде high i low frequency должен быть игнорирован.
PWM должен быть phase -correct иначе фазовые искажения .
vlader
proba
Речь идет о уровне разностной частоты, а не о разнице уровней частот.

Checker
А может декодер глючит или частота выборки не совпадает с частотой ШИМа, или в таблице синуса что-то не так, вариантов много. А фильтры там шибко и не влияют, я уже говорил что у меня RC цепь (33кОм и 10нФ), правда частоту ШИМа соврал, сейчас посмотрел - 8 кГц, и ничего все довольны, станции все понимают по ИПН-2 (прибор такой для проверки тонального набора телефонов) все проходит.
Make_Pic
Цитата(vlader @ Dec 1 2005, 08:25) *
proba
Речь идет о уровне разностной частоты, а не о разнице уровней частот.

Checker
А может декодер глючит или частота выборки не совпадает с частотой ШИМа, или в таблице синуса что-то не так, вариантов много. А фильтры там шибко и не влияют, я уже говорил что у меня RC цепь (33кОм и 10нФ), правда частоту ШИМа соврал, сейчас посмотрел - 8 кГц, и ничего все довольны, станции все понимают по ИПН-2 (прибор такой для проверки тонального набора телефонов) все проходит.


Доброе утро страна! Ну и шутник ты однако! Мне отвечаешь, что уровень помех в норме, а применил 8кГц ШИМ и простой RC фильтр, так ты не то что уровень помех не выполнишь, но получишь в выходном сигнале богатейший спектр! Чем мерил уровень помех, случайно не ИПН-2? smile.gif
vlader
Make_Pic
Дык, я про свои помехи ничего и не говорил, я только сказал что станции и ИПН-2 меня прекрасно понимают. Это Checker все помехи мерит.
ESN
Цитата(Make_Pic @ Nov 3 2005, 10:28) *
- Проблема в уровне шумов (конкретно нелинейные искажения/гармоники), что требует современный стандарт - где-то -33дБ. Дык вот - 16 кГц маловато для ШИМ. Мы делали 32кГц. Второе - простой RC фильтр не пройдет, нужно 3/4-й порядок.

Добрый день. Вы делали контрольно-измерительную аппаратуру или обычный телефон? При ШИМе в 32кГц синусоида частотой 1633Гц будет строится по 20 точкам(выборкам), а сигналы более низкой частоты и того больше. Нет ли здесь избыточности? В справочнике "Интегральные микросхемы" издательство "Додека" приводятся картинки с сигналами частот DTMF, которые выдают номеронабиратели(UM91531,UM1260,UM1261): там (стр.57,64) количество выборок равно 10. Хочу повторить номеронабтратель КР1008ВЖ27 на Attiny2313, но чтобы "влезть" по энергопотреблению нужно частоту поделить на 4 и сделать ШИМ 6-разрядным. Тогда синус 1477Гц (1633Гц у этого номеронабирателя нет) "нарисуется ШИМом по 9,5 точкам. Вроде, должны получиться характеристики, как у серийных номеронабирателей...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.