- •Конспект лекций оглавление
- •Общие с ведения о микроконтроллерах
- •Обобщенная структурная схема микроконтроллера
- •Система прерываний
- •Работа системы прерываний
- •Стек данных
- •Микроконтроллеры Intel, Motorola и Microchip
- •Краткое описание особенностей микроконтроллеров
- •Работа сср в режиме шим
- •Примеры контроллеров 18еххх, 16еххх. Характеристики 16 и 18 серии.
- •Периферийные модули
- •Основные характеристики микроконтроллеров
- •Рекомендации по схематическому решению для портов (16 серия)
- •Структура памяти
- •Банк памяти быстрого доступа
- •Регистр выбора банка памяти данных bsr (18 серия)
- •Косвенная адресация, регистра indf и fsr
- •Операция косвенной адресации
- •Механизм косвенной адресации
- •Работа с памятью рiс16fххх
- •Чтение из еерrом-памяти
- •Запись еерrом данных
- •Управление прерываниями Серия рiс16ххх
- •Система прерывании рiс18fхх2
- •Обработка прерываний
- •Контроллеры pic16f87x
- •Карта памяти микроконтроллеров:
- •Структурная схема микроконтроллеров pic16f87x:
- •Служебные регистр:
- •Контроллеры 18 серии
- •Карта памяти микроконтроллеров рiс18f242/442:
- •Регистры конфигурации контроллера:
- •Аппаратный умножитель 8х8
- •Модуль ацп
- •Конфигурация выводов модуля ацп (рiс16f873/76)
- •Источник опорного напряжения
- •Параллельные порты ввода/вывода
- •Последовательный синхронный порт (мssр)
- •Временные диаграммы работы mssp
- •Пример соединения двух мк через spi
- •Режим i2c последовательного порта mssp.
- •Асинхронно-синхронный последовательный порт (usart)
- •Временные диаграммы работы usart в асинхронном режиме
- •Ведомый параллельный порт (psp)
- •Временные диаграммы порта psp
- •Способы кодирования данных
- •Универсальная последовательная шина (usb) Краткий обзор шины
- •Протоколы передачи
- •Питание
- •Оконечные точки
- •Нумерация устройств
- •Описатели
- •Классы устройств / Драйверы класса
- •Микроконтроллеры с модулем usb
- •Приемопередатчик
- •Регистры управления и состояния модуля usb
- •Регистр флагов прерываний модуля usb (uir)
- •Регистр разрешения прерываний модуля usb (uie)
- •Регистр флагов ошибок модуля usb (ueir)
- •Регистр разрешения прерывания по ошибкам модуля usb (ueie)
- •Регистр состояния модуля usb (ustat)
- •Регистр управления модулем usb (uctrl)
- •Регистр адреса usb (uaddr)
- •Регистр состояния программного обеспечения usb
- •Регистры управления оконечными точками (uepn)
- •Буферы оконечных точек
- •Программирование модуля usb
- •Программное обеспечение usb
- •Основные функции и подпрограммы
- •Ресурсы процессора
- •Уровни стека
- •Память программ
- •Память данных
- •Буферные регистры
- •Выбор страниц/Выбор банков
- •Интегрирование подпрограмм usb в программу
Временные диаграммы работы usart в асинхронном режиме
Регистр RCSTA
SPEN |
RX9 |
SREN |
CREN |
ADDEN |
FERR |
OERR |
RX9D |
Бит 7 |
|
|
|
|
|
|
Бит 0 |
SPEN: 1/0 - включение/выключение USART
RX9: 1/0 - выбор формата принимаемых данных 9/8 бит
SREN: 1 - разрешение одиночного приема только в синхронном режиме, аппаратный сброс по окончанию приема.
CREN: 1/0 - прием разрешен
ADDEN: 1/0 - разрешить/запретить детектирование адреса (при RX9=1)
FERR: 1/0 - флаг ошибки кадра
OERR: 1/0 - флаг ошибки переполнения внутреннего буфера
RX9D: 9-й бит принятых данных
Для конфигурации асинхронного порта в режим передатчика необходимо выполнить следующие операции:
• Установить необходимую скорость обмена путем записи соответствующего значения в регистр SPBRG и бита BRGH;
• Включить асинхронный порт сбросом бита SYNC (TXSTA<4>) и установкой бита SPEN (RCSTA<7>);
• Если планируется использовать прерывание для управления передачей, то установить бит TXIE (PIE1<4>);
• Установить формат посылки (8 или 9 бит), путем установки или сброса бита ТХ9 (TXSTA<6>);
• Разрешить передачу установкой бита TXEN (TXSTA<6>);
• В случае 9-битной посылки записать 9-й бит в бит TX9D (TXSTA<0>);
• Записать передаваемые данные в регистр TXREG (запуск передачи).
Конфигурация асинхронного порта для приема информации выполняется аналогично.
Генератор скорости обмена обеспечивает обмен по асинхронному порту с различной скоростью, которая определяется значением регистра SPBRG и битом BRGH. Приближенно скорость обмена можно оценить по формулам:
• BAUD=Fosc/64/(X+1), для BRGH = 0
• BAUD=Fosc/16/(X+1), для BRGH = 1,
где X – содержимое регистра SPBRG, FOSC – тактовая частота микроконтроллера.
Для кварцевого резонатора с резонансной частотой 4МГц, возможные типовые скорости передачи в зависимости от значения регистра SPBRG, при BRGH = 1 приведены в таблице.
Ошибка рассчитывалась по формуле: Error=(BAUDP- BAUDD)/BAUDD, где BAUDP – рассчитанная скорость обмена, BAUDD – желаемая скорость обмена.
Допустим при скорости обмена 9600бод, (SPBRG = 25) возможная ошибка составит 0.16%.
Скорость обмена, кбод |
Ошибка, % |
Значение регистра SPBRG (десятичное) |
1.202 |
+0,17 |
207 |
2.403 |
+0,13 |
103 |
9.615 |
+0,16 |
25 |
19.231 |
+0,16 |
12 |
Настройка 9-разрядного режима с детектированием адреса:
• Установить скорость передачи с помощью регистра SPBRG и бита BRGH.
• Выбрать асинхронный режим SYNC->0 и SPEN->1
• Разрешить прерывание RCIE ->1
• Включить 9-битный режим RX9->1
• Разрешить детектирование адреса ADDEN->1
• Разрешить прием CREN->1
• Ожидать установку флага RCIF, если RCIE=1
• Считать байт из регистра RCREG для проверки адреса
• При переполнении CREN->0
• Если принятый адрес соответствует нужному адресу, то ADDEN->0 и RCIF->0 для начала приема данных.
Синхронный режим USART.
• Полудуплекс: прием и передача осуществляются раздельно.
• Включается установкой бита SYNC.
• На выводе RC6/TX/SC – синхроимпульсы, на выводе RC7/RX/DT - данные.
• Ведущий/ведомый режим: USART – источник/приемник импульсов SC.
• Обмен - младшими битами вперед.
• Переключение ведущий/ведомый битом CSRC в регистре TXREG.
• Скорость обмена=Fosc/4/(X+1), где X – значение регистра SPBRG.
• Передача в ведущем режиме начинается с записи в регистр TXREG.