Ревич, Ю.В. Программирование микроконтроллеров 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) . По этим причинам полный протокол обмена
Made with FlippingBook
RkJQdWJsaXNoZXIy MTExODQxMg==