- •Федеральное агентство по образованию
- •1. Основы электрических измерений
- •1.1. Основные понятия и определения
- •1.2. Точностные характеристики средств измерений
- •1.3. Анализ статических погрешностей электронных схем
- •2. Простейшие электронные цепи и методы их анализа
- •2.1. Основные понятия и определения
- •2.2. Применение операторного метода к расчету электрических цепей
- •2.2.1. Прямое преобразование Лапласа
- •2.2.2. Обратное преобразование Лапласа
- •3. Типовые структуры электронных устройств и их свойства
- •3.1. Последовательная структура и ее свойства
- •3.2. Параллельная структура и ее свойства
- •3.3. Встречно-параллельное соединение
- •3.4. Задачи
- •4. Пассивные полупроводниковые компоненты электронных цепей
- •4.1. Полупроводниковые диоды и стабилитроны
- •4.2. Примеры применения полупроводниковых диодов
- •4.3. Светодиоды
- •4.4. Фотодиоды
- •5. Активные полупроводниковые компоненты электронных цепей
- •5.1. Биполярные транзисторы и их применение
- •5.1.1. Структура и принцип действия биполярных транзисторов
- •5.1.2. Характеристики и параметры биполярных транзисторов
- •5.1.3. Обеспечение усилительного режима бт в схемах
- •В результате получаем
- •5.1.4. Малосигнальные эквивалентные схемы и усилительные параметры бт
- •5.1.5. Амплитудно-частотные характеристики бт
- •5.1.6. Элементы транзисторной схемотехники
- •5.2. Полевые транзисторы и их применение
- •5.2.1. Классификация и общие особенности полевых транзисторов
- •5.2.2. Статические характеристики и дифференциальные параметры
- •5.2.3. Способы задания смещения в усилительных каскадах на пт
- •5.2.4. Малосигнальные эквивалентные схемы и усилительные параметры пт
- •5.2.5. Температурная стабильность параметров пт
- •5.2.6. Передаточная функция и динамические свойства пт Инерционные свойства пт описываются передаточной функцией вида
- •5.3. Задачи
- •6. Интегральные микросхемы и их классификация
- •7. Аналоговые интегральные микросхемы и их применение
- •7.1. Операционные усилители и их применение
- •7.1.1. Понятие идеального операционного усилителя
- •7.1.2. Принципы и примеры расчета схем с операционными усилителями
- •7.1.3. Динамические свойства устройств на операционных усилителях
- •7.1.4. Точностные характеристики устройств на операционных усилителях
- •7.1.5. Применение операционных усилителей
- •7.1.6. Задачи
- •7.2. Компараторы
- •7.3. Аналоговые ключи и коммутаторы
- •7.4. Устройства выборки-хранения
- •7.5. Интегральный таймер
- •7.5.1. Задачи
- •7.7. Справочные данные на оу
- •8. Цифро-аналоговые и аналого-цифровые преобразователи
- •8.1. Цифро-аналоговые преобразователи (цап)
- •8.2. Аналого-цифровые преобразователи (ацп)
- •9. Цифровые интегральные микросхемы и их применение
- •9.1. Элементы алгебры логики
- •9.2. Основные типы цифровых имс
- •9.3. Параметры цимс
- •9.4. Комбинационные логические цепи
- •9.4.1. Основные разновидности комбинационных логических цепей
- •9.4.2. Синтез комбинационных логических цепей
- •9.5. Последовательностные логические цепи
- •9.5.1. Классификация последовательностных логических цепей
- •9.5.2. Триггеры
- •9.5.3. Регистры
- •9.5.4. Счетчики импульсов
- •9.6. Применение цифровых имс в импульсных цепях
- •9.7. Задачи
- •10. Микросхемы полупроводниковых запоминающих устройств
- •10.1. Классификация полупроводниковых запоминающих устройств
- •10.2. Построение модулей памяти микропроцессорных систем
- •11. Элементы микропроцессорной техники
- •11.1. Общие сведения о микроконтроллерах семейства piCmicro
- •1. Ядро микроконтроллера
- •2. Периферийные модули
- •3. Специальные особенности микроконтроллеров
- •Ядро микроконтроллера
- •Порты ввода-вывода
- •Периферийные модули
- •11.2. Примеры применения микроконтроллеров piCmicro
- •11.2.1. Устройство управления четырьмя светодиодами
- •Incf portb, f ; включить крайний справа светодиод
- •11.2.2. Управление жки с помощью последовательного адаптера
- •11.2.3. Аналого-цифровое преобразование
- •11.3. Общие сведения о микроконтроллерах семейства avr
- •Режимы адресации программ и данных.
- •11.4. Примеры применения микроконтроллеров avr
- •11.4.1. Ик дальномер
- •Библиографический список
- •Оглавление
Режимы адресации программ и данных.
Усовершенствованные RISC микроконтроллеры AVR поддерживают эффективную и мощную систему адресации.
Прямая регистровая. Адресуется отдельный регистр Rd, адрес регистра указывается в битах 0..4 кода команды, операнд содержится в регистре Rd.
Косвенная регистровая. Регистр адресуется через указатель Z-регистр (R30).
Прямая регистровая, два регистра Rd и Rr, - адреса регистров указываются в битах 0..4 (Rd) и 5..9 (Rr) кода команды. Операнды содержатся в регистрах Rd и Rr. Результат помещается в регистр Rd.
Прямая ввода/вывода. Адрес операнда содержится в битах 0..5 кода команды, адрес регистра в битах 6..10.
Относительная программная адресация командами RJMP и RCALL. Смещение относительно программного счетчика указывается в битах 0..11 кода операции. Выполнение программы передается по адресу PC+k. Относительный адрес k лежит в диапазоне от +2кБайт до – (2кБайт – 1).
Стек подпрограмм и прерываний. Для обработки прерываний и вызовов подпрограмм используется аппаратный стек. Аппаратный стек сохраняет значение программного счетчика – адрес возврата из подпрограмм и программ обслуживания прерываний.
Команда RCALL и прерывания записывают значение программного счетчика на 0 уровень стека. Данные, хранящиеся в стеке на уровнях 1 и 2, сдвигаются на один уровень вглубь. При выполнении команды RET или RETI значение программного счетчика выбирается с 0-го уровня стека, данные с уровней 1 и 2 сдвигаются на один уровень вверх.
EEPROM память данных.МК AVR содержат до 4К электрически стираемой энергонезависимой памяти (EEPROM). EEPROM организована как отдельная область данных, каждый байт которой может быть прочитан и перезаписан. EEPROM выдерживает не менее 100000 циклов записи/стирания. Доступ к энергонезависимой памяти данных рассмотрен дальше и задается регистром адреса, регистром данных и управляющим регистром.
Время выполнения команд.ЦПУ процессора AVR управляется системной частотой, генерируемой внешним резонатором. Внутреннее деление частоты генератора не используется.
В процессоре организован буфер (pipeline) команд, при выборе команды из памяти программ происходит выполнение предыдущей команды. Подобная концепция позволяет достичь быстродействия 1MIPS на МГц, уникальных показателей стоимости, быстродействия и потребления процессора.
Память ввода/вывода.Все устройства ввода/вывода и периферийные устройства МК располагаются в пространстве ввода/вывода. Различные ячейки этого пространства доступны через команды IN и OUT, пересылающие данные между одним из регистров общего назначения (РОН) и пространством ввода/вывода. К регистрам $00..$19 можно осуществлять побитовый доступ командами SBI и CBI. Значение отдельного бита этих регистров можно проверить командами SBIC и SBIS. Дополнительную информацию по этому вопросу можно найти в описании системы команд.
Регистр статуса ЦПУ (SREG) содержит следующие биты, доступные для записи и чтения:
Бит 7 - I: Общее разрешение прерываний. Для разрешения прерываний этот бит должен быть установлен в единицу. Управление отдельными прерываниями производится регистром маски прерываний - GIMSK/TIMSK. Если флаг сброшен (0), независимо от состояния GIMSK/TIMSK, прерывания не разрешены. Бит I очищается аппаратно после входа в прерывание и восстанавливается командой RETI, для разрешения обработки следующих прерываний.
Бит 6 - T: Хранение копируемого бита. Команды копирования битов BLD (Bit LoaD) и BST (Bit STore) используют этот бит как источник и приемник обрабатываемого бита. Бит из регистра регистрового файла может быть скопирован в T командой BST, бит T может быть скопирован в бит регистрового файла командой BLD.
Бит 5 - H: Флаг половинного переноса. Этот флаг индицирует перенос из младшей половины байта при некоторых арифметических операциях. Более подробно об этом можно прочитать в описании системы команд.
Бит 4 - S: бит знака, S = N XOR V. Бит S всегда равен исключающему ИЛИ между флагами N (отрицательный результат) и V (переполнение дополнения до двух). Более подробно об этом можно прочитать в описании системы команд.
Бит 3 - V: Флаг переполнения дополнения до двух. Этот флаг поддерживает арифметику с дополнением до двух. Более подробно об этом можно прочитать в описании системы команд.
Бит 2 - N: Флаг отрицательного результата. Этот флаг указывает на отрицательный результат выполнения различных арифметических и логических операций. Более подробно об этом можно прочитать в описании системы команд.
Бит 1 - Z: Флаг нулевого результата. Этот флаг индицирует нулевой результат различных арифметических и логических операций. Более подробно об этом можно прочитать в описании системы команд.
Бит 0 - C: Флаг переноса. Этот флаг индицирует перенос в арифметических и логических операциях. Более подробно об этом можно прочитать в описании системы команд.
Регистр управления ЦПУ (MCUCR) содержит биты общего управления МК. Ниже приводится назначение битов данного регистра.
Бит 5 – Sleep Enable – Разрешение режима Sleep. Этот бит должен быть установлен в 1, чтобы при выполнении команды SLEEP процессор переходил в режим пониженного энергопотребления (Sleep). Для использования режима пониженного энергопотребления этот бит рекомендуется устанавливать в 1 до исполнения команды SLEEP.
Бит 4 – Sleep Mode – Режим Sleep. Этот бит выбирает один из доступных режимов пониженного энергопотребления. Если бит сброшен (0), то в качестве режима Sleep выбирается холостой режим (Idle mode). Если бит установлен, выбирается экономичный режим (Power down). Особенности каждого из режимов будут рассмотрены ниже.
Биты 3,2 – зарезервированы и читаются как 0.
Биты 1,0 – ISC01, ISC00 – биты управления срабатыванием прерывания 0. Внешнее прерывание активируется выводом INT0, если установлен флаг I регистра состояния SREG и установлена соответствующая маска в регистре GIMSK. Срабатывание по уровню и фронтам задается следующим образом:
ISC01 |
ISC00 |
Описание |
0 |
0 |
Запрос прерывания генерируется по низкому уровню на входе |
0 |
1 |
Зарезервировано |
1 |
0 |
Запрос на прерывание по спадающему фронту на входе |
1 |
1 |
Запрос на прерывание по нарастающему фронту на входе |
Примечание: При изменении битов ISC01 и ISC00 прерывания по входу INT0 должны быть запрещены сбросом бита разрешения прерывания в регистре GIMSK. Иначе прерывание может произойти при изменении значения битов.
Аппаратный сброс. В МК AVR предусмотрены три источника сброса:
- сброс по включению питания (процессор сбрасывается при подаче питания на выводы VCC и GND);
- внешний сброс (процессор сбрасывается при подаче низкого уровня на вывод RESET на время более двух периодов тактовой частоты);
- сброс от сторожевого таймера (процессор сбрасывается по окончании времени сторожевого таймера, если разрешена его работа).
Во время сброса все регистры ввода/вывода устанавливаются в начальные значения, программа начинает выполняться с адреса $000, по этому адресу должна быть записана команда RJMP – относительный переход на программу обработки сброса. Если в программе не разрешаются прерывания и векторы прерываний не используются, в первых адресах памяти может быть записана программа.
Контроллер прерываний предназначен для аппаратного обеспечения запуска логики обслуживания прерываний.
Младшие адреса памяти программ отведены под векторы прерываний, список векторов прерываний приведен в табл. 11.3. Этот список также определяет и приоритет различных прерываний. Чем младше адрес, тем выше приоритет прерывания. Наивысший приоритет имеет сброс, за ним INT0 и т.д.
Таблица 11.3
Номер вектора |
Адрес |
Источник |
Описание прерывания |
1 |
$000 |
RESET |
Вывод сброса и сброс от сторожевого таймера |
2 |
$001 |
INT0 |
Внешнее прерывание 0 |
4 |
$002 |
TIMER0,OVF0 |
Переполнение таймера/счетчика 0 |
5 |
$003 |
ANA_COMP |
Аналоговый компаратор |
Чаще всего используется следующая установка векторов прерываний в программе:
Адрес Метка Код Комментарий
$000 rjmp RESET ; обработка сброса
$001 rjmp EXT_INT0 ; обработка IRQ0
$002 rjmp TIM0_OVF ; обработка переполнения таймера 0
$003 rjmp ANA_COMP ; обслуживание аналогового компаратора
;
$004 MAIN: <instr> xxx ; начало основной программы
Таймеры/счетчики. ВMKAVRпредусмотрены 8-разрядные и 16-разрядные таймеры/счетчики общего назначения. Любой из них можно использовать как таймер с внутренним источником импульсов или как счетчик, управляемый внешними счетными импульсами.
Таймер/счетчик может получать импульсы тактовой частоты CK, импульсы с предварительного делителя (CK/8, CK/64, CK/256 или CK/1024), импульсы с внешнего вывода или быть остановлен соответствующими установками регистра TCCRх. Флаг переполнения таймера находится в регистре TIFR. Биты управления таймером расположены в регистре TCCRх. Разрешение и запрещение прерываний от таймера управляются регистром TIMSK.
При работе таймера/счетчика от внешнего сигнала, внешний сигнал синхронизируется с тактовым генератором ЦПУ. Для правильной обработки внешнего сигнала, минимальное время между соседними импульсами должно превышать период тактовой частоты процессора. Сигнал внешнего источника обрабатывается по спадающему фронту тактовой частоты процессора.
Сторожевой таймер(WDT) работает от отдельного встроенного генератора, работающего на частоте 1 МГц. Управляя предварительным делителем сторожевого таймера, можно задавать интервал сброса таймера от 16 до 2048 периодов. Частота встроенного RC генератора зависит от напряжения питания процессора.
Команда WDR сбрасывает сторожевой таймер. Для работы сторожевого таймера можно выбрать одно из 8-ми значений частоты, что позволяет в широких пределах изменять время между исполнением команды WDR и сбросом процессора. При отработке периода работы сторожевого таймера, если не поступила команда WDR, МК сбрасывается, выполнение программы продолжается с вектора сброса.
Энергонезависимое ОЗУ (EEPROM) предназначено для хранения данных при отключенном питании МК. Для доступа к EEPROM служат три регистра:
регистр адреса EEPROM EEAR – в этот регистр перед обращением к EEPROM записывается адрес ячейки памяти, к которой производится обращение;
регистр данных EEPROM EEDR – в этом регистре перед записью должны быть размещены записываемые данные, а после операции чтения в нем будут расположены считанные из EEPROM данные;
регистр управления EEPROM – в этом регистре расположены биты разрешения записи или чтения EEPROM, которые должны устанавливаться в 1 при выполнении соответствующей операции.
Порты ввода/вывода – это 8-разрядные двунаправленные порты. Для обслуживания каждого порта отведено три регистра: регистр данных PORTх, регистр направления данных DDRx и регистр адреса выводов порта PINx. Регистры адреса выводов портов предназначены только для чтения, в то время как регистры данных и регистры направления данных – для чтения/записи. То есть PINх не является регистром, по этому адресу осуществляется доступ к физическим значениям каждого из выводов соответствующего порта. При чтении PORTх читаются данные из регистра-защелки, при чтении PINх читаются логические значения, присутствующие на выводах порта.
Все выводы портов имеют отдельно выбираемые нагрузки. Выводы порта могут пропускать ток до 20 мА и непосредственно управлять, например, светодиодными индикаторами или маломощными реле. Каждый порт имеет помимо основных еще одну или несколько альтернативных функций, обязательно указываемых в техническом описании на соответствующий МК.
Периферийные модули. К ним относятся в частности аналоговый компаратор и АЦП. Спецификация программирования данных модулей приводится в техническом описании на соответствующий МК. Так как она может существенно отличаться у разных МК, здесь мы ее рассматривать не будем.
Ниже приводится система команд MK AVR.
Мнемон. Операнды Описание Действие Флаги Цикл
АРИФМЕТИЧЕСКИЕ И ЛОГИЧЕСКИЕ КОМАНДЫ
ADD Rd, Rr Сложить два регистра Rd ← Rd + Rr Z,C,N,V,H 1
ADC Rd, Rr Сложить с переносом Rd ← Rd + Rr + C Z,C,N,V,H 1
SUB Rd, Rr Вычесть два регистра Rd ← Rd - Rr Z,C,N,V,H 1
SUBI Rd, K Вычесть константу Rd ← Rd - K Z,C,N,V,H 1
SBC Rd, Rr Вычесть с переносом Rd ← Rd - Rr - C Z,C,N,V,H 1
SBCI Rd, K Вычесть с переносом Rd ← Rd - K - C Z,C,N,V,H 1
AND Rd, Rr Логическое И Rd ← Rd AND Rr Z,N,V 1
ANDI Rd, K Логическое И Rd ← Rd AND K Z,N,V 1
OR Rd, Rr Логическое ИЛИ Rd ← Rd OR Rr Z,N,V 1
ORI Rd, K Логическое ИЛИ Rd ← Rd OR K Z,N,V 1
EOR Rd, Rr Исключающее ИЛИ Rd ← Rd XOR Rr Z,N,V 1
COM Rd Дополнение до 1 Rd ← $FF - Rd Z,C,N,V 1
NEG Rd Дополнение до 2 Rd ← $00 - Rd Z,C,N,V,H 1
SBR Rd, K Установка бит(-ов) в регистре Rd ← Rd OR K Z,N,V 1
CBR Rd, K Сброс бит(-ов) в регистре Rd ← Rd AND (FFh - K) Z,N,V 1
INC Rd Увеличить на 1 Rd ← Rd + 1 Z,N,V 1
DEC Rd Уменьшить на 1 Rd ← Rd - 1 Z,N,V 1
TST Rd Проверить на 0 или минус Rd ← Rd AND Rd Z,N,V 1
CLR Rd Очистить регистр Rd ← Rd XOR Rd Z,N,V 1
SER Rd Установить регистр Rd ← $FF Не меняет 1
КОМАНДЫ ВЕТВЛЕНИЯ
RJMP k Относительный переход PC ← PC+k+1 Не меняет 2
RCALL k Относительный вызов подпрограммы PC ← PC+k+1 Не меняет 3
RET Выход из подпрограммы PC ← STACK Не меняет 4
RETI Выход из прерывания PC ← STACK I 4
CPSE Rd, Rr Сравнить, пропуск, если равно if(Rd=Rr) PC ←PC+2 или 3 Не меняет 1/2
CP Rd, Rr Сравнить Rd - Rr Z,N,V,C,H 1
CPC Rd, Rr Сравнить с переносом Rd - Rr - C Z,N,V,C,H 1
CPI Rd, K Сравнить с константой Rd - K Z,N,V,C,H 1
SBRC Rr, b Пропуск, если бит в регистре сброшен if(Rr(b)=0) PC←PC+2 или 3 Не меняет 1/2
SBRS Rr, b Пропуск, если бит в регистре установлен if(Rr(b)=1) PC←PC+2 или 3 Не меняет 1/2
SBIC P, b Пропуск, если бит в рег. ввода/выв. сброшен if(P(b)=0) PC ←PC+2 или 3 Не меняет 1/2
SBIS P, b Пропуск, если бит в рег. ввода/выв. установлен if(P(b)=1) PC ←PC+2 или 3 Не меняет 1/2
BRBS s, k Переход, если установлен флаг s if(SREG(s)=1) PC ←PC+k+1 Не меняет 1/2
BRBC s, k Переход, если сброшен флаг s if(SREG(s)=0) PC ←PC+k+1 Не меняет 1/2
BREQ k Переход, если равно if(Z=1) PC ← PC+k+1 Не меняет 1/2
BRNE k Переход, если неравно if(Z=0) PC ← PC+k+1 Не меняет 1/2
BRCS k Переход, если установлен перенос if(C=1) PC ← PC+k+1 Не меняет 1/2
BRCC k Переход, если сброшен перенос if(C=0) PC ← PC+k+1 Не меняет 1/2
BRSH k Переход, если равно или больше if(C=0) PC ← PC+k+1 Не меняет 1/2
BRLO k Переход, если меньше if(C=1) PC ← PC+k+1 Не меняет 1/2
BRMI k Переход, если минус if(N=1) PC ← PC+k+1 Не меняет 1/2
BRPL k Переход, если плюс if(N=0) PC ← PC+k+1 Не меняет 1/2
BRGE k Переход, если больше или равно, со знаком if(N XOR V=0) PC←PC+k+1 Не меняет 1/2
BRLT k Переход, если меньше нуля, со знаком if(N XOR V=1) PC←PC+k+1 Не меняет 1/2
BRHS k Переход, если установлен флаг H if(H=1) PC ← PC+k+1 Не меняет 1/2
BRHC k Переход, если сброшен флаг H if(H=0) PC ← PC+k+1 Не меняет 1/2
BRTS k Переход, если установлен флаг T if(H=1) PC ← PC+k+1 Не меняет 1/2
BRTC k Переход, если сброшен флаг T if(H=0) PC ← PC+k+1 Не меняет 1/2
BRVS k Переход, если установлен флаг V (переполнение) if(H=1) PC ← PC+k+1 Не меняет 1/2
BRVC k Переход, если сброшен флаг V if(H=0) PC ← PC+k+1 Не меняет 1/2
BRIE k Переход, если разрешены прерывания if(I=1) PC ← PC+k+1 Не меняет 1/2
BRID k Переход, если запрещены прерывания if(I=1) PC ← PC+k+1 Не меняет 1/2
КОМАНДЫ ПЕРЕСЫЛКИ
LD Rd,Z Загрузить регистр непосредственно Rd ← (Z) Не меняет 2
ST Z,Rr Записать регистр непосредственно (Z) ← Rr Не меняет 2
MOV Rd, Rr Пересылка между регистрами Rd ← Rr Не меняет 1
LDI Rd, K Загрузить константу Rd ← K Не меняет 1
IN Rd, P Ввод из порта Rd ← P Не меняет 1
OUT P, Rr Вывод в порт P ← Rr Не меняет 1
КОМАНДЫ РАБОТЫ С БИТАМИ
SBI P,b Установить бит в регистре ввода/вывода I/O(P,b) ← 1 Не меняет 2
CBI P,b Сбросить бит в регистре ввода/вывода I/O(P,b) ← 0 Не меняет 2
LSL Rd Логический сдвиг влево Rd(n+1) ←Rd(n), Rd(0) ←0 Z,C,N,V 1
LSR Rd Логический сдвиг вправо Rd(n) ←Rd(n+1), Rd(7) ←0 Z,C,N,V 1
ROL Rd Сдвиг влево через C Rd(0) ←C, Z,C,N,V 1
Rd(n+1) ←Rd(n), C ←Rd(7)
ROR Rd Сдвиг вправо через C Rd(7) ← C, Z,C,N,V 1
Rd(n) ← Rd(n+1), C ← Rd(0)
ASR Rd Арифметический сдвиг вправо Rd(n) ← Rd(n+1), n=0..6 Z,C,N,V 1
SWAP Rd Обмен нибблов Rd(3-0) ← Rd(7-4), Не меняет 1
Rd(7-4) ← Rd(3-0)
BSET s Установить флаг SREG(s) ← 1 SREG(s) 1
BCLR s Сбросить флаг SREG(s) ← 0 SREG(s) 1
BST Rr,b Запомнить бит в T T ← Rr(b) T 1
BLD Rd, b Прочитать бит из T Rd(b) ← T Не меняет 1
SEC Установить перенос C ← 1 C 1
CLC Сбросить перенос C ← 0 C 1
SEN Установить флаг N N ← 1 N 1
CLN Сбросить флаг N N ← 0 N 1
SEZ Установить флаг Z Z ← 1 Z 1
CLZ Сбросить флаг Z Z ← 0 Z 1
SEI Разрешить прерывания I ← 1 I 1
CLI Запретить прерывания I ← 0 I 1
SES Установить флаг S S ← 1 S 1
CLS Сбросить флаг S S ← 0 S 1
SEV Установить флаг V V ← 1 V 1
CLV Сбросить флаг V V ← 0 V 1
SET Установить флаг T T ← 1 T 1
CLT Сбросить флаг T T ← 0 T 1
SEH Установить флаг H H ← 1 H 1
CLH Сбросить флаг H H ← 0 H 1
NOP Нет операции Не меняет 1
SLEEP Останов Не меняет 3
WDR Сброс сторожевого таймера Не меняет 1
Более подробную информацию по MK AVR можно узнать в [13, 14] или на сайтах www.atmel.com и www.argussoft.ru.