Lifestyleguru.site

Построение рабочей локальной сети

Микроконтроллер

Для многих типичных прикладных задач оптимальным будет использование микроконтроллеров семейства AVR фирмы Atmel. Они представляют собой эффективный инструмент для создания современных, высокопроизводительных и экономичных, многоцелевых устройств управления, соотношение "цена - производительность - энергопотребление" для AVR является одним из лучших на мировом рынке 8-разрядных микроконтроллеров.

Микроконтроллер содержит 32 линии ввода-вывода, объединенные в 4 двунаправленных порта (A, B, C, D). Управление каждым портом производится тремя регистрами порта из файла регистров ввода-вывода, символические имена этих регистров содержат наименование порта. Функции регистров приведены ниже для обобщенного порта с именем X, где X - символическое имя порта: A, B, C или D.

Регистр управления с символическим именем DDRX программно доступен и для чтения, и для записи, DDRX определяет направление передачи данных: 0 - ввод, 1 - вывод. Каждый бит DDRX (DDX0 - DDX7) управляет соответствующей линией ввода-вывода и программируется независимо, т.е. значение каждого бита и направление передачи сигналов может задаваться произвольно, начальное значение всех битов DDRX - нулевое (ввод данных). В процессе работы, чтением содержимого регистра DDRX можно определить направление передачи данных по соответствующим линиям ввода-вывода в данный момент времени.

Регистр ввода данных PINX программно доступен только для чтения и обеспечивает считывание сигналов, поступающих в данный момент времени на соответствующие линии ввода-вывода (например, линия PA2 в режиме ввода формирует бит PINA2 регистра ввода данных). Хранения данных регистр PINX не выполняет, передавая при чтении текущие состояния сигналов.

Регистр вывода данных PORTX программно доступен и для чтения, и для записи, обеспечивает хранение данных и выдачу их в режиме вывода на соответствующие линии ввода-вывода (например, PORTA4 - PA4). При чтении PORTX передает данные, ранее записанные в этот регистр для вывода.

Функциональная гибкость портов обеспечивается независимым управлением каждой из 32 линий ввода-вывода микроконтроллера, допускается в процессе работы изменять направление передачи сигналов изменением соответствующих данных в регистрах портов. При выборе режимов ввода-вывода сигналов необходимо учитывать альтернативные функции портов микроконтроллера. Определенные линии ввода-вывода аппаратно связаны с интерфейсами устройств микроконтроллера: АЦП, таймеров, последовательных приемопередатчиков и т.д. При использовании этих устройств соответствующие линии ввода-вывода жестко закреплены за их интерфейсами и не могут выполнять какие-либо другие функции обмена данными.

АЦП микроконтроллера разрядностью 10 бит работает по алгоритму последовательных приближений, погрешность преобразования - не более 2 единиц младшего значащего разряда, время преобразования 65 мкс - 260 мкс. АЦП совместно со встроенным аналоговым мультиплексором обеспечивает преобразование в 10-ти разрядный двоичный код сигналов по одному из 8 аналоговых входов (порт A) в диапазоне напряжений от 0 (AGND) до опорного (AREF).

Опорное напряжение должно лежать в диапазоне от 2 В до напряжения питания AVCC (5 В). Код АЦП NАЦП=0x000 соответствует нулевому входному сигналу UАЦП, максимальный код 0x3FF соответствует сигналу, равному опорному AREF минус вес единицы младшего значащего разряда:

UАЦП= (NАЦП*AREF)/210.

Выходной код NАЦП хранится в двухбайтовый регистр ADC (ADCL - младшие 8 бит результата, ADCH - старшие 2 бита результата). Чтение данных из регистра результата ADC, как и других двухбайтовых регистров, должно начинаться обязательно с младшего байта.

Номер входа мультиплексора, с которого поступает сигнал для преобразования в АЦП, определяется тремя младшими битами MUX2, MUX1, MUX0 управляющего регистра ADMUX. Любой из восьми входов может быть выбран через ADMUX записью в него соответствующего кода в любой момент времени, однако переключение входов фактически производится только после завершения очередного цикла преобразования АЦП.

АЦП может работать в режиме однократного преобразования или циклически с автоматическим повторным запуском после каждого преобразования. Управление работой АЦП производится через управляющий регистр ADCSR, биты которого определяют параметры и режимы работы. Время преобразования (тактовая частота АЦП) зависит от битов ADPS2, ADPS1, ADPS0 (биты 2, 1, 0), рекомендуемое значение - 110. Так же, как и при использовании других аппаратных средств микроконтроллера, наиболее эффективно управление работой АЦП через вектор завершения преобразования - ADC. Этот вектор прерывания должен предусматривать чтение из регистров ввода-вывода ADCL, ADCH результатов преобразования, переключение мультиплексора на другой вход порта А изменением младших битов регистра ADMUX (при необходимости), запуск следующего цикла преобразования АЦП, обработку полученных результатов преобразования. В этом случае целесообразно устанавливать режим однократного преобразования ADFR=0 (бит 5 регистра ADCSR), а запуск преобразования производить установкой бита ADSC (бит 6 регистра ADCSR). Первый запуск АЦП должен производиться из программы инициализации, рекомендуемое значение байта управления АЦП - ADCSR≡0b11011110.

Популярное:

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