
- •2.Описание лабораторного стенда
- •3.Описание материнской платы
- •4.Использование пакета программ
- •4.1.Работа в интегрированной среде разработки Silicon Laboratories ide.
- •4.2.Пример работы с платой и ide.
- •5.Лабораторные работы
- •5.1.Работа №1 «Работа со светодиодным матричным дисплеем»
- •5.2.Работа №2 «Контроль температуры»
- •5.3.Работы №3,4 «Управление электродвигателями»
- •5.4.Работа №5 «Символьный экран и матричная клавиатура»
- •6.Описание встроенных периферии мк
- •6.1.Порты ввода/вывода. Матрица назначения выводов портов
- •6.1.1.Приоритетный декодер матрицы
- •6.1.2.Инициализация портов ввода/вывода
- •6.1.3.Порты ввода/вывода общего назначения
- •6.2.Таймеры/счетчики
- •6.2.1.Таймер 0 и Таймер 1
- •Режим 0: 13-разрядный таймер/счетчик
- •Режим 1: 16-разрядный Таймер/Счетчик
- •Режим 2: 8-разрядный таймер/счетчик с автоперезагрузкой
- •Режим 3: Два 8-разрядных таймера/счетчика (только Таймер 0)
- •6.2.2.Таймер 2
- •6.2.3.Таймер 3
- •6.3.Модули сравнения фиксации (программируемый массив счетчиков)
- •6.3.1.Таймер/счетчик модуля пмс
- •6.3.2.Модули захвата/сравнения
- •Режим захвата по фронту сигнала
- •Режим программного таймера (сравнения)
- •Режим высокоскоростного выхода
- •Режим выхода заданной частоты
- •Режим 8-разрядного широтно-импульсного модулятора
- •Режим 16-разрядного широтно-импульсного модулятора
- •6.3.3.Режим сторожевого таймера
- •Функционирование сторожевого таймера
- •Использование сторожевого таймера
- •6.4.Интерфейс spi
- •6.4.1.Описание сигналов
- •6.4.2.Функционирование spi0 в ведущем режиме
- •6.4.3.Функционирование spi0 в ведомом режиме
- •6.4.4.Источники прерываний модуля spi0
- •6.4.5.Тактирование
- •6.4.6.Регистры специального назначения модуля spi0
- •6.5.Интерфейс uart
- •6.5.1.Усовершенствованный режим генерации скорости передачи данных
- •6.5.2.Режимы работы uart0
- •6.6.Аналогово-цифровой преобразователь
- •6.6.1.Аналоговый мультиплексор
- •6.6.2.Режимы работы ацп0
- •Запуск преобразования
- •Режимы слежения
- •Время установления
- •6.6.3.Программируемый детектор диапазона ацп0
- •Детектор диапазона в однофазном режиме
- •Детектор диапазона в дифференциальном режиме
- •6.7.Цифро-аналоговый преобразователь
- •6.7.1.Обновление выходного сигнала цап0
- •Обновление выходного сигнала “по требованию”
- •Обновление выходного сигнала при переполнении таймера
- •Обновление выходного сигнала по фронту cnvstr
- •6.7.2.Форматирование входных данных цап
- •6.8.Генераторы
6.4.2.Функционирование spi0 в ведущем режиме
Все сеансы обмена данными по SPI шине инициируются ведущим устройством. Модуль SPI0 переводится в ведущий режим работы установкой в 1 флага включения ведущего режима (MSTEN, SPI0CN.6). Если модуль SPI0 работает в ведущем режиме, то запись байта данных в регистр данных модуля SPI0 (SPI0DAT) вызовет загрузку буфера передатчика. Если сдвиговый регистр модуля SPI0 пуст, то в него загружается байт из буфера передатчика и начинается передача данных. Ведущий SPI сразу же начинает последовательно сдвигать данные на линию MOSI, выдавая тактовые импульсы на линию SCK. По окончании передачи устанавливается в 1 флаг SPIF (SPI0CN.7). Если прерывания разрешены, то при установке флага SPIF генерируется запрос прерывания. В полнодуплексном режиме работы в то время, когда ведущий SPI0 передает данные ведомому по линии MOSI, адресуемый ведомый одновременно передает содержимое своего регистра сдвига ведущему SPI0 по линии MISO. Поэтому флаг SPIF является как флагом окончания передачи, так и флагом готовности принимаемых данных. Байт данных, принимаемый от ведомого устройства, передается старшими значащими разрядами вперед в сдвиговый регистр ведущего. После полной загрузки сдвигового регистра полученный байт данных переписывается в буфер приемника, откуда он может быть считан процессором путем чтения регистра SPI0DAT.
Когда модуль SPI0 настроен как ведущий, он может работать в одном из трех различных режимов:
- режим работы с несколькими ведущими;
- 3-х проводный режим работы с одним ведущим;
- 4-х проводный режим работы с одним ведущим.
Активным по умолчанию является режим работы с несколькими ведущими, когда NSSMD1 (SPI0CN.3) = 0 и NSSMD0 (SPI0CN.2) = 1. В этом режиме NSS функционирует как вход и используется для отключения ведущего SPI0 в то время, когда другой ведущий пытается получить доступ к шине. Если в этом режиме на вход NSS подается сигнал низкого логического уровня, то сбрасываются в 0 биты MSTEN (SPI0CN.6) и SPIEN (SPI0CN.0), выключая тем самым ведущий модуль SPI0, и устанавливается в 1 флаг ошибки режима MODF (SPI0CN.5). При установке флага ошибки режима будет сгенерировано прерывание, если оно разрешено. При данных обстоятельствах требуется программно вновь включить модуль SPI0. В системе с несколькими ведущими любое устройство обычно по умолчанию становится ведомым устройством и будет оставаться ведомым до тех пор, пока оно не будет активировано как ведущее устройство системы. В режиме с несколькими ведущими ведомые устройства можно адресовать индивидуально (при необходимости), используя порты ввода/вывода общего назначения. На рисунке 6.4.2 приведена схема соединений между двумя ведущими устройствами в режиме с несколькими ведущими.
3-х проводный режим работы с одним ведущим активен тогда, когда NSSMD1 (SPI0CN.3) = 0 и NSSMD0 (SPI0CN.2) = 0. В этом режиме NSS не используется и не разводится на внешний вывод порта с помощью матрицы. Все ведомые устройства, которые требуется адресовать в этом режиме работы, необходимо выбирать с помощью портов ввода/вывода общего назначения. На рисунке 6.4.3 приведена схема соединений между ведущим и ведомым устройствами в 3-х проводном режиме.
4-х проводный режим работы с одним ведущим активен тогда, когда NSSMD1 (SPI0CN.3) = 1. В этом режиме NSS функционирует как выход и может использоваться как сигнал выбора ведомого для одного устройства SPI. Логический уровень сигнала на выходе NSS определяется (программно) битом NSSMD0 (SPI0CN.2). Другие ведомые устройства можно адресовать с помощью портов ввода/вывода общего назначения. На рисунке 6.4.4 приведена схема соединений между одним ведущим и двумя ведомыми устройствами в 4-х проводном режиме.
Рис. 6.4.2 Схема включения в режиме с несколькими ведущими
Рис. 6.4.3 Схема соединения одного ведущего и одного ведомого с
использованием 3-х проводной шины SPI
Рис. 6.4.4 Схема соединения одного ведущего и нескольких ведомых с
использованием 4-х проводной шины SPI