Да, от души оттянулись :) А на будущее - разнесенные узлы системы нужно стремиться разделять в таком месте, где поток данных самый медленный. Например, не между МК и регистрами матрицы, а между тем, что этим МК управляет (клавиатура, датчики, РС) и собственно МК - на этом участке поток на несколько порядков медленнее, и гонять его можно по неспешному UART хоть на километры