Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Семейство микроконтроллеров MSP430x2xx. Архитектура, программирование, разработка приложений

Покупка
Артикул: 816630.01.99
Доступ онлайн
480 ₽
В корзину
Настоящая книга посвящена однокристальным микроконтроллерам со сверхнизким потреблением семейства MSP430x2xx компании Texas Instruments. Данное руководство представляет собой перевод документа «MSP430x2xx Family User's Guide». В руководстве подробно рассмотрена архитектура ЦПУ MSP430 и MSP430x, описаны система команд и поддерживаемые режимы адресации. Помимо этого, в книге детально описываются различные периферийные модули, реализованные в микроконтроллерах семейства: таймеры, порты ввода/вывода, модули АЦП и ЦАП, модули последовательных интерфейсов USI/USCI и прочие, а также аналоговые модули, такие как модуль операционного усилителя и модуль аналогового компаратора. Это руководство безо всякого преувеличения можно считать настольной книгой инженера-разработчика, занимающегося проектированием устройств на микроконтроллерах семейства MSP430x2xx. Кроме того, полнота и ясность изложения материала позволяет рекомендовать данную книгу студентам соответствующих специальностей и подготовленным радиолюбителям.
Евстифеев, А. В. Семейство микроконтроллеров MSP430x2xx. Архитектура, программирование, разработка приложений : практическое руководство / пер. с англ. А. В. Евстифеева. - 2-е изд. - Москва : ДМК Пресс, Додэка-XXI, 2023. - 544 с. - (Мировая электроника). - ISBN 978-5-89818-440-7. - Текст : электронный. - URL: https://znanium.com/catalog/product/2104747 (дата обращения: 30.04.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
СЕМЕЙСТВО
МИКРОКОНТРОЛЛЕРОВ
MSP430x2xx

Архитектура
Программирование
Разработка приложений

С Е Р И Я
МИРОВАЯ ЭЛЕКТРОНИКА

Москва
ДМК Пресс, Додэка, 2023

2-е издание, электронное
УДК 621.316.544.1(035.5)
ББК 32.844.1-04я2
С30

Данное издание подготовлено к печати по заказу компании «КОМПЭЛ» 
Название оригинального документа компании Texas Instruments — 
«MSP430x2xx Family User’s Guide».

С30
Семейство микроконтроллеров MSP430x2xx. Архитектура, программирование, разработка 
приложений / пер. с англ. А. В. Евстифеева. — 2-е изд., эл. — 1 файл pdf : 544 с. — Москва : 
ДМК Пресс, Додэка-XXI, 2023. — (Мировая электроника). — Систем. требования: Adobe 
Reader XI либо Adobe Digital Editions 4.5 ; экран 10". — Текст : электронный.

ISBN 978-5-89818-440-7

Настоящая книга посвящена однокристальным микроконтроллерам со сверхнизким потреблением 
семейства MSP430x2xx компании Texas Instruments. Данное руководство представляет собой перевод 
документа «MSP430x2xx Family User’s Guide».
В руководстве подробно рассмотрена архитектура ЦПУ MSP430 и MSP430x, описаны система команд 
и поддерживаемые режимы адресации. Помимо этого, в книге детально описываются различные периферийные 
модули, реализованные в микроконтроллерах семейства: таймеры, порты ввода/вывода, модули 
АЦП и ЦАП, модули последовательных интерфейсов USI/USCI и прочие, а также аналоговые 
модули, такие как модуль операционного усилителя и модуль аналогового компаратора.
Это руководство безо всякого преувеличения можно считать настольной книгой инженера-разработчика, 
занимающегося проектированием устройств на микроконтроллерах семейства MSP430x2xx. 
Кроме того, полнота и ясность изложения материала позволяет рекомендовать данную книгу студентам 
соответствующих специальностей и подготовленным радиолюбителям.

УДК 621.316.544.1(035.5) 
ББК 32.844.1-04я2

Электронное издание на основе печатного издания: Семейство микроконтроллеров MSP430x2xx. Архитектура, программирование, 
разработка приложений / пер. с англ. А. В. Евстифеева. — Москва : ДМК Пресс, Додэка-XXI, 
2015. — 544 с. — (Мировая электроника). — ISBN 978-5-97060-334-5. — Текст : непосредственный.

Все права защищены, никакая часть этого издания не может быть воспризведена в любой форме или любыми средствами, 
электронными или механическими, включая фотографирование, ксерокопирование или иные средства копирования или сохранения 
информации, без письменного разрешения издательства.

В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами защиты авторских прав, 
правообладатель вправе требовать от нарушителя возмещения убытков или выплаты компенсации.

ISBN 978-5-89818-440-7
© Издательский дом «Додэка-XXI»
© Издание, ДМК Пресс, 2015
Содержание 3

Предисловие. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Глава 1. Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

1.1. Архитектура. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.2. Гибкая система тактирования . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3. Внутрисхемная эмуляция . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4. Адресное пространство . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.4.1. Флэш/ПЗУ  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.4.2. ОЗУ  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.4.3. Периферийные устройства  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.4.4. Регистры специальных функций (SFR)  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.4.5. Организация памяти . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.5. Расширенные возможности семейства MSP430x2xx . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

Глава 2. Сброс, прерывания и режимы работы  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.1. Сброс и инициализация системы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.1. Сброс по снижению напряжения питания (BOR) . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.1.2. Состояние устройства после сброса . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2. Прерывания. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2.1. Немаскируемые прерывания (NMI)  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.2.2. Маскируемые прерывания  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2.3. Обработка прерывания . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2.4. Векторы прерываний  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.3. Режимы работы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.3.1. Вход в режимы пониженного энергопотребления и выход из них . . . . . . . . . . . 30
2.4. Принципы программирования устройств с низким энергопотреблением  . . . . . . . . . 31
2.5. Подключение неиспользуемых выводов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

Глава 3. 16битное RISC ЦПУ MSP430. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3.1. Введение в ЦПУ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.2. Регистры ЦПУ  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2.1. Счётчик команд (PC)  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2.2. Указатель стека (SP)  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

СОДЕРЖАНИЕ
Содержание

3.2.3. Регистр состояния (SR)  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.2.4. Регистры генератора констант CG1 и CG2  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.2.5. Регистры общего назначения R4…R15  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.3. Режимы адресации. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.3.1. Регистровый режим адресации . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.3.2. Индексный режим адресации . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.3.3. Относительный режим адресации  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.3.4. Абсолютный режим адресации . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.3.5. Косвенный регистровый режим адресации  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.3.6. Косвенный регистровый режим адресации с автоинкрементом  . . . . . . . . . . . . 44
3.3.7. Непосредственный режим адресации . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.4. Система команд . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.4.1. Команды с двумя операндами (формат I) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.4.2. Команды с одним операндом (формат II)  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.4.3. Команды перехода  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.4.4. Время выполнения и размер команд . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
3.4.5. Описание набора команд . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

Глава 4. 16битное RISC ЦПУ MSP430X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  94

4.1. Введение в ЦПУ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
4.2. Прерывания  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
4.3. Регистры ЦПУ  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
4.3.1. Счётчик команд (PC)  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
4.3.2. Указатель стека (SP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
4.3.3. Регистр состояния (SR)  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
4.3.4. Регистры генератора констант CG1 и CG2  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
4.3.5. Регистры общего назначения R4…R15  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
4.4. Режимы адресации. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
4.4.1. Регистровый режим  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
4.4.2. Индексный режим адресации . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
4.4.3. Относительный режим адресации  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
4.4.4. Абсолютный режим адресации . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
4.4.5. Косвенный регистровый режим адресации  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
4.4.6. Косвенный регистровый режим адресации с автоинкрементом  . . . . . . . . . . . 118
4.4.7. Непосредственный режим адресации . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
4.5. Команды MSP430 и MSP430X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
4.5.1. Команды MSP430  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
4.5.2. Команды MSP430X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
4.6. Описание набора команд . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
4.6.1. Подробные описания расширенных команд  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
4.6.2. Команды MSP430  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
4.6.3. Расширенные команды  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
4.6.4. Адресные команды  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220

Глава 5. Модуль синхронизации Basic Clock Module+ . . . . . . . . . . . . . . . . . . . . . . . . . .  230

5.1. Введение  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
Содержание 5

5.2. Функционирование модуля синхронизации. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
5.2.1. Возможности модуля синхронизации и приложения с низким 
энергопотреблением . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
5.2.2. Встроенный низкочастотный генератор со сверхнизким потреблением  . . . . 233
5.2.3. Генератор LFXT1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
5.2.4. Генератор XT2  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
5.2.5. Генератор с цифровым управлением (DCO)  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
5.2.6. Модулятор DCO  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
5.2.7. Отказоустойчивая работа модуля синхронизации . . . . . . . . . . . . . . . . . . . . . . . . 237
5.2.8. Синхронизация тактовых сигналов  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
5.3. Регистры модуля синхронизации  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239

Глава 6. Контроллер DMA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244

6.1. Введение  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
6.2. Функционирование контроллера DMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
6.2.1. Режимы адресации контроллера DMA  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
6.2.2. Режимы пересылки контроллера DMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
6.2.3. Инициация передачи данных с использованием DMA  . . . . . . . . . . . . . . . . . . . 250
6.2.4. Прерывание DMAпересылок  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
6.2.5. Приоритеты каналов DMA  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
6.2.6. Длительность DMAпересылки  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
6.2.7. Функционирование DMA и прерывания  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
6.2.8. Прерывания контроллера DMA  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
6.2.9. Использование модуля USCI_B в режиме I2C с контроллером DMA . . . . . . . 257
6.2.10. Использование модуля ADC12 с контроллером DMA  . . . . . . . . . . . . . . . . . . . 257
6.2.11. Использование модуля DAC12 с контроллером DMA  . . . . . . . . . . . . . . . . . . . 257
6.2.12. Запись в флэшпамять с использованием контроллера DMA . . . . . . . . . . . . . 258
6.3. Регистры контроллера DMA  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258

Глава 7. Контроллер флэшпамяти . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265

7.1. Введение  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
7.2. Сегментная организация флэшпамяти. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
7.2.1. Сегмент A  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
7.3. Функционирование флэшпамяти . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
7.3.1. Тактовый генератор контроллера флэшпамяти . . . . . . . . . . . . . . . . . . . . . . . . . 268
7.3.2. Стирание флэшпамяти . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
7.3.3. Запись в флэшпамять  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
7.3.4. Обращение к флэшпамяти во время записи или стирания  . . . . . . . . . . . . . . . 277
7.3.5. Останов циклов записи или стирания . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
7.3.6. Режим чтения при граничных условиях  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
7.3.7. Конфигурирование контроллера флэшпамяти
и организация доступа к нему . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
7.3.8. Прерывания контроллера флэшпамяти . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
7.3.9. Программирование флэшпамяти . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
7.4. Регистры контроллера флэшпамяти . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
Содержание

Глава 8. Цифровые порты ввода/вывода. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  285

8.1. Введение  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
8.2. Функционирование цифровых портов ввода/вывода . . . . . . . . . . . . . . . . . . . . . . . . . . 285
8.2.1. Регистр данных входа PxIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
8.2.2. Регистр данных выхода PxOUT  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
8.2.3. Регистр направления PxDIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
8.2.4. Регистр включения подтягивающих резисторов PxREN . . . . . . . . . . . . . . . . . . 286
8.2.5. Регистры выбора функции PxSEL и PxSEL2  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
8.2.6. Прерывания от портов P1 и P2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
8.2.7. Конфигурация неиспользуемых выводов портов  . . . . . . . . . . . . . . . . . . . . . . . . 288
8.3. Регистры цифровых портов ввода/вывода. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288

Глава 9. Супервизор напряжения питания  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  290

9.1. Введение  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
9.2. Функционирование супервизора  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
9.2.1. Конфигурирование супервизора  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
9.2.2. Функционирование компаратора супервизора  . . . . . . . . . . . . . . . . . . . . . . . . . . 291
9.2.3. Изменение битов VLDx  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
9.2.4. Рабочий диапазон супервизора  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
9.3. Регистры супервизора . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293

Глава 10. Сторожевой таймер. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  295

10.1. Введение  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
10.2. Функционирование сторожевого таймера. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
10.2.1. Счётчик сторожевого таймера  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
10.2.2. Режим сторожевого таймера . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
10.2.3. Режим интервального таймера  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
10.2.4. Прерывания сторожевого таймера . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
10.2.5. Отказоустойчивое тактирование сторожевого таймера  . . . . . . . . . . . . . . . . . . 298
10.2.6. Функционирование в режимах пониженного энергопотребления  . . . . . . . . 299
10.2.7. Примеры кода  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
10.3. Регистры сторожевого таймера . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299

Глава 11. Аппаратный умножитель . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  302

11.1. Введение  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
11.2. Функционирование аппаратного умножителя . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
11.2.1. Регистры операндов  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
11.2.2. Регистры результата  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
11.2.3. Примеры кода  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
11.2.4. Косвенная адресация RESLO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
11.2.5. Использование прерываний  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
11.3. Регистры аппаратного умножителя  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306

Глава 12. Таймер A. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  307

12.1. Введение  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
12.2. Функционирование Таймера А . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
Содержание 7

12.2.1. 16битный таймер/счётчик  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
12.2.2. Запуск таймера . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
12.2.3. Управление режимом работы таймера . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
12.2.4. Блоки захвата/сравнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
12.2.5. Модуль вывода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
12.2.6. Прерывания Таймера А  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
12.3. Регистры Таймера А. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321

Глава 13. Таймер B. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326

13.1. Введение  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
13.1.1. Сходства и различия с Таймером А  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
13.2. Функционирование Таймера B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
13.2.1. 16битный таймер/счётчик  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
13.2.2. Запуск таймера . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
13.2.3. Управление режимом работы таймера . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
13.2.4. Блоки захвата/сравнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
13.2.5. Модуль вывода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
13.2.6. Прерывания Таймера B  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
13.3. Регистры Таймера B. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343

Глава 14. Универсальный последовательный интерфейс . . . . . . . . . . . . . . . . . . . . . . . . 348

14.1. Введение  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
14.2. Функционирование модуля USI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
14.2.1. Инициализация модуля USI  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
14.2.2. Генерация тактового сигнала USI  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
14.2.3. Режим SPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
14.2.4. Режим I2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
14.3. Регистры модуля USI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358

Глава 15. Универсальный последовательный коммуникационный интерфейс: 
режим UART . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362

15.1. Введение  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
15.2. Введение в модуль USCI: режим UART . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
15.3. Функционирование модуля USСI: режим UART. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
15.3.1. Инициализация и сброс модуля USCI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
15.3.2. Формат символа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
15.3.3. Форматы асинхронного обмена  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
15.3.4. Автоматическое определение скорости передачи  . . . . . . . . . . . . . . . . . . . . . . . 368
15.3.5. Кодирование и декодирование сигналов IrDA  . . . . . . . . . . . . . . . . . . . . . . . . . 370
15.3.6. Автоматическое обнаружение ошибок  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
15.3.7. Разрешение приёма USCI  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
15.3.8. Разрешение передачи USCI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
15.3.9. Контроллер скорости передачи UART  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
15.3.10. Установка скорости обмена . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
15.3.11. Синхронизация при передаче . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
15.3.12. Синхронизация при приёме  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
Содержание

15.3.13. Типовые скорости обмена и величины ошибок  . . . . . . . . . . . . . . . . . . . . . . . 379
15.3.14. Использование модуля USCI в режиме UART совместно с режимами 
пониженного энергопотребления  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
15.3.15. Прерывания модуля USCI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
15.4. Регистры модуля USCI: режим UART . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383

Глава 16. Универсальный последовательный коммуникационный интерфейс: 
режим SPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  392

16.1. Введение  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
16.2. Введение в модуль USCI: режим SPI  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
16.3. Функционирование модуля USСI: режим SPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
16.3.1. Инициализация и сброс модуля USCI  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
16.3.2. Формат символа  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395
16.3.3. Режим ведущего  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395
16.3.4. Режим ведомого . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
16.3.5. Разрешение обмена по интерфейсу SPI  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
16.3.6. Управление тактовым сигналом . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
16.3.7. Использование режима SPI совместно с режимами пониженного 
энергопотребления . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
16.3.8. Прерывания в режиме SPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
16.4. Регистры модуля USCI: режим SPI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401

Глава 17. Универсальный последовательный коммуникационный интерфейс: 
режим I2C. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  408

17.1. Введение  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
17.2. Введение в модуль USCI: режим I2C. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
17.3. Функционирование модуля USСI: режим I2C  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
17.3.1. Инициализация и сброс модуля USCI  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
17.3.2. Передача данных по шине I2C  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
17.3.3. Режимы адресации I2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
17.3.4. Режимы работы модуля I2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
17.3.5. Генерация и синхронизация тактового сигнала I2C  . . . . . . . . . . . . . . . . . . . . . 421
17.3.6. Использование модуля USCI в режиме I2C совместно с режимами 
пониженного энергопотребления  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
17.3.7. Прерывания в режиме I2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
17.4. Регистры модуля USCI: режим I2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427

Глава 18. Модуль операционного усилителя OA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  435

18.1. Введение  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
18.2. Функционирование модуля OA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
18.2.1. Операционный усилитель  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
18.2.2. Входы модуля OA  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
18.2.3. Выход модуля OA и организация обратной связи . . . . . . . . . . . . . . . . . . . . . . . 437
18.2.4. Конфигурация модуля OA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
18.3. Регистры модулей OA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444
Содержание 9

Глава 19. Модуль аналогового компаратора Comparator_A+ . . . . . . . . . . . . . . . . . . . . 447

19.1. Введение  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
19.2. Функционирование модуля Comparator_A+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
19.2.1. Компаратор  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
19.2.2. Входные аналоговые ключи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448
19.2.3. Ключ замыкания входов  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
19.2.4. Выходной фильтр  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
19.2.5. Генератор опорного напряжения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
19.2.6. Компаратор и регистр отключения порта CAPD . . . . . . . . . . . . . . . . . . . . . . . . 451
19.2.7. Прерывания компаратора  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
19.2.8. Использование компаратора для измерения сопротивления  . . . . . . . . . . . . . 452
19.3. Регистры модуля Comparator_A+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454

Глава 20. Модуль 10битного АЦП ADC10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456

20.1. Введение  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
20.2. Функционирование модуля ADC10  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
20.2.1. Ядро 10битного АЦП  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
20.2.2. Входы модуля ADC10 и мультиплексор  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
20.2.3. Генератор опорного напряжения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
20.2.4. Автоматическое отключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460
20.2.5. Синхронизация выборки и преобразования  . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
20.2.6. Режимы преобразования  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
20.2.7. Контроллер передачи данных модуля ADC10  . . . . . . . . . . . . . . . . . . . . . . . . . . 467
20.2.8. Использование встроенного датчика температуры . . . . . . . . . . . . . . . . . . . . . . 472
20.2.9. Заземление и борьба с помехами при использовании модуля ADC10 . . . . . . 473
20.2.10. Прерывания модуля ADC10  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
20.3. Регистры модуля ADC10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475

Глава 21. Модуль 12битного АЦП ADC12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481

21.1. Введение  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
21.2. Функционирование модуля ADC12  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482
21.2.1. Ядро 12битного АЦП  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482
21.2.2. Входы модуля ADC12 и мультиплексор  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
21.2.3. Генератор опорного напряжения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
21.2.4. Синхронизация выборки и преобразования  . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
21.2.5. Сохранение результатов преобразования  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
21.2.6. Режимы преобразования  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
21.2.7. Использование встроенного датчика температуры . . . . . . . . . . . . . . . . . . . . . . 493
21.2.8. Заземление и борьба с помехами при использовании модуля ADC12 . . . . . . 494
21.2.9. Прерывания модуля ADC12  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495
21.3. Регистры модуля ADC12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497

Глава 22. Структура TLV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504

22.1. Введение  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504
22.2. Поддерживаемые теги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504
22.2.1. Структура TLV калибровочных значений DCO . . . . . . . . . . . . . . . . . . . . . . . . . 506
Содержание

22.2.2. Структура TLV калибровочных значений модуля ADC12 . . . . . . . . . . . . . . . . 506
22.3. Проверка целостности содержимого сегмента A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509
22.4. Анализ содержимого сегмента A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510

Глава 23. Модуль 12битного ЦАП DAC12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  511

23.1. Введение  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511
23.2. Функционирование модуля ADC12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
23.2.1. Ядро 12битного ЦАП  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
23.2.2. Опорное напряжение модуля DAC12  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514
23.2.3. Обновление состояния выхода модуля ADC12  . . . . . . . . . . . . . . . . . . . . . . . . . 514
23.2.4. Формат содержимого DAC12_xDAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514
23.2.5. Калибровка смещения выходного усилителя модуля DAC12 . . . . . . . . . . . . . 515
23.2.6. Группирование нескольких модулей DAC12 . . . . . . . . . . . . . . . . . . . . . . . . . . . 517
23.2.7. Прерывания модуля DAC12  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518
23.3. Регистры модуля DAC12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518

Глава 24. Модуль 16битного АЦП SD16_A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  521

24.1. Введение  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521
24.2. Функционирование модуля SD16_A  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523
24.2.1. Ядро АЦП . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523
24.2.2. Диапазон входного аналогового сигнала и усилитель с программируемым 
коэффициентом усиления (PGA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523
24.2.3. Генератор опорного напряжения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523
24.2.4. Автоматическое отключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524
24.2.5. Выбор входного канала  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524
24.2.6. Параметры аналогового входа  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525
24.2.7. Цифровой фильтр . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526
24.2.8. Регистр данных SD16MEM0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530
24.2.9. Режимы преобразования  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531
24.2.10. Использование встроенного датчика температуры . . . . . . . . . . . . . . . . . . . . . 532
24.2.11. Обработка прерываний  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533
24.3. Регистры модуля SD16_A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534

Глава 25. Встроенный модуль эмуляции EEM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  539

25.1. Введение  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539
25.2. Функциональные узлы модуля EEM  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541
25.2.1. Триггеры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541
25.2.2. Секвенсор триггеров . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541
25.2.3. Внутренний буфер трассировки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542
25.2.4. Управление тактовыми сигналами . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542
25.3. Конфигурации модуля EEM  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542
Об этой книге

В настоящей книге рассматриваются модули и периферийные устройства
микроконтроллеров семейства MSP430x2xx. В каждой главе приводится обобщённый обзор отдельного модуля или периферийного устройства. Не все модели
семейства обладают полным набором функций и возможностей того или иного
модуля или периферийного устройства. Кроме того, в различных семействах микроконтроллеров одни и те же модули и периферийные устройства могут быть реализованы поразному. Некоторые модули в отдельных моделях или во всём семействе могут быть реализованы не в полном объёме.
Назначение выводов, подключение внутренних сигналов и рабочие параметры отличаются от устройства к устройству. Для получения более точной информации пользователю необходимо изучить справочную документацию на конкретный микроконтроллер.

Дополнительная документация

Дополнительную информацию по рассматриваемой теме можно найти на
сайте http://www.ti.com/msp430.

Принятые обозначения

Примеры кода набраны особым шрифтом. 

Глоссарий

ACLK (Auxiliary CLocK) — вспомогательный тактовый сигнал
ADC (AnalogtoDigital Converter) — аналогоцифровой преобразователь, АЦП
BOR (BrownOut Reset) — сброс по снижению напряжения питания
BSL (BootStrap Loader) — начальный загрузчик
CPU (Central Processing Unit) — центральный процессор, ЦПУ
DAC (DigitaltoAnalog Converter) — цифроаналоговый преобразователь, ЦАП
DCO (Digitally Controlled Oscillator) — генератор с цифровым управлением
dst (Destination) — получатель
FLL (Frequency Locked Loop) — система автоматической подстройки частоты
GIE (General Interrupt Enable) — общее разрешение прерываний

ПРЕДИСЛОВИЕ
. Предисловие

INT(N/2) (Integer portion of N/2) — целая часть от N/2
I/O (Input/Output) — ввод/вывод
ISR (Interrupt Service Routine) — процедура обработки прерывания
LSB (LeastSignificant Bit) — младший значащий бит
LSD (LeastSignificant Digit) — младший значащий разряд
LPM (LowPower Mode) — режим пониженного энергопотребления
MAB (Memory Address Bus) — шина адреса
MCLK (Master CLocK) — основной тактовый сигнал
MDB (Memory Data Bus) — шина данных
MSB (MostSignificant Bit) — старший значащий бит
MSD (MostSignificant Digit) — старший значащий разряд
NMI (NonMaskable Interrupt) — немаскируемое прерывание
PC (Program Counter) — счётчик команд
POR (PowerOn Reset) — сброс по включению питания
PUC (PowerUp Clear) — очистка по включению питания
RAM (Random Access Memory) — оперативное запоминающее устройство, ОЗУ
SCG (System Clock Generator) — генератор системного тактового сигнала
SFR (Special Function Register) — регистр специальных функций
SMCLK (Subsystem Master CLocK) — дополнительный тактовый сигнал
SP (Stack Pointer) — указатель стека
SR (Status Register) — регистр состояния
src (Source) — источник
TOS (TopofStack) — вершина стека
WDT (WatchDog Timer) — сторожевой таймер

Соглашения по обозначению битов регистров

Формат всех регистров приводится с ключом, обозначающим доступность
каждого отдельного бита и его исходное состояние.

Доступность бита регистра и его начальное состояние

Ключ
Доступность бита

rw
Чтение/запись

r
Только чтение

r0
Читается как 0

r1
Читается как 1

w
Только запись

w0
Записывается как 0

w1
Записывается как 1

(w)
Бит в регистре не реализован; запись 1 приводит к формированию импульса. 
Всегда читается как 0

h0
Сбрасывается аппаратно

h1
Устанавливается аппаратно

–0, –1
Состояние после сигнала PUC

–(0), –(1)
Состояние после сигнала POR

Предисловие
1.1. Архитектура 13

В этой главе описывается архитектура MSP430.

1.1.
Архитектура

Микроконтроллеры семейства MSP430 имеют фоннеймановскую архитектуру (Рис. 1.1) и содержат 16битное RISC ЦПУ, периферийные модули, а также
гибкую систему тактирования, объединённые общими шинами адреса (MAB) и
данных (MDB). Сочетание современного ЦПУ и отображаемых в памяти аналоговых и цифровых периферийных модулей делает семейство MSP430 пригодным
для работы в приложениях, связанных с обработкой смешанных сигналов.

ГЛАВА 1

ВВЕДЕНИЕ

Рис. 1.1. Архитектура MSP430.

ACLK

Шинный
преобразователь

MAB 16битн.

MDB 16битн.

MCLK

SMCLK

Система
тактирования

Сторожевой
таймер

ОЗУ
Флэш/

RISC ЦПУ
16битное

JTAG/Модуль отладки

ACLK
SMCLK

ПЗУ

MDB 8битн.

JTAG

Периферийное
устройство

Периферийное
устройство

Периферийное
устройство

Периферийное
устройство

Периферийное
устройство

Периферийное
устройство

Периферийное
устройство
Глава 1. Введение

Отличительные характеристики микроконтроллеров семейства MSP430x2xx:
Архитектура со сверхнизким потреблением, позволяющая увеличить время
работы при питании от батарей:
ток сохранения содержимого ОЗУ — не более 0.1 мкА;
ток потребления в режиме часов реального времени — не более 0.8 мкА;
ток потребления в активном режиме — 250 мкА/MIPS.
Высокоэффективная аналоговая подсистема, позволяющая выполнять точные измерения:
таймеры, управляемые компаратором, для измерения сопротивления 
резистивных элементов.
16битное RISC ЦПУ:
большой регистровый файл устраняет ограничения рабочего регистра;
произведённое по меньшему техпроцессу ядро позволяет снизить потребление и уменьшает стоимость кристалла;
оптимизировано для современных языков программирования высокого 
уровня;
набор команд состоит всего из 27 инструкций; поддерживается 7 режимов 
адресации;
векторная система прерываний с расширенными возможностями.
Флэшпамять с возможностью внутрисхемного программирования позволяет гибко изменять программный код (в том числе, во время эксплуатации), а также производить сохранение данных.

1.2.
Гибкая система тактирования

Система тактирования разработана специально для применения в устройствах с батарейным питанием. Низкочастотный вспомогательный тактовый сигнал ACLK формируется обычным «часовым» кварцем частотой 32 кГц. Сигнал
ACLK может использоваться для периодического «пробуждения» часов реального
времени, работающих в фоновом режиме. Встроенный высокочастотный генератор с цифровым управлением (DCO) может формировать основной тактовый
сигнал (MCLK), используемый ЦПУ и быстродействующими периферийными
модулями. Время выхода на режим этого генератора составляет менее 2 мкс при
частоте 1 МГц. Решения на базе микроконтроллеров MSP430 эффективно используют высокопроизводительное 16битное RISC ЦПУ в течение очень коротких интервалов времени:
низкочастотный вспомогательный тактовый сигнал используется для реализации режима ожидания со сверхнизким потреблением;
высокочастотный основной тактовый сигнал используется для эффективной обработки сигналов.

1.3.
Внутрисхемная эмуляция 

В составе микроконтроллеров имеется специальный модуль внутрисхемной
эмуляции, доступ к которому осуществляется по интерфейсу JTAG без использования дополнительных системных ресурсов.
1.4. Адресное пространство 15

Преимущества внутрисхемной эмуляции:
создание и отладка кода программы с возможностью его выполнения в реальном времени;
поддержка точек останова и выполнения программы в пошаговом режиме;
отлаживаемый объект имеет те же характеристики, что и конечное устройство;
сохраняется целостность смешанных сигналов благодаря отсутствию взаимного влияния проводов.

1.4.
Адресное пространство

Семейство MSP430 имеет фоннеймановскую архитектуру с единым адресным пространством, которое разделено между регистрами специальных функций
(SFR), периферийными устройствами, ОЗУ и флэшпамятью в соответствии с
Рис. 1.2. Подробное распределение памяти для конкретной модели микроконтроллера можно узнать из соответствующей документации. Обращение к исполняемому коду всегда выполняется по чётным адресам. Доступ к данным может осуществляться как побайтно, так и пословно. В настоящее время общий объём адресуемой памяти составляет 128 КБ.

Рис. 1.2. Карта памяти.

0FFE0h
Таблица векторов прерываний

Флэш/ПЗУ

ОЗУ

8битные
периферийные устройства

16битные
периферийные устройства

Регистры специальных функций

0FFFFh

0FFDFh

0200h

01FFh

0100h

0FFh

010h
0Fh

0h

Слово/байт

Слово/байт

Слово

Байт

Байт

Слово/байт

10000h
Флэш/ПЗУ

1FFFFh

Доступ

Слово/байт
Глава 1. Введение

1.4.1. Флэш/ПЗУ

Начальный адрес области флэш/ПЗУ зависит от объёма этой памяти и отличается для разных устройств. Конечный адрес области флэш/ПЗУ всегда равен
0x1FFFF. Флэшпамять может использоваться как для хранения кода, так и для
хранения данных. Двухбайтные и однобайтные данные (или таблицы данных)
могут располагаться во флэшпамяти и использоваться непосредственно оттуда,
без предварительного копирования в ОЗУ.
Таблица векторов прерываний занимает верхние 16 слов нижней области памяти размером 64 КБ. При этом вектор прерывания с наивысшим приоритетом
располагается в последнем слове области по адресу 0x1FFFF.

1.4.2. ОЗУ

Область ОЗУ начинается с адреса 0200h. Конечный адрес области зависит от
объёма ОЗУ и меняется от модели к модели. ОЗУ может использоваться как для
хранения данных, так и для хранения программного кода.

1.4.3. Периферийные устройства

Регистры периферийных модулей (устройств) располагаются в общем адресном пространстве. Область адресов от 0100h до 01FFh зарезервирована для 16битных периферийных модулей. Для обращения к таким устройствам необходимо использовать команды, оперирующие двухбайтными значениями. При использовании команд, работающих с однобайтными значениями, допускаются обращения только к чётным адресам памяти, при этом старший байт результата
всегда будет равен нулю.
Область адресов от 010h до 0FFh зарезервирована для 8битных периферийных модулей. Для обращения к этим устройствам необходимо использовать команды, оперирующие байтами. Если для чтения из такого модуля использовать
команду, оперирующую словами, то содержимое старшего байта результата будет
неопределённым. При записи в 8битный модуль двухбайтного значения, в регистр устройства будет записан только младший байт.

1.4.4. Регистры специальных функций (SFR)

Некоторые функции периферийных устройств конфигурируются посредством регистров специальных функций. Эти 8битные регистры располагаются в
младших 16 байт адресного пространства. Для обращения к указанным регистрам
можно использовать только команды, оперирующие байтами. Назначение
отдельных битов регистров специальных функций описано в документации на
конкретные модели.

1.4.5. Организация памяти

Однобайтные значения располагаются по чётным или нечётным адресам.
Двухбайтные значения располагаются только по чётным адресам, как показано
1.5. Расширенные возможности семейства MSP430x2xx 17

на Рис. 1.3. При использовании команд, оперирующих словами, обращаться
можно только к чётным адресам памяти. Младший байт двухбайтного значения
всегда располагается по чётному адресу, а старший байт — по следующему нечётному адресу. Например, если слово данных расположено по адресу xxx4h, то
младший байт значения находится по адресу xxx4h, а старший байт значения —
по адресу xxx5h.

1.5.
Расширенные возможности семейства 
MSP430x2xx

В Табл. 1.1 перечислены различные усовершенствования, появившиеся в
микроконтроллерах семейства MSP430x2xx. Эти усовершенствования описываются в последующих главах книги или же, если улучшение касается параметров
устройства, приводятся в документации на конкретные модели.

Рис. 1.3. Биты, байты и слова в памяти с побайтовой организацией.

Таблица 1.1. Усовершенствования семейства MSP430x2xx 

Подсистема
Усовершенствование

Сброс
Сброс по снижению напряжения питания реализован во всех моделях MSP430x2xx.
В регистр IFG1 добавлены флаги PORIFG и RETIFG, показывающие причину 
сброса.
Выборка команды из диапазона адресов 0x0000…0x01FF вызывает сброс устройства

Сторожевой 
таймер
Во всех моделях MSP430x2xx реализован модуль усовершенствованного сторожевого таймера (WDT+). Гарантируется бесперебойная генерация тактового сигнала для 
этого таймера

15

7

14

6

. . Биты . .

. . Биты . .

9

1

8

0

Байт

Байт

Слово (старший байт)

Слово (младший байт)

xxxAh

xxx9h

xxx8h

xxx7h

xxx6h

xxx5h

xxx4h

xxx3h
Глава 1. Введение

Базовая 
система 
синхронизации

Генератор LFXT1 в режиме LF имеет встроенные нагрузочные конденсаторы с программируемой ёмкостью.
Генератор LFXT1 в режиме HF позволяет использовать кварцевые резонаторы частотой до 16 МГц.
Генератор LFXT1 в режиме LF имеет схему обнаружения сбоев.
Выводы XIN и XOUT в 20и 28выводных моделях имеют дополнительные функции.
Некоторые модели не поддерживают использование внешнего ROSC с DCO. В этом 
случае младший бит регистра DCSCTL2 всегда должен быть сброшен. За подробной информацией обращайтесь к документации на конкретный микроконтроллер.
Значительно увеличена рабочая частота DCO.
Значительно улучшена температурная стабильность DCO

Флэшпамять
Информационная секция памяти содержит 4 сегмента по 64 байт.
Сегмент A индивидуально блокируется битом LOCKA.
Вся информация может быть защищена от группового стирания битом LOCKA.
Стирание сегмента может приостанавливаться на время прерывания.
Обновление флэшпамяти может быть отменено прерыванием.
Напряжение программирования флэшпамяти снижено до 2.2 В.
Уменьшена длительность операций записи/стирания.
Сбой в работе тактового генератора отменяет обновление флэшпамяти

Цифровые 
порты 
ввода/вывода

Все порты имеют встроенные подтягивающие (pullup/pulldown) резисторы.
В 20и 28выводных моделях добавлены линии ввода/вывода P2.6 и P2.7 в качестве 
альтернативных функций выводов XIN и XOUT. Если используется кварцевый резонатор, биты P2SELx для этих линий порта всегда должны быть установлены

Компаратор A
Количество входов, подключаемых к компаратору, увеличено за счет использования нового входного мультиплексора

Энергопотребление
Типовой потребляемый ток в режиме LPM3 снижен почти на 50% при напряжении 
питания 3 В.
Значительно уменьшено время выхода DCO на режим

Рабочая 
частота
Максимальная рабочая частота увеличена до 16 МГц при напряжении питания 3.3 В

Начальный 
загрузчик
Некорректный пароль приводит к стиранию всей флэшпамяти.
Усложнена процедура входа в загрузчик для предотвращения случайного стирания 
флэшпамяти

Таблица 1.1. Усовершенствования семейства MSP430x2xx  (продолжение)

Подсистема
Усовершенствование
Доступ онлайн
480 ₽
В корзину