Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Регистры скорости связи УСАПП - UBRRnL и UBRRnH
Регистр UBRRnH не доступен в режиме совместимости с mega103
Данные разряды зарезервированы для будущего использования. Для совместимости с последующими разработками необходимо записать лог. 0 в эти разряды во время записи в регистр UBRRnH.
UBRR - 12-разр. регистр, который задает значение скорости связи УСАПП. Регистр UBRRnH содержит 4 старших разряда, а UBRRnL 8 младших разрядов значения скорости УСАППn. Если во время передачи или приема изменить скорость связи, то сеанс связи будет нарушен. Запись в регистр UBRRnL инициирует обновление предделителя скорости связи.
18. Особенности интерфейса SPI в ATmega128 Интерфейс SPI позволяет организовать последовательную синхронную высокоскоростную передачу данных между ATmega128 и другим периферийным устройством или между несколькими AVR-микроконтроллерами. Отличительные особенности интерфейса SPI в ATmega128:
Рисунок 75. Функциональная схема интерфейса SPI Прим.: Расположение выводов интерфейса SPI представлено на рис. 1 и в таблице 30. Внешние соединения между ведущим (мастером) и подчиненным ЦПУ через интерфейс SPI показаны на рисунке 76. Система состоит из двух сдвиговых регистров и генератора ведущей синхронизации. Ведущий SPI инициирует сеанс связи подачей низкого уровня на вход SS того подчиненного устройства, с которым необходимо обмениваться данными. Оба респондента (ведущий и подчиненный) подготавливают данные к передаче в своем сдвиговом регистре, при этом на стороне ведущего генерируются также импульсы синхронизации на линии SCK. По линии MOSI всегда осуществляется передача данных от ведущего к подчиненному, а по MISO, наоборот, от подчиненного к мастеру. По окончании передачи каждого пакета данных ведущий SPI должен засинхронизировать подчиненный путем подачи высокого уровня на линию SS (выбор подчиненного интерфейса). Если SPI настроен как ведущий (мастер), то управление линией SS происходит не автоматически. Данная операция должна быть выполнена программно перед началом сеанса связи. После этого, запись в регистр данных SPI инициирует генерацию синхронизации и аппаратный сдвиг 8-ми разрядов в подчиненное устройство. По окончании сдвига одного байта генератор синхронизации SPI останавливается, при этом устанавливая флаг окончания передачи (SPIF). Если установлен бит SPIE в регистре SPCR, то разрешается прерывание SPI и по окончании передачи байта будет генерирован запрос на прерывание. Мастер может продолжить сдвигать следующий байт, если записать его в регистр SPDR, или подать сигнал окончания пакета путем установки низкого уровня на линии SS. Последний принятый байт сохраняется в буферном регистре. В режиме подчиненного, интерфейс SPI находится в состоянии ожидания, в котором MISO переводится в третье состояние, до тех пор, пока на выводе SS присутствует высокий уровень. В этом состоянии программа может обновлять содержимое регистра данных SPI (SPDR), но при этом входящие импульсы синхронизации не сдвигают данные до подачи низкого уровня на вывод SS. После того как один байт был полностью сдвинут, устанавливается флаг окончания передачи SPIF. Если установлен бит разрешения прерывания SPI (SPIE) в регистре SPCR, то установка флага SPIF приводит к генерации запроса на прерывание. Подчиненный может продолжать размещать новые данные для передачи в регистр SPDR перед чтением входящих данных. Последний принятый байт хранится в буферном регистре.
Рисунок 76. Внешнее соединение ведущего (мастера) и подчиненного SPI В направлении передачи данных система выполнена как однобуферная, а в направлении приема используется двойная буферизация. Это означает, что передаваемые байты не могут быть записаны в регистр данных SPI, прежде чем полностью завершится цикл сдвига. Во время приема данных необходимо следить, чтобы принятая посылка была считана из регистра данных SPI, прежде чем завершится цикл входящего сдвига новой посылки. В противном случае первый байт будет потерян. В подчиненном режиме SPI управляющая логика осуществляет выборку входящего сигнала SCK. Чтобы гарантировать корректность выборки тактового сигнала необходимо использовать частоту синхронизации SPI не более fosc/4. Если работа SPI разрешена, то разрешается альтернативное направление выводов MOSI, MISO, SCK и SS (см. табл. 69). Таблица 69. Направление выводов SPI(1)
Прим.1: См. "Альтернативные функции порта B", где подробно описано как установить направление на выводах порта SPI. В следующих примерах показаны инициализация SPI как мастера и организация простой передачи данных. В данных примерах DDR_SPI должен быть заменен на имя фактического регистра направления данных, управляющий выводами интерфейса SPI (для ATmega128 DDRB). DD_MOSI, DD_MISO и DD_SCK также должны быть заменены на имена соответствующих бит регистров направления данных, связанных с этими выводами. Например, если MOSI размещен на выв. PB5, то DD_MOSI необходимо заменить на DDB5, а DDR_SPI на DDRB.
Прим.1: В примерах предполагается, что подключен файл специфических заголовков. В следующем примере показано как инициализировать SPI как подчиненного и как выполнить простой прием данных.
Прим.1: В примерах предполагается, что подключен файл специфических заголовков
19. Ведущий режим, режимы передачи данных интерфейса SPI Ведущий режим Если SPI настроен как мастер (установлен бит MSTR в SPCR), то пользователь может задать желаемое направление вывода SS. Если SS настроен на вывод, то он работает как обычная линия цифрового вывода и не оказывает влияния на систему SPI. Обычно он используется для управления выводом SS подчиненного SPI. Если SS настроить как вход, то на нем должен присутствовать высокий лог. уровень, чтобы гарантировать работу ведущего SPI. Если SPI настроен как мастер, у которого выв. SS настроен как вход, то подача на этот вход низкого уровня внешней схемой будет интерпретирована как перевод в подчиненный режим по запросу другого ведущего SPI, после чего начнется передача данных. Для того чтобы избежать конфликтной ситуации система SPI выполняет следующие действия:
Таким образом, если используется передача SPI в режиме мастера с управлением по прерываниям и предусмотрена возможность подачи низкого уровня на вход SS, то при генерации прерывания необходимо всегда проверять состояние бита MSTR. Если MSTR оказался сброшенным, то это означает, что SPI был переведен в подчиненный режим внешним устройством и пользователь должен предусмотреть возобновление ведущего режима SPI программным путем.
|