Например TDA7294

Форум РадиоКот • Просмотр темы - программирование микроконтроллеров AVR для АОНа
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Вс июл 27, 2025 21:33:29

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Форум закрыт Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 10 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: программирование микроконтроллеров AVR для АОНа
СообщениеДобавлено: Пн май 18, 2009 15:11:11 
Родился

Зарегистрирован: Вс май 17, 2009 12:51:42
Сообщений: 3
Рейтинг сообщения: 0
имеется dtmf-сигнал состоящий из 2 частот, как на микроконтроллере обрабатывать его, чтобы получить передаваемую цифру


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пн май 18, 2009 17:27:43 
Сверлит текстолит когтями
Аватар пользователя

Карма: 13
Рейтинг сообщений: 41
Зарегистрирован: Пн окт 13, 2008 11:45:54
Сообщений: 1287
Откуда: РФ, Крым, г.Бахчисарай
Рейтинг сообщения: 0
Лучше аппаратно (MT8870, КР1008ВЖ18, HT9170 или аналоги)
Например так: http://www.infidigm.net/projects/dtmf2/

Если есть желание повозится с програмным - пожалуйста файлик.
Проект правда на PIC, но это не главное, главное теория.


Вложения:
Комментарий к файлу: програмное декодирование DTMF
DTMF.zip [99.49 KiB]
Скачиваний: 899
Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт май 19, 2009 11:46:50 
Сверлит текстолит когтями
Аватар пользователя

Карма: 13
Рейтинг сообщений: 41
Зарегистрирован: Пн окт 13, 2008 11:45:54
Сообщений: 1287
Откуда: РФ, Крым, г.Бахчисарай
Рейтинг сообщения: 0
Моя реализация аппаратного декодирования DTMF с телефонной линии.


Вложения:
Комментарий к файлу: схема
DTMF.GIF [86.74 KiB]
Скачиваний: 1842
Комментарий к файлу: декодер на MT8870 (CVAVR)
DTMF-decoder_(MT8870_tiny2313_9LED)_v.2.0.zip [212.13 KiB]
Скачиваний: 873
Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт май 19, 2009 21:44:55 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 4
Рейтинг сообщений: 26
Зарегистрирован: Ср сен 17, 2008 14:32:15
Сообщений: 2106
Откуда: Старые Васюки
Рейтинг сообщения: 0
Если речь всё же об АОНе, а не о DTMF, то 8870 не канает – тут только "ручками, ручками". ДПФ надо писать, желательно на асме. Плюс парсинг и пересборка пакета, ну это самое простое.
Я в своё время частично воспользовался для этого исходниками АОНа на Z80, свободно валяющимися в сети.

_________________
Даже остановленные часы два раза в сутки показывают правильное время.


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс май 24, 2009 19:46:10 
Опытный кот
Аватар пользователя

Зарегистрирован: Сб янв 05, 2008 11:05:15
Сообщений: 849
Откуда: Україна м.Луцьк
Рейтинг сообщения: 0
Здравствуйте. У меня вопрос именно по DTMF и MT8870. Нужно написать программку которая будет декодировать DTMF сигнал и потом управлять внешней нагрузкой. На вход будет приходить 2 команды:
Код:
0b43 - Включить нагрузку;
34b0 - Выключить нагрузку.

Для работы за основу взял исходник Danko. Меня интересует что будет хранится в переменной cod_DTMF при подача каждой с команд?

_________________
Я не Сашок!!!


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пн май 25, 2009 09:54:48 
Сверлит текстолит когтями
Аватар пользователя

Карма: 13
Рейтинг сообщений: 41
Зарегистрирован: Пн окт 13, 2008 11:45:54
Сообщений: 1287
Откуда: РФ, Крым, г.Бахчисарай
Рейтинг сообщения: 0
sachok писал(а):
Danko. Меня интересует что будет хранится в переменной cod_DTMF при подача каждой с команд?

То что возвращает MT8870.

p.s.
у MT8870 ноль это не 0x00, а 0x0A более детально в таблице


Вложения:
Комментарий к файлу: Страничка из Даташит
MT8870.jpg [135.6 KiB]
Скачиваний: 1036
Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пн май 25, 2009 15:10:05 
Опытный кот
Аватар пользователя

Зарегистрирован: Сб янв 05, 2008 11:05:15
Сообщений: 849
Откуда: Україна м.Луцьк
Рейтинг сообщения: 0
Тогда следующий вопрос такой: МТ8870 декодирует по 1 цифре за цикл?
Если это так то я могу сравнивать только последнюю цифру, например:
0b43 Включить нагрузку:
Код:
if (cod_DTMF==3)
{
PORTB.5=1;
}

34b0 Выключить нагрузку:
Код:
if (cod_DTMF==10)
{
PORTB.5=0;
}

Можно так сделать?

_________________
Я не Сашок!!!


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пн май 25, 2009 16:45:59 
Сверлит текстолит когтями
Аватар пользователя

Карма: 13
Рейтинг сообщений: 41
Зарегистрирован: Пн окт 13, 2008 11:45:54
Сообщений: 1287
Откуда: РФ, Крым, г.Бахчисарай
Рейтинг сообщения: 0
Цифры декодируются в порядке получения.
Как только будет получена цифра появляется сигнал на 15 ножке, МК обрабатывает внешнее прерывание, получает код от MT8870.
Лично я бы в виде команды использовал не одну цифру на определенную последовательность дабы исключить ошибку или многократный повтор одной команды.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: программирование микроконтроллеров AVR для АОНа
СообщениеДобавлено: Пн май 25, 2009 16:52:07 
Сверлит текстолит когтями
Аватар пользователя

Карма: 13
Рейтинг сообщений: 41
Зарегистрирован: Пн окт 13, 2008 11:45:54
Сообщений: 1287
Откуда: РФ, Крым, г.Бахчисарай
Рейтинг сообщения: 0
balagurov07 писал(а):
имеется dtmf-сигнал состоящий из 2 частот, как на микроконтроллере обрабатывать его, чтобы получить передаваемую цифру

DTMF (Dual Tone Multi Frequency, тоновый набор):
Способ кодирования набранного номера, при котором цифры передаются сочетанием двух звуковых тонов. Всего в системе используется восемь различных тонов, подобранных таким образом, чтобы они передавались по телефонной сети с минимальным затуханием без наложения друг на друга. Поскольку данные тоны приходятся как раз на частотный диапазон человеческой речи, были приняты специальные меры, чтобы предотвратить распознавание определенных звуков голоса как сигналов набора (данное ложное распознавание обозначается термином talk-off).

А не две частоты. 8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пн май 25, 2009 17:31:12 
Опытный кот
Аватар пользователя

Зарегистрирован: Сб янв 05, 2008 11:05:15
Сообщений: 849
Откуда: Україна м.Луцьк
Рейтинг сообщения: 0
Вот такая идея пришла: определять команду в зависимости от суммы пришедших чисел.
Код:
unsigned char i;
// External Interrupt 0 service routine
//
// Внешнее прерывание от MT8870 (INT0 по возрастающему фронту)
//
interrupt [EXT_INT0] void ext_int0_isr(void)
{
    unsigned char cod_DTMF;
    unsigned char full_DTMF;
   
    #asm("cli") 
           
    for (i=0;i<4;i++)
    {
        if (i==0)
        {
        full_DTMF=0;
        }
    MT8870_TOE_ON();  // активизировать выводы (Q1-Q4) MT8870
    #asm("nop")
    cod_DTMF = PINB & 0x0F; // получить код DTMF из MT8870
    #asm("nop")   
    MT8870_TOE_OFF(); // выводы (Q1-Q4) MT8870 перевести в Z состояние
    full_DTMF=full_DTMF+cod_DTMF;
    }
               
   #asm("sei")
}


0b43=10+14+4+3=31; Включить нагрузку:
Код:
Код:
if (full_DTMF==31 && cod_DTMF=3)
{
PORTB.5=1;
}

Кажись должно сработать.

_________________
Я не Сашок!!!


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Форум закрыт Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 10 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y