Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
konspekt_lektsy_po_PTsU.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
3.31 Mб
Скачать

Структурная схема модуля ацп

Содержит коммутатор мультиплексоров, непосредственно модуль преобразования (ADC), модуль выравнивания результата и буфер.

Работа заключается в следующем: входной аналоговый сигнал с одной из внешних линий через коммутатор заряжает внутренний конденсатор АЦП (Сзар). Далее модуль АЦП преобразует напряжения, удерживаемое на конденсаторе в соответствующий ему 10-разрядный код методом последовательного приближения.

Для организации работы модуля АЦП используется регистр специального назначения ADCON0, который содержит следующие биты управления:

--ADFM

--VCFG

--CHS1,0

--GO/DONE

--ADON

В данном МК в качестве аналогового порта могут выступать линии AN0-AN3, выбор которых осуществляется с помощью битов CHS0,1.

С помощью разряда VCFG осуществляется выбор источника опорного напряжения преобразования АЦП. В качестве которого может быть текущее напряжения питания и внешнее напряжение, подаваемое на линии AN1 (в этом случае в качестве аналогового сигнала линия использоваться не может).

Сигнал ADON разрешает работу АЦП. Для инициализации преобразования осуществляется установка в 1 бита GO/DONE программно, который находится в таком состоянии до завершения преобразования. После завершения преобразования данный бит аппаратно сбрасывается в 0, тем самым фиксируя завершение работы АЦП.

10-разрядный результат преобразования сохраняется в спаренном регистре ADRES емкостью 16 разрядов в области регистровой памяти (ADRESH – старший разряд, ADRESL – младший разряд).

В модуле преобразования результат может формироваться с правым и левым выравниванием (определяет бит ADFM). При правом выравнивании 8 младших разрядов записывается в младший буферный регистр, 2 старших хранятся в 0ом и 1ом разряде старшего регистра. При левом выравнивании старшие 8 разрядов хранятся в старшем буферном регистре, младшие разряды хранятся в 7ом и 6ом разрядах младшего буферного регистра. Первый способ используется при необходимости получения полного 10-разрядного результата измерения (в программе используются 16-разрядные операнды). Второй способ используется при достаточной точности преобразования 8 разрядов.

Для организации работы аналогового модуля используется дополнительный регистр ANSEL, который содержит 2 модуля битов:

1)ADCS2..0 – определяет источник тактового сигнала, задающий режим работы АЦП. Время получения одного бита результата определяется параметром «период преобразования одного разряда». Для получения 10-разрядного результат требуется как минимум 11 периодов. Для получения корректного результата преобразования необходимо выбрать источник тактового сигнала АЦП, обеспечивающего время периода преобразования не менее 1 мкс. В качестве источника тактового сигнала может использоваться системная тактовая частота/2, /8, /32, а также собственный отдельный внутренний RC генератор.

2)ANS3..0 – осуществляет настройку выводов как аналоговые входы (0 определяет цифровой канал, 1 – аналоговый). По умолчанию линии находятся в аналоговом состоянии.

Если на модуль АЦП мультиплексируется большее количество портов ввода/вывода, то в блоке регистров присутствуют дополнительные регистры ANSEL0,1 и т.д. В ряде МК регистр ANSEL заменен на регистр ADCON1. В этом случае 0 заменен на аналоговый вход, 1 – цифровой.

Модуль завершения работы преобразования модуля АЦП формирует знак события, который при разрешенном прерывании (общий и от АЦП) может переходить по вектору прерывания.

Модуль АЦП может работать в режиме sleep при условии, что источников импульсов преобразования АЦП является собственный RC генератор (не системная тактовая частота). Если разрешено прерывание от АЦП, то МК выходит из режима энергосбережения. В случае, если был выбран другой источник тактового сигнала АЦП, то выполнение программой инструкции режима sleep прерывает процесс преобразования и выключает модуль АЦП.

Регистры, которые необходимо настраивать при работе с АЦП:

--регистр управления ADCON

--регистр настройки портов ввода/вывода и выбор тактового сигнала ANSEL

--определение направления портов ввода/вывода GPIO/TRISIO

--буферные регистры модуля АЦП ADREL, ADRESH.

--регистры прерывания от АЦП INTCON, PIR1, PIE1.

Постоянная память данных (EEPROM память данных)

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

Для организации доступа к EEPROM памяти данных используются 4 регистра специального назначения:

--EECON1

--EECON2

--EEDATA

--EEADR

Чтение и запись EEPROM памяти выполняется побайтно. В регистре EEDATA сохраняются 8-разрядные данные записи/чтения, а регистр EEADR содержит адрес ячейки EEPROM памяти данных. PIC12F675 содержат 128 байт EEPROM памяти данных (диапазон адресов 00h-7Fh).

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

Регистр EECON2 не реализован физически, читается как 00h. Он используется в операциях записи в EEPROM память данных для реализации обязательной последовательности команд.

Регистр EECON1 организует чтение и запись в соответствующую запись. Содержит следующие биты:

WRERR

Флаг ошибки (сбойя) записи в EEPROM память данных

WREN

Разрешение записи в EEPROM память данных

WR

Инициализировать запись в EEPROM память данных

RD

Инициализировать чтение из EEPROM памяти данных

Чтение из EEPROM памяти данных

Для чтения EEPROM памяти данных необходимо записать адрес в регистр EEADR и установить бит RD (EECON1) в 1. В следующем машинном цикле данные доступны для чтения из регистра EEDATA. Прочитанное значение из EEPROM памяти данных будет храниться в регистре EEDATA до следующего чтения или записи в этот регистр по команде микроконтроллера.

Запись в EEPROM память данных

Для записи в EEPROM память данных необходимо записать адрес в регистр EEADR, данные в регистр EEDATA и установить бит WR и WREN (EECON1) в 1. Рекомендуется запрещать прерывания при выполнении записи в EEPROM память. Если во время записи произойдет переход по вектору прерывания, запись байта выполнена не будет.

Чтобы разрешить запись в EEPROM память данных, необходимо перед началом записи установить бит WREN в 1, защищающий от случайной записи.

После выполнения операции записи в EEPROM память данных рекомендуется производить контрольное чтение.