
- •1 Функциональное описание разрабатываемого модуля
- •1.1 Назначение и классификация ацп и цап
- •1.1.1 Процесс аналого-цифрового преобразования
- •1.1.2 Процесс цифро-аналогово преобразования
- •1.2 Spi интерфейс
- •2 ВЫбор аппаратной части
- •2.2 Микроконтроллер avr
- •2.2 Pio контроллер
- •2.2.1 Мультиплексирование Pin
- •2.2.2 Внешние линейные прерывания
- •2.2.3 Управление питанием
- •2.2.4 Прерывание поколения
- •2.2.5 Управление подтягивающими резисторами
- •2.2.6 Выбор работы линии: под управлением контролера параллельного ввода-вывода или периферийного устройства.
- •2.2.7 Выбор периферийного устройства а или в
- •2.2.8 Управление состоянием вывода
- •2.2.9 Синхронный вывод данных
- •2.2.10 Работа линий ввода - вывода, аналогичная схеме с открытым стоком
- •2.2.11. Временные диаграммы линий вывода
- •2.2.12 Фильтрация входных выбросов
- •2.2.13 Прерывание по изменению состояния на входе
- •2.3 Аналоговый выход
- •2.4 Тактовый генератор
- •3 Схема соединения p-cad
- •4 Разработка программного модуля
- •5 Безопасность и экологичность
- •5.1 Безопасность
- •5.1.1 Анализ условий труда
- •5.1.2 Опасные факторы
- •5.1.3 Меры защиты от опасных факторов
- •5.1.4 Расчет заземления
- •5.1.5 Анализ пожаробезопасности вычислительного центра. Меры защиты
- •5.2 Экологичность
- •5.2.1 Анализ влияния модуля ip телефонии
- •5.2.2 Методы защиты окружающей среды
2.2.8 Управление состоянием вывода
В случае, если линия назначена как функциональная периферийного устройства, то есть соответствующий бит в PIO_PSR установлен в 0, управление линией передается периферийному устройству. Периферийное устройство А или В, в зависимости от значения в PIO_ABSR, управляет текущим уровнем на соответствующем выводе.
В случае, если линия управляется контроллером параллельного ввода - вывода (PIO), она может быть сконфигурирована как выход или как вход. Настройка осуществляется изменением значения регистров PIO_OER (регистр разрешения вывода) и PIO_ODR (регистр запрещения вывода). Результат операций записи в эти регистры отражается в регистре PIO_OSR (регистр состояния вывода). Если соответствующий бит в этом регистре установлен в 0, линия используется только для ввода. Если бит установлен в 1, состояние линии управляется контроллером шины периферийных устройств. Уровень, выдаваемый на линию, задается записью в регистр PIO_SODR (регистр записи выводимых данных) и PIO_CODR (регистр сброса выводимых данных). Эти операции соответственно записывают и стирают биты данных в регистре PIO_ODSR (регистр состояния выводимых данных), который хранит выводимые через порт данные.[2] Изменение значений в регистрах PIO_OER и PIO_ODR в любом случае изменяет соответствующие биты PIO_OSR, независимо от того, назначена ли линия для параллельного ввода - вывода или как функциональная периферийного устройства. Это дает возможность конфигурировать состояние линии до того, как будет назначено управляющее ее состоянием периферийное устройство.Аналогичным образом, запись в PIO_SODR и PIO_CODR изменяет состояние регистра PIO_ODSR. Это очень важно, так как определяет уровень, который будет первым выведен на линии ввода - вывода.
2.2.9 Синхронный вывод данных
Для осуществления параллельного ввода - вывода, то есть вывода по нескольким линиям одновременно, необходимо провести две операции записи в регистры PIO_SODR и PIO_CODR.[1] Результатом могут быть неожиданные паразитные переходные процессы на линиях. Контроллер периферийной шины дает возможность непосредственно осуществлять прямое управление состоянием выводов путем единственной операции записи значений в регистр PIO_ODSR (Output data status register - регистр состояния выводимых данных). Могут быть записаны только те биты, которые не маскированы в регистре PIO_OSWSR (Output write status register - регистр состояния записи выходных данных). Установка маски записи, размещенной в регистре PIO_OSWSR, производится записью в регистры PIO_OWER(output write enable register - регистр разрешения записи выходных данных) и PIO_OWDR (output write disable register - регистр запрещения записи выходных данных). После перезагрузки параллельный вывод данных запрещается на всех линиях ввода-вывода, так как значение регистра PIO_OWSR сбрасывается в 0х0.
2.2.10 Работа линий ввода - вывода, аналогичная схеме с открытым стоком
Для каждой из линий ввода - вывода может быть независимо включена функция Multidrive, с которой линия работает аналогично схемам с открытым стоком. Эта особенность работы позволяет подключить без буферизации несколько управляющих устройств (драйверов) на одну линию ввода-вывода, с низким активным уровнем линии, который может установить любое из устройств. Чтобы гарантированно обеспечить высокий уровень на линии, необходим внешний подтягивающий резистор или разрешение работы внутреннего.
Функция работы с несколькими драйверами контролируется регистром PIO_MDER (Multi driver enable register - регистр разрешения работы с несколькими драйверами), и PIO_MDDR (multi driver disable register - регистр запрещения работы с несколькими драйверами). Функция работы с несколькими драйверами может быть включена независимо от того, управляется ли линия - периферийным контроллером ввода - вывода или назначена для работы с каким - то периферийным устройством. Регистр PIO_MDSR (Multi driver status register - регистр состояния работы с несколькими драйверами) показывает выводы, конфигурированные для работы с внешними драйверами. После перезагрузки функция управления внешними драйверами запрещена на всех выводах, то есть содержимое регистра PIO_MDSR после перезагрузки сбросится в 0х0.