Обсуждаем контроллеры компании Atmel.
Ответить

Как сравнить цифровой сигнал ?

Сб окт 26, 2019 21:10:22

Есть некое устройство с клавиатурой. Нажатая клавиша определяется определенной цифровой последовательностью. Нужно подключть МК к двум клавишам и определять какая клавиша была нажата. Как это реализовать ?
Вот так выглядят последовательности импульсов (клавиша А и клавиша В)
Изображение
Вложения
AB.png
(17.04 KiB) Скачиваний: 557

Re: Как сравнить цифровой сигнал ?

Вс окт 27, 2019 10:30:39

Посчитать принятые импульсы и сравнить с ранее записанными («кодами» клавиш)…

Re: Как сравнить цифровой сигнал ?

Вс окт 27, 2019 11:51:49

аппаратно Input Capture ? Или программно ?
Определять начало и конец активной фазы передачи по длительности фронта спада между передачами ?

Re: Как сравнить цифровой сигнал ?

Вс окт 27, 2019 12:37:18

Так это кому как нравится… реализация имеет множество решений… главное чтобы выполняло то что необходимо…

Re: Как сравнить цифровой сигнал ?

Вс окт 27, 2019 18:22:44

сигнатурный анализатор
в помощь!
8)

Re: Как сравнить цифровой сигнал ?

Вс окт 27, 2019 19:23:05

собственно я и спрашиваю у более опытных коллег какой способ наипростейший.

А не будет ли проще не анализировать код клавиатуры, а сравнивать две линии (входную и выходную)? Если совпадает, то кнопка нажата.

P.S. Длительность некоторых импульсов в коде около 4мкс. Если делать выборку хотябы 4 точки на импульс, то основная программа не будет успевать выполняться на 8МГц.

Re: Как сравнить цифровой сигнал ?

Вс окт 27, 2019 21:22:31

Что вы называете "входная и выходная линия"?
Зачем делать выборки какие-то? Запускаете таймер в режиме захвата и им считаете длительности импульсов.
Если "програмно" - то прерывание по изменению уровня сигнала и таймер в обычном режиме. Но смысла это не имеет.
Если будете делать "выборки", то конечно на это время основной программе некогда будет работать. Это имеет смысл только если ничего не делается, пока кнопка не нажата.
Если кнопок всего 2, или другие нажиматься не будут - можно просто проверять различие в импульсах кнопок А или Б и по нему определять какая нажата была.

Re: Как сравнить цифровой сигнал ?

Пн окт 28, 2019 07:52:01

Что вы называете "входная и выходная линия"?
Кнопка зажимает два контакта: один выход - по нему передается код клавиши, другой вход (общий для некоторого кол-ва кнопок)- принимает код.
Если кнопок всего 2, или другие нажиматься не будут - можно просто проверять различие в импульсах кнопок А или Б и по нему определять какая нажата была.
Кнопок больше.
Я так понял что в моем случае вариант с режимом захвата оптимален ?

По поводу выбора частоты кварца.
Как уже было сказано длительность некоторых импульсов 4мкс. В реальном времени нужно обработать захваченные данные. В программе будет еще ШИМ и определение длительности нажатия кнопок (минимум 2 прерывания). Мне кажется что частоту нужно выбирать не менее 16МГц. А с учетом того, что код программы не будет оптимален (мало опыта), то и 20МГц не достаточно будет.

Re: Как сравнить цифровой сигнал ?

Пн окт 28, 2019 09:03:04

а выходной провод только один? нету рядом клок'а?

Re: Как сравнить цифровой сигнал ?

Пн окт 28, 2019 09:51:54

Ivanoff-iv писал(а):а выходной провод только один? нету рядом клок'а?
контактов много, но клока нет

Re: Как сравнить цифровой сигнал ?

Пн окт 28, 2019 10:06:38

тода, да, проще всего сесть на шины... 2 входа (если кнопки на различных входах) на прерывания, а выходы на порт и в прерывании этот порт сохранять...

Добавлено after 2 minutes 38 seconds:
можно, как тут писали - захватом... т.е. просто замерять время между провалами... по получившейся "картине" восстанавливать код исходного сигнала и определять нажатую кнопку...

Re: Как сравнить цифровой сигнал ?

Пн окт 28, 2019 10:19:52

Внесу ясность.
Вот такая схема включения кнопок.
Изображение

Задача: Определить нажатие А и В. После определения , в зависимости от длительности нажатия, выполнять некоторые действия. Длительность импульсов в коде клавиш от 4мкс.

Как лучше поступить, что бы хватило ресурса AVR ?
Вложения
1.png
(4 KiB) Скачиваний: 432

Re: Как сравнить цифровой сигнал ?

Пн окт 28, 2019 10:46:08

а какое напряжение на выводе 5 если все кнопки отпущены?

Добавлено after 9 minutes 39 seconds:
так всё становится проще... код ведь не обязательно пропускать через кнопку...
допустим напряжение на 5 при отпущенных кнопках низкое... тогда один из возможных вариантов:
СпойлерИзображение
Вложения
2019-10-28_14-01-28.png
(9.28 KiB) Скачиваний: 284

Re: Как сравнить цифровой сигнал ?

Пн окт 28, 2019 10:53:27

а какое напряжение на выводе 5 если все кнопки отпущены?
импульсы:
Изображение

Код нажатой кнопки передается в положительном импульсе - модулированый.
Вложения
2.png
(1.21 KiB) Скачиваний: 443
Последний раз редактировалось prw07 Пн окт 28, 2019 11:00:56, всего редактировалось 1 раз.

Re: Как сравнить цифровой сигнал ?

Пн окт 28, 2019 10:59:30

значит - на момент передачи высокое... ну, разверни диоды...

Добавлено after 1 minute 17 seconds:
хотя, и сами сумматоры можно сделать подругому... например на транзисторах

Re: Как сравнить цифровой сигнал ?

Пн окт 28, 2019 11:03:15

не совсем понял куда что подключать. Можете пояснить что есть to-mk-a , to-mk-b ?

Re: Как сравнить цифровой сигнал ?

Пн окт 28, 2019 11:11:48

тогда скорее всего схема станет такой (канал второй кнопки такойже как и первой, я его не нарисовал....)
СпойлерИзображение
Out_To_MK - выход состояния кнопки (уже без кода)

Добавлено after 2 minutes 44 seconds:
R1 возможно поменьше придется поставить... килоом 10-30...
Вложения
2019-10-28_14-23-52.png
(9.81 KiB) Скачиваний: 275

Re: Как сравнить цифровой сигнал ?

Пн окт 28, 2019 11:22:39

Понял. Буду пока "курить".
Спасибо!!!
P.S. Не очень-то хочется дорожки на кнопки резать.

Добавлено after 3 minutes 14 seconds:
наверное не пойдет. Кнопок много, надо все дорожки порезать и впихнуть диоды.....

Re: Как сравнить цифровой сигнал ?

Пн окт 28, 2019 11:59:59

нет, диоды там скорее всего внутри уже есть...(до кнопок)

Добавлено after 8 minutes 3 seconds:
ещё вариант - просуммировать сигналы с нескольких кнопок (взяв до кнопок) и - вуаля! вот он клок...

Добавлено after 1 minute 31 second:
тут бы, желательно осциллограмку заценить, она точнее чем рисунок...

Re: Как сравнить цифровой сигнал ?

Пн окт 28, 2019 12:00:11

нет диодов. с клавиатуры сразу на контроллер все идет
Ответить