- •1 Ответы на контрольные вопросы заданий и их краткое содержание
- •Тема 1.1. Что такое микроконтроллер.
- •Тема 1.2.Схемотехника современных микроконтроллеров
- •Тема 1.3.Обзор языков программирования для микроконтроллеров
- •Тема 1.4.Среды программирования
- •Тема 1.5. Отладка и запуск программы для мк
- •Тема 2.1.Виды команд в процессоре. Ортогональная архитектура.
- •Тема 2.2.Адресное пространство мк msp430
- •Тема 2.3. Внутренняя структура mk msp430
- •Тема 3.1.Битовые операции
- •Тема 3.2. Аналогово-цифровой преобразователь
- •2 Описание выполнения учебного проекта
- •Программная часть
- •3 Результат выполнения учебного проекта
Тема 2.3. Внутренняя структура mk msp430
ЦПУ MSP430 обладает рядом возможностей, специально предназначенных
для поддержки современных методов программирования, таких как вычисляемые переходы, табличные вычисления, а также использование языков высокого
уровня, в частности, языка Си. Центральный процессор может адресовать память
во всём диапазоне адресов без разбиения её на страницы.
ЦПУ MSP430 имеет следующие особенности:
RISC-архитектура, поддерживающая 27 команд и 7 режимов адресации;
ортогональная архитектура — с каждой из команд может использоваться любой режим адресации;
полная доступность регистров, включая счётчик команд, регистры состояния и указатель стека;
однотактные регистровые операции;
большой 16-битный регистровый файл, уменьшающий количество обращений к памяти;
16-битная шина адреса, обеспечивающая прямой доступ и ветвление вовсём диапазоне адресов;
16-битная шина данных, позволяющая напрямую оперировать 2-байтными значениями;
генератор констант формирует шесть наиболее часто используемых значений, уменьшая размер кода;
прямой обмен данными между ячейками памяти без промежуточной записи в регистр;
одно- и двухбайтные адресация и форматы команд.
16-битный счётчик команд (PC/R0) указывает на следующую команду, которая будет выполняться. Каждая команда занимает в памяти чётное число байтов (два, четыре или шесть), и на это же значение инкрементируется счётчик команд. Выборка команд осуществляется пословно, при этом счётчик команд указывает на чётные адреса.
Указатель стека (SP/R1) используется ЦПУ для сохранения адресов возврата из подпрограмм и прерываний. При этом он изменяется по преддекрементной/постинкрементной схеме. Кроме того, указатель стека может использоваться со всеми командами и любыми режимами адресации. Указатель стека инициализируется (устанавливается на заданную ячейку ОЗУ) пользователем и выравнивается по чётным адресам.
Модуль ADC10 обеспечивает быстрое выполнение 10-битных аналогоцифровых преобразований. В составе модуля имеется 10-битное ядро с регистром последовательного приближения, блок управления выборкой, генератор опорного напряжения и контроллер пересылки данных (DTC).
Контроллер DTC позволяет модулю сохранять результаты преобразований в пределах всего адресного пространства без использования ЦПУ. Модуль может конфигурироваться пользовательской программой в соответствии с требованиями различных приложений.
Модуль ADC10 имеет следующие особенности:
максимальная скорость преобразования — более 200 тыс. выборок/с;
10-битный преобразователь с монотонной характеристикой без пропуска кодов;
устройство выборки/хранения с программируемым временем выборки;
запуск преобразования производится программно или по сигналу от Таймера B;
программно конфигурируемый внутренний генератор опорного напряжения (1.5 В или 2.5 В);
внешний или внутренний источник опорного напряжения (выбирается программно);
восемь каналов преобразования внешних сигналов (12 в моделях
MSP430x22x);
каналы преобразования для внутреннего датчика температуры, напряжения
V CC
и внешних опорных напряжений;
конфигурируемый источник тактового сигнала;
четыре режима преобразования: одноканальный, многократный одноканальный, последовательный и многократный последовательный;
ядро АЦП и ИОН могут выключаться независимо друг от друга;
контроллер пересылки данных для автоматического сохранения результатов преобразований.
Встроенный генератор опорного напряжения модуля ADC10 разработан для использования в приложениях с низким энергопотреблением. В составе генератора имеется источник напряжения (ИОН) и отдельный буфер. Значение тока, потребляемого каждым из указанных узлов, приводится в справочной документации на конкретные модели. При REFON = 1 оба узла включены, а при REFON = 0 — выключены. Полное время установления опорного напряжения после установки бита REFON составляет не более 30 мкс.
Если REFON = 1, но преобразование не выполняется, то буфер автоматически выключается, а включается (тоже автоматически), когда в нём возникает потребность. В выключенном состоянии ток потребления буфера равен нулю. Источник напряжения в этом случае остаётся активным.
При REFOUT = 1 работой буфера внутреннего источника опорного напряжения управляет бит REFBURST. При REFBURST = 0 буфер будет включён постоянно, обеспечивая наличие опорного напряжения на соответствующем выводе микроконтроллера. Если REFBURST = 1, то буфер автоматически выключается между преобразованиями и автоматически включается на время преобразования.
Также имеется возможность выбора между быстродействием АЦП и током потребления буфера встроенного ИОН. При скорости преобразования менее 50 тыс. выборок/с установка бита ADC10SR = 1 уменьшает ток потребления буфера примерно на 50%.
Модуль ADC10 разработан для использования в приложениях с низким энергопотреблением. Поэтому ядро автоматически отключается в те периоды времени, когда модуль не выполняет преобразований, и автоматически включается при необходимости. Аналогичным образом автоматически включается и отключается внутренний генератор модуля ADC10SC. В выключенном состоянии ток потребления, как ядра АЦП, так и внутреннего генератора, равен нулю.
Таймер A представляет собой 16-битный таймер/счётчик с тремя регистрами захвата/сравнения. Этот таймер может обеспечить несколько каналов захвата/сравнения, генерации сигналов с ШИМ и формирования временных интервалов. Кроме того, Таймер А имеет развитую поддержку прерываний. Прерывания могут генерироваться как регистром счётчика таймера (при его переполнении), так и каждым из регистров захвата/сравнения.
Таймер А имеет следующие особенности:
асинхронный 16битный таймер/счётчик, имеющий четыре режима работы;
возможность выбора и конфигурирования источника тактового сигнала;
два или три конфигурируемых регистра захвата/сравнения;
конфигурируемые выходы с возможностью генерации ШИМ-сигналов;
асинхронное защёлкивание входных и выходных сигналов;
регистр вектора прерывания для быстрого декодирования всех прерываний таймера.
Регистр 16-битного таймера/счётчика TAR инкрементируется или декрементируется (в зависимости от режима работы) по нарастающему фронту импульсов тактового сигнала. Регистр TAR доступен как для чтения, так и для записи. Кроме того, при переполнении этого регистра таймер может генерировать прерывание.
Запуск или перезапуск таймера может быть выполнен двумя способами:
таймер осуществляет счёт, если MCx > 0 и источник тактового сигнала таймера активен;
в режиме прямого или реверсивного счёта таймер может быть остановлен записью нуля в регистр TACCR0. Повторный запуск таймера может быть выполнен записью в регистр TACCR0 ненулевого значения. В этом случае таймер начнёт считать в прямом направлении, начиная с нуля.
Если при изменении содержимого регистра TACCR0 во время работы таймера новый период окажется больше или равен предыдущему периоду или больше текущего значения таймера, то таймер продолжит счёт до достижения нового значения периода. Если новый период окажется меньше текущего значения таймера, то таймер начнёт счёт с нуля, однако перед обнулением счётчика может возникнуть дополнительный отсчёт.
Микроконтроллеры серии С семейства TIVA предоставляют режим сна (sleep), глубокого сна (deep-sleep) и гибернации (HIB) для сбережения энергии, когда требуется минимальный функционал устройства. В режиме гибернации питание всего контроллера, за исключением блока HIB, отключено, и контроллер находится в состоянии, из которого он может быть возвращен в нормальный режим работы по запросу.
Сброс при старте (POR — power on reset)/сброс при отключении (PDR — power down reset) Контроллер имеет встроенные схемы POR и PDR для обеспечения нормальной работы контроллера. Контроллер находится в режиме сброса, пока напряжение питания на VDD / VDDA ниже, чем установленный порог срабатывания VPOR / VPDR.
Рисунок 2.2. POR/PDR
Гибернация — это сохранение состояния компьютера на жёсткий диск (в специальную папку) перед его полным выключением. Таким образом, вместо оперативной памяти образ системы записывается на диск, а при включении компьютера, из него восстанавливаются запущенные программы, окна, службы и т.д. При этом режиме мы потеряем один из жирных плюсов — ускорение запуска системы. Останется только удобство — нет нужды заново запускать программы и открывать документы после включения компьютера.
Гибридный сон — самый практичный, удобный и безопасный режим сна для стационарного компьютера. Переводя компьютер в гибридный сон мы активируем оба режима (простого сна и гибернации) одновременно — образ системы перед выключением записывается и в оперативную память и на жёсткий диск. Таким образом Вы можете быть на все 100% уверены в сохранности данных (сеанса в браузере, редакции текстового файла, документа в офисном пакете или недоделанного изображения в фоторедакторе) при внезапном отключении электроэнергии.
При изменении содержимого регистра TACCR0 во время счёта таймера в обратном направлении, процесс счёта не прерывается. Новое содержимое TACCR0 защёлкивается в TACL0 сразу же, однако формирование периода с новой длительностью начнётся только после достижения счётчиком нулевого значения.
Если таймер считает в прямом направлении и новое значение периода больше или равно старому значению или же больше текущего значения таймера, то смена направления счёта произойдёт после достижения таймером нового значения периода. Если новый период меньше текущего значения таймера, то таймер сразу же начинает считать в обратном направлении, однако перед сменой направления может возникнуть один дополнительный отсчёт.
