SYNCCTRL - регистр управления/статуса синхронизации 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

SYNCCTRL - регистр управления/статуса синхронизации



Бит                  
+0x01
- - - SYNCCNT - - - SYNCBUSY
SYNCCTRL
Чтение/запись Чт. Чт. Чт. Чт/Зап Чт. Чт. Чт. Чт/Зап
Нач значение                

· Биты 7:5 - Res: резервные биты

Данные биты не используются и зарезервированы для использования в будущем. Для совместимости с более новыми МК, выполняя запись в этот регистр, всегда записывайте нули в резервные биты.

· Бит 4- SYNCCNT: разрешение синхронизации счетчика CNT

Запись единицы в данный бит запустит синхронизацию регистра CNT из домена синхронизации RTC32 с доменом системной синхронизации. Данный бит автоматически сбрасывается по завершении синхронизации.

· Биты 3:1 - Res: резервные биты

Данные биты не используются и зарезервированы для использования в будущем. Для совместимости с более новыми МК, выполняя запись в этот регистр, всегда записывайте нули в резервные биты.

· Бит 0 - SYNCBUSY: флаг занятости модуля RTC32 синхронизацией

Данный флаг становится равным единице, когда регистры CTRL или CNT заняты синхронизацией доменов синхронизации RTC32 и системной синхронизации. Синхронизация регистра CTRL запускается одновременно с записью в него. Синхронизация регистра CNT запускается одновременно с записью его старшего байта.

INTCTRL - регистр управления прерываниями

Бит                  
+0x02
- - - - COMPINTLVL[1:0] OVFINTLVL[1:0]
INTCTRL
Чтение/запись Чт. Чт. Чт. Чт. Чт/Зап Чт/Зап Чт/Зап Чт/Зап
Нач значение                

· Биты 7:4 - Res: резервные биты

Данные биты не используются и зарезервированы для использования в будущем. Для совместимости с более новыми МК, выполняя запись в этот регистр, всегда записывайте нули в резервные биты.

· Биты 3:2 - COMPINTLVL[1:0]: разрешение прерывания по совпадению в RTC32

С помощью данных бит можно разрешить прерывание по совпадению в RTC и задать его уровень (см. раздел 12 "Прерывания и программируемый многоуровневый контроллер прерываний"). Разрешенное прерывание генерируется при установке флага COMPIF в регистре INTFLAGS.

· Биты 1:0 - OVFINTLVL[1:0]: разрешение прерывания по переполнению RTC32

С помощью данных бит можно разрешить прерывание по переполнению RTC и задать его уровень (см. раздел 12 "Прерывания и программируемый многоуровневый контроллер прерываний"). Разрешенное прерывание генерируется при установке флага OVFIF в регистре INTFLAGS.

INTFLAGS - регистр флагов прерываний

Бит                  
+0x03
- - - - - - COMPIF OVFIF
INTFLAGS
Чтение/запись Чт. Чт. Чт. Чт. Чт. Чт. Чт/Зап Чт/Зап
Нач значение                

· Биты 7:2 - Res: резервные биты

Данные биты являются резервными и всегда считываются с нулевыми значениями.

· Бит 1 - COMPIF: флаг прерывания по совпадению в RTC32

Данный флаг становится равным единице во время очередного приращения счетчика после обнаружения условия совпадения. Флаг сбрасывается автоматически при переходе на вектор прерывания по совпадению в RTC32. Альтернативно, флаг можно сбросить записью в него единицы.

· Бит 0 - OVFIF: флаг прерывания по переполнению RTC

Данный флаг становится равным единице во время очередного приращения счетчика после обнаружения условия переполнения. Флаг сбрасывается автоматически при переходе на вектор прерывания по переполнению RTC. Альтернативно, флаг можно сбросить записью в него единицы.

CNT3 - регистр счетчика 3

В регистрах CNT3, CNT2, CNT1 и CNT0 хранится 32-битное значение CNT. CNT посчитывает положительные фронты импульсов синхронизации модуля RTC32.

Запись в регистр CNT3 инициирует запуск механизма синхронизации записи нового значения CNT в домен синхронизации RTC. С момента обновления регистра до вступления в силу внесенных изменений в домене синхронизации RTC проходит до 12 циклов синхронизации УВВ. Операция записи в регистр CNT будет заблокирована, если флаг SYNCBUSY окажется равным единице.

Синхронизацию значения CNT от домена RTC к домену системной синхронизации можно выполнить записью единицы в бит SYNCCNT регистра CTRL. Обновленное и синхронизированное значение регистра CNT станет доступным после 8 циклов синхронизации УВВ.

После записи старшего байта регистра CNT, условие установки OVFIF и COMPIF, а также условия возобновления по переполнению и совпадению будут отключены в течение последующих двух циклов синхронизации RTC.

Бит                  
+0x07
CNT[31:24]
CNT3
Чтение/запись Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап
Нач значение                

CNT2 - регистр счетчика 2

Бит                  
+0x06
CNT[23:16]
CNT2
Чтение/запись Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап
Нач значение                

CNT1 - регистр счетчика 1

Бит                  
+0x05
CNT[15:8]
CNT1
Чтение/запись Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап
Нач значение                

CNT0 - регистр счетчика 0

Бит                  
+0x04
CNT[7:0]
CNT0
Чтение/запись Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап
Нач значение                

PER3 - регистр периода 3

В регистрах PER0, PER1, PER2 и PER3 хранится 32-битное значение PER. Значение PER непрерывно сравнивается со значением счетчика (CNT). При обнаружении совпадения устанавливается флаг OVFIF в регистре INTFLAGS, а во время следующего цикла синхронизации RTC32 будет выполнено обнуление счетчика.

Запись в регистр PER возможна только, когда модуль RTC32 отключен и не занят синхронизацией, т.е. когда оба бита ENABLE и SYNCBUSY равны нулю.

После записи старшего байта регистра PER, условие установки OVFIF, а также условие возобновления по переполнению будут отключены в течение последующих двух циклов синхронизации RTC.

После сброса МК регистр равен 0x0000, поэтому, чтобы счетчик начал счет, в данный регистр необходимо записать отличное от нуля значение.

Бит                  
+0x0B
PER[31:24]
PER3
Чтение/запись Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап
Нач значение                

PER2 - регистр периода 2

Бит                  
+0x0A
PER[23:16]
PER2
Чтение/запись Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап
Нач значение                

PER1 - регистр периода 1

Бит                  
+0x09
PER[15:8]
PER1
Чтение/запись Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап
Нач значение                

PER0 - регистр периода 0

Бит                  
+0x08
PER[7:0]
PER0
Чтение/запись Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап
Нач значение                

COMP3 - регистр сравнения 3

В регистрах COMP0, COMP1, COMP2 и COMP3 хранится 32-битное значение COMP. Значение COMP непрерывно сравнивается со значением счетчика (CNT). При обнаружении совпадения устанавливается флаг COMPIF в регистре INTFLAGS и генерируется опциональное прерывание.

Если значение COMP окажется больше значения PER, прерывания и события по совпадению в RTC не будут генерироваться вообще.

После записи старшего байта регистра COMP, условие установки OVFIF и COMPIF, а также условия возобновления по переполнению и совпадению будут отключены в течение последующих двух циклов синхронизации RTC.

Бит                  
+0x0F
COMP[31:24]
COMP3
Чтение/запись Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап
Нач значение                

COMP2 - регистр сравнения 2

Бит                  
+0x0E
COMP[23:16]
COMP2
Чтение/запись Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап
Нач значение                

COMP1 - регистр сравнения 1

Бит                  
+0x0D
COMP[15:8]
COMP1
Чтение/запись Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап
Нач значение                

COMP0 - регистр сравнения 0

Бит                  
+0x0C
COMP[7:0]
COMP0
Чтение/запись Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап
Нач значение                

Обзор регистров

Адрес Наименование Бит 7 Бит 6 Бит 5 Бит 4 Бит 3 Бит 2 Бит 1 Бит 0
+0x00 CTRL - - - - - - - ENABLE
+0x01 SYNCCTRL - - - SYNCCNT - - - SYNCBUSY
+0x02 INTCTRL         COMPINTLVL[1:0] OVFINTLVL[1:0]
+0x03 INTFLAGS - - - - - - COMPIF OVFIF
+0x04 CNT0 CNT[7:0]
+0x05 CNT1 CNT[15:8]
+0x06 CNT2 CNT[23:16]
+0x07 CNT3 CNT[31:24]
+0x08 PER0 PER[7:0]
+0x09 PER1 PER[15:8]
+0x0A PER2 PER[23:16]
+0x0B PER3 PER[31:24]
+0x0C COMP0 COMP[7:0]
+0x0D COMP1 COMP[15:8]
+0x0E COMP2 COMP[23:16]
+0x0F COMP3 COMP[31:24]

Обзор векторов прерываний

Таблица 18.1. Векторы прерываний RTC32 и значения смещений их адресов

Смещение Источник Описание прерывания
0x00 OVF_vect Вектор прерывания по переполнению счетчика реального времени
0x02 PER_vect Вектор прерывания по совпадению в счетчике реального времени

 

Двухпроводной интерфейс TWI

Отличительные особенности

· Состоит из двух полностью независимых ведущего и подчиненного модулей

· Может работать в роли ведущего (мастера) или подчиненного узла шины, а также с мультимастерными шинами

· Совместимость с интерфейсом I2C (Phillips)

· Совместимость с SMBus

· Поддержка частот синхронизации 100 кГц и 400 кГц при низкочастотной системной синхронизации

· Выходные драйверы с ограниченной скоростью фронтов импульсов

· Входной фильтр обеспечивает подавления шума

· Аппаратное распознавание 7-битного адреса, а также команды общего вызова

· Регистр маски адреса для маскирования адреса или для обнаружения совпадения двух адресов

· Поддержка 10-битной адресации

· Опциональное программное распознавание адреса обеспечивает неограниченное количество подчиненных адресов

· Подчиненный узел может работать в экономичных режимах МК, в т.ч. POWER DOWN

· Арбитраж между передачами условия START (или REPEATED START) и бит данных (SMBus)

· Поддержка протокола разрешения адресов (ARP) в ходе арбитража подчиненных устройств (SMBus)

Обзор

Двухпроводной интерфейс (TWI) - двунаправленная двухпроводная последовательная шина передачи данных, совместимая со стандартными шинами I2C и SMBus.

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

Модуль TWI микроконтроллеров XMEGA может работать и в роли ведущего, и в роли подчиненного устройства. Ведущая и подчиненная работа полностью отделены друг от друга и предусматривают отдельное управление включением/отключением. Для этих функций также предусмотрены отдельные регистры управления и статуса, а также векторы прерываний. Потеря арбитража, ошибки, коллизии и удержание линии синхронизации обнаруживаются на аппаратном уровне и индицируются отдельными флагами статуса для ведущего и подчиненного режимов.

Ведущий модуль содержит программируемый генератор скорости связи. Даже при синхронизации системы низкими частотами, поддерживается возможность работы шины на частоте 100 и 400 кГц. При необходимости автоматического выполнения операций и снижения сложности программы могут быть разрешены команды QUICK и режим SMART.

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

Логика подчиненного модуля продолжает работать во всех экономичных режимах работы МК, в т.ч. POWER DOWN. Благодаря этому, подчиненный модуль способен возобновить активную работу МК при обнаружении совпадения адреса. При необходимости программного слежения за адресами, аппаратную функцию обнаружения совпадения адреса можно отключить. Потребность в этом может возникнуть, когда необходимо обнаруживать несколько различных адресов и реагировать на них. При необходимости автоматического выполнения действий и снижения сложности программы можно задействовать режим SMART.

Модуль TWI содержит логику контроля состояния шины, которая накапливает информацию для обнаружения условий START и STOP, коллизий и ошибок шины. С её помощью можно определить состояние шины в ведущем режиме (IDLE, OWNER, BUSY или UNKNOWN). Логика контроля состояния шины продолжает работать даже в экономичных режимах МК, в т.ч. POWER DOWN.

При необходимости подключения к внешнему драйверу шины по 4-проводному интерфейсу, внутренние драйверы модуля TWI можно отключить.

Принцип действия шины TWI

Двухпроводной интерфейс (TWI) подключается к простой двухпроводной и двунаправленной шине, которая состоит из двух линий: линия синхронизации (SCL) и линия последовательной передачи данных (SDA). Источниками сигналов для обеих линий являются схемы с открытым коллектором в выходном каскаде (используется принцип "монтажного И"). Для создания высоких логических уровней на линиях шины, в т.ч. когда к шине не подключено ни одно устройство, необходимы подтягивающие к плюсу питания резисторы (Rp) - единственно необходимые внешние компоненты. Альтернативно, вместо подтягивающих резисторов могут использоваться источники тока.

Шина TWI является простым и эффективным средством соединения по последовательной шине нескольких устройств.

Устройство, подключенное к шине, может быть либо ведущим (master), либо подчиненным (slave). Чтобы передача по шине стала возможной, к ней должно быть подключено как минимум одно ведущее устройство.

Топологию шины TWI иллюстрирует рисунок 19.1.

Рисунок 19.1. Топология шины TWI

Каждое подключенное к шине подчиненное устройство должно иметь собственный неповторяющийся адрес, передачей которого ведущее устройство инициирует транзакцию. Могут использоваться 7- или 10-битные адреса. К одной шине допускается подключение нескольких ведущих устройств. Такая шина называется мультимастерной. Для определения, какое из одновременно осуществляющих доступ к шине ведущих устройств имеет приоритет, используется механизм арбитража.

Устройство может содержать, как логику ведущего устройства, так и логику подчиненного устройства. Кроме того, оно может эмулировать работу нескольких подчиненных устройств, путем реагирования на несколько адресов.

Ведущее устройство сигнализирует о начале транзакции генерацией на шине условия START (S). Затем, передается пакет адреса с адресом подчиненного устройства (ADDRESS) и указание желаемого направления передачи данных, т.е. чтение или запись (R/W). По завершении передачи всех пакетов данных (DATA), ведущее устройство генерирует на шине условие STOP (P) и транзакция завершается. После приема каждого байта получатель данных генерирует бит подтверждения (A или ACK) или неподтверждения (/A или NACK).

Транзакция шины TWI показана на рисунке 19.2.

Рисунок 19.2. Структура базовой транзакции шины TWI

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



Поделиться:


Последнее изменение этой страницы: 2016-12-30; просмотров: 260; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.81.222.152 (0.053 с.)