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

ГЛ А В А 1 2 И нтерфейс SPI Сразу скажем, что применение интерфейса SPI в любительских проектах- доста­ точно редкая экзотика (если не считать, конечно, применения ISР-программатора: код загружается в контроллер именно по SPI), разве что иногда он встречается в контроллерах различных дисплеев. С точки зрения пользователя, SPI имеет только одно преимущество перед другими последовательными портами - он более скоро­ стной. Зато он требует лишнего провода (а в случае нескольких устройств на одном SPI еще и дополнительно по проводу на каждое устройство) и существует во мно­ жестве разнообразных реализаций, нередко предполагающих ручное управление дополнительными нестандартными функциями. Поэтому SPI обычно применяется там, где он абсолютно необходим: например, при общении с быстродействующими устройствами вроде АЦП высокого разрешения или скоростной внешней памяти. На примере общения с такой памятью мы и продемонстрируем работу с SPI . С ее помощью вы можете получить в своем устройстве компактный буфер для хране­ ния, например, данных измерений. Здесь будет идти речь о памяти сравнительно небольшой емкости (не более 1 Мбит, т. е. 1 28 кбайт), которая, однако, существен­ но добавляет функциональности АVR-контроллерам. В конце главы мы коснемся вопроса о записи больших объемов данных на флеш-карты, которые также способ­ ны работать в режиме SPI . Общие принципы обмена по трехпроводному интерфейсу SPI мы уже рассматрива­ ли в главе 3 и там же выяснили, что для различных по назначению устройств могут не совпадать не только названия выводов или самого интерфейса, но и протоколы обмена. На самом деле SPI, несмотря на все эти тонкости, самый простой из всех последовательных интерфейсов, т. к. реализует в чистом виде главную их идею: передавать в каждый момент времени один бит по одной последовательной линии. Идея восходит еще к телеграфу Морзе - наиболее помехоустойчивой линии связи из всех придуманных. SPI отличается тем, что это синхронный протокол: в нем по отдельной линии передаются тактовые импульсы, которые служат для точного оп­ ределения момента отсчета бита данных. Простота его обуславливается еще и тем, что, как прайило, SPI ведомых устройств могут работать на тактовых частотах от единиц мегагерц и выше, что сравнимо с тактовой частотой МК, поэтому в процес­ се передачи никаких специальных задержек не требуется.

RkJQdWJsaXNoZXIy MTExODQxMg==