Поиск по сайту: |
|
По базе: |
|
Главная страница > Применение > Микроконтроллеров > AVR |
|
|||||||||||||||||||||||
AVR320Программный интерфейс SPI в режиме мастераОтличительные особенности:
Введение Стандарт синхронного периферийного интерфейса (SPI) наращивает свою популярность за счет возможности организации более быстродействующей связи по сравнению с двухпроводными интерфейсами, а также за счет использования меньшего числа элементов для реализации на кристалле полупроводника. Хотя многие мощные представители семейства AVR содержат полнофункциональный интерфейс SPI, в недорогие версии он не входит. В связи с этим, в данном документе описывается набор процедур, написанных на языке низкого уровня, реализующих программно протокол SPI в режиме мастера (связь под управлением AVR-микроконтроллера). Данная разработка может использоваться для организации доступа к последовательной памяти ЭСППЗУ семейства 25XXX производства Atmel, а также для связи с другими починенными интегральными схемами, например, с драйверами индикатора.
Принцип действия SPI в режиме 0 подразумевает выполнение следующих условий:
Рассматриваемые ниже процедуры написаны с учетом выполнения этих требований, а также особое внимание уделено граничным условиям, таким как tVALID и tSETUP. Данные временные параметры рассмотрены ниже.
Описание подпрограмм
Преобразование к 8-разрядному формату При необходимости использования 8-разрядного формата передаваемых слов требуется изменить всего 2 строки программы. Оба изменения касаются процедуры rw_spi. Первое – начальное значение счетчика бит необходимо изменить с 16 на 8, второе – строку “rol spi_hi” необходимо отделить в комментарий. Следует отметить, что в этом случае регистр spi_hi не нужен и в дальнейшем этой программой не используется и может быть задействован для других нужд. Для повышения читабельности в код программы включены макросы. Принято, что линии порта В используются в качестве интерфейса SPI. Если используется другой порт, то в макросе в наименовании служебных регистров необходимо указать используемый порт. Используемые линии для 4 сигналов SPI-порта перечислены в разделе “PORT DEFINITIONS” как значения EQU и могут быть легко изменены. Макрокоманда функции задержки требует дополнительного разъяснения. Для исключения необходимости применения дополнительных регистров данная процедура определяет второе назначение регистра TEMP, хранящего значение 5-разрядного счетчика, - измерение длительности SCK с высоким и низким уровнями. Последние данные хранятся в старших разрядах. За счет простого увеличения старших трех разрядов и определения переполнения можно задавать временные интервалы, не влияя на младшие 5 разрядов. Обратите внимание, что фактически выполняется операция вычитания вместо сложения. Конечный результат тот же, за исключением того, что флаг переноса C сброшен (чаще всего он установлен), когда значение старших трех бит изменяется из 7 в 0.
Задержка от обновления MOSI до нарастающего фронта SCK Период задержки от обновления MOSI до нарастающего фронта SCK – критичный параметр, т.к. фактически это время установления данных (tSETUP) для подключенного периферийного устройства. В данной процедуре длительность времени установки – 2 цикла при изменении MOSI к низкому уровню и 3 цикла при изменении к высокому уровню. При тактовой частоте 10 МГц это время составляет 200-300 нс. Если требуются более длительные временные интервалы необходимо добавить NOPы непосредственно перед макрокомандой sck_hi. Коэффициент заполнения импульса SCK Выход SCK большинство времени цикла генерации сообщения находится в низком состоянии за счет пауз на установление уровней, при которых этот выход имеет низкий уровень. Для связи с периферийным устройством, способного работать на более высокой скорости, длительность верхнего уровня (tHILO) может быть уменьшена в соответствии с требованиями по минимальной длительности высокого уровня SCK. При установке единичного значения на выполнение процедуры затрачивается приблизительно 22.5 цикла на каждый бит данных, а на генерацию высокого уровня SCK – ровно 4 цикла. При тактовой частоте микроконтроллера 10 МГц этим значениям соответствуют длительность высокого уровня SCK 400 нс и общая скорость связи до 444 кбайт/сек. Длительность нахождения в низком состоянии определяется требованием периферийного устройства к параметру “Длительность подготовки данных на MISO после падающего фронта SCK“ (задержка на вывод данных подчиненным устройством) (tVALID). Если значение этой задержки установить равное 1, то в процедуре перед защелкиванием данных на MISO будет выполнено три такта задержки. По аналогии тактовой частоте 10 МГц соответствует период 300 нс, который может быть изменен для увеличения длительности задержки. Документация:
Главная - Микросхемы - DOC - ЖКИ - Источники питания - Электромеханика - Интерфейсы - Программы - Применения - Статьи |
|
Впервые? | Реклама на сайте | О проекте | Карта портала тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru ©1998-2023 Рынок Микроэлектроники |
|