‮Сдвиг по фазе (kincajou) wrote,
‮Сдвиг по фазе
kincajou

Categories:

worklog: матричная клавиатура и STM32F030

Запустил клавиатурку.
Для отладки использую попосовые телефонные кнопки AK-1607-N-BBW.
МК выставляет "бегущий ноль" (причём драйверы работают как open-drain) на колонки и считывает строки. Линии строк подвязаны к питанию - если там появляется нуль, значит, кнопка нажата.
Дальше выставляется высокий уровень на линию прерывания ведущего МК, он читает I2C, получет код кнопки и все рады.
Обработка нажатий самая простая - обнаруживается первая нажатая кнопка в ряду (т.е. если одновременно нажато несколько кнопок, то обработается всё равно самая первая из них, остальные будут пропущены).
Примитивный примитив, но работает!

Попутно убедился в действенности мудрого совета - если у вас два микроконтроллера соединены какими-то GPIO, то поставьте резистор (470 ом.. 1кОм, плюс-минус) в линию связи. Пригодится, если по какой-то причине оба микроконтроллера одновременно попробуют выставить активное состояние на линию, но один выставит "1", а другой "0" -- резистор ограничит ток, который в ином случае спалил бы оба пина.

Итого: для подключения клавиатуры 6*5 (в будущем, сейчас пока что 4*4) к центральному микроконтроллеру, мне надо всего лишь подключиться к I2C, которая и так уже есть, и ещё задействовать 1 линию хардварного прерывания (без него тоже можно, но тогда I2C надо опрашивать непрерывно - сие гемор).
Tags: радио, хозяйке на заметку
Subscribe

  • Как тонет большой корабль

    Большой корабль тонет быстро.

  • Как делают такие штуки?

    Даже не знаю, как это по-русски называется - "штамповка"? "Чеканка"? Короче, выдавленные буквы на пластике, типа вот такого. Я несколько раз видел…

  • wxMaxima

    Открыл для себя этот замечательный пакет компьютерной алгебры. Вернее, сам пакет это Maxima, он из командной строки работает, а wxMaxima - один из…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments