Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Регистры данных АЦП – ADCL и ADCH





Формат данных при ADLAR = 0.

Разряд                
ADCH - - - - - - ADC9 ADC8
ADCL ADC7 ADC6 ADC5 ADC4 ADC3 ADC2 ADC1 ADC0
                 

Формат данных при ADLAR = 1.

Разряд                
ADCH ADC9 ADC8 ADC7 ADC6 ADC5 ADC4 ADC3 ADC2
ADCL ADC1 ADC0 - - - - - -
                 
                 

По завершении преобразования результат помещается в этих двух регистрах. При использовании дифференциального режима преобразования результат представляется в коде двоичного дополнения. Если выполнено чтение ADCL, то доступ к этим регистрам для АЦП будет заблокирован (т.е. АЦП не сможет в дальнейшем модифицировать результат преобразования), пока не будет считан регистр ADCH.

Левосторонний формат представления результата удобно использовать, если достаточно 8 разрядов. В этом случае 8-разрядный результат хранится в регистре ADCH и, следовательно, чтение регистра ADCL можно не выполнять. При правостороннем формате необходимо сначала считать ADCL, а затем ADCH.

 

Лекция №___

Последовательный периферийный интерфейс - SPI

 

Последовательный порт ввода-вывода SPI (Serial Peripheral Interface) предназначен для ввода и вывода байтов при обмене данными с другими устройствами, имеющими порт SPI. Обмен выполняется под управле­нием тактового сигнала порта. Устройство, инициализирующее обмен и вырабатывающее тактовый сигнал, является ведущим (master). Уст­ройство, выполняющее обмен при поступлении тактового сигнала, является ведомым (slave). В процессе обмена оба устройства последо­вательно бит за битом одновременно выдают и принимают байт. Обмен выполняется с использованием трех шин.

Максимальная скорость приема/передачи (в битах в секунду) равна 1/4 частоты тактового сигнала микроконтроллера (у МК типа m163 -1/2 тактовой частоты).

К одному ведущему устройству могут быть подключены несколько ведомых. Функции ведущего и ведомого могут меняться в процессе работы системы.

Порт SPI, который может работать в режиме ведущего и ведомого и использоваться для обмена данными в процессе работы, имеется у микроконтроллеров типа 4433, 8515, 8535, ml63 и ml03. Микроконтроллеры других типов, кроме t12 и t28, имеют порт SPI, который может работать только в режиме ведомого и ис­пользуется при последовательном программировании микроконтроллера без дополнительного источника напряжения (Downloading).

Основные характеристики SPI интерфейса:

Полнодуплексный 3-проводный синхронный обмен данными.

Режим работы ведущий или ведомый.

Обмен данными с передаваемыми первыми старшим или младшим битами.

Четыре программируемые скорости обмена данными.

Флаг прерывания по окончании передачи.

Активация из Idle режима (только в режиме ведомого)

Соединения между ведущим и ведомым CPU, использующими SPI интерфейс, показаны на рис. 1 и 2. Вывод PB1(SCK) является выходом тактового сигнала ведущего микроконтроллера и входом тактового сигнала ведомого. По записи ведущим CPU данных в SPI регистр, начинает работать тактовый генератор SPI и записанные данные сдвигаются через вывод выхода PB2(MOSI) ведущего микроконтроллера на вывод входа PB2 (MOSI) ведомого микроконтроллера. После сдвига одного байта тактовый генератор SPI останавливается, устанавливая флаг окончания передачи (SPIF). Если в регистре SPCR будет установлен бит разрешения прерывания SPI (SPIE), то произойдет запрос прерывания. Вход выбора ведомого PB0(SS), для выбора индивидуального SPI устройства в качестве ведомого, устанавливается на низкий уровень. При установке высокого уровня на выводе PB0 (SS) порт SPI деактивируется и вывод PB2 (MOSI) может быть использован в качестве вывода входа. Режим ведущий/ведомый может быть установлен и программным способом установкой или очисткой бита MSTR в регистре управления SPI.

Рис.1.

Два сдвиговых регистра ведущего и ведомого микроконтроллеров можно рассматривать как один разнесенный 16-разрядный циклический сдвиговый регистр. При сдвиге данных из ведущего микроконтроллера в ведомый одновременно происходит сдвиг данных из ведомого микроконтроллера в ведущий, т.е. в течение одного цикла сдвига происходит обмен данными между ведущим и ведомым микроконтроллерами.

В системе организовано одиночное буферирование передающей стороны и двойное буферирование на приемной стороне. Это означает то, что передаваемые символы не могут быть записаны в регистр данных SPI прежде, чем будет полностью завершен цикл сдвига.

С другой стороны, при приеме данных принимаемый символ должен быть считан из регистра данных SPI прежде, чем будет завершен прием следующего символа, в противном случае предшествовавший символ будет потерян.

При разрешенном SPI направления данных выводов MOSI, MISO, SCK и SS показаны на рис.1.

Функционирование входа SS. При работе SPI ведущим (бит MSTR регистра SPCR установлен) пользователь имеет возможность установить направление работы вывода SS. Если вывод SS сконфигурирован как выход, то вывод является выводом общего назначения, и он не активируется системой SPI. Если же вывод SS сконфигурирован как вход, то для обеспечения работы ведущего SPI он должен удерживаться на высоком уровне. Если в режиме ведущего, вывод SS является входом и внешней периферийной схемой на него подан низкий уровень, то SPI воспримет его как обращение другого ведущего SPI к себе как к ведомому. Чтобы избежать конфликтной ситуации на шине, система SPI выполняет следующие действия:

1. Бит MSTR в регистре SPCR очищается, и SPI система становится ведомой. Результатом этого является то, что MOSI и SCK выводы становятся входами.

2. Устанавливается флаг SPIF регистра SPSR и, если разрешено прерывание SPI, начнется выполнение подпрограммы обработки прерывания.

Таким образом, когда управляемый прерыванием передающий SPI используется в ведущем режиме и существует вероятность подачи на вывод SS управляющего сигнала низкого уровня, прерывание должно всегда проверять, установлен ли еще бит MSTR. Если же бит MSTR был очищен выбором режима ведомого, то он должен быть установлен пользователем.

Если же SPI работает в режиме ведомого, то вывод SS постоянно работает на вход. Если на вывод SS подан низкий уровень, то SPI активируется, и MISO, если это определено пользователем, становится выходом. Все остальные выводы являются входами. Если вывод SS удерживается на высоком уровне, то все выводы являются входами, SPI пассивен, что означает, что он не будет получать входящих данных.

Существует четыре варианта комбинации фазы и полярности SCK относительно последовательных данных, определяемые управляющими битами CPHA и CPOL.

Регистр управления SPI - SPCR

Bit 7 - SPIE: Разрешение прерывания SPI. Установка бита SPIE в состояние 1 приводит к установке бита SPIF регистра SPSR и, при разрешении глобального прерывания, к выполнению прерывания SPI.

Bit 6 - SPE: Разрешение SPI. Установка бита SPE в состояние 1 разрешает подключение SS, MOSI, MISO и SCK к выводам МК.

Bit 5 - DORD: Порядок данных. При установленном в состояние 1 бите DORD передача слова данных происходит LSB (мл. разряд) вперед. При очищенном бите DORD первым передается MSB (ст. разряд) слова данных.

Bit 4 - MSTR: Выбор режима ведущий/ведомый. При установленном в состояние 1 бите MSTR SPI работает в ведущем режиме и при очищенном бите в ведомом режиме. Если SS сконфигурирован как вход и на него подан низкий уровень при установленном MSTR, то MSTR будет сброшен и будет установлен бит SPIF в регистре SPSR. Чтобы вновь разрешить ведущий режим SPI, пользователь должен установить MSTR.

Bit 3 - CPOL: Полярность тактового сигнала. SCK в режиме ожидания находится на высоком уровне при установленном в состояние 1 бите CPOL и на низком уровне при сброшенном бите CPOL.

Bit 2 - CPHA: Фаза тактового сигнала. Работа этого бита отражена на рис. 3 (CPHA=0) и 4 (CPHA=1)

Рис. 3.

 

Bits 1,0 - SPR1, SPR0: Выбор частоты тактового сигнала, биты 1 и 0. Эти два бита управляют частотой тактового сигнала прибора, работающего в ведущем режиме. В ведомом режиме состояния битов влияния не оказывают. Состояния битов и устанавливаемый коэффициент деления частоты fCL показаны в табл. 2.

Таблица 2. Соотношения между SCK и частотой генератора

SPR1 SPR0 Тактовая частота SCK
    fCL / 4
    fCL / 16
    fCL / 64
    fCL / 128

Регистр статуса SPI - SPSR

Bit 7 - SPIF: Флаг прерывания по SPI. По завершении обмена последовательными данными бит SPIF устанавливается в состояние 1 и, если бит SPIE в регистре SPCR установлен и разрешено глобальное прерывание, генерируется сигнал прерывания. Бит SPIF очищается аппаратно при выполнении подпрограммы обработки соответствующего вектора прерывания. Бит SPIF может быть очищен также при первом считывании состояния регистра статуса SPI, с установленным битом SPIF, с последующим обращением к регистру данных SPI (SPDR).

Bit 6 - WCOL: Флаг ошибки при записи. Бит WCOL устанавливается в состояние 1, если в процессе передачи данных выполнялась запись в регистр данных (SPDR). Чтение содержимого регистра данных, как и запись в него, выполненные во время пересылки данных, могут привести к неверному результату. Бит WCOL (и бит SPIF) аппаратно очищаются (сбрасываются в состояние 0) при первом считывании регистра статуса SPI, с установленным WCOL, с последующим обращением к регистру данных SPI (SPDR).

Bit 5..0 - Res: Зарезервированные биты. Эти биты в микроконтроллерах ATmegaхххх зарезервированы и при считывании всегда покажут состояние 0.

Регистр данных SPI - SPDR

Регистр данных SPI представляет собой регистр с возможностью чтения/записи и предназначен для пересылки данных между регистровым файлом и сдвиговым регистром SPI. Запись в регистр SPDR инициирует передачу данных, считывание регистра приводит к чтению сдвигового регистра приема.

 

 

SPI_MasterInit:

;; Настройка разрядов порта РХ к которому подключен SPI

 

Ldi r17,(1<<DD_MOSI)|(1<<DD_SCK);

Out DDR_SPI,r17; Разрешение SPI, ведущий, частота fck/16

ldi r17,(1<<SPE)|(1<<MSTR)|(1<<SPR0)

out SPCR,r17

ret

 

 

SPI_MasterTransmit:

;Стартовая передача данных (r16)

out SPDR,r16

Wait_Transmit:

; Ожидания конца передачи

sbis SPSR,SPIF

rjmp Wait_Transmit

ret

 







Система охраняемых территорий в США Изучение особо охраняемых природных территорий(ООПТ) США представляет особый интерес по многим причинам...

Что делает отдел по эксплуатации и сопровождению ИС? Отвечает за сохранность данных (расписания копирования, копирование и пр.)...

Живите по правилу: МАЛО ЛИ ЧТО НА СВЕТЕ СУЩЕСТВУЕТ? Я неслучайно подчеркиваю, что место в голове ограничено, а информации вокруг много, и что ваше право...

Что вызывает тренды на фондовых и товарных рынках Объяснение теории грузового поезда Первые 17 лет моих рыночных исследований сводились к попыткам вычис­лить, когда этот...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.