AVR микроконтроллер AT90S2333 фирмы Atmel

Бит 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

 

 

 

 

 

 

 

РЕГИСТР СОСТОЯНИЯ SPISPSR

 

 

  

0Eh(2Eh)

7

6

5

4

3

2

1

0

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

 

  

0Fh(2Fh)

7

6

5

4

3

2

1

0

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.

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34



Реклама
В соцсетях
рефераты скачать рефераты скачать рефераты скачать рефераты скачать рефераты скачать рефераты скачать рефераты скачать