close

Вход

Забыли?

вход по аккаунту

?

Malaxanov

код для вставкиСкачать
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное автономное образовательное
учреждение высшего профессионального образования
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ
МОДУЛЬ АНАЛОГО-ЦИФРОВОГО
ПРЕОБРАЗОВАНИЯ МИКРОКОНТРОЛЛЕРОВ
MICROCHIP СЕРИИ PIC18F
Методические указания
к выполнению лабораторной работы
Санкт-Петербург
2014
Составитель кандидат технических наук доцент Р. Н. Малаханов
Рецензент доктор технических наук профессор В. К. Хамидуллин
Методические указания знакомят c устройством модулей аналогоцифрового преобразования микроконтроллеров фирмы Microchip серии PIC18F и принципами их программного управления.
Содержат описание лабораторной работы по дисциплинам «Дискретные информационно-измерительные системы» и «Цифровые вычислительные устройства и микропроцессоры приборных комплексов».
Предназначены для студентов всех форм обучения по направлению «Приборостроение» и специальности «Авиационные приборы и
измерительно-вычислительные комплексы».
Подготовлены кафедрой аэрокосмических измерительно-вычислительных комплексов и рекомендованы к изданию редакционно-издательским советом Санкт-Петербургского государственного университета аэрокосмического приборостроения.
В авторской редакции
Компьютерная верстка А. Н. Колешко
Подписано к печати 12.02.14. Формат 60×84 1/16.
Бумага офсетная. Усл. печ. л. 2,2.
Тираж 100 экз. Заказ № 49.
Редакционно-издательский центр ГУАП
190000, Санкт-Петербург, Б. Морская ул., 67
© Санкт-Петербургский государственный
университет аэрокосмического
приборостроения (ГУАП), 2014
ЛАБОРАТОРНАЯ РАБОТА
1. Методические указания
Цель работы заключается в ознакомлении со структурой интегрированного модуля аналого-цифрового преобразования (АЦП)
микроконтроллеров фирмы Microchip серии PIC18F и принципами
его программного управления.
Аналого-цифровым преобразователем называется устройство,
осуществляющее преобразование входного аналогового сигнала в
указанных пределах в выходной цифровой код. Подробно с техническими характеристиками АЦП предлагается ознакомиться самостоятельно, изучив соответствующие разделы в [1, 2].
По своему функциональному устройству и программному управлению интегрированные модули АЦП микроконтроллеров серии
PIC18F похожи и отличаются незначительно [3–6]. В методических
указаниях будут рассмотрены микроконтроллеры различных семейств. В семейство микроконтроллеров PIC18F4520 входят четыре микроконтроллера: PIC18F2420, PIC18F2520, PIC18F4420 и
PIC18F4520 [3]. Для сокращения записи это семейство обозначается как PIC18FХХ20. Такая же форма сокращения будет применена
для обозначения микроконтроллеров из других семейств.
В семейство PIC18FXXJ60/PIC18FXXJ65 входит девять микроконтроллеров [4], а в семейство PIC18FXX22/ PIC18FXX27 – восемь
[5]. Они выпускаются в корпусах с количеством выводов от 64 до100
и имеют до 16 аналоговых каналов (АК). В семейство PIC18FXXK20
входит восемь микроконтроллеров [6].
Во всех вышеназванных микроконтроллеров аппаратное устройство модуля АЦП и программное управление им одинаковое. Если
в устройстве управления отдельным микроконтроллером (МК) есть
особенности, то об этом будет сказано отдельно. В дальнейшем, если
это не оговорено дополнительно, описание модуля АЦП относится
ко всем МК всех семейств.
3
Состав и структура модуля АЦП
Структурная схема модуля АЦП микроконтроллера представлена на рис. 1. Аналоговый мультиплексор АМ подключает один из
аналоговых каналов AN0–AN12 ко входу УВХ. При преобразовании сигнала, изменения которого происходят с высокой частотой,
напряжение на входе АЦП может меняться весьма существенно даже за короткий промежуток времени. Если выполнять преобразование изменяющегося сигнала, то выходной код будет содержать существенные ошибки. Для устранения этой проблемы применяются
УВХ, которое поддерживает входной сигнал на входе АЦП постоянным на время преобразования.
Электрическая схема входной цепи модуля АЦП микроконтроллеров приведена на рис. 2. В легенде (Legend) приведены следующие
обозначения:
– CPIN – ёмкость вывода МК;
– VT – напряжение порога;
– ILEAKAGE – ток утечки;
– RIC – сопротивление внутренних соединений;
– SS – аналоговый ключ (англ. Sampling Switch – замыкающийся переключатель);
– CHOLD – конденсатор для накапливания входного заряда;
– RSS – сопротивление аналогового ключа.
В состав УВХ входят: аналоговый ключ SS с малым временем
переключения и низким сопротивлением RSS; конденсатор с ёмкостью CHOLD. Для обозначения конденсатора и его ёмкости используется одно и то же обозначение. При замыкании ключа на время,
называемое временем захвата TACQ, конденсатор CHOLD подключаAN0
.
.
.
АМ
УВХ
АЦП
AN12
УВИОН
Рис. 1. Структурная схема модуля АЦП.
УВХ – устройство выборки и хранения;
УВИОН – устройство выбора источника опорных напряжений
4
Рис. 2. Электрическая схема входной цепи модуля АЦП. VAIN – значение
входного напряжения; RS – сопротивление источника входного
напряжения; ANx – один из АК микроконтроллера; VDD – напряжение
электрического питания; VSS – потенциал земли
ется к входному сигналу и происходит его заряд. Далее ключ размыкается и дальнейшее изменение входного сигнала не вызывает
изменения заряда на конденсаторе. После этого значение ёмкости
конденсатора CHOLD используется входными цепями АЦП для измерения напряжения на конденсаторе. Два защитных диода предохраняют входные цепи от повреждения при подаче на вход положительного напряжения больше VDD или отрицательного напряжения меньше VSS.
Подробнее с принципами функционирования УВХ предлагается ознакомиться самостоятельно, изучив соответствующий раздел
в [2].
Статическая характеристика АЦП приведена на рис. 3, где LSB
(англ. Least Significant Bit) – цена единицы младшего разряда.
Функционирование модуля АЦП определяется тремя программно доступными регистрами управления: ADCON0, ADCON1 и
ADCON2 (сокращение от англ. Analog-to-Digital Control).
Результат аналого-цифрового преобразования (АЦПр) помещается в регистр ADRES (сокращение от англ. Analog-to-Digital Result).
Формат регистра ADCON0 приведен на рис. 4.
5
0x03FF
Выходной цифровой код
0x03FE
0x0002
1023,5LSB
1023LSB
3LSB
2LSB
2,5LSB
0,5LSB
1LSB
1,5LSB
0x0000
1022LSB
1022,5LSB
0x0001
Входное напряжение, VIN
Рис. 3. Статическая характеристика АЦП
На рисунке в таблице:
во второй строке приводятся имена битов регистра ADCON0; в третьей строке – указание номеров самого младшего и самого старшего
битов; в первой строке – доступность битов для операций чтения и
записи, а также состояние после аппаратного сброса (АС).
В легенде, расположенной ниже таблицы на рис. 4, приводятся
следующие обозначения для битов:
– «R=Readable bit» – бит, доступный для чтения;
– «W=Writable bit» – бит, доступный для записи;
– «U=Unimplemented bit, read as ‘0’» – нереализованный бит, читается как нуль;
– «‘1’=Bit is set» – бит установлен;
– «‘0’=Bit is cleared» – бит сброшен;
– «x=Bit is unknown» – значение бита не определено.
6
Рис. 4. Формат регистра управления ADCON0
В первой строке таблицы для обозначения доступных операций
и состояния после АС используется следующий формат: сначала
указываются доступные операции, а через дефис – состояние после
АС. Если бит доступен только для чтения, то в обозначении доступных операций ставится символ «R»; если бит доступен только для
записи – символ «W»; если бит доступен и для записи и для чтения –
символы «R/W». Например, для нулевого бита с именем ADON и для
третьего бита CHS1 в первой строке таблицы указано: «R/W-0». Это
означает, что оба бита доступны для записи и чтения и после АС биты будут сброшены.
Ниже под легендой на рис. 4 приводится список битов с указанием их порядковых номеров и описанием их функционального на7
Таблица 1
Функциональное назначение битов регистра ADCON0
№
бита
Имя бита
Значение
Функциональное назначение
0
ADON
0
1
00002
00012
Модуль АЦП выключен (A/D Converter
module is disabled)
Модуль АЦП включен (A/D Converter module is enabled)
АЦПр не закончено (A/D Conversion in
progress)
АЦПр закончено (A/D Idle)
Выбор аналогового канала 0 (AN0)
Выбор аналогового канала 1 (AN1)
00102
00112
Выбор аналогового канала 2 (AN2)
Выбор аналогового канала 3 (AN3)
01002
Выбор аналогового канала 4 (AN4)
01012
Выбор аналогового канала 5 (AN5)
01102
Выбор аналогового канала 6 (AN6)
01112
10002
Выбор аналогового канала 7 (AN7)
Выбор аналогового канала 8 (AN8)
10012
Выбор аналогового канала 9 (AN9)
10102
10112
Выбор аналогового канала 10 (AN10)
Выбор аналогового канала 11 (AN11)
11002
11012
11102
11112
Выбор аналогового канала 12 (AN12)
Выбор аналогового канала 13 (AN13)
Выбор аналогового канала 14 (AN14)
Выбор аналогового канала 15 (AN15)
1
1
2-5
GO/ DONE
CHS<3:0>
0
значения. Подобный формат описания используется для всех регистров МК.
Функциональное назначение битов регистра ADCON0 приведено
в табл. 1.
Для включения модуля АЦП следует установить нулевой бит
ADON (англ. A/D On bit – бит включения модуля АЦП). В таблице
на рис. 4 указано, что бит ADON после АС будет сброшен. Это означает, что после АС или после подачи электрического питания МК
модуль АЦП будет выключен. Это делается для уменьшения энергопотребления. Если в процессе работы МК не требуется постоянное
8
использование модуля АЦП, то после получения результата АЦПр
он может быть выключен с целью уменьшения энергопотребления.
Для запуска АЦПр следует установить первый бит GO/ DONE
(англ. A/D Conversion Status bit – бит состояния АЦПр). После окончания АЦПр этот бит будет аппаратно сброшен и результат АЦПр
будет аппаратно помещён в регистр ADRES. Запуску АЦПр соответствует активный высокий уровень (GO), а окончанию – активный
низкий уровень ( DONE ). Для получения результата АЦПр следует
программно установить бит GO/ DONE , а затем ожидать аппаратного сброса этого бита. Сброс бита означает окончание АЦПр. После
этого результат АЦПр можно считывать из регистра ADRES.
Функциональная схема модуля АЦП приведена на рис. 5. УВХ
на рисунке не показано. Для выбора АК, по которому будет производится АЦПр, предназначены биты CHS3:CHS0 (англ. Analog
Channel Select bits – биты выбора АК) регистра ADCON0 (см. рис. 4
и табл. 1). В документации производителя [3-6] совокупность битов
CHS3:CHS0 также обозначается как CHS<3:0>. Такое же сокращение используется для различных групп битов других регистров.
Для выбора АК, по которому будет производится АЦПр, следует
программно поместить порядковый номер этого АК в позицию битов CHS<3:0>. Для этого следует записать номер АК в произвольную переменную, произвести логический сдвиг значения влево на
два разряда и записать полученное значение в регистр ADCON0. Например, если переменная n определена как unsigned char n, то программный код для получения результата АЦПр по третьему АК выглядит следующим образом:
n=3; // Установка номера АК
ADCON0=n<<2; // Установка номера АК в позиции битов CHS<3:0>
ADCON0 |=0x01; // Включение модуля АЦП
ADCON0 |=0x02; // Запуск АЦПр
while (ADCON0 & 0x02); // Цикл ожидания окончания АЦПр
PORTD=ADRESH; // Чтение старшего байта АЦПр
PORTС=ADRESL; // Чтение младшего байта АЦПр.
При использовании структур с описанием битов, определённых
во включаемом файле «p18f4520.h», этот же программный код может быть представлен в более наглядной форме:
n=3; // Установка номера АК
ADCON0=n<<2; // Установка номера АК в позиции битов CHS<3:0>
ADCON0bits.ADON=1; // Включение модуля АЦП
ADCON0bits.GO=1; // Запуск АЦПр
while (ADCON0bits.GO); // Цикл ожидания окончания АЦПр
PORTD=ADRESH; // Чтение старшего байта АЦПр
PORTС=ADRESL; // Чтение младшего байта АЦПр.
9
В МК с малым количеством выводов некоторые АК не реализованы. Об этом же говорит примечание (Note 1) на рис. 4.
Значение напряжения входного сигнала VAIN должно находиться в пределах от VREF до VREF+. При этом VAIN=VREF соответствует
минимальному цифровому коду 0, а VAIN=VREF+ соответствует максимальному цифровому коду 3FFh.
Рис. 5. Функциональная схема модуля АЦП. VREF+ и VREF–
являются сигналами соответственно положительного
и отрицательного опорных напряжений
10
УВИОН, обозначенный на рис. 5 как Reference Voltage (опорное напряжение), позволяет программно задать внешний источник опорного напряжения (ИОН) или выбрать внутренний, пределы которого равны питающему электрическому напряжению:
VREF =VSS; VREF+=VDD. Внешний ИОН подключается к выводам 4 и 5
микроконтроллера, обозначенных соответственно RA2/AN2/VREF- и
Рис. 6. Формат регистра управления ADCON1
11
RA3/AN3/VREF+. Значения внешнего опорного напряжения не должны быть отрицательными, быть меньше 2 В или превосходить VDD.
ИОН определяется значениями битов VCFG<1:0>регистра ADCON1,
формат которого приведен на рис. 6, а функциональное назначение
битов – в табл. 2. Для установки ИОН следует программно установить соответствующие значения битов VCFG<1:0>. Если внешний
ИОН не используется, то биты должны быть сброшены. По умолчанию выбирается внутренний ИОН.
Аналоговые входы МК совмещены с цифровыми выводами портов, например, аналоговые входы AN0 – AN12 микроконтроллера
PIC18F4520 (рис. 7) совмещены с цифровыми выводами портов А, В
и Е. Выводы МК могут функционировать как аналоговые входы, так
и как линии цифрового ввода-вывода. Например, второй вывод МК,
обозначенный как RA0/AN0, может быть использован как цифровой ввод или вывод RA0 порта А или как аналоговый вход AN0 модуля АЦП. Режим работы выбирается программно. Для определения
режима работы предназначены биты PCFG<2:0>регистра ADCON1.
Значения битов и соответствующие им режимы работы выводов МК
приведены в таблице на рис. 6, где обозначение «А» указывает на то,
Таблица 2
Функциональное назначение битов регистра ADCON1
№
бита
Имя бита
0
PCFG0
1
PCFG1
2
PCFG2
3
4
PCFG3
VCFG0
Значение
Биты конфигурации портов (A/D port
Configuration Control bits)
0
1
5
VCFG1
0
1
12
Функциональное назначение
Бит конфигурации опорного напряжения
VREF+ (Voltage Reference Configuration
bit)
VREF+=VDD
Источником VREF+ является аналоговый
вход AN3
Бит конфигурации опорного напряжения
VREF
VREF =VSS
Источником VREF является аналоговый
вход AN2
Рис. 7. Обозначение выводов МК
что вывод МК будет сконфигурирован как аналоговый вход, а обозначение «D» на то, что вывод будет сконфигурирован для цифрового ввода-вывода. Например, если в битах PCFG<3:0>установить
значение 01102, то выводы МК с AN9 по AN12 будут сконфигурированы как линии цифрового ввода-вывода, а все остальные выводы –
как аналоговые входы.
Если вывод МК используется как аналоговый вход, то соответствующий ему бит в регистрах TRISA, TRISB или TRISE должен
быть установлен (сконфигурирован как цифровой ввод). Например,
если вывод RA1/AN1 (третий вывод МК) будет использоваться как
аналоговый вход, то первый бит в регистре TRISA (соответствует
RA1 в регистре PORTA) должен быть установлен.
Первое примечание на рис. 6 говорит о том, что значения битов PCFG<2:0>после АС зависят от значения бита конфигурации
PBADEN (сокращение от англ. Port B Analog-to-Digital Enable), который устанавливается в диалоговом окне “Configuration Bits…”
среды разработки MPLAB или директивами препроцессора:
#pragma config PBADEN=ON
для установки бита и
#pragma config PBADEN=OFF
13
для его сброса. Если бит установлен, то биты PCFG<2:0>принимают
значения 0002, иначе – значения 1112. Бит PCFG3 от бита PBADEN
не зависит и его значение по умолчанию равно нулю. Если бит
PBADEN установлен, то выводы RB0/AN12, RB1/AN10, RB2/AN8,
RB3/AN9 и RB4/AN11 после АС или после подачи электрического
питания будут сконфигурированы как аналоговые входы (первая
строка в таблице на рис. 6). Если бит PBADEN сброшен, то вышеназванные выводы будут сконфигурированы как линии цифрового ввода-вывода порта В (восьмая строка в таблице на рис. 6). Бит PBADEN
присутствует только у МК семейств PIC18FXX20 и PIC18FXXK20.
В МК семейства PIC18FXXK20 для конфигурации аналоговых каналов используются регистры ANSEL (англ. Analog Select
Register – регистр выбора АК) и ANSELH (англ. Analog Select High
Рис. 8. Формат регистра ANSEL
14
Рис. 9. Формат регистра ANSELH
Register), форматы которых приведены на рис. 8 и 9 соответственно.
Биты PCFG3:PCFG0 регистра ADCON1 не реализованы.
Если определённый вывод МК PIC18FXXK20 используется как
АК, то соответствующий ему бит ANS (англ. Analog Select Control
bit – бит управления АК) должен быть установлен. Например, если
используются выводы RA2 и RB1 в качестве АК, то бит ANS2 в регистре ANSEL и бит ANS10 в регистре ANSELH должны быть установлены. Установка бита соответствует отключению входного цифрового буфера от вывода МК (англ. Digital input buffer is disabled –
входной цифровой буфер выключен). Использование двух дополнительных регистров ANSEL и ANSELH позволяет устанавливать не
предопределённую конфигурацию аналоговых каналов, а произвольную.
В примечании на рис. 9 указано, что состояние указанных бит
определяется значением бита PBADEN в регистре конфигурации
CONFIG3H: если бит PBADEN=0, то по умолчанию указанные биты
также будут равны нулю.
15
Тактовая частота преобразования
Временная диаграмма работы модуля АЦП приведена на рис. 10.
После запуска АЦПр установкой бита GO в регистре ADCON0 ещё
в течении 100 нс ключ SS (см. рис. 2) остаётся в замкнутом состоянии (англ. SAMPLE – захват сигнала), после чего размыкается
(англ. SAMPLING STOPPED – захват сигнала прекращён). Один бит
АЦПр определяется за один период TAD. 10-битное АЦПр осуществляется за время TCNV, которое равно 11 периодам TAD.
Значение периода TAD импульсов генератора тактовых импульсов
для АЦП устанавливается программно в битах ADCS<2:0>(англ.
A/D Conversion Clock Select bits – биты выбора тактовой частоты
АЦП) регистра ADCON2, формат которого приведен на рис. 11. Период TAD выбирается из шести возможных значений, которые также приведены в табл. 3, где TOSC=1/FOSC – период тактовых импульсов МК; FOSC – частота тактовых импульсов МК.
Значение периода TAD должно быть как можно меньше, но при
этом больше значения 0,7 мкс. В табл. 3 приведены диапазоны значений FOSC и соответствующие им значения TAD. Выбирать значение TAD следует в соответствии с этой таблицей. Например, при
FOSC =8 МГц в соответствии с табл. 3 должно быть выбрано значение TAD =8TOSC и в биты ADCS<2:0>следует записать значение 0012 (FOSC/8), потому что TOSC=1/FOSC=1/(8∙106)=0,125 мкс и
Рис. 10. Временная диаграмма работы модуля АЦП. A/D CLK – тактовые
импульсы АЦП; A/D DATA – результат АЦПр; OLD_DATA – старое
значение; NEW_DATA – новое значение
16
Таблица 3
Диапазон частоты
FOSC, МГц
TAD
FOSC<2,86
2 TOSC
2,86 ≤ FOSC<5,71
4 TOSC
5,71 ≤ FOSC<11,43
8 TOSC
11,43 ≤ FOSC<22,86 16 TOSC
22,86 ≤ FOSC<40
32 TOSC
22,86 ≤ FOSC<40
64 TOSC
1,2 мкс
RC
1/TAD
Значение битов ADCS<2:0>
FOSC/2
FOSC/4
FOSC/8
FOSC/16
FOSC/32
FOSC/64
FRC
0002
1002
0012
1012
0102
1102
1112 или 0112
Рис. 11. Формат регистра управления ADCON2
17
TAD =8TOSC=8∙0,125=1 мкс. Значение TAD =4TOSC=4∙0,125=0,5 мкс и
оно меньше, чем 0,7 мкс.
Модуль АЦП имеет также внутренний RC-генератор (A/D RC
oscillator) с тактовой частотой FRC, от которого может производиться тактирование АЦП (последняя строка в табл. 3). При тактировании от RC-генератора среднее значение TAD =1,2 мкс, что соответствует среднему значению тактовой частоты FRC=0,83 МГц. Если
FRC>1 МГц, то МК должен быть переведён в энергосберегающий режим Sleep на время всего АЦПр. В примечании на рис. 11 указано, что если выбрана тактовая частота FRC, то пред запуском АЦПр
будет выполнена задержка длительностью в один машинный цикл
Tcy=4/FOSC. Это позволяет выполнить инструкцию sleep для перевода МК в энергосберегающий режим перед выполнением АЦПр.
Время захвата
После установки АК, по которому будет производится АЦПр, необходимо обеспечить интервал времени TACQ, в течении которого
конденсатор СHOLD зарядится до уровня входного напряжения. Время TACQ называется временем захвата.
На время зарядки конденсатора СHOLD влияют внутреннее сопротивление источника сигнала RS и сопротивление ключа RSS.
Последнее в свою очередь зависит от напряжения электрического
питания VDD. Зависимость RSS от VDD приведена на рис. 2. Сопротивление RS влияет на напряжение смещения нуля на аналоговом
входе, поэтому рекомендуемое значение RS<2,5 кОм.
Пользователь может установить время захвата, которое будет
автоматически выдерживаться после запуска операции АЦПр. После программного запуска АЦПр модуль АЦП продолжает захватывать сигнал в течении интервала времени TACQ. После окончания
этого интервала АЦПр начнется автоматически. Эта особенность
позволяет не управлять программно временем захвата.
На рис. 12 представлен описанный процесс автоматического
выдерживания времени захвата, где t1 – момент времени запуска
11TAD
TACQ
t1
t2
11TAD
TACQ
t3
t1
t2
t3
Рис. 12. Автоматическое выдерживание времени захвата
18
t
АЦПр; t2 – момент автоматического начала АЦПр; t3 – момент окончания АЦПр. После программного запуска АЦПр в момент времени
t1 модуль АЦП продолжает захватывать сигнал в течении интервала времени с момента времени t1 до момента времени t2.
Значение TACQ может быть программно установлено в диапазоне от 2TAD до 20TAD посредством установки битов ACQT<2:0>(англ.
A/D Acquisition Time Select bits – биты выбора времени захвата) в
регистре управления ADCON2. Необходимо, чтобы установленное
значение TACQ было больше минимального значения TACQ.
Минимальное значение времени захвата определяется по формуле [3–6]:
TACQ =TAMP + TC + TCOFF,
где TAMP=0,2 мкс – время переходного процесса входного усилителя;
TC=–CHOLD ( RIC + RSS + RS ) ln ( 1 / 2048 ) –
время зарядки конденсатора CHOLD; TCOFF=KT(T  25°C); KT =0,02
мкс/°С – температурный коэффициент, который рассчитывается
только для температуры окружающей среды T>25°С. Если T<25°С,
то TCOFF=0. При расчетах следует принять CHOLD =25 пФ (как это
указано на рис. 2) и RIC=1 кОм.
Приведем пример расчета времени захвата для температуры
окружающей среды T=85 °С, RS=2,5 кОм и напряжения электрического питания VDD =5 В.
Температурный коэффициент:
TCOFF=KT(T – 25°C)=0,02(85 – 25)=1,2 мкс.
В соответствии с графиком зависимости RSS от VDD на рис. 2 при
VDD =5 В RSS=2 кОм. Тогда время зарядки конденсатора:
TC=–25∙10–12 (1000 + 2000 + 2500) ln (1/2048)=1,05 мкс.
Минимальное значение времени захвата:
TACQ =0,2 + 1,05 + 1,2=2,45 мкс.
Если сбросить все биты ACQT<2:0>, то захват автоматически
производится не будет. Этот режим введен только для совместимо19
сти программного обеспечения, разработанного для предыдущих
версий МК серии PIC18F, которые не имеют возможности автоматической установки времени захвата, и пользователь должен самостоятельно программно управлять временем захвата.
После окончания АЦПр следующее АЦПр возможно через временной интервал, равный 2TAD. По истечении этого интервала захват аналогового сигнала начнётся автоматически.
Результат аналого-цифрового преобразования
Результат АЦПр представляет собой 10 разрядов, а регистры
МК являются 8-битными, поэтому результат сохраняется в двух
регистрах ADRESH и ADRESL (сокращение от англ. ADC Result
Register High and Low), которые вместе образуют 16-битный регистр
ADRES. 10 бит результата АЦПр внутри 16 бит регистра ADRES могут быть смещены влево или вправо как это показано на рис. 13. Направление смещения определяется битом ADFM (англ. A/D Result
Format Select bit – бит выбора формата результата АЦПр) регистра ADCON2. Если бит установлен (англ. Right justified – смещение вправо), то результат будет смещён вправо, иначе (англ. Light
justified – смещение влево) – влево. При смещении влево биты регистра ADRESL с 0 по 5 равны нулю; при смещении вправо биты регистра ADRESH со 2 по 7 равны нулю.
а
10 бит результата АЦПр
9 8 7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
Биты регистра ADRESH
Биты регистра ADRESL
10 бит результата АЦПр
б
9 8 7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
Биты регистра ADRESH
Биты регистра ADRESL
Рис. 13. Схема смещения результата АЦПр: а – влево; б – вправо
20
а
10 бит результата АЦПр
1 0 1 1 1 1 1 0 1 1
1 0 1 1 1 1 1 0
ADRESH
1 1 0 0 0 0 0 0
ADRESL
б
10 бит результата АЦПр
1 0 1 1 1 1 1 0 1 1
0 0 0 0 0 0 1 0
ADRESH
1 1 1 1 1 0 1 1
ADRESL
Рис. 14. Примеры смещения результата АЦПр: а – влево; б – вправо
Например, если результат АЦПр равен 10111110112,
то при смещении влево (рис. 14, а) в регистрах будут
следующие
значения:
ADRES=10111110110000002;
ADRESL=110000002; ADRESH=101111102; а при смещении вправо (рис. 14, б): ADRES=00000010111110112; ADRESL=111110112;
ADRESH=000000102.
Регистр ADRES и регистровая пара ADRESH:ADRESL доступны
для записи.
Определение напряжения смещения нуля
В МК семейства PIC18FXXJ60 реализована функциональная
возможность автоматического определения и компенсации напряжения смещения нуля. Для этого следует установить седьмой бит
ADCAL (англ. A/D Calibration bit – бит калибровки модуля АЦП)
регистра ADCON0 и запустить АЦПр. После этого значение напряжения смещения нуля будет определено и сохранено во внутренней
памяти модуля АЦП. Подобную процедуру следует производить после каждого АС. После окончания процедуры определения напряжения смещения нуля бит ADCAL должен быть сброшен для нормального функционирования модуля АЦП.
21
Прерывания
После завершения АЦПр устанавливается бит ADIF (англ.
Analog-to-Digital Interrupt Flag – флаг прерывания АЦП), который
является шестым битом в регистре PIR1 (англ. Peripheral Interrupt
Register – регистр прерываний периферийных устройств). Если прерывания разрешены, то произойдет прерывание и будет осуществлён переход на соответствующий (высокий или низкий) вектор
прерывания. Для разрешения прерываний от модуля АЦП следует
установить бит ADIE (англ. Analog-to-Digital Interrupt Enable – разрешение прерываний АЦП), который является шестым битом в регистре PIE1 (англ. Peripheral Interrupt Enable – разрешение прерываний от периферийных устройств). Приоритет прерывания модуля
АЦП определяется битом ADIP (англ. Analog-to-Digital Interrupt
Priority – приоритетность прерываний АЦП), который является
шестым битом в регистре IPR1 (англ. Interrupt Priority Register –
регистр приоритета прерываний). Для установки высокого приоритета прерывания следует установить бит ADIP, а для установки низкого приоритета – сбросить. По умолчанию уставлен высокий приоритет прерывания. После окончания обработки прерывания бит
ADIF должен быть программно сброшен для того, чтобы было возможно определить возникновение следующего прерывания.
Алгоритм управления модулем
аналого-цифрового преобразования
Для выполнения АЦПр модулем АЦП следует произвести следующие программные действия.
1. Включить модуль АЦП посредством установки бита ADON в
регистре ADCON0.
2. Произвести конфигурацию аналоговых входов (регистры
ADCON1, TRISX).
3. Выбрать источник опорного напряжения в регистре ADCON1.
4. Установить необходимое время захвата и выбрать тактовую
частоту в регистре ADCON2.
5. Произвести настройку прерываний:
– сбросить бит ADIF (PIR1<6>);
– установить бит ADIE (PIE1<6>);
– установить приоритет прерывания посредством установки значения в бите ADIP (IPR1<6>);
22
– разрешить глобальные прерывания.
6. Установить АК, по которому будет производится АЦПр
(ADCON0).
7. Запустить АЦПр посредством установки бита GO/ DONE в регистре ADCON0.
8. Ожидать окончание АЦПр. После окончания АЦПр аппаратно
производятся следующие действия:
– сбрасывается бит GO/ DONE ;
– устанавливается бит ADIF.
9. Считать результат АЦПр из регистра ADRES или из регистровой пары ADRESH:ADRESL.
10. Сбросить бит ADIF.
11. Для осуществления следующего преобразования перейти к п. 6.
Если в программе прерывания не используются, то пункты 5 и
10 не выполняются.
Программы управления аналого-цифровым преобразователем
В листинге 1 в качестве примера приведена программа на языке программирования С для МК PIC18F4520, которая производит
АЦПр по нулевому (AN0) и двенадцатому (AN12) аналоговым каналам. Результаты АЦПр отображается в двоичном виде с помощью
светоизлучающих диодов. Электрическая принципиальная схема
лабораторного стенда приведена на рис. 15, а перечень элементов – в
табл. 4. Обобщенная блок-схема алгоритма представлена на рис. 16,
а. Старшие биты результатов АЦПр со 2 по 9 выводятся в порты D
(нулевой АК) и С (двенадцатый АК); оставшиеся младшие – на цифровые линии портов А и В. Светоизлучающие диоды подключены
следующим образом: для отображения результата АЦПр нулевого
АК – по схеме с общим катодом; для отображения результата АЦПр
двенадцатого АК – по схеме с общим анодом. Более подробное описание программы приводится в комментариях её текста.
В листинге 2 приведена программа на языке программирования ассемблер, которая выполняет те же самые действия, что и программа, приведённая в листинге 1.
В листинге 3 в качестве примера приведена программа на языке
программирования С, которая выполняет те же самые действия, что
и программа, приведённая в листинге 1, но с использованием прерываний. Обобщенная блок-схема алгоритма основной программы
представлена на рис. 16, б. Блок-схемы алгоритмов подпрограмм об23
R1
MCLR
AN0
AN1
AN2
AN3
RA4
AN4
AN5
AN6
AN7
+5B
GND
RA7
RA6
RC0
RC1
RC2
RC3
RD0
RD1
+5B
DD1
1 M
MCLR/RE3
2 RRA0/AN0
3 RRA1/AN1
4 RA2/AN2/Vref5 RRA3/AN3/Vref+
6
7 RRA4
RA5/AN4
8 RE0/AN5
9 RE1/AN6
10 RE2/AN7
11 VDD
12
13 VSS
14 OSC1/RA7
15 OSC2/RA6
RC0
16 RC1
17
RC2
18 RC3
19 RD0
20 RD1
RA4
R10
HL11
RA6
R12
HL13
+5B
R14
+5B
R16
RB7/PGD 40
39
RB6/PGC 38
RB5 37
RB4/AN1 36
RB3/AN9 35
RB2/AN8 34
RB1/AN10 33
RB0/AN12 32
VDD 31
VSS
RD7 30
29
RD6 28
RD5 27
RD4 26
RC7 25
RC6
RC5 24
RC4 23
RD3 22
RD2 21
PGD
PGC
RB5
RB4
RB3
RB2
RB1
AN12
+5B
GND
RD7
RD6
RD5
RD4
RC7
RC6
RC5
RC4
RD3
RD2
GND
GND
HL15
RA7
HL17
RB5
C1
C2
+5B
+5B
RD0
R2
HL1
RD1
R3
HL2
RD2
R4
HL3
RD3
R5
HL4
RD4
R6
HL5
RD5
R7
HL6
R8
HL7
RD7
R9
HL8
+5B
R10
HL9
+5B
R11
HL10
+5B
R13
HL12
+5B
R15
HL14
R17
HL16
R18
HL18
+5B
R19
HL19
+5B
R20
HL20
RD6
+5B
+5B
GND
GND
GND
GND
GND
GND
GND
GND
RC0
RC1
RC2
RC3
RC4
+5B
GND
X1
Конт. Цепь
1
+5B
2
GND
AN0
AN1
AN2
AN3
AN4
AN5
AN6
GND
GND
AN7
AN8
AN9
AN10
AN11
AN12
+5B
+5B
+5B
Конт.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
MCLR
+5B
GND
PGD
PGC
X2
Цепь
AN0
AN1
AN2
AN3
AN4
AN5
AN6
GND
GND
AN7
AN8
AN9
AN10
AN11
AN12
+5B
+5B
+5B
X3
Конт. Цепь
1
MCLR
2
+5B
3
GND
4
PGD
5
PGC
RC5
RC6
RC7
Рис. 15. Электрическая принципиальная схема
работки прерываний приведены на рис. 17. После окончания АЦПр
по нулевому АК происходит переход на подпрограмму обработки
прерываний с высоким приоритетом, а после окончания АЦПр по
двенадцатому АК – на подпрограмму с низким приоритетом.
В листинге 4 приведена программа на языке программирования
ассемблер, которая осуществляет те же самые действия, что и программа, приведённая в листинге 3.
Если с данными измерений необходимо производить последующую обработку, то их следует сохранить в специально выделенном
буфере данных. В листинге 5 приводится программа, которая про24
Таблица 4
Обозначение
Наименование
Кол.
DD1
Микросхема PIC18F4520-I/P
1
Примечание
Резисторы
R1
R2 – R20
C1-4 0,25 Вт 5% 10 кОм
C1-4 0,25 Вт 5% 150 Ом
1
19
С1, С2
Конденсаторы K10-17Б 0,1 мкФ Y5V ±20%
2
HL1-HL20
Диоды Kingbright L-7104CGCK
20
Разъёмы
X1
X2
X3
WAGO 256 2.5
WAGO 123-18 2.5
TJ4-6P6C тип 4
1
1
1
изводит АЦПр по трём АК, сохраняет восемь значений по каждому
АК в буфере ADC_Data и после его заполнения вычисляет их средние арифметические значения для каждого АК.
Листинг 1.
#include<p18f4520.h>
#pragma config WDT=OFF
#pragma config LVP=OFF
#pragma config OSC=INTIO67
#pragma config PBADEN=ON
void main(void)
{
TRISD=TRISC=0;
TRISA=0b00101111;
TRISB=0b11011111;
// Настройка модуля АЦП
// 13 аналоговых каналов
ADCON0=0b00000001;
ADCON2=0b00010000;
25
Начало
а
Настройка портов цифрового
ввода-вывода
Настройка модуля АЦП
Бесконечный рабочий цикл
Запуск АЦПр по нулевому АК
Ожидание завершения АЦПр,
ADCON0<GO> = 0
б
Начало
Ожидание завершения АЦПр
Отображение результата АЦПр
Запуск АЦПр по двенадцатому АК
Ожидание завершения АЦПр,
ADCON0<GO> = 0
Настройка портов цифрового
ввода-вывода
Настройка модуля АЦП
Настройка прерываний
модуля АЦП
Ожидание завершения АЦПр
Бесконечный рабочий цикл
Отображение результата АЦПр
Бесконечный рабочий цикл
Бесконечный рабочий цикл
Конец
Конец
Рис. 16. Блок-схемы алгоритмов работы программ
26
а
б
Начало
PIR1<ADIF> = 1?
Нет
Да
Сброс флага прерывания
PIR1<ADIF> = 0
Начало
PIR1<ADIF> = 1 ?
Нет
Да
Сброс флага прерывания
PIR1<ADIF> = 0
Отображение результата АЦПр
Отображение результата АЦПр
Установка низкого приоритета
прерываний для модуля АЦП
Установка высокого приоритета
прерываний для модуля АЦП
Установка смещения резуль тата
АЦПр вправо
Установка смещения результата
АЦПр влево
Запуск АЦПр по двенадцатому АК
Конец
Запуск АЦПр по нулевому АК
Конец
Рис. 17. Блок схемы алгоритмов подпрограмм обработки прерываний:
а – с высоким приоритетом; б – с низким
while(1)
{
// Установка смещения результата АЦПр влево
ADCON2bits.ADFM=0;
// Выбор нулевого АК и запуск АЦПр
ADCON0=0b00000011;
// Ожидание окончания АЦПр
while(ADCON0bits.GO);
// Вывод восьми старших бит результата АЦПр в порт D
LATD=ADRESH;
// Отображение нулевого бита АЦПр на светоизлучающем диоде
LATAbits.LATA4=(ADRESL & 0x40)? 1: 0;
// Отображение первого бита АЦПр на светоизлучающем диоде
LATAbits.LATA6=(ADRESL & 0x80)? 1: 0;
27
// Установка смещения результата АЦПр вправо
ADCON2bits.ADFM=1;
// Выбор двенадцатого АК и запуск АЦПр
ADCON0=0b00110011;
while(ADCON0bits.GO);
// Вывод двух младших бит результата АЦПр
LATAbits.LATA7=!(ADRESL & 0x01);
LATBbits.LATB5=!(ADRESL & 0x02);
// Вывод восьми старших бит результата АЦПр в порт C
ADRES>>=2;
LATC=~ADRESL;
}
}
Листинг 2.
list p=18f4520
include “p18f4520.inc”
config WDT=OFF, LVP=OFF, OSC=INTIO67, PBADEN=ON
; Макрос установки значения Value в регистре Reg
SetReg MACRO Reg, Value
movlw Value
movwf Reg
ENDM
; Макрос присвоения биту Bit2 регистра Reg2
; значения бита Bit1 регистра Reg1
CopyBit MACRO Reg1, Bit1, Reg2, Bit2
btfss Reg1, Bit1
bra $ + 6
bsf Reg2, Bit2
bra $ + 4
bcf Reg2, Bit2
ENDM
; Макрос выбора АК модуля АЦП, запуска и ожидания
; окончания АЦПр. Ch – порядковый номер АК
ADC_RunAndWait MACRO Ch
movlw Ch
rlncf WREG
rlncf WREG
bsf WREG, 0
movwf ADCON0
bsf ADCON0, GO
; Ожидание окончания АЦПр
btfsc ADCON0, GO
bra $-2
ENDM
Reset_Vector code 0x000
goto 0x2A
code 0x2A
clrf TRISD
clrf TRISC
28
SetReg TRISA, B’00101111’
SetReg TRISB, B’11011111’
SetReg ADCON0, 1
SetReg ADCON2, B’00010000’
Loop
bcf ADCON2, ADFM
ADC_RunAndWait 0
movff ADRESH, LATD
CopyBit ADRESL, 6, LATA, 4
CopyBit ADRESL, 7, LATB, 6
bsf ADCON2, ADFM
ADC_RunAndWait 12
; Вывод двух младших бит результата АЦПр
comf ADRESL
CopyBit ADRESL, 0, LATA, 7
CopyBit ADRESL, 1, LATB, 5
; Вывод восьми старших бит результата АЦПр в порт C
comf ADRESH
; Сдвиг значения в регистре ADRES вправо на 2 разряда
; Команды МК могут обрабатывать только 8-битные значения,
; поэтому сдвиг 10-битного значения одной командой невозможен.
rrcf ADRESH
rrcf ADRESL
rrcf ADRESH
rrcf ADRESL
movff ADRESL, LATC
goto Loop
end
Листинг 3.
#include<p18f4520.h>
#pragma config WDT=OFF
#pragma config LVP=OFF
#pragma config OSC=INTIO67
#pragma config PBADEN=ON
void InterruptHandlerHigh (void);
void InterruptHandlerLow (void);
void main(void)
{
TRISD=TRISC=0;
TRISA=0b00101111;
TRISB=0b11011111;
ADCON0=0b00000001;
ADCON2=0b00010000;
// Запрет прерываний
INTCONbits.GIEH=0;
// Разрешение прерываний от АЦП
PIE1bits.ADIE=1;
// Разрешение приоритной системы прерываний
RCONbits.IPEN=1;
29
// Разрешение прерываний с высоким приоритетом
INTCONbits.GIEH=1;
// Разрешение прерываний с низким приоритетом
INTCONbits.GIEL=1;
ADCON0bits.GO=1;
while(1)
{
}
}
// Вектор прерывания с высоким приоритетом
#pragma code InterruptVectorHigh=0x08
void InterruptVectorHigh (void)
{
// Включение программного кода на языке ассемблера
// в программу на языке Си
_asm
// Переход на подпрограмму обработки прерывания
goto InterruptHandlerHigh
_endasm
}
// Вектор прерывания с низким приоритетом
#pragma code InterruptVectorLow=0x18
void InterruptVectorLow (void)
{
_asm
goto InterruptHandlerLow
_endasm
}
// Подпрограмма обработки прерывания с высоким приоритетом
#pragma code
#pragma interrupt InterruptHandlerHigh
void InterruptHandlerHigh (void)
{
if(PIR1bits.ADIF)
{
PIR1bits.ADIF=0;
LATD=ADRESH;
LATAbits.LATA4=(ADRESL & 0x40)? 1: 0;
LATAbits.LATA6=(ADRESL & 0x80)? 1: 0;
// Установка низкого приоритета прерывания
IPR1bits.ADIP=0;
ADCON2bits.ADFM=1;
ADCON0=0b00110011;
}
}
// Подпрограмма обработки прерывания с низким приоритетом
#pragma code
#pragma interrupt InterruptHandlerLow
void InterruptHandlerLow ()
{
if(PIR1bits.ADIF)
{
30
PIR1bits.ADIF=0;
ADRES=0x3FF;
LATAbits.LATA7=!(ADRESL & 0x01);
LATBbits.LATB5=!(ADRESL & 0x02);
ADRES>>=2;
LATC=~ADRESL;
// Установка высокого приоритета прерывания
IPR1bits.ADIP=1;
ADCON2bits.ADFM=0;
ADCON0=0b00000011;
}
}
Листинг 4.
list p=18f4520
include “p18f4520.inc”
config WDT=OFF, LVP=OFF, OSC=INTIO67, PBADEN=ON
SetReg MACRO Reg, Value
movlw Value
movwf Reg
ENDM
CopyBit MACRO Reg1, Bit1, Reg2, Bit2
btfss Reg1, Bit1
bra $ + 6
bsf Reg2, Bit2
bra $ + 4
bcf Reg2, Bit2
ENDM
; Макрос выбора канала АЦП и запуска АЦПр
ADC_SelectAndRun MACRO Ch
movlw Ch
rlncf WREG
rlncf WREG
bsf WREG, 0
movwf ADCON0
bsf ADCON0, GO
ENDM
Reset_Vector code 0
goto 0x2A
HighVector code 8
goto HighVectorRoutine
LowVector code 18
goto LowVectorRoutine
code 0x2A
clrf TRISD
clrf TRISC
SetReg TRISA, B’00101111’
SetReg TRISB, B’11011111’
SetReg ADCON0, 1
31
SetReg ADCON2, B’00111101’
bcf INTCON, GIEH
bsf PIE1, ADIE
bsf RCON, IPEN
bsf INTCON, GIEH
bsf INTCON, GIEL
bsf ADCON0, GO
bra $ – 2
HighVectorRoutine
btfss PIR1, ADIF
retfie
bcf PIR1, ADIF
movff ADRESH, LATD
CopyBit ADRESL, 6, LATA, 4
CopyBit ADRESL, 7, LATB, 6
bcf IPR1, ADIP
ADC_SelectAndRun 12
retfie
LowVectorRoutine
btfss PIR1, ADIF
retfie
bcf PIR1, ADIF
comf ADRESL
CopyBit ADRESL, 0, LATA, 7
CopyBit ADRESL, 1, LATB, 5
comf ADRESH
rrcf ADRESH
rrcf ADRESL
rrcf ADRESH
rrcf ADRESL
movff ADRESL, LATC
bsf IPR1, ADIP
ADC_SelectAndRun 0
retfie
end
Листинг 5.
#include<p18f4520.h>
#pragma config WDT=OFF
#pragma config LVP=OFF
#pragma config OSC=INTIO67
#pragma config PBADEN=OFF
#define MAX_CH 3
#define MAX_SAMPLES 8
void InterruptHandlerHigh (void);
unsigned ADC_Data[MAX_CH][MAX_SAMPLES];
unsigned char ch, Complete, i;
32
void main(void)
{
TRISD=TRISC=0;
TRISA=0b00101111;
TRISB=0b11011111;
ADCON0=0b00000001;
// Три АК: AN0, AN1 и AN2
ADCON1=0b00001100;
ADCON2=0b10010000;
INTCONbits.GIEH=0;
PIE1bits.ADIE=1;
RCONbits.IPEN=1;
INTCONbits.GIEH=1;
ch=Complete=i=0;
ADCON0bits.GO=1;
while(1)
{
unsigned Sum[3];
// Цикл измерения по всем каналам окончен
if(Complete)
{
// Вычисление средних арифметических
// по каждому каналу
for(ch=0; ch<MAX_CH; ch++)
{
Sum[ch]=0;
for(i=0; i<MAX_SAMPLES; i++)
Sum[ch] +=ADC_Data[ch][i];
Sum[ch]>>=3;
}
// Запуск нового цикла измерений
Complete=ch=i=0;
ADCON0=3;
}
}
}
#pragma code InterruptVectorHigh=0x08
void InterruptVectorHigh (void)
{
_asm
goto InterruptHandlerHigh
_endasm
}
#pragma code
#pragma interrupt InterruptHandlerHigh
void InterruptHandlerHigh (void)
{
if(PIR1bits.ADIF)
{
PIR1bits.ADIF=0;
// Сохранение результата АЦПр
33
ADC_Data[ch++][i]=ADRES;
if(ch==MAX_CH)
{
ch=0;
i++;
}
ADRESL=(ch<<2) | 3;
if(i==MAX_SAMPLES)
Complete=1;
else
ADCON0=ADRESL;
}
}
2. Порядок проведения лабораторной работы
1. Предварительно создайте на жёстком диске компьютера новую рабочую папку, в которой будут находится файлы создаваемой
программы.
Для выполнения лабораторной работы на персональном компьютере должны быть установлены следующие программные приложения фирмы Microchip: среда разработки MPLAB IDE и компиляторы языка С MPLAB MCC18 или MPLAB XC 8.
2. В соответствии со своим вариантом, полученным у преподавателя, разработайте алгоритм работы программы МК. Варианты индивидуальных заданий приведены в табл. 5.
3. В соответствии с разработанным алгоритмом работы программы МК разработайте программы на языках программирования С и
ассемблер.
4. Соберите лабораторную установку.
5. Произведите компиляцию программы на языке С и выполните
процедуру программирования МК.
6. Убедитесь в правильности работы разработанной на языке
программирования С программы для МК.
7. Повторите пункты 5 и 6 для программы на языке программирования ассемблер.
8. Разработайте программу для снятия статических характеристик АЦП для каждого из АК, указанных в варианте.
9. Снимите статические характеристики АЦП для каждого из
АК, указанных в варианте. Данные измерений внесите в табл. 6.
10. Определите напряжение смещение нуля для каждого из АК,
указанных в варианте.
11. Оцените нелинейность для каждого из АК, указанных в варианте.
34
Таблица 5
Варианты индивидуальных заданий
№
варианта
Аналоговые каналы
Смещение
результата
АЦПр
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
AN0, AN1
AN0, AN2
AN0, AN3
AN0, AN4
AN0, AN5
AN0, AN6
AN0, AN7
AN0, AN8
AN0, AN9
AN0, AN10
AN0, AN11
AN0, AN1, AN2
AN0, AN1, AN3
AN0, AN1, AN4
AN0, AN1, AN5
AN0, AN1, AN6
AN0, AN1, AN7
Вправо
Влево
Вправо
Влево
Вправо
Влево
Вправо
Влево
Вправо
Влево
Вправо
Влево
Вправо
Влево
Вправо
Влево
Вправо
18
19
20
21
22
23
24
AN0, AN1, AN8
AN0, AN1, AN9
AN0, AN1, AN10
AN0, AN1, AN11
AN0, AN1, AN13
AN0, AN1, AN14
AN0, AN1, AN15
Влево
Вправо
Влево
Вправо
Вправо
Влево
Вправо
25
AN0, AN1, AN13
Влево
26
27
AN0, AN1, AN14
AN0, AN1, AN15
Вправо
Влево
Приоритет прерывания
Высокий
Низкий
AN0
AN2
AN0
AN4
AN0
AN0, AN6
AN1
AN0
AN3
AN0
AN5
AN0
AN9
AN0, AN10
AN0, AN1
AN1, AN3
AN0, AN4
AN5
AN0
AN0, AN1,
AN7
AN8
AN1
AN0
AN0, AN1
AN0
AN1
AN0,
AN1,AN15
AN0,
AN1,AN13
AN0, AN7
AN8
AN0
AN0, AN11
AN2
AN0
AN1
AN0, AN1
AN1, AN6
AN0, AN1
AN0, AN9
AN1, AN10
AN11
AN1, AN13
AN0, AN14
AN0, AN1,AN14
AN0, AN1,AN15
12. Разработайте программу для экспериментальной оценки времени преобразования АЦП.
35
Таблица 6
Порядковый номер измерения
1
2
3
4
5
6
7
8
9
10
Напряжение на входе АЦП, В
Результат АЦПр
13. С помощью осциллографа определите время преобразования
АЦП.
14. Рассчитайте методическую погрешность АЦП.
15. Составьте отчет о выполненной лабораторной работе.
3. Оформление отчета
Отчет должен быть оформлен в соответствии с требованиями
нормоконтроля и должен содержать:
– цель работы;
– задание на лабораторную работу;
– электрическую принципиальную схему лабораторной установки;
– блок-схемы алгоритмов программ;
– тексты программ на языках программирования Си и ассемблер;
– статические характеристики АЦП;
– значения напряжений смещения нуля и нелинейностей;
– расчёты времени захвата;
– расчёты методической погрешности АЦП;
– выводы о проделанной работе.
Контрольные вопросы
1. Приведите и поясните технические характеристики АЦП.
2. Объясните принцип действия АЦП последовательного приближения.
3. Приведите основные достоинства и недостатки АЦП последовательного приближения по сравнению с другими типами АЦП.
4. Чему равна методическая погрешность АЦП?
5. Объясните принцип действия УВХ.
36
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Опадчий Ю.Ф., Глудкин О.П., Гуров А.И. Аналоговая и цифровая электроника: Учебник для вузов / Под ред. О.П. Глудкина. М.:
Горячая линия-Телеком, 2005. 768 с.
2. Мир электроники. Аналого-цифровое преобразование / Под
ред. У. Кестера. М.: Техносфера, 2007. 1016 с.
3. Microchip PIC18F2420/2520/4420/4520 Data Sheet. Техническое описание микроконтроллеров, сайт производителя www.
microchip.com.
4. Microchip PIC18F97J60 Family Data Sheet. Техническое описание микроконтроллеров, сайт производителя www.microchip.com.
5. Microchip PIC18F8722 Family Data Sheet. Техническое описание микроконтроллеров, сайт производителя www.microchip.com.
6. Microchip PIC18F23K20/24K20/25K20/26K20/43K20/44K20/
45K20/46K20 Data Sheet. Техническое описание микроконтроллеров, сайт производителя www.microchip.com.
37
СОДЕРЖАНИЕ
Лабораторная работа........................................................ 1. Методические указания............................................. Состав и структура модуля АЦП.......................... Тактовая частота преобразования......................... Время захвата................................................... Результат аналого-цифрового преобразования....... Определение напряжения смещения нуля............. Прерывания...................................................... Алгоритм управления модулем
аналого-цифрового преобразования............. Программы управления аналого-цифровым
преобразователем...................................... 2. Порядок проведения лабораторной работы............... 3. Оформление отчета............................................... Контрольные вопросы.................................................. Библиографический список........................................... 3
3
4
16
18
20
21
22
22
23
34
36
36
37
Документ
Категория
Без категории
Просмотров
0
Размер файла
3 011 Кб
Теги
malaxanov
1/--страниц
Пожаловаться на содержимое документа