- •Конспект лекций оглавление
- •Общие с ведения о микроконтроллерах
- •Обобщенная структурная схема микроконтроллера
- •Система прерываний
- •Работа системы прерываний
- •Стек данных
- •Микроконтроллеры 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 в программу
Регистр разрешения прерывания по ошибкам модуля usb (ueie)
Регистр разрешения прерывания по ошибкам модуля USB (UEIE) содержит биты разрешения прерывания по ошибкам модуля USB. Установка любого из этих битов разрешает соответствующей ошибке устанавливать флажок прерывания в регистре UEIR
R/W - 0 |
R/W - 0 |
R/W - 0 |
R/W - 0 |
R/W - 0 |
R/W - 0 |
R/W - 0 |
R/W - 0 |
BTS_ERR |
OWN_ERR |
WRT_ERR |
BTO_ERR |
DFN8 |
CRC16 |
CRC5 |
PID_ERR |
7 |
|
|
|
|
|
|
0 |
Регистр разрешения прерывания ошибок модуля USB: «UEIE» (адрес 193h)
R = читаемый разряд,
W - записываемый разряд,
U = зарезервированный разряд,
-n = значение после сброса:
Разряд 7: BTS_ERR: Разрешение прерывания по ошибке BTS_ERR.
1 = прерывание разрешено.
0 = прерывание запрещено.
Разряд 6: OWN_ERR: Разрешение прерывания по ошибке OWN_ERR
1 = прерывание разрешено.
0 = прерывание запрещено.
Разряд 5: WRT_ERR: Разрешение прерывания по ошибке WRT_ERR.
1 = прерывание разрешено.
0 = прерывание запрещено.
Разряд 4: BTO_ERR. Разрешение прерывания по ошибке BTO_ERR.
1 = прерывание разрешено.
0 = прерывание запрещено.
Разряд 3: DFN8: Разрешение прерывания по ошибке DFN8.
1 = прерывание разрешено.
0 = прерывание запрещено.
Разряд 2: CRC16: Разрешение прерывания по ошибке CRC16.
1 = прерывание разрешено.
0 = прерывание запрещено.
Разряд I: CRC5: Разрешение прерывания по ошибке CRC5.
1 = прерывание разрешено.
0 = прерывание запрещено.
Разряд 0: PID_ERR: Разрешение прерывания по ошибке PID_ERR.
1 = прерывание разрешено.
0 = прерывание запрещено.
Регистр состояния модуля usb (ustat)
Регистр состояния модуля USB (USTAT) показывает состояние предыдущей транзакции USB. При прерывании по завершению обработки текущего маркера TOK_DNE должен читаться регистр USTAT, для того чтобы определить номер оконечной точки и направление обмена, используемые для обработки этого маркера. Данные состояния в регистре USTAT действительны, только если установлен флажок прерывания TOK_DNE.
Если транзакция USB завершается раньше чем обслужено предыдущее прерывание TOK_DNE, то модуль USB сохранит состояние следующей транзакции в буфере FIFO STAT. Таким образом, регистр USTAT — фактически окно чтения четырехбайтного блока FIFO STAT, которое позволяет ядру процессора обрабатывать одну транзакцию, в то время как выполняется следующая. Очистка бита TOK_DNE в регистре UIR модифицирует регистр USTAT сдвигом FIFO. При этом если в STAT имеются данные, то снова вызывается прерывание TOK_DNE.
U-0 |
U-0 |
U-0 |
R - X |
R - X |
R - X |
U-0 |
U-0 |
- |
- |
- |
ENDP1 |
ENDP0 |
IN |
- |
- |
7 |
|
|
|
|
|
|
0 |
Регистр состояния USB: «USTAT» (адрес 194h)
R = читаемый разряд,
W - записываемый разряд,
U = зарезервированный разряд,
-n = значение после сброса,
X - не определено
Разряды 7-5: Зарезервированы, читаются как «0».
Разряды 4-3: ENDP <1:0>: Эти разряды указывают адрес оконечной точки, с которой выполнялась транзакция USB, что позволяет определять какой BDT модифицирован.
Разряд 2: IN: Этот бит указывает направление передачи.
1 = транзакция ввода.
0 = транзакция вывода или установки.
Разряды 1-0: Зарезервированы, читаются как «0».