---
Бы собрал драйвер с использованием внешнего др. микроконтроллера: скажем, недорогого CH32V.
Taм выводов маловато, вот почему он и вопрошает, что делать.linux_rulezz писал(а): Ср июл 01, 2026 09:19:54 А в чем проблема контроля нажатия хоть всех кнопок одновременно?
Скажем, ряды клавиш подключаем к ногам МК напрямую, а по столбцам пускаем "сканирующую единицу" хоть сдвиговым регистром… За несколько микросекунд можно всю матрицу таким образом просканировать.

Xopoший вариант.veso74 писал(а): Ср июл 01, 2026 09:28:40 MAX7370 - незначительное потребление, автоматический переход в спящий режим, макс 64-кн. клавиатура, подавление дребезга, статическая работа (без шума при сканировании), INT, по I2C. Подключаем, отслеживаем INT и считываем нажатые кнопки. Все в одном.
С сем принципом полностью согласен - это работает .
Без схемы разговор будет пустой.Призрачный Суслик писал(а): Пн июн 29, 2026 23:51:07Надо дополнительно подключить к нему 12 условных "кнопок". Все кнопки на замыкание. Может быть одновременно нажато любое количество "кнопок".
Были бы ещё "интернеты" эти а то включают на несколько часов раз в неделю. Но это не особо относится к теме. Просто программист такой, "студент". Других нет, а этому надо всё на пальцах разжевывать, а я сам в I2C пока плаваю.ejsanyo писал(а): Вт июн 30, 2026 09:24:54 Чего там "дюжить"? В интернетах навалом готовых вариантов, спросите у нейросети "i2c bitbang avr example".Даже в Codevision издревле готовая, стабильно работающая библиотека есть.
Не очень понятно. Если порт работает на выход, то замыкание его на землю может сжечь выходной транзистор. Или вы имеете ввиду, что бы "общий" провод кнопок соединялся с отдельный выводом на вход и через резистор на "землю" ?ejsanyo писал(а): Вт июн 30, 2026 09:24:54 Как вы так поняли? I2C ноги придётся самостоятельно подтянуть к плюсу. Ногу выхода прерывания нужно также самому подтянуть к плюсу. А ноги "вводавывода" как раз сами всё тянут, все 8 штук. Принцип у них такой же, как был, например, в портах 8051-ых контроллеров. Зафигачиваете за напись 0xFF, все ноги подтягиваются, дальше читаете порт - ноги, которые вашими кнопками сели на землю, прочитаются нулями, а остальные по прежнему единицами.
Ну так не советуйте.Zapolyarny писал(а): Вт июн 30, 2026 11:58:11 В любом случае, подобные манипуляции надо описывать сразу, а не в процессе. Без чёткого озвучивания ТЗ ничего путного не выйдет, а советовать что-то - зря тратить время.
Смотрел. Но, судя по всему, в РФ не поставляется. 7-8 недель у Чип и Дип , это примерно: "У нас нет, но если закажите пару тысяч штук, то мы может попробуем привезти".Zapolyarny писал(а): Вт июн 30, 2026 16:29:31 Есть чуть скромнее: https://bitcode.com.cn/en/bc6301/ - на 30 кнопок, корпус SO-14.
Увы, не найдёт.veso74 писал(а): Вт июн 30, 2026 12:04:56 Если есть программист, скажите ему: "Нужно еще 12 кнопок". Он (вероятно) найдет способ.
Это готовые устройства, в количестве, которые надо доработать "минимальной кровью".veso74 писал(а): Вт июн 30, 2026 12:04:56 Лично бы перенес старое устройство на новый MK (с большим количеством пинов (32, 48, 64) и бесконечно большими возможностями).
Надо еще формировать сигнал прерывания при нажатии любой "кнопки". Хотя это не очень "кнопки", а дополнительные контактные группы у реле/пускателей.linux_rulezz писал(а): Ср июл 01, 2026 09:19:54 А в чем проблема контроля нажатия хоть всех кнопок одновременно?
Скажем, ряды клавиш подключаем к ногам МК напрямую, а по столбцам пускаем "сканирующую единицу" хоть сдвиговым регистром… За несколько микросекунд можно всю матрицу таким образом просканировать.
Пока возможности загрузить картинки не имею. Появится "нормальный интернет" - всё будет.jcxz писал(а): Пт июл 03, 2026 10:55:54Без схемы разговор будет пустой.Призрачный Суслик писал(а): Пн июн 29, 2026 23:51:07Надо дополнительно подключить к нему 12 условных "кнопок". Все кнопки на замыкание. Может быть одновременно нажато любое количество "кнопок".
Ну яж говорю, там выходы как у 8051-ых контроллеров, "квазидвунаправленные"! Ни разу такое не видели?Призрачный Суслик писал(а): Пт июл 03, 2026 12:16:48 Не очень понятно. Если порт работает на выход, то замыкание его на землю может сжечь выходной транзистор.
Зачем? Нужна микросекундная точность что ли?Призрачный Суслик писал(а): Пт июл 03, 2026 12:27:01Надо еще формировать сигнал прерывания при нажатии любой "кнопки".
Глянул ваш МК - там есть компаратор. Тогда можно наверное сделать на нём. Понадобится только одна нога (компаратора). На ногу вешаем кондёр (второй электрод кондёра = GND). И подключаем к этой же ноге параллельно все кнопки (с последовательным резистором у каждой).Призрачный Суслик писал(а): Пт июл 03, 2026 12:27:01Надо еще формировать сигнал прерывания при нажатии любой "кнопки". Хотя это не очень "кнопки", а дополнительные контактные группы у реле/пускателей.
Тогда в этом наибольшая сложность. Алгоритм выше может оказаться слишком сложным для него.
Работа по прерываниям нужна как правило для энергосбережения.
