Как SPI выбирает устройство на общей шине
SPI — это способ обмена данными между микроконтроллером и периферийными микросхемами: например, памятью, датчиком или дисплеем. Несколько устройств могут быть подключены к одним и тем же линиям данных, но управляющий чип отдельно указывает, с кем именно сейчас говорит.
Для этого каждому устройству обычно выделяют собственную линию выбора — Chip Select. Чтобы начать обмен, контроллер активирует нужную линию; остальные устройства видят, что выбраны не они, и не отвечают на общие сигналы. Так их данные не смешиваются на проводе.
Такт задаёт темп, линии разделяют направления
Контроллер выдаёт импульсы по линии тактового сигнала. По каждому импульсу стороны понимают, когда считывать очередной бит — минимальную единицу данных. Отдельные линии обычно передают данные в двух направлениях: от контроллера к устройству и обратно. Поэтому SPI может отправлять и принимать биты одновременно, хотя конкретный обмен может использовать только одно направление.
Когда выбор устройства снимают, оно перестаёт участвовать в передаче. Затем контроллер может активировать другую линию выбора и обратиться к следующей микросхеме. Это не очередь, которую устройства организуют сами: порядок и момент обращения определяет программа контроллера.
Удобство требует дополнительных проводов
Общие линии данных позволяют подключать несколько устройств без отдельной пары проводов для каждого. Но за выбор каждого устройства обычно приходится платить отдельной линией Chip Select, а контроллеру нужно знать, когда и как её переключать. Кроме того, если два устройства одновременно начнут передавать ответы по одной линии, сигналы могут конфликтовать. Поэтому ключ к работе шины — не просто общий канал, а чёткое правило: в каждый момент отвечает только выбранное устройство.






