реферат, рефераты скачать Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
реферат, рефераты скачать
реферат, рефераты скачать
МЕНЮ|
реферат, рефераты скачать
поиск
AVR микроконтроллер AT90S2333 фирмы Atmel

пользователь может задавать направление ввода для ножки SS. Если SS

сконфигурирован на вывод, ножка работает как бит ввода/вывода общего

назначения не влияющий на работу SPI. Если ножка сконфигурирована на ввод,

на нее необходимо подать высокий уровень, чтобы SPI работал в режиме

ведущего. Если в режиме ведущего ножка SS установлена на ввод и внешним

устройством устанавливается в низкий уровень, системой SPI это

воспринимается как выбор шины другим ведущим устройством и попытка передать

данные ведомому. Для избежания конфликтов на шине система SPI делает

следующее:

1. Сбрасывается бит MSTR в SPCR, система SPI становится ведомой. При этом

ножки MOSI и SCK становятся входами.

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

исполнена программа обслуживания прерывания.

Таким образом если передача по SPI производится в режиме ведущего и

существует возможность установки вывода SS в низкий уровень, прерывание

должно отслеживать установлен ли бит MSTR. Если бит MSTR будет сброшен при

переходе в режим ведомого контроллера, обратно он должен быть установлен

пользователем.

Если система SPI сконфигурирована как ведомая, вывод SS всегда является

входом. Когда SS переводится в низкий уровень, система SPI активируется и

ножка MISO, если это задано пользователем, становится выходом. Другие

выводы являются входами. Если внешним устройством на вывод SS подан высокий

уровень, все выводы становятся входами, а система SPI становится пассивной,

т.е. не будет принимать данные.

Режимы обмена данными

Биты CPHA и CPOL определяют четыре комбинации фазы и полярности SCK

относительно битов данных. Битом CPOL задается полярность импульсов на

выводе SCK, при CPOL=0 полярность импульсов положительная, при отсутствии

импульсов на выводе удерживается низкий уровень. При CPOL=1 полярность

импульсов отрицательная, при отсутствии импульсов на выходе высокий

уровень. Битом CPHA задается фронт по которому обрабатываются биты данных.

При CPHA=0 обработка происходит по переднему фронту импульсов SCK (для

CPOL=0 переход из низкого уровня в высокий, для CPOL=1 - из высокого в

низкий). При CPHA=1 обработка происходит по заднему фронту импульсов SCK.

РЕГИСТР УПРАВЛЕНИЯ SPI – SPCR

| |7 |6 |5 |4 |3 |2 |1 |0 |

|0Dh(2Dh) | | | | | | | | |

| |SPIE |SPE |DORD |MSTR |CPOL |CPHA |SPR1 |SPRO0 |

| |R\W |R\W |R\W |R\W |R\W |R\W |R\W |R\W |

|Начальное|0 |0 |0 |0 |0 |1 |0 |0 |

|значение | | | | | | | | |

Бит 7 - SPIE - Разрешение прерываний от SPI - если этот бит установлен, при

установке бита SPIF в регистре SPSR выполняется прерывание от SPI, если

разрешены общие прерывания.

Бит 6 - SPE - Разрешение SPI - Этот бит должен быть установлен для

осуществления любых операций по шине SPI.

Бит 5 - DORD - Порядок бит данных - Если этот бит установлен, при обмене

первым передается младший бит данных. Если бит сброшен – первым передается

старший бит.

Бит 4 - MSTR - Выбор ведущего/ведомого - При установке этого бита шина SPI

работает в режиме ведущего, при сбросе - в режиме ведомого. Если вывод SS

сконфигурирован как вход и устанавливается в низкий уровень когда

установлен бит MSTR, бит MSTR сбрасывается и устанавливается бит SPIF в

регистре SPSR. Для возобновления работы в режиме ведущего пользователь

должен установить этот бит.

Бит 3 - CPOL - Полярность тактовых сигналов - Этим битом задается

полярность импульсов на выводе SCK, при CPOL=0 полярность импульсов

положительная, при отсутствии импульсов на выводе удерживается низкий

уровень. При CPOL=1 полярность импульсов отрицательная, при отсутствии

импульсов на выходе высокий уровень.

Бит 2 - CPHA - Фазировка тактовых импульсов. - Этим битом задается фронт по

которому обрабатываются биты данных. При CPHA=0 обработка происходит по

переднему фронту импульсов SCK (для CPOL=0 переход из низкого уровня в

высокий, для CPOL=1 - из высокого в низкий). При CPHA=1 обработка

происходит по заднему фронту импульсов SCK.

Биты 1,0 - SPR1,SPR0 - Выбор тактовой частоты SPI. - Этими битами задается

скорость работы SPI шины для ведущего устройства. Для ведомого контролерра

установка этих бит не имеет значения. Соотношение тактовой частоты

процессора и частоты SCK приведено в таблице:

Таблица 17. Соотношение между SCK и тактовой частотой процессора

|SPR1|SPR0|Частота SCK |SPR1|SPR0|Частота |

| | | | | |SCK |

|0 |0 |Fck/4 |1 |0 |Fck/64 |

|0 |1 |Fck/16 |1 |1 |Fck/128 |

РЕГИСТР СОСТОЯНИЯ SPI – SPSR

| |7 |6 |5 |4 |3 |2 |1 |0 |

|0Eh(2Eh) | | | | | | | | |

| |SPIF |WCOL |- |- |- |- |- |- |

| |R |R |R |R |R |R |R |R |

|Начальное|0 |0 |0 |0 |0 |1 |0 |0 |

|значение | | | | | | | | |

Бит 7 - SPIF - флаг прерывания SPI. После завершения обмена устанавливается

бит SPIF и генерируется прерывание, если установлен бит SPIE в SPCR и

разрешены глобальные прерывания. Этот флаг устанавливается и в том случае,

если на вывод SS, сконфигурированный как вход, подается низкий уровень,

когда SPI работает в режиме ведущего. Флаг SPIF сбрасывается аппаратно при

выполнении соответствующего вектора прерывания. Кроме того бит SPIF, если

он был установлен, сбрасывается при первом же чтении регистра SPSR и

последующем доступе к регистру данных SPI.

Бит 6 - WCOL - Ошибка записи. - Этот бит устанавливается при записи в

регистр SPDR во время обмена. Чтение регистра во время обмена дает неверный

результат, запись в него не производится. Так же как и бит SPIF, WCOL

сбрасывается (если он был установлен) при первом же чтении регистра SPSR и

последующем доступе к регистру SPDR.

Биты 5..0 - зарезервированы. В AT90S2333/4433 эти биты зарезервированы и

всегда читаются как 0.

SPI интерфейс также используется для загрузки и чтения памяти программ и

содержимого EEPROM процессора, программирование процессора через SPI

интерфейс будет рассмотрено ниже.

РЕГИСТР ДАННЫХ SPI – SPDR

| |7 |6 |5 |4 |3 |2 |1 |0 |

|0Fh(2Fh) | | | | | | | | |

| |MSB | | | | | | |LSB |

| |R\W |R\W |R\W |R\W |R\W |R\W |R\W |R\W |

|Начальное|0 |0 |0 |0 |0 |0 |0 |0 |

|значение | | | | | | | | |

Регистр данных SPI доступен для чтения и записи и используется для обмена

данными между набором регистров и регистром сдвига SPI. Запись в регистр

инициирует передачу данных. При чтении регистра читаются данные и буфера

регистра сдвига.

УНИВЕРСАЛЬНЫЙ АСИНХРОННЫЙ ПРИЕМО-ПЕРЕДАТЧИК

В состав AT90S2333/4433 входит универсальный асинхронный приемопередатчик

(UART), его основные особенности:

- генерация произвольных значений скорости

- высокая скорость при низких тактовых частотах

- 8 или 9 бит данных

- фильтрация шума

- Определение переполнения

- Детектирование ошибки кадра

- Определение неверного стартового бита

- Три раздельных прерывания - завершение передачи, очистка регистра

передачи и завершение приема.

- Режим мультипроцессорного обмена.

Передача данных

Передача данных инициируется записью передаваемых данных в регистр

ввода/вывода данных UART - UDR. Данные пересылаются из UDR в сдвиговый

регистр передатчика когда:

- новый символ записывается в UDR после того как был выдвинут стоповый бит

для предыдущего символа. При этом сдвиговый регистр загружается сразу.

- новый символ записывается в UDR до того как выдвинут стоповый бит для

предыдущего символа. При этом сдвиговый регистр записывается сразу после

того, как будет выдвинут стоповый бит предыдущего символа.

При этом в регистре состояния UART - USR устанавливается бит-признак

очистки регистра данных - UDRE/ Когда этот бит установлен, UART готов к

приему следующего символа. При перезаписи UDR в 10(11)- разрядный сдвиговый

регистр, бит 0 сдвигового регистра обнуляется (стартовый бит), а бит 9 или

10 устанавливается (стоповый бит). Если выбрано 9-битовое слово данных

(установлен бит CHR9 в регистре UCR), бит TXB8 из UCR переписывается в 9-й

бит сдвигового регистра передатчика.

После тактового импульса, следующего с частотой передачи, стартовый бит

выдвигается на вывод TXD. Затем выдвигаются данные, начиная с младшего

бита. После того как выдвинут стоповый бит, в сдвиговый регистр

загружаются новые данные, если они были записаны в UDR во время передачи.

При загрузке устанавливается бит UDRE. Если до выдвижения стопового бита

в регистр UDR не поступают новые данные, UDRE остается установленным до

последующей записи UDR. Если новые данные не поступили и на выводе TXD

появляется стоповый бит, в регистре USR устанавливается флаг окончания

передачи - TXC.

Установка бита TXEN в UCR разрешает работу передатчика. При очистке бита

TXEN, вывод PD1 можно использовать для ввода/вывода данных. Если бит TXEN

установлен, передатчик UART подключен к выводу PD1 независимо от установки

бита DDD1 в регистре DDRD.

Прием данных

Логическая схема приемника обрабатывает сигнал на выводе RXD с частотой в

16 больше скорости передачи (для обработки одного бита принимаемой

последовательности, производится 16 выборок входного сигнала). В состоянии

ожидания одна выборка логического нуля интерпретируется как спадающий фронт

стартового бита, после чего запускается последовательность обнаружения

стартового бита. Если в первой выборке сигнала обнаружен нулевой отсчет,

приемник обрабатывает 8, 9 и 10 выборки сигнала на выводе RXD. Если хотя бы

две из трех выборок равны логической единице, стартовый бит считается шумом

и приемник ждет следующего перехода из 1 в 0. Если обнаружен стартовый бит,

начинается обработка бит данных. Решение об уровне данных также

производится по 8, 9 и 10 выборкам входного сигнала, уровень входного

сигнала определяется по равенству двух выборок. После того как уровень

данных определен, данные вдвигаются в сдвиговый регистр приемника. Для

определения стопового бита хотя бы две из трех выборок входного сигнала

должны быть равны 1. Если это условие не выполняется, в регистре USR

устанавливается флаг ошибки кадра FE. Перед чтением данных из регистра UDR

пользователь должен проверять бит FE для обнаружения ошибок кадра.

Независимо от принятия правильного стопового бита по окончанию приема

символа принятые данные переписываются в UDR и устанавливается флаг RXC в

регистре USR. Физически регистр UDR состоит из двух отдельных регистров,

один используется для передачи данных, другой - для приема. При чтении UDR

происходит доступ к регистру приемника, при записи - к регистру

передатчика. При обмене 9-битовыми данными 9-й бит принятых данных

записывается в бит RXB8 регистра UCR. Если при приеме символа из регистра

UDR не был прочитан предыдущий символ, в регистре UCR устанавливается флаг

переполнения - OR. Установка этого бита означает, что последний принятый

байт данных не переписывается из сдвигового регистра в регистр UDR и будет

потерян. Бит OR буферирован и обновляется при чтении правильных данных из

UDR. Таким образом, пользователь всегда может проверить состояние OR после

чтения UDR и обнаружить происшедшее переполнение. При сбросе бита RXEN в

регистре UCR прием данных запрещается. При этом вывод PD0 можно

использовать для ввода/вывода общего назначения. При установке RXEN,

приемник подключен к выводу PD0 независимо от состояния бита DDD0 в

регистре DDRD.

Режим мультипроцессорного обмена Режим многопроцессорного обмена позволяет

нескольким ведомым процессорам принимать данные от ведущего. Для этого

сначала декодируется адресный байт, который определяет к какому из

процессоров обращается ведущий.

Если ведомый процессор принял правильный адрес, последующие

байты он принимает как данные, в то время как остальные ведомые процессоры

игнорируют принимаемые байты до приема следующего адреса. Для работы в

режиме ведущего процессор должен установить 9-битовый режим передачи

(установлен бит CHR9 в UCSRB). Для передачи адресного байта девятый бит

должен устанавливаться в 1, и сбрасываться для передачи байтов данных. В

ведомых процессорах механизм приема слегка отличается для 8-ми и 9-ти

битового режима приема. При приеме восьми бит (сброшен бит CHR9 в UCSRB),

стоповый бит для адресного байта равен единице и равен нулю для байт

данных. В 9-ти битовом режиме для адресного байта устанавливается 9-й бит,

для байт данных он будет сброшен, стоповый бит всегда будет равен 1. Для

обмена данными в многопроцессорном режиме необходимо выполнить следующую

процедуру.

1. Все подчиненные процессоры устанавливают обмен в многопроцессорном

режиме (установлен бит MPCM в UCSRA)

2. Ведущий процессор посылает адресный байт, все подчиненные процессоры

читают и принимают этот байт. В ведомых процессорах устанавливается флаг

RXC в UCSRA.

3. Каждый из ведомых процессоров читает регистр UDR и определяет был ли он

выбран. Если процессор выбран, он сбрасывает флаг MPCM в UCSRA, иначе он

будет ожидать следующего адресного байта.

4. Для каждого принятого байта данных в ведомом процессоре устанавливается

флаг завершения приема (RXC в UCSRA). Кроме того в 8-битовом режиме будет

генерироваться ошибка кадра (FE в UCSRA), поскольку стоповый бит будет

равен 0. В других подчиненных процессорах

установлен бит MPCM, поэтому байты данных будут игнорироваться, регистр UDR

не записывается, флаги RXC и FE не устанавливаются.

5. После передачи последнего байта данных процесс повторяется с шага 2.

Управление UART

РЕГИСТР ВВОДА/ВЫВОДА UART

| |7 |6 |5 |4 |3 |2 |1 |0 |

|0Ch(2Ch) | | | | | | | | |

| |MSB | | | | | | |LSB |

| |R\W |R\W |R\W |R\W |R\W |R\W |R\W |R\W |

|Начальное|0 |0 |0 |0 |0 |1 |0 |0 |

|значение | | | | | | | | |

Физически регистр UDR является двумя отдельными регистрами, доступ к

которым происходит по одному адресу. При записи происходит запись в регистр

передатчика, при чтении - читается регистр приемника.

РЕГИСТР УПРАВЛЕНИЯ И СОСТОЯНИЯ UART (UСSRA)

| |7 |6 |5 |4 |3 |2 |1 |0 |

|0Bh(2Bh) | | | | | | | | |

| |RXC |TXC |UDRE |FE |OR |- |- |MPCM |

| |R |R\W |R |R\W |R\W |R\W |R\W |R\W |

|Начальное|0 |0 |1 |0 |0 |1 |0 |0 |

|значение | | | | | | | | |

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10



© 2003-2013
Рефераты бесплатно, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.