Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Семейство микроконтроллеров MSP430X1XX, руководство пользователя (2004)

.pdf
Скачиваний:
352
Добавлен:
12.08.2013
Размер:
3.31 Mб
Скачать

Раздел XVIII.

 

 

 

 

АЦП10

 

CONSEQx = 10

 

ADC10

 

 

 

 

выключен

 

 

 

 

 

 

 

 

ADC10ON = 1

ENC =

 

 

 

 

 

 

 

 

 

x = INCHx

 

 

 

 

 

ожидание

 

 

 

 

 

включения

ENC =

 

 

SHS = 0

 

 

ENC =

 

 

и

 

 

 

 

ENC = 1 или

 

 

 

 

 

и

 

Ожидание

 

 

ADC10SC =

 

 

запуска

 

 

 

 

 

 

 

 

SAMPCON =

ENC = 0

 

 

 

 

 

 

 

 

 

(4/8/16/64) ADC10CLK

 

 

 

Выборка,

 

 

 

 

входной канал Ax

 

 

 

 

 

12 x ADC10CLK

 

MSC = 1

 

Преобразование

MSC = 0

и

 

 

and

 

 

 

 

ENC = 1

 

 

 

ENC = 1

1 x ADC10CLK

Преобразование завершено, результат в ADC10MEM, ADC10IFG установлен

x = входной канал Ax

Рис. 18-7. Повторяющийся одноканальный режим

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

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

Прекращение активности АЦП10 зависит от режима работы. Рекомендуются следующие способы останова активного преобразования или последовательности преобразований:

Библиотека Компэла

 

341

 

MSP430x1xxFamily

CONSEQx = 11

ADC10

 

выключен

 

 

 

ADC10ON = 1

ENC =

 

x = INCHx

 

 

ожидание

 

 

включения

ENC =

SHS = 0

иENC =

ENC = 1 или

и

ADC10SC =

 

Ожидание запуска

 

 

 

 

 

 

 

SAMPCON =

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(4/8/16/64) x ADC10CLK

 

 

 

 

Выборка

 

 

 

 

 

 

 

входной канал Ax

если x = 0 то x = INCH

 

 

 

 

 

 

 

 

 

 

Иначе x = x • 1

 

если x = 0 то x = INCH

 

 

 

 

 

 

 

 

 

ENC = 0

иначе x = x • 1

 

 

 

12 x ADC10CLK

 

 

 

 

 

 

 

 

 

и

 

 

 

 

 

 

 

 

 

 

MSC = 0

 

 

 

Преобразование

 

 

x = 0

 

 

 

 

 

и

 

 

 

 

 

 

 

 

 

 

 

 

MSC = 1

 

 

 

 

 

 

 

 

(ENC = 1

 

 

 

 

 

 

 

 

 

или

 

и

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x 0)

 

 

 

 

 

 

 

 

 

 

 

 

(ENC = 1

 

 

 

1 x ADC10CLK

 

 

 

 

 

 

 

 

 

 

или

 

Преобразование

 

 

 

 

x 0)

 

 

 

 

 

 

 

завершено, результат

 

 

 

 

 

 

 

в ADC10MEM,

 

 

 

 

 

 

ADC10IFG установлен

 

 

 

 

x = входной канал Ax

Рис. 18-8. Режим повторяющейся последовательности каналов

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

Сброс ENC во время повторяющегося одноканального преобразования останавливает преобразователь в конце текущего преобразования.

Сброс ENC во время последовательного или повторно-последователь- ного режимов останавливает преобразователь в конце последовательности.

342

 

Библиотека Компэла

 

Раздел XVIII.

АЦП10

Любой режим преобразования может быть немедленно остановлен установкой CONSEQx=0 и сбросом бита ENC. Данные преобразования будут ненадежны.

18.2.6. Контроллер переноса данных АЦП10

АЦП10 имеет контроллер переноса данных (DTC) для автоматического переноса результатов преобразования из ADC10MEM в другое место памяти на кристалле. DTC включается установкой регистра ADC10DTC1 в ненулевое значение.

Когда DTC включен, каждый раз по завершении преобразования АЦП10 и загрузки результата в ADC10MEM, запускается перенос данных. Вмешательства программного обеспечения для управления АЦП10 не требуется до тех пор, пока заданное количество данных преобразования не будет перемещено. Для каждого DTC-переноса требуется один такт MCLK ЦПУ. Во избежание любой конфликтной ситуации на шине во время DTC-переноса ЦПУ приостанавливается, если было активно, на один MCLK, необходимый для переноса.

DTC-перенос не должен инициироваться, пока АЦП10 занят. Программное обеспечение должно гарантировать, что никакое активное преобразование или последовательность не выполняется, когда DTC конфигурируется:

;Проверка активности АЦП10

 

BIC.W #ENC,&ADC10CTL0

;

busy_test BIT.W #BUSY,&ADC10CTL1

;

JNZ busy_test

;

MOV.W #xxx,&ADC10SA

;Безопасность

MOV.B #xx,&ADC10DTC1

;

;продолжение настройки

 

Режим одноблочного переноса

Одноблочный режим выбирается, если ADC10TB сброшен. Значение n в ADC10DTC1 определяет общее количество переносов для блока. Стартовый адрес блока задается где-либо в адресном диапазоне MSP430 с помощью 16разрядного регистра ADC10SA. Блок заканчивается на адресе ADC10SA+2n-2. Режим одноблочного переноса показан на рис. 18-9.

Внутренний указатель адреса первоначально равен ADC10SA, а внутренний счетчик перенос первоначально равен «n». Внутренний указатель и счетчик не видимы для программного обеспечения. DTC переносит значение слова ADC10MEM по адресу, находящемуся в адресном указателе ADC10SA. После каждого DTC-переноса внутренний адресный указатель инкрементируется на два, а внутренний счетчик переносов декрементируется на один.

Библиотека Компэла

 

343

 

 

MSP430x1xxFamily

TB=0

 

'n'•ый перенос

ADC10SA+2n•2

 

ADC10SA+2n•4

DTC

 

2•ой перенос

ADC10SA+2

1•ый перенос

ADC10SA

Рис. 18-9. Одноблочный перенос

DTC переносы продолжаются с каждой загрузкой ADC10MEM, пока внутренний счетчик переносов не станет равным нулю. Дополнительные DTC переносы происходить не будут до записи в ADC10SA. Когда DTC используется в одноблочном режиме, флаг ADC10IFG устанавливается только после завершения переноса полного блока. На рис. 18-10 показана диаграмма состояний одноблочного режима.

Режим двухблочного переноса

Двухблочный режим выбирается, если бит ADC10TB установлен. Значение n в ADC10DTC1 определяет количество переносов для одного блока. Адресный диапазон первого блока задается в любом месте диапазона адресов MSP430 с помощью 16-разрядного регистра ADC10SA. Первый блок заканчивается на адресе ADC10SA+2n-2. Адресный диапазон для второго блока задается с SA+2n по SA+4n-2. Режим двухблочного переноса показан на рис. 18-11.

Внутренний указатель адреса первоначально равен ADC10SA, а внутренний счетчик переносов первоначально равен «n». Внутренний указатель и счетчик являются невидимыми для программного обеспечения. DTC переносит значение слова ADC10MEM по адресу, находящемуся в адресном указателе ADC10SA. После каждого DTC-переноса внутренний адресный указатель инкрементируется на два, а внутренний счетчик переносов декрементируется на один.

DTC переносы продолжаются с каждой загрузкой ADC10MEM, пока внутренний счетчик переносов не станет равным нулю. К этому моменту блок один полон и оба бита ADC10IFG и ADC10B1 установлены. Пользователь может проверить бит ADC10B1 для определения, что блок один полон.

DTC продолжает с блока два. Во внутренний счетчик переносов автоматически перезагружается значение «n». При следующей загрузке ADC10MEM контроллер DTC начинает перенос результатов преобразований в блок два. После завершения n переносов блок два полон. Флаг ADC10IFG устанавливается, а бит

344

 

Библиотека Компэла

 

Раздел XVIII.

АЦП10

n=0 (ADC10DTC1)

Сброс DTC

n0

 

Ожидание записи в

 

ADC10SA

n = 0

 

Инициал.

Инициализация

DTC

стартового адреса в ADC10SA

Запись в ADC10SA

 

x = n

 

 

AD = SA

n защелкнуто

 

в счетчике «х»

 

 

Запись в ADC10SA

 

 

или

 

Ожидание, пока будет

n = 0

 

записан ADC10MEM

 

Ожидание

 

 

DTC

 

 

Запись в ADC10MEM

 

завершена

Запись в ADC10SA

 

 

Ожидание

готовности

ЦПУ

Write to ADC10SA

Перенос данных по адресу AD

AD = AD + 2 x = x – 1

x = 0

ADC10IFG=1

Синхронизация

 

с MCLK

x > 0

 

1 x MCLK цикл

 

ADC10TB = 0

и

ADC10CT = 1

ADC10TB = 0

и

ADC10CT = 0

Подготовка DTC

DTC работает

Рис. 18-10. Диаграмма состояний управления переносом данных в одноблочном режиме переноса

Библиотека Компэла

 

345

 

MSP430x1xxFamily

 

TB=1

 

 

2 x 'n'•ый перенос

ADC10SA+4n•2

 

 

ADC10SA+4n•4

DTC

'n'•ый перенос

ADC10SA+2n•2

 

 

ADC10SA+2n•4

 

2•ой перенос

ADC10SA+2

 

1•ый перенос

ADC10SA

Рис. 18-11. Двухблочный перенос

ADC10B1 очищается. Программное обеспечение пользователя может проверить очистку бита ADC10B1 для определения, что блок два полон. На рис. 1812 показана диаграмма состояний двухблочного режима.

Непрерывный перенос

Режим непрерывного переноса выбирается, если установлен бит ADC10CT. DTС не будет останавливаться после завершения переноса блока один (в одноблочном режиме) или блока два (в двухблочном режиме). Внутренний адресный указатель и счетчик переносов устанавливаются на значения ADC10SA и n соответственно. Переносы продолжаются, начиная с блока один. Если бит ADC10CT сброшен, DTC прекращает переносы после завершения текущих переносов в блоке один (в одноблочном режиме) или блоке два (в двухблочном режиме).

Длительность цикла DTC переноса

Для каждого переноса ADC10MEM контроллеру DTC требуется один или два тактовых цикла MCLK для синхронизации, один для выполнения собственно переноса (пока ЦПУ приостановлено) и один цикл времени ожидания. Поскольку DTC использует MCLK, длительность цикла DTC определяется рабочим режимом MSP430 и настройками системы тактирования.

Если источник MCLK активен, но ЦПУ выключено, DTC использует источник MCLK для каждого переноса без включения ЦПУ. Если источник MCLK выключен, DTC временно рестартует MCLK, с использованием в качестве источника тактирования для MCLK частоту DCOCLK, но только во время переноса.

346

 

Библиотека Компэла

 

Раздел XVIII.

АЦП10

n=0 (ADC10DTC1)

Сброс DTC

ADC10B1 = 0

ADC10TB = 1

n0

n = 0

 

Ожидание записи в

 

 

 

 

ADC10SA

 

Иниц.

Инициализация

 

стартового адреса в ADC10SA

 

DTC

 

 

 

Запись в

 

ADC10SA

 

x = n

 

 

Если ADC10B1 = 0

n защелкнуто

 

то AD = SA

 

в счетчике «х»

 

 

Запись в ADC10SA

 

 

или

 

Ожидание пока ADC10MEM

n = 0

 

 

будет записан

 

 

 

Ожидание

 

 

DTC

 

Запись в ADC10MEM завершена

Ожидание

Синхронизация

 

готовности

x > 0

ЦПУ

с MCLK

 

Запись в ADC10SA

 

 

 

1 x MCLK цикл

 

Перенос данных по адресу AD

AD = AD + 2 x = x – 1

ADC10B1 = 1 x = 0 или

ADC10CT=1

ADC10IFG=1

ADC10CT = 0

Переключение

и

ADC10B1 = 0

ADC10B1

 

Подготовка DTC

DTC работает

Рис. 18-12. Диаграмма состояний для управления переносом данных в двухблочном режиме переноса

Библиотека Компэла

 

347

 

MSP430x1xxFamily

ЦПУ остается выключенным и после DTC переноса, MCLK снова выключается. Максимальная длительность цикла DTC для всех рабочих режимах показана в таблице 18-2.

Таблица 18-2. Максимальная длительность цикла DTC

Режим работы ЦПУ

Источник

Максимальная

тактирования

длительность цикла DTC

 

 

 

 

Активный режим

MCLK=DCOCLK

3 цикла MCLK

 

 

 

Активный режим

MCLK=LFXT1CLK

3 цикла MCLK

 

 

 

Режим пониженного энергопотребления LPM0/1

MCLK=DCOCLK

4 цикла MCLK

Режим пониженного энергопотребления LPM3/4

MCLK=DCOCLK

4 цикла MCLK + 6 мкС*

Режим пониженного энергопотребления LPM0/1

MCLK=LFXT1CLK

4 цикла MCLK

 

 

 

Режим пониженного энергопотребления LPM3

MCLK=LFXT1CLK

4 цикла MCLK

 

 

 

Режим пониженного энергопотребления LPM4

MCLK=LFXT1CLK

4 цикла MCLK + 6 мкС*

 

 

 

* Дополнительные 6 мкС необходимы для запуска DCOCLK. Этот параметр в справочном руководстве называется t(LPMx).

18.2.7. Использование интегрированного температурного датчика

При использовании имеющегося на кристалле температурного датчика пользователь выбирает входной аналоговый канал INCHx=1010. Любая другая

 

Вольты

 

 

 

 

 

 

 

 

1.300

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.200

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.100

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.000

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0.900

 

 

VTEMP = 0.00355(TEMPC)+0.986

 

 

0.800

 

 

 

 

 

 

 

 

°Цельсия

 

 

 

 

 

 

0.700

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

•50

0

50

100

 

 

 

Рис. 18-13. Типичная передаточная функция температурного датчика

 

 

 

 

 

 

 

 

 

 

 

Библиотека Компэла

348

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Раздел XVIII.

АЦП10

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

Типичная передаточная функция температурного датчика показана на рис. 18-13. При использовании температурного датчика, период выборки должен быть больше 30 мкС. Ошибка смещения температурного датчика может быть большой и для большинства приложений может потребоваться калибровка. См. справочные данные конкретного устройства для выяснения подробностей.

При выборе температурного датчика автоматически запускается расположенный на кристалле опорный генератор в качестве источника напряжения для температурного датчика. Однако это не включает выход VREF+ и не влияет на выбор опорного источника для преобразования. Процедура выбора источника для преобразования информации с температурного датчика подобна процедуре выбора любого другого канала.

18.2.8. Заземление АЦП и рассмотрение влияния помех

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

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

Развязка

 

V CC

+

 

источника

 

 

 

питания

 

V SS

 

10 мкФ 100 нФ

 

MSP430F12x2

 

 

MSP430F11x2

Внешнее

 

Ve REF+

 

 

опорное

 

 

напряжение

 

V REF•

 

 

Рис. 18-14. Заземление АЦП10 и устранение помех

Библиотека Компэла

 

349

MSP430x1xxFamily

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

18.2.9. Прерывания АЦП10

Одно прерывание и один вектор прерываний связаны с АЦП10, как показано на рис. 18-15. Когда DTC не используется (ADC10DTC1=0), флаг ADC10IFG устанавливается, когда результаты преобразования загружаются в ADC10MEM. Когда DTC используется (ADC10DTC1>0), флаг ADC10IFG устанавливается, ког-

 

 

 

ADC10IE

 

Установка ADC10IFG

D

Q

 

IRQ, запрос обработки

 

прерывания

'n' = 0

 

ADC10CLK

 

 

 

 

Reset

 

 

 

 

 

 

 

 

 

 

IRACC, запрос прерывания

 

 

 

POR

принят

 

 

 

 

Рис. 18-15. Система прерываний АЦП10

да завершается перенос блока и внутренний счетчик переносов «n»=0. Если оба бита ADC10IE и GIE установлены, флаг ADC10IFG генерирует запрос прерывания. Флаг ADC10IFG автоматически сбрасывается, когда запрос прерывания обработан, кроме того, он может быть сброшен программно.

18.3. Регистры АЦП10

Регистры АЦП10 приведены в таблице 18-3.

Таблица 18-3. Регистры АЦП10

 

Регистр

Краткое

Тип регистра

Адрес

Исходное

 

обозначение

состояние

Регистр включения входа АЦП10

ADC10AE

Чтение/запись

04Ah

Сброс с POR

Управляющий регистр 0 АЦП10

ADC10CTL0

Чтение/запись

01B0h

Сброс с POR

Управляющий регистр 1 АЦП10

ADC10CTL1

Чтение/запись

01B2h

Сброс с POR

Память АЦП10

ADC110MEM

Чтение

01B4h

Не изменяется

Регистр 0 управления переносом

ADC10DTC0

Чтение/запись

048h

Сброс с POR

данных АЦП10

 

 

 

 

 

Регистр 1 управления переносом

ADC10DTC1

Чтение/запись

049h

Сброс с POR

данных АЦП10

 

 

 

 

 

Стартовый адрес переноса данных

ADC10SA

Чтение/запись

01BCh

0200h c POR

АЦП10

 

 

 

 

 

 

 

 

 

 

Библиотека Компэла

350

 

 

 

 

 

 

 

 

Соседние файлы в предмете Микроконтроллеры ЭВМ