Ревич, Ю.В. Программирование микроконтроллеров AVR: от Arduino к ассемблеру

Глава 3. Периферийные устройства и прерывания 59 Схема обмена данными по SPI между контроллером и внешним устройством пока­ зана на рис . 3 .3 . Устроен этот обмен элементарно просто - как можно видеть, два 8-разрядных регистра (источника и приемника) образуют единый регистр сдвига, соединенный в кольцо линиями MISO и MOSI . С началом передачи «заводится» генератор синхроимпульсов (в общем случае он не обязательно входит в ведущее устройство, может быть и внешним), из ведущего по линии MOSI начинают «вьпалкиваться» биты, одновременно вытесняя из ведомого биты по линии MISO. Через восемь тактов регистры полностью обмениваются информацией между со­ бой. Если после этого генератор продолжает работать, то информация так и будет «крутиться» в этом кольце . Чтобы ее обновить, нужно после каждого цикла обмена считывать принятый байт в приемнике и записывать новый в передатчике. Таким образом запись (в ведомый) и чтение (из ведомого) фактически представляют собой одну и ту же операцию: заданное направление определяет только те или иные дей­ ствия, которые при этом выполняет контроллер. г·-·-··-- ·- ---- ------- -· 1 ст . р аз ряд Master Мл . р аз ря д С т. р аз ря д MISO Slave 1 Мл. р аз ря д : ' j 8-р аз р я дный сдви rовы й MISO t--+-------+-,__-t 1 р еrист р 8-р аз ря дный сдвиrовый р еrист р Ге н е р ато р си нх роим пульсов MOSI 1 lscк п . п MOSI с -------·- - -- SCK Рис. 3.3. Схема передачи данных по интерфейсу SPI ЗАМЕТКИ НА ПОЛЯХ Заметим , что как и 1 2 С (о нем рассказано далее в этой главе) , название SPI является зарегистрированной торговой маркой (в .q анном случае - фирмы Motorola) . Потому вы можете встретить в технических описаниях разные названия и самого этого интер­ фейса (что еще не так страшно) , и, главное, его выводов. Чаще всего можно встретить общее название Thгee-Wiгe Serial lnterface, трехпроводный последовательный интер­ фейс (хотя , как мы говорили , на самом деле требуется четыре провода , включая «землю» , и даже пять и более, если учитывать «выбор кристалла») . Сложнее привес­ ти варианты названий выводов, потому что они сильно зависят от назначения устрой­ ства, и могут различаться в каждом отдельном случае. Так, например, в АЦП фирмы Analog Devices вывод SCK носит название SCLK, MI SO называется DOUT (потому что АЦП всегда - ведомый) , а MOS I , соответственно, D I N . Другие обозначения вам встретятся в случае, например, энергонезависимой памяти производства той же Atmel (см . главы 10 и 1 3) , где MOSI будет просто S I , а MI SO - просто SO. Название вывода SS характерно лишь для аппаратного SP I в МК AVR . В других устройствах чаще всего имеется обычнь1й вход «выбор кристалла» CS , а иногда совместно с ним и другие управляющие выводы : например, в памяти АТ25 есть еще вывод задержки обмена HOLD, практически во всех микросхемах энергонезависимой памяти есть вывод за­ прета записи WR. Во внешних АЦП иногда встречается вывод «готовности данных» (он может называться , например, DRDY) . По этим причинам полный протокол обмена

RkJQdWJsaXNoZXIy MTExODQxMg==