Автор работы: Пользователь скрыл имя, 24 Декабря 2012 в 22:23, курс лекций
К началу 70-х годов были созданы сложные системы. Возникла потребность в передаче части функций управления периферийным устройствам, расположенным рядом с объектом управления. К концу 60-х годов в технике стала проявляться тенденция к децентрализации управления. Для этого требовались недорогие, малогабаритные и надежные вычислители. С другой стороны электрическая промышленность к этому времени способна была производить интегральные микросхемы (ИМС) до 3-го уровня интеграции.
1. Введение, цели и задачи курса ……………………………………………………………… 3
2. Историческая справка …………………………………………………………………………. 4
3. Структурная организация типового микроконтроллера МК51 …………………………….. 7
4. Методология проектирования систем на основе МП и МЭВМ ……………………………. 8
Описание микроконтроллера C8051F310/311 ……………………………………………… 12
1. Краткий обзор ……………………………………………………………………………… 12
2. Предельно допустимые параметры ……………………………………………………… 24
3. Основные электрические параметры …………………………………………………… . 25
4. Описание корпусов и выводов …………………………………………………………… 26
5. 10-разрядный АЦП ………………………………………………………………………… 30
6. Источник опорного напряжения ………………………………………………………… 44
7. Компараторы …………………….………………………………………………………… 46
8.4. Режимы управления электропитанием ……………………………………………… 53
9. Источники сброса ………………………….……………………………………………… 55
10. Flash-память ……………………………………………………………………………… 60
11. Встроенная память XRAM ……………………………………………………………… 70
12. Генераторы …………………………………………………………….………………… 72
13. Порты ввода/вывода ……………………..……………………………………………… 76
14. SMBus ……………………………………..……………………………………………… 87
15. UART0 ……………………………………..……………………………………………… 103
16. Модуль расширенного SPI (SPI0) ……..……………………………………………… 111
17. Таймеры ……………………………………………………………………………………… 122
18. Программируемый массив счетчиков ……………………………………………………… 137
Список использованных источников ……………………………………………………………
На рисунке 5.5 показаны эквивалентные схемы входов АЦП0 для дифференциального и однофазного режимов работы. Следует отметить, что эквивалентная постоянная времени для обеих схем одинакова. Требуемое время установления для заданной точности установления (settling accuracy – SA) можно приблизительно определить из уравнения 5.1. При измерении выходного сигнала датчика температуры или VDD относительно GND, сопротивление RTOTAL уменьшается до величины RMUX. Требования к минимальному времени установления (время выборки/хранения) для АЦП0 приведены в таблице 5.1.
Уравнение 5.1. Время установления сигнала АЦП0
t = ln(2n/SA) × RTOTALCSAMPLE
где: SA – точность установления, задаваемая в долях МЗР (например, 0.25 для установления в пределах ¼ МЗР).
t – требуемое время установления в секундах.
RTOTAL – сумма входного сопротивления мультиплексора AMUX0 и сопротивления внешнего источника сигнала.
n - разрешение АЦП в битах (10).
Рисунок 5.5. Эквивалентные схемы входов АЦП0
Дифференциальный режим Однофазный режим
Выбор канала Выбор канала
Мультиплексора мультиплексора
5.3.3.Описание SFR регистров АЦП0
SFR-описание 5.1. AMX0P: Регистр выбора положительного канала AMUX0
SFR-адрес: 0xBB
Биты 7-5: Не используются: читаются как 000b. Запись не оказывает никакого влияния.
Биты 4-0: AMX0P4-0: Биты выбора положительного входа AMUX0.
SFR-описание 5.2. AMX0N: Регистр выбора отрицательного канала AMUX0
SFR-адрес: 0xBA
Биты 7-5: Не используются: читаются как 000b. Запись не оказывает никакого влияния.
Биты 4-0: AMX0N4-0: Биты выбора отрицательного входа AMUX0.
Следует иметь ввиду, что если в качестве отрицательного входа выбрано GND, то АЦП0 работает в
однофазном режиме. Во всех других случаях АЦП0 работает в дифференциальном режиме.
SFR-описание 5.3. ADC0CF: Регистр конфигурации АЦП0
SFR-адрес: 0xBC
Биты 7-3: AD0SC4-0: Биты
установки периода сигнала
Частота сигнала дискретизации АЦП0 определяется частотой системного тактового сигнала в соответствии со следующим уравнением:
AD0SC = (SYSCLK/CLKSAR) – 1,
где AD0SC – 5-разрядное значение, задаваемое битами AD0SC4-0;
CLKSAR – необходимая частота сигнала дискретизации АЦП0.
Максимальное значение частоты дискретизации АЦП0 приведено в таблице 5.1.
Бит 2: AD0LJST: Бит выравнивания результата преобразования
0: Данные в регистровой паре ADC0H:ADC0L выровнены вправо.
1: Данные в регистровой паре ADC0H:ADC0L выровнены влево.
Биты 1-0: Не используются: читаются как 00b. Запись не оказывает никакого влияния.
SFR-описание 5.4. ADC0H: Регистр старшего байта слова данных АЦП0
SFR-адрес: 0xBE
Биты 7-0: Старшие биты слова данных АЦП0.
Для AD0LJST = 0: Биты 7-2 являются знаковым расширением бита 1. Биты 1-0 представляют собой старшие 2 бита 10-разрядного слова данных АЦП0. Для AD0LJST = 1: Биты 7-0 являются старшими 8 битами 10-разрядного слова данных АЦП0.
SFR-описание 5.5. ADC0L: Регистр младшего байта слова данных АЦП0
SFR-адрес: 0xBD
Биты 7-0: Младшие биты слова данных АЦП0
Для AD0LJST = 0: Биты 7-0 являются младшими 8 битами 10-разрядного слова данных АЦП0.
Для AD0LJST = 1: Биты 7-6 представляют собой младшие 2 бита 10-разрядного слова данных
АЦП0. Биты 5-0 всегда читаются как ‘0’.
SFR-описание 5.6. ADC0CN: Регистр управления АЦП0
SFR-адрес: 0xE8
(доступен в битовом режиме адресации)
Bit7: AD0EN: Бит включения АЦП0.
0: АЦП0 отключен.
АЦП0 находится в режиме
1: АЦП0 включен. АЦП0 находится в активном режиме и готов к преобразованию данных.
Бит 6: AD0TM: Бит установки режима слежения (выборки-хранения) АЦП0.
0: Нормальный
режим: Когда АЦП0 включен,
момента преобразования.
1: Энергосберегающий
режим: Режим слежения
Бит 5: AD0INT: Флаг прерывания от АЦП0 (устанавливается при завершении преобразования).
0: АЦП0 не
закончил преобразование данных
(с момента последнего
1: АЦП0 закончил преобразование данных.
Бит 4: AD0BUSY: Бит занятости АЦП0.
Чтение:
0: Преобразование
данных завершено или в данный
момент преобразование не
При аппаратном обнулении этого бита флаг AD0INT устанавливается в 1.
1: Идет процесс преобразования данных.
Запись
0: Не оказывает никакого влияния.
1: Инициирует запуск преобразования АЦП0, если биты AD0CM2-0 = 000b.
Бит 3: AD0WINT: Флаг прерывания от детектора диапазона АЦП0.
0: Преобразованные
данные не соответствуют
обнуления этого флага).
1: Преобразованные
данные соответствуют
Биты 2-0: AD0CM2-0: Биты выбора режима запуска преобразования АЦП0.
Если AD0TM = 0:
000: Запуск преобразования осуществляется установкой в 1 бита AD0BUSY.
001: Запуск преобразования
осуществляется при
010: Запуск преобразования
осуществляется при
011: Запуск преобразования
осуществляется при
100: Запуск преобразования осуществляется нарастающим фронтом внешнего сигнала CNVSTR.
101: Запуск преобразования
осуществляется при
11х: Зарезервировано.
Если AD0TM = 1:
000: слежение (выборка) начинается в момент установки в 1 бита AD0BUSY и длится 3 периода
сигнала дискретизации АЦП0, затем начинается преобразование данных.
001: слежение (выборка) начинается при переполнении Таймера 0 и длится 3 периода сигнала
дискретизации АЦП0, затем начинается преобразование данных.
010: слежение (выборка) начинается при переполнении Таймера 2 и длится 3 периода сигнала
дискретизации АЦП0, затем начинается преобразование данных.
011: слежение (выборка) начинается при переполнении Таймера 1 и длится 3 периода сигнала
дискретизации АЦП0, затем начинается преобразование данных.
100: слежение (выборка)
происходит лишь при низком
уровне сигнала на входе
преобразование
запускается нарастающим
101: слежение (выборка) начинается при переполнении Таймера 3 и длится 3 периода сигнала
дискретизации АЦП0; затем начинается преобразование данных.
11х: Зарезервировано.
5.4. Программируемый детектор диапазона АЦП0
Программируемый детектор диапазона АЦП0 постоянно проверяет результаты преобразований АЦП0 на соответствие заданному пользователем диапазону значений и уведомляет систему при обнаружении несоответствия. Это особенно эффективно в управляемых прерываниями системах, т.к. позволяет уменьшить объем кода и улучшить производительность при одновременном уменьшении времени реакции системы. Флаг прерывания от детектора диапазона (бит AD0WINT в регистре ADC0CN) можно использовать также в режиме программного опроса. Старшие и младшие байты граничных значений загружаются в регистры нижней (ADC0GTH, ADC0GTL) и верхней (ADC0LTH и ADC0LTL) границ диапазона АЦП0. Следует отметить, что флаг прерывания от детектора диапазона может устанавливаться как при попадании, так и при непопадании результата преобразования в заданный диапазон, в зависимости от значений, записанных в регистры ADC0GTx и ADC0LTx.
SFR-описание 5.7. ADC0GTH: Регистр старшего байта нижней границы диапазона АЦП0
SFR-адрес: 0xC4
Биты 7-0: Старший байт нижней границы диапазона АЦП0.
SFR-описание 5.8. ADC0GTL: Регистр младшего байта нижней границы диапазона АЦП0
SFR-адрес: 0xC3
Биты 7-0: Младший байт нижней границы диапазона АЦП0.
SFR-описание 5.9.
ADC0LTH: Регистр старшего байта
SFR-адрес: 0xC6
Биты 7-0: Старший байт верхней границы диапазона АЦП0.
SFR-описание 5.10. ADC0LTL: Регистр младшего байта верхней границы диапазона АЦП0
SFR-адрес: 0xC5
Биты 7-0: Младший байт верхней границы диапазона АЦП0.
5.4.1. Детектор диапазона в однофазном режиме.
На рисунке 5.6 показаны два примера
использования детектора
Рисунок 5.6. Пример
использования детектора
(данные выровнены вправо, вход однофазный)
Рисунок 5.7. Пример
использования детектора
(данные выровнены влево, вход однофазный)
5.4.2. Детектор диапазона в дифференциальном режиме.
На рисунке 5.8 показаны два примера
использования детектора
Рисунок 5.8. Пример
использования детектора
(данные выровнены вправо, вход дифференциальный)
Таблица 5.1. Электрические характеристики АЦП0
VDD = 3.0В, VREF = 2.4В (REFSL = 0), Т = – 40 ºС … +85 ºС, если не указано иное (н/д – нет данных).
6. Источник опорного напряжения
В качестве опорного напряжения в МК C8051F310 можно использовать либо напряжение от внешнего источника, подаваемое через вывод VREF, либо напряжение питания VDD (см. рисунок 6.1). Выбор источника опорного напряжения (ИОН) осуществляется с помощью бита REFSL регистра управления REF0CN. Для выбора внешнего ИОН бит REFSL следует сбросить в 0; для выбора напряжения питания VDD в качестве опорного напряжения бит REFSL следует установить в 1.
Бит BIASE включает внутренний генератор напряжения смещения, который необходим для работы АЦП, датчика температуры, внутренних тактовых генераторов и ЦАП. Этот генератор напряжения смещения автоматически включается при включении любого из вышеупомянутых модулей. Генератор напряжения смещения можно также включить вручную: для этого необходимо установить в 1 бит BIASE в регистре REF0CN (подробное описание регистра REF0CN приведено в SFR-описании 6.1). Электрические параметры схемы ИОН приведены в таблице 6.1.
Важное замечание относительно использования вывода VREF: Вывод порта Р0.0 в МК C8051F310 и вывод порта Р0.0 в МК C8051F310 используются как вход внешнего опорного напряжения VREF и как выход внутреннего опорного напряжения VREF. В любом случае этот вывод должен быть настроен как аналоговый вход и должен пропускаться матрицей при назначении выводов. Чтобы настроить Р0.0 как аналоговый вход, следует сбросить в 0 соответствующий бит в регистре P0MDIN. Чтобы заставить матрицу пропускать вывод VREF при назначении выводов, следует установить в 1 соответствующий бит в регистре P0SKIP. Подробная информация о настройке портов ввода/вывода приведена в разделе «17. Порты ввода/вывода» на стр. 189. Бит TEMPE в регистре REF0CN включает/отключает датчик температуры. Если датчик температуры отключен, то он по умолчанию переводится в высокоимпедансное состояние. Любые аналого-цифровые измерения (посредством АЦП0) показаний отключенного датчика температуры возвратят незначащие данные.
Рисунок 6.1. Структурная схема ИОН
SFR-адрес: 0xD1
Биты 7-4: Не используются. Читаются как 0000b. Запись не оказывает никакого влияния.
Бит 3: REFSL: Бит выбора источника опорного напряжения.
С помощью этого бита осуществляется выбор источника опорного напряжения.
0: В качестве опорного
напряжения используется
1: В качестве опорного
напряжения используется
Бит 2: TEMPE: Бит включения датчика температуры.