русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Программный интерфейс SPI


Дата добавления: 2013-12-23; просмотров: 1453; Нарушение авторских прав


Стандарт синхронного периферийного интерфейса (SPI) наращивает свою популярность за счет возможности организации более быстродействующей связи по сравнению с двухпроводными интерфейсами, а также за счет использования меньшего числа элементов для реализации на кристалле полупроводника. Хотя многие мощные представители семейства AVR содержат полнофункциональный интерфейс SPI, в недорогие версии он не входит. В связи с этим, в данном документе описывается набор процедур, написанных на языке низкого уровня, реализующих программно протокол SPI в режиме мастера (связь под управлением AVR-микроконтроллера). Данная разработка может использоваться для организации доступа к последовательной памяти ЭСППЗУ семейства 25XXX производства Atmel, а также для связи с другими починенными интегральными схемами, например, с драйверами индикатора.

Рис. 14. Пример подключения к AVR-микроконтроллера подчиненного устройства (последовательное ЭСППЗУ)

Рис. 14. Временная диаграмма интерфейса SPI

Принцип действия SPI в режиме 0 подразумевает выполнение следующих условий:

1. SCK = 0 в режиме холостого хода (Idle).

2. Выход данных MOSI (из AVR) должен быть стабильным в

течение определенного промежутка времени (tSETUP) перед нарастающим фронтом тактового сигнала SCK.

3. Выход данных MISO (из подчиненного устройства)

действительный после некоторого времени (tVALID) после падающего фронта тактового сигнала SCK.

4. Первым всегда передается старший бит (MSB).

Рассматриваемые ниже процедуры написаны с учетом выполнения этих требований, а также особое внимание уделено граничным условиям, таким как tVALID и tSETUP. Данные временные параметры рассмотрены ниже.

 

Рис. 15. Блок-схема интерфейса SPI в режиме мастера

Таблица 7. Описание подпрограмм

init_spi: Данная процедура инициализирует линии SPI-порта. Используемые в процедуре макросы необходимо отредактировать, если используется не порт B. При необходимости также можно изменить линии SPI-порта в разделе программы Port Definition, задавая значения EQU для SCK, MOSI, MISO и NSS (нет выбора подчиненного устройства). Данная процедура не имеет ни входных, ни выходных данных.
ena_spi Данная процедура формирует SCK=0 перед установкой SS в активное состояние. Данная процедура не имеет ни входных, ни выходных данных.
disa_spi: Данная процедура устанавливает SS=1 (неактивное состояние). Вызывается после завершения передачи последовательности для предотвращения сбоев в работе связи. Также не имеет ни входных, ни выходных данных.
rw_spi: Данная процедура отправляет/принимает 8- или 16-разрядное слово данных в зависимости от изменения пользователем настроек в тексте программы. Она оставляет SCK=0 при выходе и не изменяет сигнал SS. Поэтому, при передаче посылок, состоящих из нескольких слов, допускается неоднократно вызвать эту процедура. Входные требования- данные для передачи spi_lo (и spi_hi в 16-разрядном формате) этой процедурой. При выходе из процедуры в этих же регистрах хранятся данные, принятые из подчиненного SPI-порта.  


<== предыдущая лекция | следующая лекция ==>
Родственные интерфейсы и преобразователи уровней | Задержка от обновления MOSI до нарастающего фронта SCK


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.006 сек.