Копирование с помощью кнопок: новый коммутатор IC IC от ROHM
Механические устройства ввода далеко не устарели, и IC, подобные BD3376MUV-M, может помочь вам в деталях интерфейса.
Несмотря на растущую популярность емкостного сенсорного ощущения и других немеханических средств сбора пользовательского ввода, механические кнопки и переключатели по-прежнему являются общими компонентами во всем: от проектов хобби до сложных электронных систем.
Однако механические переключатели являются примерами парадоксальной природы, которая удивительно распространена в научных и инженерных дисциплинах. Наука приобрела ошеломляющее количество информации о чрезвычайно сложных аспектах физического мира; и тем не менее он не может адекватно ответить на вопросы, которые мы можем услышать от семилетнего ребенка: почему трава зеленая »// science.nasa.gov/astrophysics/focus-areas/what-is-dark-energy» target = «_blank»> темная материя и темная энергия.) Зачем мне ложиться спать? И почему я получаю кошмары? (Исследователи все еще не понимают, почему мы спим и мечтаем.)
Парадокс Pushbutton
И тогда у нас есть менее глубокий, но отнюдь не несущественный парадокс кнопки. Какой компонент может быть проще, чем кнопка? Вы нажимаете кнопку, изменяете напряжение, микроконтроллер обнаруживает изменение, выполненное дело - у вас есть пользовательский интерфейс. Ну, оказывается, что много вещей проще, чем кнопка; давайте рассмотрим проблемы:
Отключить отскок. Вы можете игнорировать его, но он все еще там. Всегда там. Когда два проводника вступают в резкий контакт, электрическое соединение совершает и ломается несколько раз, прежде чем оседать в устойчивое состояние. Таким образом, одно действие превращается в несколько приводов.

- Типичный выключатель или кнопка открытого / закрытого типа - это как разомкнутая цепь, так и замкнутая цепь. Таким образом, вы не можете просто подключить одну сторону кнопки к логическому высокому, а затем подключить другую сторону к микроконтроллеру GPIO. Это нормально работает, когда переключатель закрыт, но когда он открыт, у вас есть плавающий вход, и это всегда, всегда плохо, если штырь не имеет внутреннего подтягивающего резистора, конечно. И мы принимаем CMOS здесь; теоретически TTL не имеет такой же проблемы, но, насколько я могу судить, TTL больше не существует, несмотря на (на мой взгляд) странную тенденцию использовать «TTL» при обращении к нормальным сигналам логического уровня, в отличие от, скажем, USB или LVDS.
- Несмотря на их простоту, кнопки могут быть обузой для прошивки. Ожидается, что дизайнеры получат все больше и больше производительности от крошечных микроконтроллеров, поэтому не стоит тратить процессорные циклы, постоянно проверяя входные контакты, чтобы увидеть, нажата ли кнопка. Эта проблема становится более серьезной, если у вас несколько кнопок, или если вы используете debouncing через прошивку вместо аппаратного обеспечения. Это, безусловно, помогает, если вы можете использовать прерывания вместо опроса, но прерывания вывода ограничены, и вы можете использовать их для чего-то другого.
Подход IC
BD3376MUV-M от ROHM Semiconductor описывается как «монитор с несколькими входами». Вот типичная схема приложения:

Диаграмма взята из таблицы данных
Идея здесь состоит в том, чтобы перенести информацию об интерфейсе интерфейса на внешний микросхему. BD3376MUV-M контролирует входы коммутатора, а при обнаружении срабатывания микроконтроллер уведомляется через SPI.
В целом я думаю, что это отличная идея. BD3376MUV-M может контролировать 10 кнопок, а аналогичная часть (BD3375MUV-M) может обрабатывать 22! Такой подход позволяет отслеживать многочисленные кнопки, не теряя при этом пропускную способность процессора, а также эффективно выступает в качестве расширения ввода / вывода. Я предполагаю, что многие встроенные системы не имеют 22 или даже 10 доступных GPIO, но с этими частями ROHM все, что вам нужно, это шина SPI.
Два из трех
В BD3376MUV-M рассматриваются две из трех упомянутых выше проблем. Процессор освобождается от чрезмерной проверки контактов, независимо от наличия прерываний GPIO, а входы коммутатора имеют внутренние подтягивания (они фактически являются источниками тока подтягивания, а не подтягивающими резисторами):

Диаграмма взята из таблицы данных
Вам все равно придется реализовать свою собственную схему дедунции. Тем не менее, я бы сказал, что BD3376MUV-M косвенно решает проблему переключения, поскольку он явно включает в себя схему дедуляции в типичной схеме приложения, найденной на первой странице таблицы данных, и даже включает значения компонентов!

Диаграмма взята из таблицы данных
Итак, прямо здесь, на первой странице, у нас есть напоминание и достаточная информация о дизайне, чтобы устранить почти все интеллектуальные усилия со стороны инженера.
Вы когда-нибудь проектировали систему, которая нуждалась в 22 кнопках? Если не.,, что ты делал со своей жизнью?