Лекции по «Проектированию и программированию микропроцессорных систем управления»

Автор работы: Пользователь скрыл имя, 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
Список использованных источников ……………………………………………………………

Прикрепленные файлы: 1 файл

Лекции по курсу МК.doc

— 4.57 Мб (Скачать документ)

Рекомендуется следующая процедура  обновления битов FLRT:

Шаг 1. Выбрать SYSCLK равным 25 МГц или  менее.

Шаг 2. Отключить механизм упреждающей  выборки (сбросить в 0 бит CHPFEN в регистре

CCH0CN).

Шаг 3. Установить значение битов FLRT в  соответствие с частотой SYSCLK.

Шаг 4. Включить механизм упреждающей  выборки (установить в 1 бит CHPFEN в регистре

CCH0CN).

 

 

 

 

SFR-описание 10.3. FLSCL: Регистр управления  контроллером Flash-памяти

Биты 7-6: Не используются. Читаются как 00b. Запись не оказывает никакого влияния.

Биты 5-4: FLRT: Управление временем чтения Flash-памяти.

Эти биты должны быть запрограммированы  минимально возможным значением, соответствующим  системной тактовой частоте.

00: SYSCLK . 25 МГц.

01: SYSCLK . 505 МГц.

10: SYSCLK . 75 МГц.

11: SYSCLK . 100 МГц.

Биты 3-0: Зарезервированы. Читаются как 0000b. Эти биты должны быть записаны значением 0000b.

Важное примечание: При  изменении значения битов FLRT в меньшую  сторону (например, при изменении значения ‘11b’ на ‘00b’) операции чтения кэша, записи в кэш и механизм упреждающей выборки должны быть запрещены/отключены с помощью регистра CCH0CN (см. SFR-описание 14.1).

 

11. Встроенная  память XRAM

МК C8051F31x содержат 1 Кбайт встроенного ОЗУ, отображенное в пространстве внешней памяти данных (XRAM). Доступ к пространству внешней памяти осуществляется либо с использованием команды MOVX и указателя данных DPTR, либо с использованием команды MOVX с косвенным режимом адресации (используя регистры R0 и R1).

Если команда MOVX используется с 8-битным операндом адреса (например, @R1), то старший  байт 16- битного адреса берется из регистра управления интерфейсом внешней  памяти EMI0CN (см. SFR-описание 11.1). Примечание: команда MOVX также используется для записи во Flash-память (см. раздел «13. Flash- память» на стр. 141). По умолчанию команда MOVX обращается к памяти XRAM.

 

11.1. Доступ  к памяти XRAM

Для доступа к пространству памяти XRAM (как внутренней, так и внешней) используется команда MOVX. Команда MOVX имеет две формы, причем обе используют косвенный режим адресации. В первой форме используется 16-разрядный указатель данных (DPTR), содержащий полный адрес ячейки памяти XRAM, которую требуется прочитать или записать. Во второй форме для получения полного адреса ячейки памяти XRAM используются регистры R0 или R1 в комбинации с регистром EMI0CN. Ниже приведены примеры использования команды MOVX в обоих формах.

 

11.1.1. Пример  использования команды MOVX с 16-разрядным  адресом

Команда MOVX в 16-разрядной форме обращается к ячейке памяти, на которую указывает содержимое регистра DPTR. Следующая последовательность команд осуществляет чтение байта по адресу 0х1234 в аккумулятор А:

MOV DPTR, #1234h ; загрузка в  DPTR 16-разрядного адреса 0х1234

MOVX A, @DPTR ; загрузка содержимого ячейки памяти с адресом 0х1234 в

аккумулятор А

В приведенном выше примере регистр DPTR загружается сразу 16-разрядным  значением адреса (используя команду MOV). Кроме этого, к регистру DPTR можно  обращаться через SFR регистры DPH, который содержит старшие 8 бит DPTR, и DPL, который содержит младшие 8 бит DPTR.

 

11.1.2. Пример  использования команды MOVX с 8-разрядным  адресом

Команда MOVX в 8-разрядной  форме использует содержимое регистра EMI0CN, чтобы определить старшие 8 бит полного адреса, по которому происходит обращение, и содержимое регистров R0 или R1, чтобы определить младшие 8 бит полного адреса. Следующая последовательность команд осуществляет чтение байта по адресу 0х1234 в аккумулятор А:

MOV EMI0CN, #12h ; загрузка старшего байта адреса в регистр EMI0CN

MOV R0, #34h ; загрузка младшего  байта адреса в регистр R0 (или  R1)

MOVX A, @R0 ; загрузка содержимого  ячейки памяти с адресом 0х1234 в 

аккумулятор А

 

 

SFR-описание 11.1. EMI0CN: Регистр управления интерфейсом  внешней памяти

SFR-адрес: 0xAA

Биты 7-0: PGSEL[7:0]: Биты выбора страницы XRAM.

Биты выбора страницы XRAM образуют старший байт 16-битного  адреса

внешней памяти данных при  использовании команды MOVX с 8-битным адресом, задавая таким образом  необходимую 256-байтную страницу ОЗУ.

0х00: 0x0000 – 0x00FF

0х01: 0x0100 – 0x01FF

0хFE: 0xFE00 – 0xFEFF

0xFF: 0xFF00 – 0xFFFF

 

12. Генераторы

МК семейства C8051F31x содержат программируемый  внутренний высокочастотный генератор,программируемый  внутренний низкочастотный генератор и схему возбуждения внешнего генератора.Внутренний высокочастотный генератор можно включать/отключать и калибровать с помощью регистровOSCICN и OSCICL (см. рисунок 12.1). Внутренний низкочастотный генератор можно включать/отключать и калибровать с помощью регистра OSCLCN (см. SFR-описание 12.3). Оба внутренних генератора имеют на выходе делители с программируемым коэффициентом деления. В качестве источника системного тактового сигнала (SYSCLK) можно использовать либо внешний генератор, либо любой внутренний генератор, либо встроенную систему ФАПЧ. Электрические параметры внутренних генераторов приведены в таблице 12.1.

Рисунок 12.1. Структурная  схема генератора

 

12.1. Программируемый  внутренний высокочастотный (ВЧ) генератор

Все МК C8051F31x содержат калибруемый внутренний высокочастотный генератор, который после сброса системы является по умолчанию системным тактовым генератором. Частоту внутреннего генератора можно программировать с помощью регистра OSCICL (см. SFR-описание 12.1). В МК C8051F31x регистр OSCICL калибруется в процессе производства МК таким образом, чтобы частота внутреннего генератора после сброса составляла 24.5 МГц.

Электрические параметры прецизионного  внутреннего генератора приведены  в таблице 12.1. Следует отметить, что  системный тактовый сигнал может быть получен от внутреннего генератора путем деления его частоты на 1, 2, 4 или 8, в зависимости от значения битов IFCN в регистре OSCICN. После сброса по умолчанию устанавливается коэффициент деления, равный 8.

12.1.1. Режим  остановки внутреннего генератора

Если программа устанавливает  в 1 бит SUSPEND (OSCICN.5), то внутренний генератор  останавливается (переходит в режим Suspend). Если системный тактовый сигнал генерируется внутренним генератором, то тактирование периферийных модулей или ядра CIP-51 будет остановлено до тех пор, пока не произойдет одно из следующих событий:

• Событие «Совпадение» от порта P0.

• Событие  «Совпадение» от порта P1.

• Событие  «Совпадение» от порта P2.

• Компаратор 0 включен и на его выходе установлен лог. 0.

• Компаратор 1 включен и на его выходе установлен лог. 0.

Если происходит одно из событий, «пробуждающее» внутренний генератор, то внутренний генератор, CIP-51 и тактируемая сигналом внутреннего  генератора периферия восстанавливают  нормальное функционирование независимо от того, вызывает ли «пробуждающее» событие прерывание или нет. CPU возобновляет выполнение программы с команды, следующей за командой, установившей бит SUSPEND.

Примечание: Перед входом в режим SUSPEND в качестве источника сигнала SYSCLK следует выбрать внутренний генератор (без системы ФАПЧ). Когда CPU «пробуждается» из режима SUSPEND вследствие пробуждающего события, система ФАПЧ должна повторно инициализироваться. Лишь после этого можно снова выбрать ее в качестве источника сигнала SYSCLK.

 

SFR-описание 12.1. OSCICL: Регистр калибровки внутреннего

высокочастотного  генератора

SFR-адрес: 0xBF

Биты 7-0: OSCICL: Регистр калибровки внутреннего  генератора.

Этот регистр определяет период выходного сигнала внутреннего  генератора. Значение, загружаемое в регистр OSCICL после сброса, определяет базовую частоту внутреннего генератора. В МК C8051F31x регистр OSCICL калибруется при изготовлении МК таким образом, чтобы частота внутреннего генератора после сброса составляла 24.5 МГц.

 

SFR-описание 12.2. OSCICN: Регистр управления внутренним

высокочастотным генератором

SFR-адрес: 0xB7

Бит 7: IOSCEN: Бит включения внутреннего  ВЧ-генератора.

0: Внутренний ВЧ-генератор отключен.

1: Внутренний ВЧ-генератор включен.

Бит 6: IFRDY: Флаг стабилизации частоты внутреннего ВЧ-генератора.

0: Частота внутреннего ВЧ-генератора  не соответствует запрограммированному  значению.

1: Частота внутреннего ВЧ-генератора  соответствует запрограммированному  значению.

Бит 5: SUSPEND: Бит включения режима остановки внутреннего генератора.

Установка этого бита в 1 переводит  внутренний генератор в режим Suspend. Внутренний генератор возобновит свое функционирование при наступлении  одного из «пробуждающих» событий.

Биты 4-2: Зарезервированы. Читаются как 000b. Должны записываться значением 000b.

Биты 1-0: IFCN1-0: Биты управления частотой внутреннего ВЧ-генератора.

00: SYSCLK равна частоте внутреннего  ВЧ-генератора, деленной на 8 (по умолчанию).

01: SYSCLK равна частоте внутреннего  ВЧ-генератора, деленной на 4.

10: SYSCLK равна частоте внутреннего ВЧ-генератора, деленной на 2.

11: SYSCLK равна частоте внутреннего  ВЧ-генератора, деленной на 1.

 

 

Таблица 12.1. Электрические параметры  внутреннего генератора

Т = от – 40 ºC до + 85 ºC, если не указано иное (н/д –  нет данных).

 

12.3. Схема возбуждения внешнего генератора

В качестве элемента возбуждения внешнего генератора можно использовать кварцевый  или керамический резонатор, конденсатор  или RC-цепочку. Кроме этого, входной  тактовый сигнал может подаваться от внешнего КМОП-счетчика. Если используется кварцевый или керамический резонатор, то он должен подключаться к выводам XTAL1 и XTAL2, как показано на рисунке 12.1 (вариант 1). При использовании этой конфигурации между выводами XTAL1 и XTAL2 должен быть подключен также резистор сопротивлением 10 МОм. При использовании RC-цепочки, конденсатора или КМОП-счетчика источник тактовых импульсов следует подключать к выводу XTAL2, как показано на рисунке 12.1 (варианты 2, 3 или 4). Тип внешнего генератора следует выбрать в регистре OSCXCN. В соответствии с выбранным типом внешнего генератора следует установить биты управления его частотой XFCN (см. SFR-описание 12.5 «OSCXCN: Регистр управления внешним генератором»).

Важное замечание относительно использования внешнего генератора: При использовании схемы внешнего генератора выводы портов должны быть правильно настроены. Если схема возбуждения внешнего генератора используется совместно с кварцевым/керамическим резонатором, то выводы портов Р0.5 и Р0.6 (в МК C8051F310/3) или P0.2 и P0.3 (в МК C8051F311/2/4/5/6/7/8/9) используются как XTAL1 и XTAL2 соответственно. Если схема возбуждения внешнего генератора используется совместно с RC-цепочкой, конденсатором или КМОП-счетчиком, то вывод порта Р0.6 (в МК C8051F310/3) или P0.3 (в МК C8051F311/2/4/5/6/7/8/9) используется как XTAL2. Матрица должна быть настроена таким образом, чтобы при назначении выводов она пропускала порты, используемые схемой генератора; настройка матрицы описана в разделе «17.1. Приоритетный декодер матрицы» на стр. 191. Кроме этого, при использовании схемы возбуждения внешнего генератора совместно с кварцевым/керамическим резонатором, конденсатором или RC- цепочкой задействованные выводы портов должны быть настроены как аналоговые входы. При использовании КМОП-счетчика задействованный вывод порта должен быть настроен как цифровой вход.

Подробная информация о выборе режима входов портов приведена в разделе  «17.2. Инициализация портов ввода/вывода».

 

12.4. Выбор источника  системного тактового сигнала

Внутренний генератор требует  небольшого времени запуска и может быть выбран в качестве источника системного тактового сигнала сразу же после операции записи регистра OSCICN, которая включает внутренний генератор. Внешним кварцевым и керамическим резонаторам обычно требуется определенное время для выхода на стабильный режим работы, после истечения которого они готовы к использованию. Когда внешний генератор будет стабилен, флаг стабилизации кварцевого генератора (XTLVLD в регистре OSCXCN) аппаратно установится в 1. Чтобы исключить чтение некорректного значения XTLVLD, при использовании кварцевого резонатора программа должна выдержать паузу длительностью не менее 1 мс между включением внешнего генератора и проверкой бита XTLVLD. RC- и C-режимы обычно не требуют времени запуска. Системе ФАПЧ также требуется определенное время, чтобы выйти на режим генерации заданной частоты. Флаг блокировки ФАПЧ (PLLLCK в регистре PLL0CN) аппаратно устанавливается в 1 сразу же после блокировки ФАПЧ на корректной частоте.

Биты CLKSL[1:0] регистра CLKSEL определяют, какой генератор используется в качестве источника системного тактового сигнала. Биты CLKSL[1:0] следует установить в 01b, чтобы тактирование системы осуществлялось от внешнего генератора; однако внешний генератор может также тактировать некоторые периферийные модули (например, таймеры и ПМС), в то время как внутренний генератор или система ФАПЧ выбраны в качестве источника системного тактового сигнала. Источник системного тактового сигнала можно переключать «на лету» между внутренними генераторами, внешним генератором и системой ФАПЧ при условии, что выбранный источник тактирования включен и стабилен.

 

SFR-описание 12.4. CLKSEL: Регистр выбора тактового  генератора

SFR-адрес: 0x8F

Биты 7-6: Зарезервированы. Читаются как 00b. Должны записываться значением 00b.

Биты 5-4: CLKDIV1-0: Коэффициент деления выходного сигнала /SYSCLK.

Эти биты могут использоваться для  предварительного деления выходного  сигнала /SYSCLK перед выдачей его  на внешний порт (если он разведен соответствующим  образом с помощью матрицы).

00: Частота сигнала на внешнем выводе равна SYSCLK.

01: Частота сигнала на внешнем  выводе равна SYSCLK/2.

10: Частота сигнала на внешнем  выводе равна SYSCLK/4.

11: Частота сигнала на внешнем  выводе равна SYSCLK/8.

(См. более подробную информацию  о разводке этого сигнала на внешний порт в разделе «17. Порты ввода/вывода».)

Бит 3: Зарезервирован. Читается как 0b. Должен записываться значением 0b.

Биты 1-0: CLKSL[2:0]: Биты выбора источника  системного тактового сигнала.

Информация о работе Лекции по «Проектированию и программированию микропроцессорных систем управления»