135319 (721861), страница 9

Файл №721861 135319 (AVR микроконтроллер AT90S2333 фирмы Atmel) 9 страница135319 (721861) страница 92016-08-01СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 9)

Если SPI сконфигурирован как ведущий (установлен бит MSTR в SPCR), пользователь может задавать направление ввода для ножки 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

0Dh(2Dh)

7

6

5

4

3

2

1

0

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

РЕГИСТР СОСТОЯНИЯ 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.

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

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

Характеристики

Тип файла
Документ
Размер
936,5 Kb
Тип материала
Учебное заведение
Неизвестно

Список файлов реферата

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6367
Авторов
на СтудИзбе
309
Средний доход
с одного платного файла
Обучение Подробнее