В проекте из
предыдущей части нашей ассемблерной эпопеи мы подключали к микроконтроллеру светодиод и потенциометр, которые
не поддерживают обратной связи с МК и не являются цифровыми, т. е. не оперируют численными значениями.
То же самое можно сказать и о некоторых других внешних устройствах: кнопке, терморезисторе, реле и т. д.
Без сомнения, все указанные элементы очень важны для создания того или иного девайса, но обойтись только ими вряд ли удастся. Рано или поздно вам придётся использовать более сложные устройства с собственными контроллерами на борту, которые уже
могут общаться с микроконтроллером в двустороннем порядке, причём в цифровом формате, могут преобразовывать данные (уровень освещённости, угол поворота ротора серводвигателя) в численное значение для передачи его в МК либо, наоборот, число, полученное из МК — в текущее значение какого-либо своего параметра (частота генерируемого сигнала, порог срабатывания сенсора).
Кроме того, нередко возникает необходимость обмена информацией с другим девайсом на базе МК, смартфоном или компьютером.
Во всех этих случаях движение данных между сторонами обмена регламентируется набором правил, именуемых протоколом, с двумя из которых —
I2C и SPI — мы сегодня и познакомимся.