Кто с работал с этим приемником?
при приходе команды с ЖСМ модуля, он ее декодирует, выставляет уровни на датавыходах, и должен выдавать импульс на DataValid выходе.
Проблема в том, что он он DV выдает то один, то два, то три импульса, соответственно у меня МК обрабатывает столько-же прерываний и получается, что один символ приходит по два-три раза, причем никакой зависимости нет.
Думал, может дребезг, при первом прерывании поствил задержку 200 мсек., но ничего не изменилось теперь прерывания идут с єтой задержкой.
При плохом уровне сигнала (на любой стороне линии) DTMF-сигнал будет прерываться, это нормально. Приёмник всё это отрабатывает. Такое даже на некоторых проводных линиях бывало.
Можно попробовать поиграться с RC-цепочкой, задающей минимальную длительность посылки. Но не факт, что поможет.
Даже остановленные часы два раза в сутки показывают правильное время.
Громкость не совсем то, просто в GSM сети периодически наблюдаются "булькания" и замирания звука, вот для DTMF это пагубное явление, как с этим бороться – не знаю. У меня например автоответчик при звонке с мобильного вообще некоторые цифры DTMF неправильно распознаёт (например, 3 вместо 2 ).
Даже остановленные часы два раза в сутки показывают правильное время.
Осциллографом надо смотреть, что на входе VN и что на выходе DV. Вы уверены, что правильно согласовали звуковой выход GSM модуля с этой м/с.
А повторы программно нужно отсекать, по алгоритму дребезга 200-500 мс.
Да, вот ещё что, м/с случаем не отечественная? Если это аналог, то тут же её выкидывайте и приобретайте родной HT. Были с аналогом грабли. Неделю возился, пока не приобрёл настоящую.
Весь вечер возился. Крутил RC цепочку, резистор в цепи обратной связи и выходной уровень с ЖСМ модуля. Теперь более-менее нормально все работает, кроме символа *, его нужно около секунды на клаве держать, тогда приемник его декодирует, а иначе не замечает. Но все-равно нет-нет а ложные сработки проскакивают, одна на 20-30 символов, ну и фиХ с ними!
А вот-по поводу производителя приемника затрудняюсь ответить.
На корпусе все вроде аглицкими буквами написано, цитирую:
"HOLTEK (здесь фирменный знак)"
"HT9170D"
"A704N0104#2"
подозреваю, что последня строка и говорит где он сделан, но где не ясно.
в дургом девайсе тоже есть такой приемник, но в нем последняя строка следуюющая:
"А822G6131#3"
кстати в этом устройстве он нормально работает, может у меня действительно отечественной сборки ("A704N0104#2")????
а по-поводу
"А повторы программно нужно отсекать, по алгоритму дребезга 200-500 мс. "
так пробовал-не помогает, если в первом интерапте ставить задержку 200 мсек, то в итоге эти интерапты вызываются с такой задержкой. Может приемник их сразу кучу генерит, а в МК они уже в стек заносятся, а потом оттуда втягиваются.
И еще вопрос, а как вход с выходами согласовать? Сейчас выходы ЖСМ модуля ко входу приемника подключаются через разделительный конденсаторы и резистор на 100К включенные последовательно.
И еще, что я (не)должен увидеть на осцилографе при подключении к входу VN приемника?
Некорректно я про дребезг написал...
Хотел сказать дребезг отпускания. Т.е. приход кода обрабатывать по фронту или первому прерыванию. А далее, нужно гарантированную паузу 200-500мс выдержать без посылок, которая говорит о том, что перестали передавать код. Проще, отпустили кнопку.
На осциллографе: Форму 2-ух частотного сигнала. Также посмотреть амплитуды, завалы, шумы с выхода gsm. Если сигнал на входе устойчивый и не прерывается, а на DV разрывы, то не согласованно.
Косвенно можно сказать, что сейчас плохо согласованно по [*]. Это две самые близкие частоты в dtmf.
Само согласование будет зависеть от формы сигнала выдаваемого gsm.
Попробуйте резистор (100 Ом – 1кОм) поставить в выхода gsm перед разделительным конденсатором на аналоговую землю.