икроконтроллер MSP430. Периферийные устройства.
Регистры периферийных модулей (устройств) располагаются в общем адресном пространстве. Область адресов от 0100h до 01FFh зарезервирована для 16битных периферийных модулей. Для обращения к таким устройствам необходимо использовать команды, оперирующие двухбайтными значениями. При использовании команд, работающих с однобайтными значениями, допускаются обращения только к чётным адресам памяти, при этом старший байт результата всегда будет равен нулю.
Область адресов от 010h до 0FFh зарезервирована для 8%битных периферийных модулей. Для обращения к этим устройствам необходимо использовать команды, оперирующие байтами. Если для чтения из такого модуля использовать команду, оперирующую словами, то содержимое старшего байта результата будет
неопределённым. При записи в 8битный модуль двухбайтного значения, в регистр устройства будет записан только младший байт.
Некоторые функции периферийных устройств конфигурируются посредством регистров специальных функций. Эти 8битные регистры располагаются в младших 16 байт адресного пространства. Для обращения к указанным регистрам можно использовать только команды, оперирующие байтами. Назначение
отдельных битов регистров специальных функций описано в документации на конкретные модели.
27. Микроконтроллер MSP430 Порты ввода-вывода
Устройства MSP430 имеют до 6 портов цифровых входов/выходов от Р1 до Р6. Каждый порт имеет 8 выводов входа/выхода. Каждый вывод индивидуально конфигурируется как вход или выход и каждая линия ввода/вывода может быть индивидуально считана или записана.
Порты Р1 и Р2 имеют возможность вызывать прерывание. Для каждой линии ввода/вывода портов Р1 и Р2 можно индивидуально разрешить прерывания и сконфигурировать их так, чтобы прерывание происходило по фронту или спаду входного сигнала. Все линии ввода/вывода порта Р1 являются источником одного вектора прерывания, а все линии ввода/вывода порта Р2 – источник другого вектора прерывания.
Цифровые входы/выходы обладают следующими возможностями:
- Независимые индивидуально программируемые входы/выходы;
- Любые комбинации входа или выхода;
- Индивидуально конфигурируемые прерывания от Р1 и Р2;
- Раздельные регистры данных для входов и выходов.
икроконтроллер MSP430.16битный АЦП SD16_A
Модуль АЦП SD16 содержит до трёх независимых сигма-дельта аналогово-цифровых преобразователей и встроенный источник опорного напряжения. Каждый из АЦП имеет до восьми полностью дифференциальных переключаемых каналов, в том числе встроенный датчик температуры. АЦП созданы на базе дельта-сигма модуляторов второго порядка с передискретизацией и цифровых децимирующих фильтров. Для прореживания (децимации) используются фильтры comb-типа с программируемым коэффициентом прореживания до 256. Дополнительная фильтрация может быть осуществлена программно. Модуль АЦП SD16 обладает следующими свойствами:
- 16-битная сигма-дельта архитектура
- До 3-х независимо функционирующих каналов АЦП
- До 8 переключаемых дифференциальных аналоговых входов на канал
- Программно включаемый встроенный источник опорного напряжения (1,2В)
- Программный выбор встроенного или внешнего источника опорного напряжения
- Встроенный датчик температуры, доступный для всех каналов
- Входная частота модулятора до 1,048576 МГц (частота выборки fSAMPLE до 4096 Гц при передискретизации 256х)
- Программно выбираемый режим преобразования с пониженным энергопотреблением
Модуль АЦП SD16 конфигурируется при помощи пользовательского программного обеспечения.
Ядро аналогово-цифрового преобразователя. Аналогово-цифровое преобразование осуществляется однобитным сигма-дельта модулятором второго порядка. Однобитный компаратор в составе модулятора осуществляет квантование сигнала с частотой модулятора fM. Получающийся в результате однобитовый поток усредняется цифровым фильтром, формируя результат преобразования.
Цифровой фильтр:Цифровой фильтр обрабатывает 1-битный поток данных, поступающий с модулятора при помощи SINC3 фильтра comb-типа.
Модуль АЦП SD16 содержит встроенный источник опорного напряжения величиной 1.2В, который может быть использован для всех каналов модуля SD16 и включается битом SD16REFON. Для снижения помех при использовании встроенного источника опорного напряжения рекомендуется использование внешнего конденсатора ёмкостью в 100 нФ, подключенного между выводов VREF и AVSS. Опорное напряжение также может использоваться вне микроконтроллера, если это разрешено битом SD16VMIDON. Выход ИОН буферизован, нагрузочный ток буфера до 1мА. При использовании опорного напряжения вне микроконтроллера, требуется внешний конденсатор ёмкостью в 470 нФ, подключенный между выводов VREF и AVSS. Уточнённые параметры см. в документации на конкретный тип МК.
Каждому каналу модуля SD16 сопоставлен регистр памяти SD16MEMx. На каждом шаге децимации цифрового фильтра результат преобразования записываются в соответствующий регистр SD16MEMx. При перезаписи нового значения в регистр SD16MEMx устанавливается бит SD16IFG. Бит SD16IFG обнуляется автоматически при чтении из регистра SD16MEMx либо может быть обнулён программно.
29. Микроконтроллер MSP430. Модуль универсального последовательно интерфейса
Модули универсального последовательного коммуникационного интерфейса (USCI) поддерживают несколько режимов передачи данных по последовательному каналу, при этом разные модули USCI поддерживают различные режимы. Модули USCI имеют уникальное обозначение. Так, модуль USCI_A отличается от модуля USCI_B и т.д. Если в конкретном устройстве имеется более одного модуля USCI с идентичными функциями, то в обозначение таких модулей добавляется порядковый номер.
Чтобы узнать, какие именно модули USCI реализованы и реализованы ли вообще в конкретном микроконтроллере, обратитесь к справочной документации.
Модули USCI_A поддерживают:
-режим UART;
-формирование импульсов для обмена по протоколу IrDA;
-автоматическое определение скорости обмена для поддержки протокола LIN;
-режим SPI.
Модули USCI_B поддерживают:
-режим I2C;
-режим SPI.
В режиме UART модуль USCI передаёт и принимает данные с заданной скоростью асинхронно по отношению к другому устройству. Синхронизация приёма/передачи каждого символа осуществляется на основе выбранной скорости обмена модуля. Блоки передачи и приёма используют одно и то же значение скорости обмена.
30. Микроконтроллер MSP430. Таймеры
Сторожевой таймер – это 16-разряный таймер, который можно использовать как в качестве сторожевого, так и в качестве «интервального» таймера. В этом разделе описывается модуль сторожевого таймера. Сторожевой таймер реализован во всех устройствах MSP430
Первичная функция модуля сторожевого таймера (WDT) – выполнять рестарт управляемой системы при возникновении проблемы с программным обеспечением. Если установленный временной интервал истек, генерируется системный сброс. Если сторожевая функция в приложении не нужна, модуль может быть сконфигурирован как интервальный таймер для генерации прерываний через установленные интервалы времени.
Сторожевой таймер обладает следующими возможностями:
- Восемь программно настраиваемых временных интервалов
- Режим сторожевого таймера
- Режим интервального отсчета
- Доступ к регистру управления WDT защищен паролем
- Управление функцией вывода nonRST/NMI
- Возможность выбора источника тактовых импульсов
- Возможность останова для уменьшения потребляемой мощности
Таймер А – это 16-разрядный таймер/счетчик с тремя регистрами захвата/сравнения. Таймер А может обеспечить множество захватов/сравнений, выходов ШИМ и выдержку временных интервалов. Таймер А также имеет обширные возможности прерывания. Прерывания могут быть сгенерированы от счетчика при переполнении и от каждого из регистров захвата/сравнения.
- Таймер А обладает следующими возможностями:
- Асинхронный 16-разрядный таймер/счетчик с четырьмя режимами работы;
- Выбираемый и конфигурируемый источник тактирования;
- Три конфигурируемых регистра захвата/сравнения;
- Конфигурируемые выходы с возможностью ШИМ;
- Асинхронная фиксация (защелка) входа и выхода;
- Регистр вектора прерываний для быстрого декодирования всех прерываний таймера А.
Таймер имеет 4 режима работы. Они выбираются с помощью битов МСх
00 – стоп – останов таймера
01 – вверх – таймер многократно считает от 0до значения в ТАССR0
10 – непрерывный – таймер многократно считает от 0 до 0FFFh
11 – вверх\вниз – таймер многократно считает от 0 до значения ТАССR0 и обратно до0
Таймер В – это 16-разрядный таймер/счетчик с тремя или семью регистрами захвата/сравнения. Таймер В может поддерживать несколько режимов захвата/сравнения, вывод ШИМ-сигналов и выдержку временных интервалов. Таймер В также имеет расширенные возможности прерываний. Прерывания могут быть сгенерированы при переполнении счетчика и от каждого из регистров захвата/сравнения.
Таймер В обладает следующими возможностями:
- Асинхронный 16-разрядный таймер/счетчик с четырьмя режимами работы и четырьмя настраиваемыми длительностями
- Выбираемые и конфигурируемые источники тактирования
- Три или семь конфигурируемых регистров захвата/сравнения
- Конфигурируемые выходы с возможностью ШИМ
- Защелки сравнения с двойной буферизацией и синхронизируемой загрузкой
- Регистр вектора прерывания для быстрого декодирования всех прерываний таймера В
имеет аналогичные режимы с таймером А
00 – стоп – останов таймера
01 – вверх – таймер многократно считает от 0до значения в регистре сравнения ТBCL0
10 – непрерывный – таймер многократно считает от 0 до значения выбранного битами TBCNTLx
11 – вверх\вниз – таймер многократно считает от 0 до значения ТBCL0 и обратно до0