Лекции.Орг


Поиск:




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




Лекция 13

 

13.1. Таймер/счетчик 1 в режиме ШИМ

13.2. Сторожевой таймер (WDT)

13.3.Регистр управления сторожевым таймером – WDTCR

13.4. Последовательный периферийный интерфейс (SPI)

13.5. Функционирование входа SS

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

13.1. Таймер/счетчик 1 в режиме ШИМ

 

При установленном режиме ШИМ таймер/счетчик 1 и регистры сравнения выхода A и B (OCR1A и OCR1B) образуют сдвоенный 8-, 9- или 10-разрядный автономный генератор ШИМ с правильным чередованием фаз, отсутствием ложных выбросов и выходами на выводы PD5(OC1A) и PD4(OC1B). Таймер/счетчик 1 работает как реверсивный счетчик, считающий от $0000 до TOP (табл. 3.8), где направление счета меняется и отсчет ведется до нуля, после чего цикл повторяется. Когда состояние счетчика совпадет с содержимым 10 младших битов OCR1A или OCR1B, выводы PD5(OC1A)/PD4(OC1B) устанавливаются или очищаются, в соответствии с установками битов COM1A1/COM1A0 или COM1B1/COM1B0 в регистре управления таймером/счетчиком 1 TCCR1A. Более подробно см. в табл. 3.9.

Таблица 3.8

 

Значения TOP и частота ШИМ

 

Разрешение ШИМ Значения TOP Частота
8-разрядное $00FF (255) f TC1 /510
9-разрядное $01FF (511) f TC1 /1022
10-разрядное $03FF (1023) f TC1 /2046

 

Примечание. Если регистр сравнения содержит значение ТОР и предварительный делитель частоты не используется (CS12..CS10 = 001), на выходе ШИМ не появятся импульсы, потому что значения при счете вверх и вниз достигаются одновременно. Когда предварительный делитель частоты используется (CS12..CS10.001 или 000), на выходе ШИМ появляется акти вность, если счетчик достигает значения ТОР. При счете вниз достижение совпадения не интерпретируется, пока счетчик не достигнет значения ТОР, получая один период импульса ШИМ.

 

Таблица 3.9

 

Выбор режима сравнения1 в режиме ШИМ

 

COM1X1 COM1X0 Выходной сигнал на OCX1
    Не подключен
    Не подключен
    Очищается по совпадению при счете вверх. Устанавливается по совпадению при счете вниз (неинвертированный ШИМ)
    Очищается по совпадению при счете вниз. Устанавливается по совпадению при счете вверх (инвертированный ШИМ)

 

Примечание. X = A или B.

 

Отметим, что в режиме ШИМ младшие 10 разрядов OCR1A/OCR1B при записи пересылаются в ячейки временного хранения. Они фиксируются по достижении таймером/счетчиком 1 значения TOP. Таким способом обеспечивается защита от появления уширенных импульсов ШИМ (ложных выбросов – glitches) при несинхронной записи OCR1A/OCR1B.

В режиме ШИМ флаг переполнения таймера 1 (TOV1) устанавливается при смене направления счета по достижении значения $0000. Прерывание по переполнению таймера 1 работает так же, как и в обычном режиме таймера/счетчика, т. е. оно выполняется, когда TOV1 установлен и разрешены прерывания по переполнению таймера 1 и глобальные прерывания. Это относится и к флагам сравнения выхода таймера 1, и прерываниям.

Сторожевой таймер (WDT)

 

Сторожевой таймер тактируется отдельным встроенным генератором.Установкой коэффициента предварительного деления интервал сброса сторожевого таймера может быть настроен, как показано в табл. 3.10. Команда WDR (Watchdog Reset) сбрасывает сторожевой таймер. Можно установить восемь периодов длительности тактового сигнала. Если период сброса завершается (в течение этого периода не поступил сигнал сброса сторожевого таймера), то микроконтроллер AT90S4434/8535 сбрасывается и его работа продолжается по вектору сброса. Чтобы предохранить непреднамеренное выключение сторожевого таймера, отключение сторожевого таймера должно сопровождаться специальной последовательностью выключения.

 

13.3.Регистр управления сторожевым таймером – WDTCR

 

На рис. 3.10 изображен регистр управления сторожевым таймером.

 

$21(41)

биты 7 6 5 4 3 2 1 0

- - - WDTOE WDE WDP2 WDP1 WDP0

Доступ Чт Чт Чт Чт/Зп Чт/Зп Чт/Зп Чт/Зп Чт/Зп

Н. С. 0 0 0 0 0 0 0 0

 

 

Рис. 3.10. Регистр управления сторожевым таймером

Биты 7...5 – зарезервированные биты в 4434/8535 всегда читаются как 0.

Бит 4 – WDTOE: – разрешение отключения сторожевого таймера. Данный бит должен быть установлен в состояние 1 при очистке бита WDE. В ином случае сторожевой таймер не будет запрещен. Установленный бит аппаратно очищается после четырех тактовых циклов.

Бит 3 – WDE: – разрешение сторожевого таймера.

Если бит WDE установлен в состояние 1 (сторожевой таймер разрешен) и если бит WDE очищен, то функционирование сторожевого таймера запрещено. Бит WDE может быть очищен, если установлен бит WDTOE. Для запрещения разрешенного сторожевого таймера необходимо выполнить следующую процедуру:

1. В одной операции записать логическую 1 в WDTOE и WDE. Логическая 1 должна быть записана в WDE, даже если этот бит был установлен перед началом операции запрета сторожевого таймера.

2. За время последующих четырех тактовых циклов записать логический 0 в WDE. Сторожевой таймер будет запрещен.

Биты 2..0 – WDP2, WDP1, WDP0: – биты установки коэффициента предварительного деления сторожевого таймера.

Состояния битов WDP2, WDP1 и WDP0 определяют коэффициент предварительного деления тактовой частоты разрешенного сторожевого таймера. Коэффициенты и соответствующие им промежутки времени представлены в табл. 3.10.

 

Таблица 3.10

 

Коэффициент предварительного деления сторожевого таймера

 

WDP2 WDP1 WDP0 Количество циклов генератора WDT Задержка VCC = 3.0V Задержка VCC = 5.0V
      16K циклов 47 мс 15 мс
      32K циклов 94 мс 30 мс
      64K циклов 0.19 с 60 мс
      128K циклов 0.38 с 0.12 с
      256K циклов 0.75 с 0.24 с
      512K циклов 1.5 с 0.49 с
      1024K циклов 3.0 с 0.97 с
      2048K циклов 6.0 с 1.9 с

 

 

Примечание. Частота тактового генератора сторожевого таймера зависит от напряжения питания. Команда WDR (Watchdog Reset) должна всегда быть выполнена перед разрешением сторожевого таймера. Это гарантирует, что задержка будет соответствовать настройкам предварительного делителя частоты сторожевого таймера. Если не произвести сброс перед разрешением сторожевого таймера, то счет может начаться не с нуля. Чтобы избежать непреднамеренного сброса, сторожевой таймер должен быть запрещен или сброшен перед изменением настроек предварительного делителя сторожевого таймера.

 

 

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

 

Последовательный периферийный интерфейс (SPI) обеспечивает высокоскоростной синхронный обмен данными между микроконтроллерами AT90S4434/8535 и периферийными устройствами или между несколькими AVR-устройствами.

Основные характеристики SPI интерфейса:полнодуплексный 3-проводной синхронный обмен данными; режим работы ведущий или ведомый;

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

битами; четыре программируемые скорости обмена данными; флаг ошибки при записи; активация из Idle-режима.

Соединения между ведущим и ведомым CPU, использующими SPIинтерфейс, показаны на рис. 3.11. Вывод PB7(SCK) является выходом тактового сигнала ведущего микроконтроллера и входом тактового сигнала ведомого.

По записи ведущим CPU-данных в SPI-регистр начинает работать тактовый генератор SPI и записанные данные сдвигаются через вывод выхода PB5(MOSI) ведущего микроконтроллера на вывод входа PB5 (MOSI) ведомого микроконтроллера. После сдвига одного байта тактовый генератор SPI останавливается, устанавливая флаг окончания передачи (SPIF). Если в регистре SPCR будет установлен бит разрешения прерывания SPI (SPIE), то произойдет запрос прерывания. Вход выбора ведомого PB4(SS) для выбора индивидуального SPI-устройства в качестве ведомого устанавливается на низкий уровень.

 


 

 

Рис. 3.11. SPI-интерфейс (подключение устройств)

 

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

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

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

 

 

Функционирование входа 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 пассивен, что означает, что он не будет получать входящих данных.

Отметим, что SPI-логика будет сброшена при приведении пина SS в высокий уровень. Если пин SS приведен в высокий уровень в течение передачи, SPI останавливает передачу и прием данных немедленно и полученные данные и посланные должны считаться потерянными.

 

 

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

 

На рис. 3.12 изображен регистр управления SPI.

 

$0D(2D)

биты

 

7 6 5 4 3 2 1 0

SPIE SPE DORD MSTR CPOL CPHA SPR1 SPR0

 

Доступ Чт/Зп Чт/Зп Чт/Зп Чт/Зп Чт/Зп Чт/Зп Чт/Зп Чт/Зп

Н. С. 0 0 0 0 0 0 0 0

Рис. 3.12. Регистр управления SPI

 

Бит 7 – SPIE: – разрешение прерывания SPI.

Установка бита SPIE в состояние 1 означает, что прерывания будут выполняться, если установлен бит SPIF регистра SPSR и разрешено глобальное прерывание.

Бит 6 – SPE: – разрешение SPI.

Установка бита SPE в состояние 1 разрешает SPI-операции. Бит 5 – DORD: – порядок данных.

При установленном в состояние 1 бите DORD передача слова данных начинается с LSB. При очищенном бите DORD первым передается MSB слова данных.

Бит 4 – MSTR: – выбор режима ведущий/ведомый.

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

SCK в режиме ожидания находится на высоком уровне при установленном в состояние 1 бите CPOL и на низком уровне при сброшенном бите CPOL.

Бит 2 – CPHA: – фаза тактового сигнала.

Биты 1,0 – SPR1, SPR0: – выбор частоты тактового сигнала, биты 1 и 0.

 

Таблица 3.11

 

Состояния битов и устанавливаемый коэффициент деления частоты

 

SPR1 SPR0 Частота SCK
    fCL / 4
    fCL / 16
    fCL / 64
    fCL / 128

 

 

Эти два бита управляют частотой тактового сигнала прибора, работающего в ведущем режиме. В ведомом режиме состояния битов влияния

не оказывают. Состояния битов и устанавливаемый коэффициент деления частоты показаны в табл. 3.11.





Поделиться с друзьями:


Дата добавления: 2016-11-24; Мы поможем в написании ваших работ!; просмотров: 360 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Что разум человека может постигнуть и во что он может поверить, того он способен достичь © Наполеон Хилл
==> читать все изречения...

961 - | 874 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.