Реферат Курсовая Конспект
Семейство микроконтроллеров MSP430 - раздел Компьютеры, ...
|
С12 Семейство микроконтроллеров MSP430.
Рекомендации по применению: Пер. с англ. - М.:
Серия «Библиотека Компэла». ЗАО «Компэл», 2005. - 544 с.
ISBN 5-98730-002-9
Данное издание представляет собой сборник статей сотрудников компании Texas Instruments, посвященных различным аспектам применения микроконтроллеров семейства MSP430. В сборник вошли переводы наиболее интересных, с точки зрения издательства, статей, опубликованные в период с октября 1997 года по декабрь 2005 года.
Рекомендации по применению несомненно окажут помощь отечественным инженерам-разработчикам в их профессиональной работе по созданию новых электронных устройств на базе популярных микроконтроллеров компании Texas Instruments.
MSP430Family
К ЧИТАТЕЛЮ................................................................................................................. 13
I. Общие вопросы............................................................................................................ 16
Глава1. Выбор микроконтроллера со сверхнизким потреблением.............................16
Введение...................................................................................................................... 16
Среднее значение потребляемого тока......................................................................... 16
Режимы пониженного потребления............................................................................... 17
Системы синхронизация............................................................................................. 18
Прерывания............................................................................................................... 19
Периферийные устройства.......................................................................................... 20
Защита от кратковременного пропадания напряжения питания........................................ 21
Ток утечки выводов.................................................................................................... 21
Эффективность обработки........................................................................................... 21
Заключение................................................................................................................ 22
Глава 2. Сравнение микроконтроллеров семейства MSP430
с другими микроконтроллерами....................................................................24
Влияние аппаратного умножителя и полной оптимизации компилятора............................. 27
Приложение............................................................................................................... 28
Тестовые прикладные задачи............................................................................... 28
Компилятор................................................................................................................ 29
Исходные тексты тестовых прикладных задач.............................................................. 30
8-bit Math.c......................................................................................................... 30
8-bit 2-dim Matrix.c.............................................................................................. 30
8-bit Switch Case.c.............................................................................................. 31
16-bit Math.c....................................................................................................... 33
16-bit 2-dim Matrix.c............................................................................................ 34
16-bit Switch Case.c............................................................................................ 35
32-bit Math.c....................................................................................................... 36
Floating-point Math.c............................................................................................ 37
FIR Filter.c............................................................................................................38
Matrix Multiplication.c........................................................................................... 39
Глава 3. Подключение EEPROM к MSP430 с помощью интерфейса I2C........................42
1. Пример подключения............................................................................................... 42
2. Исходный код для MSP430...................................................................................... 43
2.1. Запись Байта (Byte Write)............................................................................... 44
2.2. Чтение Текущего Адреса (Current Address Read).............................................. 45
2.3. Чтение Произвольного Адреса (Random Address Read)..................................... 46
2.4. Опрос Подтверждения (Acknowledge Polling).................................................... 46
3. Ссылки:................................................................................................................. 46
Глава 4. MSP430F21x1 Обзор архитектуры..................................................................48
1. Введение.................................................................................................................. 48
2. Обновления............................................................................................................ 49
2.1. Микропотребляющий модуль сброса Brownout Reset........................................ 49
2.2. Повышение тактовой частоты......................................................................... 49
2.3. Улучшенная встроенная Flash-память............................................................. 51
2.4. Улучшенная защита программной памяти......................................................... 52
2.5. Улучшения, касающиеся сторожевого (Watchdog) таймера................................ 53
Содержание MSP430Family
2.6. Дополнительные возможности........................................................................ 54
3. Архитектура ядра MSP430....................................................................................... 54
4. Ресурсы для отладки............................................................................................... 57
5. Заключение............................................................................................................ 57
II. Использование внутренних функций, периферийных блоков микроконтроллеров.................. 60
Глава 1. Отличительные особенности программатора на основе
загрузочного сектора MSP430.........................................................................60
1. Введение.................................................................................................................. 60
2. Стандартная функция сброса (RESET) и активизация BSL.......................................... 61
2.1. Микроконтроллеры с флеш-памятью MSP430 в 20- и 28-выводном
корпусе с выводами JTAG, объединёнными с портами общего
назначения................................................................................................ 61
2.2. Микроконтроллеры с флеш-памятью MSP430 с обособленными
выводами JTAG.......................................................................................... 62
3. Протокол УАПП (UART)........................................................................................... 63
4. Последовательность синхронизации......................................................................... 63
5. Команды................................................................................................................. 64
5.1. Незащищённые команды.............................................................................. 64
5.2. Команды, защищенные паролем.................................................................... 64
6. Процесс программирования..................................................................................... 64
7. Формат посылки...................................................................................................... 65
7.1. Структура данных....................................................................................... 65
7.2. Контрольная сумма..................................................................................... 65
7.3. Команды-детальное описание....................................................................... 67
7.3.1. Общие положения............................................................................... 67
7.3.2. Принять блок данных (RX Data Block)................................................... 67
7.3.3. Принять пароль (RX Password)............................................................ 68
7.3.4. Полное стирание (Mass Erase)............................................................. 68
7.3.5. Стереть сегмент (Erase Segment)......................................................... 69
7.3.6. Проверка стирания (Erase Check)......................................................... 69
7.3.7. Сменить скорость обмена (Change Baud Rate)....................................... 70
7.3.8. Загрузить программный счётчик (Load PC)............................................. 71
7.3.9. Передать блок данных (ТХ Data Block).................................................. 71
7.3.10. Передать версию BSL (TX BSL Version) 72
8. Загружаемые BSL.................................................................................................... 72
9. Выход из BSL......................................................................................................... 74
10. Защита паролем.................................................................................................... 74
11. Предохранитель защиты данных (Code Protection Fuse)........................................... 74
12. Внутренние настройки и ресурсы BSL..................................................................... 75
12.1. Идентификатор чипа и версия BSL.............................................................. 75
12.2. Вектора..................................................................................................... 75
12.3. Статус после инициализации...................................................................... 75
12.4. Распределение памяти и используемые ресурсы......................................... 76
13. Отличительные особенности версии BSL1.10........................................................... 77
14. Ссылки:................................................................................................................ 78
Приложение А. Различия между версиями BSL в различных микроконтроллерах.............. 79
feg^tms MSP430Family
Глава 2. Реализация часов реального времени на MSP430.........................................86
1. Введение.................................................................................................................. 86
1.1. Применение часов реального времени.......................................................... 87
1.2. Задающий генератор MSP430....................................................................... 87
2. Цифровая коррекция фазового сдвига....................................................................... 87
2.1. Формирование синхроимпульсов.................................................................. 88
2.2. Выбор Таймера........................................................................................... 88
2.3. Внешний интерфейс.................................................................................... 88
2.4. Описание принципиальной схемы................................................................. 89
2.5. Потребляемый ток....................................................................................... 89
2.6. Проблемы обеспечения точности................................................................. 90
2.7. Расширяемость........................................................................................... 90
3. Обсуждение прикладной программы.......................................................................... 91
4. Заключение............................................................................................................ 92
Ссылки:.................................................................................................................... 92
Приложение А: пример программы............................................................................... 92
А.1 Использование сторожевого таймера - файл RTC11xWD.s43.......................... 92
А.2 Использование таймера Timer_A-файл RTC11xTA.s43 File.............................. 96
Глава3. Использование широтно-импульсной модуляциитаймера В
в качестве ЦАП.............................................................................................102
1. Введение................................................................................................................. 102
2. Теория функционирования...................................................................................... 102
2.1. Разрешение............................................................................................... 103
2.2. Частота...................................................................................................... 105
2.3. Используемые ресурсы MSP430................................................................. 105
2.4. Принципиальная схема и осциллограммы.................................................... 106
2.5. Требования к фильтрам.............................................................................. 108
2.6. Суммирование постоянного и переменного сигналов..................................... 109
3. Описание программы............................................................................................. 110
3.1. Калибровка генератора DCO...................................................................... 111
Ссылки:................................................................................................................... 113
Приложение: Листинг про граммы............................................................................... 113
Глава 4. Техника самопрограммирования флэш-памяти MSP430.................................122
1. Введение................................................................................................................. 122
2. Состав Flash-модуля............................................................................................. 123
3. Стирание и программирование Flash-модуля............................................................ 124
3.1. Программирование Flash памяти с копированием прикладной
программы в ОЗУ...................................................................................... 124
3.2. Прямое перепрограммирование Flash памяти 126
4. Демонстрационная программа................................................................................. 127
5. Заключение........................................................................................................... 128
Ссылки:................................................................................................................... 129
Приложение А: файл flash_ram.s43............................................................................ 129
Приложение В: файл flashjdle.c.................................................................................. 133
Приложение С: файл flash_var.s43............................................................................. 135
Содержание MSP430Family
III. Интерфейс с внешними устройствами.......................................................................... 138
Глава1. Подключение ADS1100 кMSP430F413............................................................. 138
Описание аппаратной части...................................................................................... 138
Описание программы................................................................................................ 138
Краткий обзор.................................................................................................. 138
Работа программы........................................................................................... 139
Библиотечная функция ведущего I?C интерфейса............................................... 140
■void l2CSetup(void)......................................................................................... 141
■unsigned int l2CRead16(unsigned char Addr)...................................................... 141
■void l2CWrite8(unsigned char Addr, unsigned char Data)...................................... 141
Глава 2. Подключение 3-вольтовых микроконтроллеров MSP430
к 5-вольтовым схемам.................................................................................144
1. Введение................................................................................................................. 144
2. Определения......................................................................................................... 145
2.1. Значения из спецификаций MSP430............................................................ 145
2.2. Определения для внешней системы............................................................ 146
3. Входные преобразователи...................................................................................... 146
3.1. Входные преобразователи на резистивных делителях.................................. 146
3.2. Входной преобразователь на транзисторе.................................................... 148
3.3. Входной преобразователь на операционном усилителе................................. 150
3.4. Входной преобразователь на микросхеме ULN2003A.................................... 150
3.5. Входные преобразователи на интегральных микросхемах............................. 151
3.6. Входные преобразователи аналоговых сигналов.......................................... 152
4. Выходные преобразователи................................................................................... 153
4.1. Выходной преобразователь на транзисторе................................................. 153
4.2. Выходной преобразователь для входов КМОП - TTL..................................... 154
4.3. Согласование со входами микросхемы ULN2003.......................................... 154
4.4. Выходной преобразователь на операционном усилителе............................... 155
4.5. Выходные преобразователи на интегральных микросхемах........................... 155
5. Двунаправленные преобразователи........................................................................ 156
5.1. Простой двунаправленный преобразователь на ОУ...................................... 156
5.2. Двунаправленный преобразователь на интегральных микросхемах................ 158
6. Источники питания................................................................................................ 159
7. Заключение........................................................................................................... 160
Ссылки:................................................................................................................... 160
Глава 3. Подключение MSP430 и температурного датчика ТМР100
с интерфейсом I2C........................................................................................162
1. Введение................................................................................................................. 162
2. Теория функционирования...................................................................................... 163
3. Аппаратный интерфейс.......................................................................................... 165
4. Работа системы.................................................................................................... 165
5. Заключение........................................................................................................... 166
Ссылки:................................................................................................................... 166
Глава 4. Реализация функции UART с использованием таймера A3.........................168
Введение.................................................................................................................... 168
feg^tms MSP430Family
Описание UART, реализованного на модуле таймера Timer_A микроконтроллера
MSP430x11x(1)......................................................................................................... 169
Вычисление скорости передачи данных...................................................................... 171
Программная загрузка............................................................................................... 171
Демонстрационная схема.......................................................................................... 172
Демонстрационная управляющая программа 11x1 _uart1.s43........................................ 172
Демонстрационная управляющая программа 11x1_uart2.s43 - использование DCO
для задания скорости обмена данными....................................................................... 173
Демонстрационная управляющая программа 11x1_uart3. s43 - использование
32 кГц кварцевого резонатора для задания скорости обмена данными........................... 174
Ссылки:................................................................................................................... 174
Глава 5. Подключение MSP430 к EEPROM серии 24Схх с помощью 12С-интерфейса.176
Введение.................................................................................................................... 176
Теория функционирования......................................................................................... 176
Демонстрационная схема.......................................................................................... 178
Прикладная программа.............................................................................................. 178
Ссылки:................................................................................................................... 178
Глава 6. Реализация шины SMBus на базе микроконтроллера MSP430.....................180
1. Введение................................................................................................................. 180
2. Аппаратная часть.................................................................................................. 182
3. Реализация ведущего устройства шины SMBus........................................................ 183
4. Примеры реализации программы ведущего устройства шины SMBus......................... 184
4.1. Поиск устройств на шине........................................................................... 184
4.2. Чтение данных смарт-батареи.................................................................... 185
5. Реализация ведомого устройства шины SMBus........................................................ 185
6. Заключение........................................................................................................... 186
Ссылки:................................................................................................................... 186
Приложение А. Программа ведущего устройства шины SMBus..................................... 186
Приложение В. Программа поиска адресов................................................................. 209
Приложение С. Программа работы со смарт-батареей................................................. 219
Приложение D. Программа ведомого устройства шины SMBus..................................... 254
Приложение Е. Содержимое файла ASCII.txt.............................................................. 260
Глава 7. IrDA SIR кодер-декодер на MSP430C112........................................................262
1. Введение................................................................................................................. 262
2. Технические требования к IrDA интерфейсу на физическом уровне........................... 262
3. MSP430x112 - микроконтроллер со сверхнизким потреблением
и минимальными функциональными возможностями................................................. 264
4. IrDA кодер-декодер на микроконтроллере MSP430x112............................................. 264
4.1. Краткий обзор модуля................................................................................ 264
4.2. Управляющая программа MSP430x112........................................................ 265
4.2.1. Общие вопросы................................................................................. 265
4.2.2. IrDA-SIR кодер (передатчик)............................................................... 266
4.2.3. IrDA-SIR декодер (приемник).............................................................. 268
4.3. Установки 270
Содержание MSP430Family
4.3.1. Выбор скорости передачи данных....................................................... 270
4.3.2. Интерфейс пользователя................................................................... 271
5. Описание схемы................................................................................................... 272
6. Заключение........................................................................................................... 274
Ссылки:................................................................................................................... 274
Приложение А: исходный текст программы................................................................. 274
IV. Примеры конкретных применений...............................................................................290
Глава 1. Использование TPS3619 совместно с микроконтроллерами MSP430
может уменьшить системное энергопотребление..........................................290
Глава 2. Ультразвуковое измерение дальности на MSP430........................................294
1. Теория работы...................................................................................................... 294
2. Описание схемы................................................................................................... 295
3. Программа Ultrasonic.s43....................................................................................... 299
3.1. Инициализация lnit_Device......................................................................... 299
3.2. Основной цикл Mainloop............................................................................. 299
3.3. Математические вычисления Math_calc...................................................... 300
3.4. Обработчик прерывания базового таймера BTJSR........................................ 301
3.5. Индикация Display..................................................................................... 301
3.6. Задержка Delay......................................................................................... 301
4. Заключение........................................................................................................... 301
Ссылки:................................................................................................................... 302
Приложение: Листинг программы................................................................................ 302
Глава 3. Декодирование ТВ ИК ДУ-сигналов используя Таймер A3...........................314
1. Введение................................................................................................................. 314
2. Выбор рабочей частоты......................................................................................... 316
3. Демонстрационная схема....................................................................................... 316
4. Программа декодирования...................................................................................... 317
5. Протокол RC5....................................................................................................... 318
Программа 11х1_гс5.243............................................................................................ 321
Протокол SIRC......................................................................................................... 323
Программа 11x1_SRC.s43......................................................................................... 321
6. Программа UART................................................................................................... 323
Ссылки:................................................................................................................... 323
Приложение А: программа 11x1_SIRC.s43.txt.............................................................. 323
Приложение В: программа 11x1_RC5.s43.txt............................................................... 332
Глава 4. Компенсация фазового сдвига и калибровка токового трансформатора...342
1. Введение................................................................................................................. 342
2. Цифровая коррекция фазового сдвига..................................................................... 343
2.1. Описание задачи....................................................................................... 343
2.2. FIR фильтр............................................................................................... 344
3. Калибровка СТ...................................................................................................... 345
3.1. Эмуляция non-UPF нагрузки....................................................................... 345
3.2. Вычисление ошибки................................................................................... 346
3.3. Установка таблицы параметров КИХ........................................................... 346
feg^tms MSP430Family
3.4. CT с большим фазовым сдвигом................................................................. 347
3.5. Изменение частоты измеряемого сигнала.................................................... 348
4. Заключение.......................................................................................................... 348
Ссылки:................................................................................................................... 348
Глава 5. Твердотельный диктофон с использованием MSP430.................................350
1. Введение................................................................................................................. 350
2. Аппаратная часть.................................................................................................. 351
2.1. Краткий обзор системы............................................................................... 351
2.2. Аналоговая аппаратная часть..................................................................... 351
2.3. Цифровая аппаратная часть....................................................................... 354
3. Программное обеспечение..................................................................................... 355
4. Демонстрационная программа F149VoiceDemo.s43................................................... 357
Ссылки:................................................................................................................... 364
Глава 6. ШИМ-управление двигателем постоянного тока.............................................366
1. Введение................................................................................................................. 366
2. Теория функционирования...................................................................................... 366
3. Демонстрационная управляющая программа............................................................ 368
Ссылки:................................................................................................................... 368
Глава 7. Милливольтметр сигма-дельта типа на MSP430F11x1..................................370
1. Введение................................................................................................................. 370
2. Теория функционирования...................................................................................... 371
2.1. Расчет номиналов элементов ФНЧ 1 битного ЦАП........................................ 372
2.2. Используемые ресурсы MSP430F11x1........................................................373
2.3. Требующиеся внешние компоненты............................................................. 373
2.4. Снижение системной ошибки...................................................................... 373
3. Описание программы fet_intADC.s43....................................................................... 375
3.1. Программное обеспечение для основного 12 битного АЦП............................ 376
3.2. Использование стандартных процедур компании TI...................................... 377
4. Заключение........................................................................................................... 378
Ссылки:................................................................................................................... 386
Глава 8. Недорогой однофазный счетчик электроэнергии на MSP430C11x................388
1. Введение................................................................................................................. 388
2. Аналого-цифровое преобразование......................................................................... 389
2.1. Одно-градиентный АЦП.............................................................................. 389
2.2. Формирование пилообразного сигнала......................................................... 390
2.2.1. Период пилообразного сигнала........................................................... 390
2.2.2. Практический пример......................................................................... 391
2.2.3. Измерение временных параметров пилообразного сигнала.................... 392
2.3. Двухдиапазонный АЦП для канала измерения тока....................................... 393
2.4. Автоматическое переключение коэффициента усиления................................ 395
3. Защита от внешнего вмешательства, предотвращающая воровство
электроэнергии...................................................................................................... 395
4. Потоки данных в системе....................................................................................... 396
4.1. Детектирование кадров............................................................................... 397
4.2. Исключение постоянной составляющей....................................................... 398
Содержание MSP430Family
4.3. Блок выбора канала тока............................................................................ 399
4.4. Регулятор усиления................................................................................... 399
4.5. Фильтр нижних частот................................................................................ 400
5. Преобразователь энергия-импульс.......................................................................... 400
6. Калибровка........................................................................................................... 402
7. Заключение........................................................................................................... 402
Ссылки:................................................................................................................... 402
Глава 9. Цифровой термометр на базе MSP430..........................................................404
1. Введение................................................................................................................. 404
1.1. Краткое описание микроконтроллеров со сверхнизким
энергопотреблением семейства MSP430...................................................... 404
1.2. Описание схемы........................................................................................ 405
2. Описание работы.................................................................................................. 406
3. Возможности таймера - порта Timer Port.................................................................. 407
4. Заключение........................................................................................................... 408
Ссылки:................................................................................................................... 408
Приложение: Листинг программы................................................................................ 408
Глава 10. FSK модуляция и демодуляция с использованием
микроконтроллера MSP430...........................................................................420
1. Введение................................................................................................................. 420
2. Теория демодуляции.............................................................................................. 420
2.1. Выбор частоты дискретизации.................................................................... 421
2.2. Управление оконечными устройствами........................................................ 421
2.3. Демодуляция FSK...................................................................................... 421
2.4. Синхронизация бита................................................................................... 422
3. Теории модуляции................................................................................................. 422
3.1. Выбор частоты дискретизации.................................................................... 423
3.2. Построение таблицы значений.................................................................... 423
3.3. FSK модуляция......................................................................................... 423
4. Преобразование данных........................................................................................ 423
4.1. Аналого-цифровое преобразование.............................................................. 423
4.2. Цифро-аналоговое преобразование............................................................. 424
5. Потребляемая мощность........................................................................................ 424
6. Программное обеспечение..................................................................................... 424
6.1. FSK приемник........................................................................................... 425
6.2. FSK передатчик......................................................................................... 425
7. Типовая схема...................................................................................................... 425
7.1. Использование MSP430C325 в качестве центрального процессора................ 425
7.2. Пример телефонного интерфейса................................................................ 425
8. Заключение........................................................................................................... 426
Ссылки:................................................................................................................... 427
Приложение А: подпрограмма FSK приемника............................................................. 427
Приложение В: подпрограмма FSK передатчика........................................................... 441
Глава 11. Программный встроенный модем на MSP430..............................................454
1. Введение.............................................................................................................. 454
feg^lNis MSP430Family
2. Использование модема стандарта V.21 на телефонных сетях общего
пользования (ТФСОП)............................................................................................ 454
3. Описания аппаратной части................................................................................... 457
3.1. Описание схемы демонстрационной платы.................................................. 457
3.2. Отладочная плата LITELINK III (DAA).......................................................... 458
3.3. Подключение к DAA................................................................................... 458
4. Описание программы............................................................................................. 461
4.1. Модуль детектора вызывного сигнала.......................................................... 461
4.2. Модуль V.21.............................................................................................. 464
4.3. Демонстрационное применение программного модема................................... 473
5. Использованные аппаратные ресурсы MSP430....................................................... 474
6. Заключение........................................................................................................... 474
Ссылки:................................................................................................................... 474
Приложение А. Схема электрическая принципиальная программного модема................. 475
Приложение В. Перечень элементов программного модема.......................................... 476
Глава 12. Генерация и распознавание DTMF-сигналов................................................478
Часть 1......................................................................................................................478
1. Введение................................................................................................................. 478
2. Спецификация сигналов DTMF............................................................................... 478
3. Генерация сигналов DTMF..................................................................................... 480
3.1. Генерация при помощи прямоугольных сигналов.......................................... 480
3.2. Программное обеспечение для генерации меандра....................................... 481
3.2.1. Генерация прямоугольных сигналов с использованием 8-битного таймера
и таймера - порта Timer Port............................................................... 482
3.2.2. Генерация прямоугольных сигналов с использованием таймера Timer_A 490
3.3. Аппаратная часть для генерации сигналов DTMF 498
4. Результаты исследований сигналов DTMF............................................................... 503
5. Заключение........................................................................................................... 505
Ссылки:................................................................................................................... 506
Часть II......................................................................................................................507
1. Введение................................................................................................................. 507
2. Прием сигналов DTMF с помощью цифровых фильтров-резонаторов......................... 507
3. Основы цифровых фильтров.................................................................................. 507
3.1. Свойства цифровых фильтров-резонаторов................................................. 508
3.2. Структура используемых цифровых фильтров-резонаторов.......................... 509
4. Представление чисел и арифметика........................................................................ 512
5. Расчет 8-ми цифровых фильтров-резонаторов и оптимизация коэффициентов............ 514
6. Проверка расчета фильтров с помощью программ математического моделирования.... 517
7. Программное обеспочение для реализации цифровых фильтров................................ 519
8. Программа распознавания сигналов DTMF.............................................................. 521
9. Аппаратная часть.................................................................................................. 539
10. Измерения и результаты...................................................................................... 541
11. Заключение......................................................................................................... 542
Ссылки:................................................................................................................... 542
К ЧИТАТЕЛЮ
Развитие Этот факт был одним из побуждаю-
отечественной щих мотивов, для начала публикаций
электроники не- по данной тематике,
мыслимо без сов- «Рекомендации по примене-
ременнойэлемен- нию микроконтроллеров MSP430»-
тной базы, отла- это уже второе издание, посвящен-
женных техноло- ное микроконтроллерам данного
гий производс- семейства, выпущенное нашей ком-
тва, но в первую панией. Первая книга «Семейство
очередь без уникальных технических микроконтроллеров MSP430x1xx-
решений. Инженеры-разработчики- руководство пользователя» вышла
не побоюсь избитого штампа - ло- из печати в сентябре 2004 года и вы-
комотив отечественного производс- звала живой интерес со стороны ин-
тва электронной техники создают эти женерно-технических сотрудников
технические решения. Именно разра- различных предприятий, разрабаты-
ботчикам адресована книга, которую вающих и производящих радиоэлек-
вы, уважаемый читатель, держите тронную аппаратуру, преподавателей
сейчас в руках. и студентов ряда технических уни-
Данная книга представля- верситетов. Такой значительный ин-
ет собой сборник статей, написан- терес к микроконтроллерам MSP430
ных инженерами компании Texas обусловлен уникальным набором
Instruments, посвященных различ- качеств, свойственных данному се-
ным аспектам применения микро- мейству: сверхнизкое потребление
контроллеров семейства MSP430. энергии, высокая надежность и низ-
Опыт инженеров одного их лиде- кая цена, при одновременном обес-
ров мирового производства высоко- печении широкого набора функцио-
интеллектуальных электронных ком- нальных возможностей,
понентов без сомнения будет поле- Учитывая эту популярность,
зен отечественным разработчикам, мы планируем регулярно публико-
На сайте компании Texas Instruments вать материалы, посвященные мик-
http://www.ti.com представлено ог- роконтроллерам данного семейства,
ромное количество интересной тех- Практически готова к изданию кни-
нической информации, однако язы- га, посвященная микроконтроллерам
ковый барьер порой мешает русско- MSP430x4xx, а в ближайших планах
язычным инженерам в полном объ- описание контроллеров новейшей се-
еме пользоваться этим ресурсом, рии MSP430x2xx.
InsitojmInts /. Общие вопросы
Выбор микроконтроллера со сверхнизким потреблением
Mike Mitchell [slaa207.pdf (Англ.)]
В данном примере применения описывается, как сравнить микроконтроллеры со сверхнизким потреблением. Будут обсуждены основные различия между популярными микроконтроллерами со сверхнизким потреблением, а также рассмотрено как интерпретировать характеристики и технические требования и соотнести их с техническими требованиями к устройству.
Введение
Для современных устройств с автономным питанием потребление управляющего микроконтроллера становится все более важным параметром. Большинство поставщиков предлагают ряд микроконтроллеров со сверхнизким потреблением, но выбор наилучшего для Вашего устройства решения более сложен, чем простое просматривание и сравнение первой страницы технического описания. Для выбора наиболее оптимального с точки зрения потребления решения необходимо очень подробно сравнить характеристики микроконтроллеров во всех режимах работы (включая режимы пониженного потребления), рассмотреть способы синхронизации, характеристики обработки событий, встроенные периферийные устройства, наличие функции обнаружения и защиты от кратковременного пропадания напряжения питания, величину тока утечки и эффективность вычислительного ядра.
Глава 1. Выбор микроконтроллера со сверхнизким потреблением
Управление синхронизацией периферийных модулей - другая важная характеристика, которая позволяет снизить средний ток потребления системы. I2C модуль микроконтроллеров семейства MSP430 имеет непосредственное управление системой синхронизации. Это означает, что, если I2C модулю нужны синхросигналы, то он автоматически активизирует задающий генератор. Это также позволяет вычислительному ядру оставаться отключенным. При этом имеется возможность декодировать I2C адрес даже при отключенном вычислительном ядре.
Ток утечки выводов
Иногда при выборе низкопотребляющего микроконтроллера ток утечки выводов не учитывается, но для большинства приложений он очень важен. Большинство низкопотребляющих микроконтроллеров имеет ток утечки выводов до 1 мкА. Таким образом, суммарный ток утечки микроконтроллера, имеющего 20 выводов, может достигнуть 20 мкА! Микроконтроллеры семейства MSP430 имеют ток утечки выводов не более 50 нА, поэтому ток утечки 20 выводного микроконтроллера этого семейства не превысит 1 мкА.
Эффективность обработки
Наконец, часто неправильно истолковывается эффективность обработки микроконтроллеров. Часто думают, что 16-разрядные микроконтроллеры требуют в два раза больше памяти, чем 8-разрядные микроконтроллеры, но 16-
Библиотека Компэла21
f& Texas
Таблица 1. Сравнение эффективности обработки 16- и 8-разрядных
Микроконтроллеров
16-разрядный микроконтроллер | 8-разрядный микроконтроллер |
mov.w &ADC10MEM, SRAM | movf ADRESH, W movwf RAML bsf 0x20 movlf ADCHRESL, W bcf 0x20 movwf RAMH |
Заключение
При выборе низкопотребляющего микроконтроллера надо изучить все пункты его технического описания. Но усилия, затраченные на это, позволят продлить срок службы аккумулятора и удовлетворить технические требования к току потребления системы.
Библиотека Компэла
f& Texas
INSiraJMENTS
/. Общие вопросы
Микроконтроллер
Рис. 1. Диаграмма сравнения суммарных размера кодов программ
Таблица 1. Коэффициенты деления частоты задающего генератора для формирования сигналов синхронизации вычислительного ядра
Микроконтроллер | Коэффициент деления |
MSP430F135 | |
ATmega8 | |
PIC18F242 | |
H8/300L | |
МС68НС11 |
В таблице 2 показаны суммарные размер кода и количество командных циклов, приведенные к соответствующим суммарным размеру кода и количеству циклов микроконтроллера MSP430.
Библиотека Компэла25
тг Texas
/. Общие вопросы |
Таблица 3. Размер кодов и количество командных циклов
Применение | MSP430F135 | ATmega8 | PIC18F242 | H8/300L | МС68НС11 | |
байт циклов | ||||||
8- битная математика | 172 299 | 116 157 | CD 00 СО СО | 141 112 | 354 680 | 285 387 |
8- битный коммутатор | 180 50 | 342 131 | 404 109 | 209 84 | 362 388 | 387 214 |
16- битная математика | 172 343 | 174 319 | 598 625 | 361 426 | 564 802 | СЛ СО 00 СЛ |
16- битная матрица | 156 5784 | 570 24426 | 846 27021 | 825 29468 | 450 15280 | 490 23164 |
16-битный коммутатор | 178 49 | 572 163 | 326 120 | 404 398 | 405 230 | |
32- битная математика | 250 792 | 316 782 | 960 1818 | 723 2937 | 876 1756 | |
Операции с плавающей точкой | 662 1207 | 1042 1601 | 1778 1599 | 1420 2487 | 1450 2458 | 1429 4664 |
Фильтр с КИХ | 668 152193 | 1292 164793 | 2146 248655 | 1915 206806 | 1588 245588 | 1470 567139 |
Перемножение матриц | 252 6633 | 510 16027 | 936 36190 | 345 9454 | 462 26750 | 499 26874 |
Итого: | 2808 170249 | 5114 213680 | 9302 336543 | 6880 269638 | 6866 303198 | 6622 640038 |
Библиотека Компэла
Глава 2.
Сравнение микроконтроллеров семейства MSP430 с другими...
Влияние аппаратного умножителя и полной оптимизации компилятора
Для того, чтобы показать влияние аппаратного умножителя и полной оптимизации компилятора MSP430, было произведено сравнение кодов применений для MSP430F135 и MSP430F149. MSP430F149 содержит аппаратный умножитель, a MSP430F135 - нет. Для создания и выполнения исследуемых приложений был использован последний С компилятор версии 3.1 ОА компании IAR для микроконтроллеров семейства MSP430. В таблице 4 приведены результаты тестов.
Таблица 4. Влияние аппаратного умножителя и полной оптимизации
Библиотека Компэла
InsitojmInts /. Общие вопросы
Приложение
Библиотека Компэла
Глава 2. Сравнение микроконтроллеров семейства MSP430 с другими...
fir_ filter.c— исходный файл, содержащий код, который вычисляет ответ на
выходе фильтра 17- ого от имитированного входного воздействия АЦП.
matrixjnultiplication.c- исходный файл, содержащий код, который перемножает матрицу 3x4 и матрицу 4x5.
Таблица 5. Использованные версии С-компилятора
Микроконтроллер | Версия «С» компилятора компании IAR |
MSP430F135 | 2.21В |
Atmel ATmega8 | 3.1 ОС |
Microchip PIC18F242 | 6.1 ОА |
Generic 8051 | 2.12А |
Renesas H8/300L | 4.20А |
Motorola MC68HC11 | 4.45А |
Bit 2-dim Matrixx
* Имя: 8-bit 2-dim Matrix
* Назначение: тестовая прикладная программа
* копирования 8-битных значений.
/
typedef unsigned char UInt8; const UInt8 ml[16][4]={
Библиотека Компэла
Глава 2.
Сравнение микроконтроллеров семейства MSP430 с другими...
{0x12, {0x78, {0x34, {0x90, {0x12, {0x78, {0x34, {0x90, {0x12, {0x78, {0x34, {0x90, {0x12, {0x78, {0x34, {0x90,
0x56, 0x12, 0x78, 0x34, 0x56, 0x12, 0x78, 0x34, 0x56, 0x12, 0x78, 0x34, 0x56, 0x12, 0x78, 0x34,
0x90, 0x56, 0x12, 0x78, 0x90, 0x56, 0x12, 0x78, 0x90, 0x56, 0x12, 0x78, 0x90, 0x56, 0x12, 0x78,
0x34}, 0x90}, 0x56}, 0x12}, 0x34}, 0x90}, 0x56}, 0x12}, 0x34}, 0x90}, 0x56}, 0x12}, 0x34}, 0x90}, 0x56}, 0x12}
void main (void)
{
int i, j;
volatile UInt8 m2[16][4], m3[16][4];
for(i=0;
{
for(j=0; j<4; j
m2[i] [j]=ml[i] [j]; m3[i] [j]=m2[i] [j];
} return;
Bit Switch Cases
/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk'
* Имя: 8-bit Switch Case
* Назначение: Тестовая прикладная задача,
* осуществляющая коммутацию по полученному 8-битному
* значению.
typedef unsigned char UInt8; UInt8 switch_case(UInt8 a)
Библиотека Компэла
f& Texas
Библиотека Компэла
Глава 2. Сравнение микроконтроллеров семейства MSP430 с другими...
case OxOe: output=0x0e; break; case OxOf: output=0x0f; break; case 0x10: output=0xl0; break;
} /* конец коммутации*/ return(output); }
void main(void) {
volatile UInt8 result; result=switch_case(0x10) ; return; }
16-bit Math£
* Имя: 16-bit Math
* Назначение: Тестовая прикладная задача,
* осуществляющая вычисление 16-битных математических
* функций.
typedef unsigned short UIntl6; UIntl6 add(UIntl6 a, UIntl6 b) {
return (a+b); }
UIntl6 mul(UIntl6 a, UIntl6 b) {
return (a*b); }
UIntl6 div(UIntl6 a, UIntl6 b) {
return (a/b); }
void main(void) {
volatile UIntl6 result[4];
result[0]=231;
Библиотека Компэла
f& Texas
Глава 2. Сравнение микроконтроллеров семейства MSP430 с другими...
} return;
}
Библиотека Компэла
f& Texas
Пример подключения
Схема, изображённая на рис. 1, показывает пример подключения памяти EEPROM к аппаратному модулю I2C микроконтроллера MSP430F169.
Рис. 1. Подключение памяти EEPROM типа 24хх65 к MSP430F169 по шине I2C
Пользователь выбирает 12С-адрес подключенных EEPROM на шине при помощи адресных выводов (АО, А1, and A2). Наличие таких выводов позволяет подключить на шину несколько устройств одновременно. Логические уровни на адресных выводах определяют блок адресов, занимаемых устройством в общем адресном пространстве. Конкретное устройство выбирается программно, передачей соответствующих бит (АО, А1, и А2) в контрольном байте.
Библиотека Компэла
Глава 3. Подключение EEPROM к MSP430 с помощью интерфейса PC
2. Исходный код для MSP430
Этот пример программы показывает использование аппаратного модуля 12С микроконтроллера MSP430F169 для работы с EEPROM памятью по шине I2C. В зависимости от объёма микросхемы памяти EEPROM адресация может видоизменяться. Существуют разновидности микросхем памяти EEPROM, которые используют только один байт для адресации (объём памяти 256 Байт или менее). В приведенном ниже примере для адресации используется два байта. Показаны примеры на языке С и на ассемблере, функции их идентичны. Подробное описание модуля I2C микроконтроллеров MSP430 приведено в [2].
Файлы "l2Croutines.c" и "l2Croutines.s43" могут быть использованы в качестве библиотек. Они содержат следующие функции:
• lnitl2C()
Инициализация аппаратного модуля I2C микроконтроллера MSP430.
• EEPROM_ByteWrite(<address>, <data>)
Выполнение команды Запись Байта (Byte Write). Перед запуском указывается адрес и данные, которые следует записать.
• EEPROM_AckPolling();
Опрос Подтверждения (Acknowledge Polling) используется для определения окончания процесса записи в EEPROM. Функцию следует вызывать после записи данных в EEPROM.
• Result = EEPROM_RandomRead(<address>)
Команда Чтение по Произвольному Адресу (Random Read) позволяет читать содержимое ячейки памяти EEPROM с указанным адресом.
• Result = EEPROM_CurrentAddressRead()
Чтение по Текущему Адресу (Current Address Read), используется внутренний указатель адреса EEPROM. После выполнения операций чтения и записи внутренний указатель автоматически инкрементируется.
В данном примере показано использование функций из файлов "l2Croutines.c" и "l2Croutines.s43":
#include <msp430xl6x.h>
/*--- внешние функции файла «I2Croutines.c» ---- */
extern void InitI2C(void);
extern void EEPROM_ByteWrite(unsigned int Address,
unsigned char Data);
extern unsigned char EEPROM_RandomRead(unsigned int
Address);
extern unsigned char EEPROM CurrentAddressRead(void);
Библиотека Компэла43
InsitojmInts /. Общие вопросы
extern void EEPROM_AckPolling(void);
/*------ тело программы-------------------------- */
void main(void)
{ ... // Инициализация
InitI2C(); // Инициализация модуля 12С
EINT(); // Разрешение прерываний
EEPROM_ByteWrite(0x0000, 0x12);
EEPROM AckPolling(); // Ожидание завершения
// цикла записи EEPROM EEPROM_ByteWrite(0x0001, 0x34); EEPROM_AckPolling(); // Ожидание завершения
// цикла записи EEPROM EEPROM_ByteWrite(0x0002, 0x56); EEPROM_AckPolling(); // Ожидание завершения
// цикла записи EEPROM
Data[0] = EEPROM_RandomRead(0x0000); // Чтение
// по адресу 0x0000
Data[l] = EEPROM_CurrentAddressRead(); // Чтение
// по адресу 0x0001
Data[2] = EEPROM_CurrentAddressRead(); // Чтение
// по адресу 0x0002
Глава 3.
Устройства в MSP430
(регистр I2CSA)
Управляющий байт памяти EEPROM 24хх65 1 | 0 1 0 | А2 аТ|аО |r/W
Рис. 3. Преобразование содержимого регистра I2CSA в управляющий байт I2C
Данные
Подтверждение Подтверждение Подтверждение Нет подтверждения
(Ack) (Ack) (Ack) (No Ack)
Рис.5. Чтение Произвольного Адреса (Random Address Read)
Прежде всего, должен быть выставлен адресный счётчик памяти EEPROM. Это осуществляется при помощи операции Запись Байта (Byte Write). При этом в EEPROM предаётся новое значение адреса. После этого выполняется перезапуск и осуществляется операция Чтение Текущего Адреса (Current Address Read).
Библиотека Компэла
InsitojmInts /. Общие вопросы
MSP430F21x1 Обзор архитектуры
Mark Buccini [slaa217.pdf (Англ.)]
Введение
Семейство микроконтроллеров (МК) MSP430 сочетает в себе низкое энергопотребление и весьма гибкую архитектуру, что делает его незаменимым для широкого круга применений, где требуется особо низкий потребляемый ток. Такими применениями являются счётчики электроэнергии, переносные измерительные устройства и бытовые приборы, другие устройства, работающие длительное время без смены батарей. Главные преимущества семейства MSP430:
• Особо низкое энергопотребление
• Комплексная система обработки смешанных сигналов (SoC) на одном
кристалле
• Использование современных технологий программирования
Со времени появления первых устройств серии MSP430, более 30,000 разработчиков по всему миру выбрали данную архитектуру, создав за это время огромное количество разнообразных устройств, от простых, таких, как термостаты и счётчики электроэнергии, до изменивших жизнь миллионов диабетиков во всём мире переносных измерителей уровня глюкозы в крови. Высокая популярность семейства обусловила необходимость дальнейшего развития серии. Требования к разработкам постоянно растут и зачастую являются противоречивыми, например повышение производительности сочетается с понижением энергопотребления, снижением цены и работой в жёстких климатических условиях.
Для обеспечения таких требований к разработкам была разработана новая серия MSP430F2xx, в которой были учтены требования снижения цены и повышения производительности для работы как в устройствах с пониженным потреблением, так и в приборах общего применения. Потребляя менее 1 микроампера в дежурном режиме и обладая при этом способностью переключиться в режим синхронной работы со скоростью 16 миллионов инструкций в секунду (MIPS) за время менее одной микросекунды, новое семейство MSP430F2xx обеспечивает удвоенную производительность при половинном энергопотреблении по сравнению с более ранней серией MSP430F1xx.
Библиотека Компэла
Глава 4. MSP430F21x1 Обзор архитектуры
2. Обновления
Библиотека Компэла
Глава 4. MSP430F21x1 Обзор архитектуры
• Выбор диапазона кварцевого резонатора в высокочастотном режи
ме - эта функция обеспечивает повышенную стабильность и позволяет
использовать более дешёвые резонаторы с высоким эквивалентным со
противлением (ESR).
• Улучшенный встроенный генератор с цифровым управлением (DCO) -
обновлённый модуль DCO, входящий в состав BCS+ с гарантированным
временем запуска менее 1 микросекунды, погрешностью не более ±2.5%
и рабочей частотой до 16МГц во всём диапазоне рабочих температур и
напряжений. Повышенная точность генератора DCO позволяет во мно
гих случаях избавиться от внешнего кварцевого резонатора и снизить,
таким образом, стоимость системы. Следует отметить, что генератор
DCO запускается непосредственно на запрограммированной частоте,
не требуя дополнительного времени для стабилизации. Это важно в за
дачах, где требуется моментальный доступ к генератору с известной и
стабильной частотой, таких, как обмен данными по УАПП (UART). Без
обеспечения стабильности, быстрый запуск тактового генератора в та
ких задачах не имеет смысла.
Библиотека Компэла
Глава 4. MSP430F21x1 Обзор архитектуры
pa BSL практически невозможным, т.к. flash-память может быть стёрта или запрограммирована только в том случае, когда BSL был запущен в результате подачи корректной последовательности, и после этого была подана правильная команда.
Библиотека Компэла
Глава 4. MSP430F21x1 Обзор архитектуры
занимает 32КБ и выше, что диктуется требованиями обслуживания возросшей сложности программы, то размер кристалла и его цена будут в основной мере определяться именно памятью.
Учитывая это обстоятельство, архитектура, обеспечивающая максимальную плотность кода (т.е. использующая минимальный объём программной памяти для конкретной функции) даёт в результате максимальное снижение стоимости чипа.
Так как семейство MSP430 в основном предназначено для низкопотребляющих устройств, архитектура, обеспечивающая эффективность программы также позволяет дополнительно снизить потребление энергии благодаря уменьшению числа тактов, затрачиваемых на определённую функцию. Семейство MSP430 обеспечивает наивысшую плотность кода благодаря двустороннему подходу- интеллектуальным периферийным модулям и современному RISC-подобному ядру.
• Интеллектуальные периферийные модули - все модули, входящие в
состав MSP430 разработаны с учётом минимального программного
обслуживания. Например, АЦП имеют автоматическое сканирование
входов, аппаратный запуск преобразования и, зачастую, механизмы
прямого доступа к памяти DMA. Такой набор аппаратных возможнос
тей предоставляет ЦПУ возможность перенаправить ресурсы на спе
цифические задачи, не отвлекаясь на перемещение данных. Это даёт
возможность разработки более дешёвых систем, требующих меньших
программных ресурсов и потребляющих меньше энергии.
• Современное RISC-подобное ядро, обладающее максимальной плот
ностью кода благодаря своим особенностям (которые будут рассмот
рены ниже)
Для рассмотрения задачи получения максимальной эффективности кода на языке С, попробуем взглянуть на проблему со стороны компилятора. Итак, что же «любит» компилятор? Очевидно, это ортогональность команд и большое количество идентичных регистров, не имеющих ограничений на хранимые ресурсы. Также ему требуется стек для передачи параметров и хранения временных переменных. Архитектура MSP430 была разработана с учётом этих пожеланий и выглядит следующим образом:
• Полностью ортогональный набор команд - несмотря на то, что архитек
тура MSP430 содержит всего 27 инструкций, каждая из них может быть
использована с любым типом адресации в пределах всего адресного
Библиотека Компэла
Глава 4. MSP430F21x1 Обзор архитектуры
таблиц, т.к. позволяет использовать наиболее удобный в каждом конкретном случае формат данных.
• Генератор констант - одним из факторов, влияющих на высокую эффективность программ для MSP430, является генератор констант, который аппаратно генерирует 6 наиболее часто используемых констант. Для этой цели автоматически используется один из регистров ЦПУ. Благодаря тому, что константы генерируются непосредственно в ядре, при этом не требуется чтение операнда из памяти, что экономит программную память и повышает скорость выполнения программы. Функция генератора констант является полностью автоматической и «прозрачной» для пользователя.
Заключение
Семейство MSP430F2xx обеспечивает удвоенную производительность при половинном потреблении в режиме stand-by по сравнению с более ранними устройствами семейства MSP430F1. Кроме того, серия MSP430F2xx обладает
Библиотека Компэла 57
InsitojmInts /. Общие вопросы
значительными улучшениями, позволяющими снизить общую стоимость прибора и повысить его функциональность, что делает микроконтроллеры данного семейства идеальным выбором как для уже существующих низкопотребляющих приборов на базе MSP430, так и в качестве отправной точки для множества новых разработок.
Введение
Программатор на основе загрузочного сектора (BSL) представляет возможность программирования флеш-памяти микроконтроллера MSP430 в процессе разработки либо для обновлений. Активизация такого режима может быть осуществлена утилитой, передающей команды по широкоизвестному протоколу УАПП (UART). BSL даёт возможность пользователю контролировать функционирование MSP430 и осуществлять обмен данными с персональным компьютером либо другим устройством, поддерживающим протокол UART.
Для защиты программы BSL от случайного стирания она содержится в специальном, масочно запрограммированном на заводе загрузочном секторе ПЗУ. Программа BSL не может быть стёрта никакими методами. Код загрузчика тщательно оптимизирован под нужды BSL, доступ к нему осуществляется с помощью команд, описанных ниже в данном документе. В целях безопасности было обращено большое внимание на защиту пользовательского кода от несанкционированного считывания. Любая команда BSL, позволяющая непосредственное или опосредованное чтение данных защищена паролем.
Библиотека Компэла
Глава 1.
Отличительные особенности программатора на основе загрузочного...
Для активизации программатора на основе загрузочного сектора следует подать специальную последовательность сигналов BSL на определённые выводы процессора. После этого, передаётся символ синхронизации, сопровождаемый посылкой данных, определяющих выполнение желаемой операции.
Библиотека Компэла
f& Texas
Глава 1. Отличительные особенности программатора на основе загрузочного...
Режим BSL не будет активизирован (с адреса вектора сброса BSL RESET) втом случае, если:
• Присутствует менее 2-х фронтов 1 -» 0 на входе ТСК во время лог. «О»
на входе -RST/NMI
• Вход ТСК находится в состоянии лог. «1» во время перехода 0 -»1 на
входе -RST/NMI
• Ресурсы MSP430 уже контролируются через интерфейс JTAG
• Напряжение питания VCC «просело» ниже допустимого уровня, что вы
звало сброс по включению (POR)
• Вход -RST/NMI сконфигурирован как NMI (установлен бит I
Команды, защищенные паролем
• Принять блок данных для программирования флеш-памяти, ОЗУ либо
периферийных модулей
• Передать блок данных
• Стереть сегмент
• Проверка стирания (команда поддерживается в BSL версии V1.60 или
выше, либо в загружаемой версии BL_150S_14x.txt)
• Загрузить программный счётчик и запустить пользовательскую про
грамму
Глава 1. Отличительные особенности программатора на основе загрузочного...
7. Формат посылки
Формат посылки данных, используемый программатором, представляет собой стандартный последовательный протокол (SSP) фирмы TI для MSP430, дополненный предваряющей синхропоследовательностью (SS), как было описано выше. В таблице 1 BSL является приёмником.
Очевидная избыточность некоторых параметров является следствием адаптации под SSP а также служит для экономии объёма ПЗУ загрузчика.
Дополнительная информация по стандартному последовательному протоколу (SSP) содержится в документе «Применение программы начальной загрузки в микроконтроллеры MSP430 с флэш-памятью: программные и аппаратные предложения (версия В)», Application of Bootstrap Loader in MSP430 With Flash Hardware and Software Proposal (SLAA096).
Структура данных
• Первые 8 байт (от HDR до LH), которые являются обязательными (хх
означает, что данные не являются значимыми).
• Необязательные байты данных от D1 до Dn.
• Два байта (CKL и СКН) контрольной суммы (являются необходимыми).
Подтверждение от BSL, необходимое для всех команд, кроме передачи блока данных и передачи версии BSL
Контрольная сумма
16-битная (2 байта) контрольная сумма вычисляется по всем принятым/ переданным байтам В1 ... Вп в посылке за исключением собственно байт контрольной суммы путём выполнения операции XOR над операндами-словами (2 байта) и инверсией результата.
Формула:
CHECKSUM = INV[(B1 + 256 х В2) XOR (ВЗ + 256 х В4) XOR ... XOR (Вп-1 + 256хВп)]
или
CKL = INV[B1 XOR ВЗ XOR ... XOR Вп-1]; СКН = INV[B2 XOR B4 XOR ... XOR Bn]
Библиотека Компэла
Глава 1. Отличительные особенности программатора на основе загрузочного...
LL,LH Число байт данных (макс. 250), либо информация о стирании, младший/старший байты, либо длина блока проверки стирания (макс. FFFFh)
D1...Dn Байты данных
CKL, СКН16-битная контрольная сумма, младший/старший байты
ххДанные могут быть любыми
- Байты данных не принимаются и не передаются
АСКСимвол подтверждения, возвращаемый BSL, может быть либо
DATA_ACK = 90h: Блок принят корректно, команда выполнена успешно, либо
DATA_NAK = AOh: Некорректный блок (например: ошибка контрольной суммы, L1 ф L2), неизвестная, недопустимая либо выполненная с ошибками команда.
пЧисло байт в посылке от AL до Dn
Команды - детальное описание
См. Таблицу 1.
Принять блок данных (RX Data Block)
Команда «Принять блок данных» используется для всех операций записи во флеш-память, ОЗУ либо регистры контроля периферийных модулей по адресам OOOOh—01 FFh. Команда защищена паролем.
Библиотека Компэла67
Ь //- Использование внутренних функций, периферийных блоков...
16-битный чётный адрес начала блока задаётся байтами AL (младший) и АН (старший).
16-битная чётная длина блока определяется байтами LL (младший) и LH (старший). Ввиду того, что число собственно байт данных ограничено до 250, LH всегда равен 0.
Последующие байты данных завершаются байтами контрольной суммы CKL (младший) и СКН (старший). Если приём и программирование соответствующего блока данных были успешными, BSL передаёт символ подтверждения DATA_ACK. В противном случае BSL возвращает DATA_NAK.
Примечание:
Версии BSL V1.40 и выше поддерживают верификацию в режиме реального времени внутри MSP430 для адресов 0200h-FFFFh, что на 50% снижает время программирования/верификации.
В случае ошибки загружаемая версия программатора на основе загрузочного сектора BL_150S_14x.txt дополнительно содержит адрес первой некорректно записанной ячейки +3 в буфере ОЗУ по адресу 0200И (либо 021 Eh для МК семейства F14x).
Полное стирание (Mass Erase)
Команда «Полное стирание» производит стирание всей области флеш-па-мяти (основная память плюс информационная память, см. соответствующую документацию). Команда не защищена паролем.
Все параметры, указанные в Таблице 1, являются обязательными. После стирания BSL возвращает символ подтверждения DATA_ACK.
Полное стирание инициализирует область пароля со значением 32 байта OFFh.
Библиотека Компэла
Глава 1.
Отличительные особенности программатора на основе загрузочного...
7.3.5. Стереть сегмент (Erase Segment)
Команда «Стереть сегмент» производит стирание определённых сегментов флеш-памяти и является защищенной паролем.
Байты адреса AL (младший) и АН (старший) определяют соответствующий сегмент. Корректным является любой чётный адрес в пределах сегмента, предназначенного к стиранию. По завершении операции BSL (V1.40 или ниже) возвращает символ подтверждения DATA_ACK.
BSL версий V1.60 или выше выполняет автоматическую проверку стирания соответствующего сегмента и возвращает DATA_NAK, если стирание не было выполнено успешно. В этом случае, адрес +1 первого нестёртого сегмента хранится в буфере в ОЗУ по адресу 0200п (или 021 Eh для семейства F14x).
Стирание сегмента 0 очищает область пароля, таким образом, пароль принимает значение 32 байта OFFh.
Задание LL = 0x04 и LH = 0хА5 приводит к полному стиранию основной памяти.
Выполнение такой команды должно быть повторено как минимум 12 раз, чтобы обеспечить общее время стирания не менее 200 мс. Последующая автоматическая проверка стирания не производится, следует дополнительно использовать команду «Проверка стирания» (Erase check).
Разбивка памяти микроконтроллеров MSP430Fxxxx по сегментам выглядит следующим образом:
OFEOOh - OFFFFh: Сегмент О основной памяти OFCOOh - OFDFFh: Сегмент 1 OFAOOh - OFBFFh: Сегмент 2 0F800h - 0F9FFh: Сегмент 3
0120Oh - 013FFh: Сегмент n-1
Oil 0Oh - OllFFh: Сегмент n
0108Oh - 01OFFh: Сегмент А информационной памяти
OlOOOh - OlOlFh: Сегмент В информационной памяти
Проверка стирания (Erase Check)
Команда «Проверка стирания» проверяет стирание флеш-памяти в пределах заданного диапазона адресов. Команда защищена паролем.
16-битный стартовый адрес блока определяется байтами AL (младший) и АН (старший). 16-битная длина блока задаётся байтами LL (младший) и LH (старший). Оба могут быть как чётными, так и нечётными для обеспечения проверки границы чётности.
Глава 1.
Отличительные особенности программатора на основе загрузочного...
Примечание:
Эта команда входит в набор команд BSL, начиная с версии V1.60 и в загружаемую версию BL_150S_14x.txt.
Таблица 2. Рекомендации для MSP430F149 [F449] (ТА = 25°С, Vcc = 3.0В, fmax = 6.7МГц) (см. [2])
Скорость обмена, бод | Частота процессора Fmin (МГц) (см. [4]) | D1 DCOCTL SCFIO (см.т) | D2 BCSCTL1 SCFI1 (см.Ш) | D3 (см.Ш) | Время программирования/верификации 60КБ (сек.) (см.[3]) |
9600 (начальная) | 1.05 | 80 (00) | 85 (98) | 00 (00) | 78+3.7 (0.0) |
2.1 | Е0 (00) | 86 (ВО) | 01(01) | 39+3.7(2.4) | |
4.2 | Е0 (00) | 87 (С8) | 02 (02) | 20+3.7 (2.4) |
[1] D1...D3-байты в шестнадцатеричном виде
[2] Значения в скобках () приведены для процессора MSP430F449.
[3] Дополнительные 3.7 (2.4) секунды связаны с загрузкой, верификацией и запуском загружаемого BSL.
[4] Минимальная частота процессора меньше, чем в стандартном BSL ПЗУ (см. Статус после инициализации, глава 12.3).
7.3.8. Загрузить программный счётчик (Load PC)
Команда «Загрузить программный счётчик» непосредственно загружает в программный счётчик (регистр R0) любое значение в пределах всего адресного пространства. Команда защищена паролем.
После приёма данной командной посылки, BSL возвращает символ подтверждения DATA_ACK.
После этого, выбранный адрес загружается в программный счётчик. Начинается выполнение программы с этого адреса, а сессия BSL прерывается.
Следует учитывать, что защита паролем в это время уже не действует.
Передать блок данных (ТХ Data Block)
Команда «Передать блок данных» используется для осуществления операции чтения из флеш-памяти, ОЗУ, либо регистров контроля периферийных модулей по адресам OOOOh—01FFh. Команда защищена паролем.
16-битный стартовый адрес блока определяется байтами AL (младший) и АН (старший). 16-битная длина блока задаётся байтами LL (младший) и LH
Библиотека Компэла
Глава 1. Отличительные особенности программатора на основе загрузочного...
• Загрузить программный счётчик (Load program counter PC) (записать
стартовый адрес загружаемого BSL)
• Принять пароль (RX password) (снять защиту паролем для загруженного
BSL)
• Выполнить любую команду (используя загруженный BSL)
Доступны следующие версии загружаемых BSL:
• BL_150S_14x.txtэто полный BSL для семейств F14x/F13x с прошитым
BSL версии 1.10. Поддерживает все функции загрузчика BSL версии
V1.60. Ввиду того, что размер кода превышает 1 КБ, этот загрузчик мож
но использовать только с МК семейств F1x8 и F1x9. Адрес буфера оши
бок для команд «Передать блок» («RX Block»), «Стереть сегмент» («Erase
Segment»), и «Проверка стирания» («Erase Check») - 021 Eh. BL_150S_
14x.txt также может использоваться взамен PATCH.txt.
• BS_150S_14x.txtэто урезанный BSL с неполным набором команд для се
мейств F14x/F13x с прошитой версией загрузчика BSL 1.10. Так как размер
кода не превышает 512Б, этот загрузчик можно использовать совместно с
любыми устройствами от F1x4 до F1x9. Поддерживаются следующие ко
манды загрузчика BSL версии V1.60: «Сменить скорость обмена» (Change
Baudrate), «Принять блок» (RX Block) (с верификацией в режиме реального
времени), «Проверка стирания» (Erase Check) и «загрузить программный
счётчик» (Load PC). Если требуется команда «Передать блок» (ТХ Block)
(перенаправляемая к BSL, прошитому в ПЗУ), (например, для передачи
адресов ошибок или верификации) загрузчик BSL должен быть по новой
запущен из ОЗУ с помощью команды «Загрузить программный счётчик»
(Load PC). Адрес буфера ошибок для команд «Передать блок» («RX Block»)
и «Проверка стирания» («Erase Check»)- 021Eh. BS_150S_14x.txt также
может быть использован в качестве частичной замены для PATCH.txt.
Примечание:
Пароль не требуется, команда «Принять пароль» отсутствует!
Более подробная информация по загрузке различных типов BSL, см. пример применения «Применение программы начальной загрузки в микроконтроллеры MSP430 с флэш-памятью: программные и аппаратные предложения (версия В)» (Application of Bootstrap Loader in MSP430 With Flash Hardware and Software Proposal) (SLAA096).
Программное обеспечение третьих фирм обычно использует загружаемые BSL для обеспечения максимальной функциональности, в частности, использования верификации в режиме реального времени, и для повышения скорости при работе с соответствующими устройствами.
Предохранитель защиты данных (Code Protection Fuse)
После того, как предохранитель JTAG (code protection fuse) пережжён, последующий доступ к функции JTAG/test невозможен. Единственным способом доступа чтения/записи к памяти является использование программатора на основе загрузочного сектора с передачей корректного пароля.
74 Библиотека Компэла
Глава 1. Отличительные особенности программатора на основе загрузочного...
При этом, пережигание предохранителя JTAG посредством BSL невозможно. Если требуется пережигание предохранителя, следует использовать программирование через интерфейс JTAG.
Внутренние настройки и ресурсы BSL
Нижеследующие параграфы описывают внутренние настройки и ресурсы BSL. Ввиду того, что одинаковые МК могут существовать с различными прошитыми версиями BSL, для программы, работающей с BSL, требуется знать соответствующие настройки и ресурсы, которые могут зависеть как от типа устройства (например, назначение выводов RX/TX) так и от версии BSL (например, побайтовый/пословный доступ). Различные возможные комбинации параметров будут рассмотрены ниже.
Идентификатор чипа и версия BSL
Старшие 16 байт в ПЗУ загрузчика (по адресам OFFOh-OFFFh) содержат информацию об устройстве и версии загрузчика BSL в двоично-десятичном виде. Это справедливо для всех видов МК и всех версий BSL:
• OFFOh—OFF1 h:Идентификатор чипа (например, F413h для МК серии
F41x).
• OFFAh—OFFBh:Номер версии BSL (например, 0130hдля версии BSL
V1.30).
См. также таблицу соответствия между семействами MSP430 и версией BSL в Приложении А.
Вектора
Стартовая часть ПЗУ загрузчика содержит вектора программного вызова:
• ОСООп: Вектор для «холодного» запуска (мнемоника: BR &OCOOh)
• 0С02п: Вектор для «горячего» запуска (мнемоника: BR &0С02И). Версия
V1.30 или выше.
• 0С04п: Вектор(а) для будущего использования. Таблица может быть рас
ширена.
Распределение памяти и используемые ресурсы
• Программный код загрузчика BSL расположен в загрузочном ПЗУ по ад
ресам OCOOh-OFEFh.
• По адресам OFFOh-OFFFh расположен идентификатор чипа
• Переменные BSL расположены в ОЗУ по адресам:
Библиотека Компэла
Глава 1. Отличительные особенности программатора на основе загрузочного...
0200h-0213h (V1.10) 0200h-0219h (V1.30 и выше).
• Стек загрузчика BSL расположен в ОЗУ по адресам:
0214п-0219h(V1.10)
021Ah—021Fh (V1.30 или выше, только в случае «холодного»
запуска).
• Используемые регистры:
R5-R9(V1.30HHH>t<e) R5-R10 (V1.40)R5-R11 (V1.60).
Содержимое регистров не сохраняется.
• F1 хх:
• Используемые регистры базового модуля тактирования:
DCOCTL по адресу 056(1 BCSCTL1 по адресу 057(1
• F4xx:
• Используемые регистры умножителя частоты FLL и модуля тактирова
ния:
SCFIO по адресу 050(1 SCFI1 по адресу 051h SCFQCTL по адресу 052(1
• Используемые управляющие регистры таймера Timer_A:
TACTL по адресу 0160h CCTLO по адресу 0162(1 TAR по адресу 0170(1 CCR0 по адресу 0172(1
• Влияния на обработку прерываний не оказывает.
Библиотека Компэла
Глава 1.
Отличительные особенности программатора на основе загрузочного...
Приложение А.
Различия между версиями BSL в различных микроконтроллерах
В таблицах данного раздела собрана информация о соответствии различных версий BSL разным микроконтроллерам серии MSP430 и используемых ими программных и аппаратных ресурсах.
Таблица 3. Версия BSL 1.10 в микроконтроллерах серий F13x, F14x(1), F11x, и F11x1
Тип микроконтроллера | F13X F14x(1) | F11x (устаревшие) F11x1 (устаревшие) |
Версия BSL | 1.10 | |
Адрес вектора BSL | «Холодный» запуск | OCOOh |
«Горячий» запуск | - | |
Адрес идентификатора чипа | OFFOh | |
Идентификатор чипа | F149h | F112h |
Адрес версии BSL | OFFAh | |
Версия BSL | 011 Oh | |
Номинальное время полного стирания, мс | 17,2 | |
Доступ чтения/записи по адресам OOOOh-FFFFh | побайтный | |
Верификация в режиме реального времени (во время записи) | отсутствует | |
Инициализация указателя стека | Недопустимый адрес SP | 021 Ah |
Допустимый адрес SP | не изменяется | |
Ресурсы, используемые BSL | ||
Вывод передатчика(ТХ)/вывод приёмника(НХ) | P1.1/P2.2 | |
Используемый диапазон ОЗУ/стека | 0200h-0219h | |
Рабочие регистры | R5-R9 | |
Изменяемые регистры управления системным тактированием | BCSCTL1.DC0CTL | |
Изменяемые регистры управления таймером Timer_A | TACTL, TAR, CCTLO, CCRO | |
Подготовка к программному вызову | mov #00h, SCCTLO bic.b #02h, SP1SEL bic.b #04h, SP2SEL bic.b #32h, SIE1 mov.b #00h, SBCSCTL2 mov #00h, SRbr sOCOOh |
Библиотека Компэла
f& Texas
Таблица 4. Версия BSL 1.30 в микроконтроллерах серий F41x, F11x, и Fiixi
Тип микроконтроллера | F41X | F11x (устаревшие) F11X1A |
Версия BSL | 1.30 | |
Адрес вектора BSL | «Холодный» запуск | ОСООп |
«Горячий» запуск | 0С02п | |
Адрес идентификатора чипа | OFFOh | |
Идентификатор чипа | F413h | F112h |
Адрес версии BSL | OFFAh | |
Версия BSL | 0130h | |
Номинальное время полного стирания, мс | 206,4 | |
Доступ чтения/записи по адресам | OOOOh-OOFFh | побайтный |
01OOh-FFFEh | пословный | |
Верификация в режиме реального времени (во время записи) | отсутствует | |
Инициализация указателя стека | «Холодный» запуск | 0220h |
«Горячий» запуск | не изменяется |
Библиотека Компэла
Глава 1.
Таблица 5. Версия BSL 1.40 в микроконтроллерах серий F12x
Тип микроконтроллера | F122,F123x | |
Версия BSL | 1.40 | |
Адрес вектора BSL | «Холодный» запуск | OCOOh |
«Горячий» запуск | 0C02h | |
Адрес идентификатора чипа | OFFOh | |
Идентификатор чипа | F123h | |
Адрес версии BSL | OFFAh | |
Версия BSL | 0140h | |
Номинальное время полного стирания, мс | 206,4 | |
Доступ чтения/записи по адресам | OOOOh-OOFFh | побайтный |
01 OOh-FFFEh | пословный | |
Верификация в режиме реального времени (во время записи) | Для диапазона адресов 0200h - FFFEh | |
Инициализация указателя стека | «Холодный» запуск | 0220h |
«Горячий» запуск | не изменяется | |
Ресурсы, используемые BSL | ||
Вывод передатчика (ТХ) | Р1.1 | |
Вывод приёмника (RX) | Р2.2 |
Таблица 6. Версия BSL 1.60 в микроконтроллерах серий F11x2, F12x2, F43x, F44x, FE42x, FW42x, FG43x
Тип микроконтроллера | F1122, F1132 | F1222, F1232 | F43x, F44x | FE42X, FW42x | FG43X |
Версия BSL | 1.60 | ||||
Адрес вектора BSL | «Холодный» запуск | OCOOh | |||
«Горячий» запуск | 0C02h | ||||
Адрес идентификатора чипа | OFFOh | ||||
Идентификатор чипа | 1132h | 1232h | F449h | F427h | F439h |
Адрес версии BSL | OFFAh | ||||
Версия BSL | 0160h | ||||
Номинальное время полного стирания, мс | 206,4 | ||||
Доступ чтения/записи по адресам | OOOOh-OOFFh | побайтный | |||
01OOh-FFFEh | пословный | ||||
Верификация в режиме реального времени (во время записи) | Для диапазона адресов 0200h - FFFEh | ||||
Команда «Проверка стирания» (Erase check) | Присутствует | ||||
Команда «Стирание сегмента» (Erase segment) | С верификацией стирания, адрес буфера ошибок 0200h | ||||
Команда «Передача идентификатора» (ТХ identification) | Присутствует | ||||
Команда «Сменить скорость обмена» (Change Baud Rate) | Присутствует | ||||
Инициализация указателя стека | «Холодный» запуск | 0220h | |||
«Горячий» запуск | не изменяется |
Введение
Семейство микроконтроллеров MSP430 производства компании Texas Instruments является семейством 16-разрядных RISC микроконтроллеров со сверхнизким потреблением, усовершенствованной архитектурой и богатым набором периферийных устройств. Архитектура микропроцессоров реализована на основе новаторской схемы тактирования и передовых конструкторских решений, таких как высоко ортогональная структура, делающая прибор очень мощным и гибким. Микроконтроллеры MSP430x1xx потребляют менее 350 мкА при работе на частоте 1 МГц при 3 В питании и могут пробудиться из режима «сна», в котором потребляют менее 2 мкА, менее чем за 6 мкс. Такие низкое потребление и малое время выхода из режима «сна» позволяют изготавливать на основе этих микроконтроллеров устройства, работающие от автономного источника питания.
Кроме того, микроконтроллеры семейства MSP430 имеет обширный набор встроенных периферийных модулей и большой объем встроенной памяти, что позволяет изготавливать на их основе реальные «системы на кристале». Микроконтроллеры содержат такие периферийные модули как 12- и 14- битные АЦП, градиентные АЦП, мультиплицируемые таймеры (некоторые с регистром захвата/сравнения и способностью формировать ШИМ сигнал), драйвер ЖКИ, встроенный задающий генератор, H/W перемножитель, USART, сторожевой таймер, GPIO и т.д.
Подробное описание микроконтроллеров семейства MSP430 можно найти в интерненте по адресу http://www.ti.com.
Библиотека Компэла
Глава 2. Реализация часов реального времени на MSP430
1.1. Применение часов реального времени
Часы реального времени (RTC) используются в различных устройствах-от наручных часов до систем регистрации событий. В данном примере применения описывается способ реализации часов реального времени на микроконтроллере MSP430F1121. В некоторых приложениях MSP430, работающий в режиме часов реального времени может заменить аппаратные RTC, что позволит упростить разработку системы и снизить ее стоимость. В данном описании показаны примеры реализации часов реального времени на основе таймера Timer_A и сторожевого таймера; однако, можно использовать и любой другой таймер MSP430.
Все микроконтроллеры семейства MSP430 способны выполнять функции часов реального времени. Дополнительные повышение степени системной интеграции, снижение потребления и стоимости могут быть достигнуты и за счет выполнения микроконтроллером MSP430 функций других периферийных модулей. Например, микроконтроллеры 'ЗЗх серии могут выполнять функции часов реального времени, супервизора напряжения питания системы, драйвера ЖКИ и UART, объединяя все эти четыре функции в одном приборе со сверх малым потреблением.
Внешний интерфейс
Приведенные в приложении прикладные программы RTC не обеспечивают внешнего интерфейса. Если использовать вместо оговоренного любой другой
Описание принципиальной схемы
На рисунке 1 приведена принципиальная схема часов реального времени. Обратите внимание, что единственный требуемый внешний компонент-32768 Гц кварцевый резонатор.
Vcc Д
Рис. 1. Принципиальная схема часов реального времени
Потребляемый ток
Типовой ток потребления микроконтроллера MSP430F11x1при работе в активном режиме на частоте 1 МГц от 3 В источника питания - 300 мкА. Типовой ток потребления в третьем режиме пониженного потребления (режиме сна) -1.6 мкА при 3 В питании. Микроконтроллер выходит из третьего режима пониженного потребления менее чем за 6 мкс, а подпрограмма синхронизации выпол-
Библиотека Компэла
Ь //- Использование внутренних функций, периферийных блоков...
няется примерно за 130 мкс. Учитывая сверхнизкий ток потребления и малое время восстановления работоспособности, микроконтроллер MSP430F11x1,работающий в качестве RTC потребляет очень маленький средний ток, а поэтому способен работать длительное время от автономного источника питания.
Pound;. Проблемы обеспечения точности
Точность RTC зависит от точности используемого кварцевого резонатора. Это позволяет выбрать такой кварцевый резонатор, который обеспечит требуемую точность.
Расширяемость
MSP430x11x - недорогие микроконтроллеры со сверхмалым потреблением, которые могут идеально заменить аппаратно реализованные часы реального времени. Основным преимуществом от использования MSP430 в качестве RTC является расширяемость функций, выполняемых MSP430 по сравнению с обыкновенными часами реального времени. Все микроконтрол-
Библиотека Компэла
Глава 2. Реализация часов реального времени на MSP430
леры MSP430x11x содержат 16-разрядное вычислительное ядро с RISC архитектурой, 16-разрядный сторожевой таймер, 16-разрядный таймер Timer_A (стремя регистрами захвата/сравнения и аналоговым компаратором), минимум 128 байтное ОЗУ, минимум 2 Кбайтное ПЗУ и минимум 14 линий портов ввода-вывода общего назначения (GPIO). Не все эти функциональные возможности доступны одновременно у одного микроконтроллера, но они позволяют обеспечить устройству большую гибкость, чем дают стандартные аппаратно реализованные RTC.
Кроме того, модуль таймера Timer_A способен выполнять аналого-цифровое преобразование, формировать сигнал с ШИМ и работать в режиме UART с пропускной способностью до 115 200 бод. Сторожевой таймер способен работать как простой таймер, а все выводы GPIO и все периферийные устройства имеют широкие возможности по формированию прерываний.
Глава 2. Реализация часов реального времени на MSP430
Вы признаете и соглашаетесь, что Программа содержит защищенный авторским правом материал, коммерческую тайну и другую частную информацию компании TI и защищена в соответствии с законами об авторском праве, международным соглашением об авторском праве и законом о коммерческой тайне, а так же законом об охране интеллектуальной собственности. Для защиты авторских прав компании TI Вы соглашаетесь не декомпилировать, перерабатывать, или преобразовывать программу к удобочитаемому виду. Вы соглашаетесь ни в коем случае не изменять и не удалять внесенную в программу информацию об авторском праве. Компания TI ооставляет за собой все права, не оговоренные в данной лицензии. Кроме того, что оговорено в данной лицензии, не может рассматриваться при возможном судебном разбирательстве.
Вы не можете использовать программу для микроконтроллеров, которые не производит компания ТТ.
>v >v >v >v >v >v >v >v >v >v >v >v >v >v >v >v >v >v >v >v >v >v >v >v >v >v >v >v >v >v >v >v >v >v >v >v >v >v >v >v >v >v >v >v >v >v >v >v >v >v >v
RTC, использующие сторожевой таймер
Описание: Эта программа демонстрирует возможность
реализации часов реального времени.
В основной программе MSP430 переводится в режим
LPM3.
Сторожевой таймер формирует прерывание каждую
секунду и переводит MSP430 в активный режим, который
позволяет выполнить основную программу.
Основная программа вызывает подпрограмму часов Clock
и вновь переводит микроконтроллер в режим LPM3.
Эта программа написана для микроконтроллера
MSP430F1121, но легко может быть переработана для
использования в любом микроконтроллере семейства
MSP430.
Для хранения информации о часах, минутах и секундах
используются три регистра.
#include <msp430xllxl.h> ; включить файл заголовков
переменные RTC
#define SEC R13
Библиотека Компэла
Глава 2. Реализация часов реального времени на MSP430
Вы можете свободно изменять программу без всяких
ограничений
Передавать программу третьим лицам можно только при
доведении до их сведений этих условий и при
его согласии с этими условиями.
Вы должны приводить лицензию в каждой копии или
частичной копии.
Вы признаете и соглашаетесь, что Программа содержит
защищенный авторским правом материал, коммерческую
тайну и другую частную информацию компании TI
и защищена в соответствии с законами об авторском
праве, международным соглашением об авторском праве
и законом о коммерческой тайне, а так же законом
об охране интеллектуальной собственности. Для защиты
авторских прав компании TI
Вы соглашаетесь не декомпилировать, перерабатывать,
или преобразовывать программу к удобочитаемому виду.
Вы соглашаетесь ни в коем случае не изменять и не
удалять внесенную в программу информацию об
авторском праве. Компания TI поставляет за собой
все права, не оговоренные в данной лицензии. Кроме
того, что оговорено в данной лицензии, не может
рассматриваться при возможном судебном
разбирательстве.
Вы не можете использовать программу для
микроконтроллеров, которые не производит
компания ТТ.
***************************************************
RTC, использующие таймер TIMER_A
Описание: Эта программа демонстрирует возможность
реализации часов реального времени.
В основной программе MSP430 переводится в режим
LPM3.
Таймер Timer А формирует прерывание раз в секунду,
по которому MSP430 переходит в активный режим
и оканчивает выполнение основной программы
Основная программа вызывает подпрограммы Clock,
а затем переводит микроконтроллер в режим LPM3.
Эта программа написана для микроконтроллера MSP430F1121, но легко может
INSiraJMENTS
SEC
MOV.b #OOh,MIN
MOV.b #OOh,HR
EINT
RET ;
II. Использование внутренних функций, периферийных блоков...
; Очистка переменной MIN ; Очистка переменной HR ; Разрешение прерываний
Подпрограмма обработки прерывания от таймера Timer_A:
ЦП просто переходит в активное состояние в RETI
путем манипулирования битами SR
в переменной SR, которая помещена в стек.
Флаг прерывания CCRO очищается автоматически
CCROINT
RETI
BIC #LPM3,0(SP)
Очистка битов SR LPM3 переход в верх ] указателя стека
RSEG INTVEC ; Вектора прерываний
DW | RESET |
DW | RESET |
DW | RESET |
DW | RESET |
DW | RESET |
DW | RESET |
DW | RESET |
DW | RESET |
DW | RESET |
DW | CCROINT |
DW | RESET |
DW | RESET |
DW | RESET |
DW | RESET |
DW | RESET |
DW | RESET |
END
Таймер Timer_A (CCIFGO) Сторожевой таймер
NMI, повреждение автогенератора POR, внешний сброс, сторожевой таймер
Введение
Во многих встраиваемых применениях на базе микроконтроллеров требуется генерация аналоговых сигналов. В некоторых случаях для этих целей используются встроенные либо внешние цифро-аналоговые преобразователи (ЦАП).
Тем не менее, сигналы ШИМ также могут быть использованы для получения требуемых аналоговых сигналов. С их помощью можно синтезировать аналоговые сигналы, как с переменным, так и с постоянным уровнем. В этой статье обсуждается использование ШИМ-таймера в качестве ЦАП и приводится пример одновременной генерации синусоидального сигнала, пилообразного сигнала и сигнала с постоянным уровнем, а также суммирование синусоидального сигнала с постоянным уровнем для создания смещения. В данном примере использован таймер Timer_B, аналогичным образом можно также использовать таймер Timer_A.
Теория функционирования
Сигналы ШИМ представляют собой цифровые сигналы с постоянной частотой и меняющимся коэффициентом заполнения. Пример таких сигналов приведен на рис. 1. Если коэффициент заполнения ШИМ-сигнала изменяется со временем, то, отфильтровав его, получим на выходе аналоговый сигнал. Блок-схема ЦАП на базе ШИМ с использованием такого способа приведена ниже на рис. 2. В примере программы в конце этой статьи таймер Timer_B микроконтроллера MSP430F149 используется для одновременной генерации
Библиотека Компэла
Глава 3.
Использование широтно-импульсной модуляции таймера В„.
синусоидального и пилообразного сигналов с разными частотами и сигнала с постоянным уровнем. ЦАПы, основанные на ШИМ также позволяют синтезировать другие сигналы. Некоторые аудиопроцессоры фирмы Texas Instruments Inc. также используют сигналы ШИМ для генерации речевых сигналов.
Рис.2. Блок-диаграмма ЦАП на базе ШИМ
Разрешение
Разрешение ЦАП на базе ШИМ, построенного на таймере Timer_B эквивалентно длине счётчика, которая, как правило, представлена значением в ре-
Библиотека Компэла
f& Texas
Принципиальная схема и осциллограммы
Библиотека Компэла |
Полная принципиальная схема устройства приведена на рис. 3. Генерируемые ей переменные сигналы показаны на рис. 4. Сигнал с постоянным уровнем показан на рис. 5 совместно с сигналом ШИМ.
Глава 3.
Использование широтно-импульсной модуляции таймера В„.
Рис.4.Осциллограммы сигналов |
Рис.5.Сигнал ШИМ и постоянный сигнал
Библиотека Компэла 107
Ь //- Использование внутренних функций, периферийных блоков...
Синусоидальный сигнал, формируемый в этом примере, использует 32 отсчёта на период. Значения отсчётов хранятся в таблице в начале программы. Для определения текущей ячейки используется указатель, в конце каждого периода ШИМ в регистр сравнения-захвата ШИМ-таймера записывается новое значение.
Для генерации пилообразного сигнала в этом примере табличные значения не используются. «Пила» формируется обычным инкрементом коэффициента заполнения на каждом периоде ШИМ до тех пор, пока не будет достигнуто максимальное значение. После этого инкремент начинается снова с минимального значения. Такое последовательное увеличение коэффициента заполнения ШИМ-сигнала после его фильтрования формирует на выходе пилообразный сигнал.
Сигнал с постоянным уровнем в данном примере формируется записью неизменного значения коэффициента заполнения ШИМ-сигнала. Постоянный уровень прямо пропорционален значению коэффициента заполнения ШИМ-сигнала. Таким образом, раз значение коэффициента заполнения ШИМ-сигнала на выходе ТВЗ не изменяется, после фильтрования RC-цепью получим на выходе постоянное значение.
Библиотека Компэла
Глава 3.
Использование широтно-импульсной модуляции таймера В„.
В отличие от фильтров переменных сигналов, фильтр для постоянного сигнала используется только для хранения заряда. Поэтому в этом случае применена простая однополюсная RC-цепь.
Библиотека Компэла
f& Texas
INSiraJMENTS
//. Использование внутренних функций, периферийных блоков...
Рис. 7. Синусоидальный сигнал со смещением
ния к синусоидальному сигналу, часть элементов фильтра была совмещена со схемой усилителя. Для получения аналогичных результатов также можно использовать другие схемы фильтров и активных сумматоров.
О Библиотека Компэла
Глава 3.
Использование широтно-импульсной модуляции таймера В„.
Рис. 8. Процесс выполнения программы
Калибровка генератора DC0
Генератор DCO микроконтроллера MSP430 представляет собой генератор RC типа и обладает схожими с RC-генератором характеристиками, в частности такими, как неточная установка частоты и её уход. Тем не менее, цифровое управление этим генератором позволяет настроить его на стабильную частоту, используя источник тактирования со стабильным известным значением, такой, как кварцевый резонатор 32768Гц. Некоторые микроконтроллеры семейства
Библиотека Компэла
//. Использование внутренних функций, периферийных блоков... bis |
#MC1,&TACTL |
f& Texas
Библиотека Компэла
Глава 3.
Использование широтно-импульсной модуляции таймера В„.
соответствует периоду ШИМ-выходов в 256 отсчётов (8 бит). т.е. получаем 8-битный ЦАП.
mov #02E0h,&TBCCTLl ; Перевести CCRx
в режим сравнения,
mov #02E0h,&TBCCTL2 /запретитв
прерывания, режим выхода '7', т.е.
mov #02E0h,&TBCCTL3; сброс/установка.
mov #Sine_Tab,&TBCCRl mov #01h,R14 mov #0AAh,&TBCCR3 |
Сигнал EQUO устанавливает выход в «1», a EQU1 в «О». Установим условия сравнения для регистра как его равенство нулю
Загрузитв первый
отсчёт в CCR1 Загрузитв началвное
значение «пилы»
в R14.
;И значение для
постоянного уровня
которое соответствует ~ 2/3 Vcc т.к.
#OAAh это примерно
#MCO , &TBCTL |
bis |
2/3 от #OFFh. Запуститв таймер
timer_B в режиме
ret |
инкремента
TB_ISR /Подпрограмма обработки прерываний таймера ;Timer_B: изменяет значения в регистрах ; CCR1 и CCR2 для изменения коэффициента ; заполнения ШИМ для синусоиды и «пилы».
Библиотека Компэла
f& Texas
Введение
Самопрограммируемость Flash становится все более и более важной функцией. Однако при выполнении программирования/стирания Flash памяти программы микроконтроллер не может одновременно выполнять прикладную программу, расположенную в том же массиве памяти. Таким образом, микроконтроллер только с одним встроенным массивом Flash памяти не может одновременно выполнять программу и изменять ее.
Есть два подхода к решению этой задачи. Первый состоит в том, что команды стирания/программирования Flash памяти перед выполнением копируются в ОЗУ. Второй - в том, что при выполнении стирания/программирования вычислительное ядро переходит в режим Idle.
Все микроконтроллеры семейства MSP430 компании Texas Instruments имеют встроенный контроллер Flash памяти, который позволяет выполнять прикладную программу и изменять содержимое одного и того же модуля Flash памяти.
Этот пример применения описывает способ, который позволяет стирать/ программировать Flash память, а также приводятся тексты программных модулей, необходимых для выполнения этих операций.
Библиотека Компэла
Глава 4.
Программирование Flash памяти с копированием прикладной программы в ОЗУ
При программировании Flash памяти ОЗУ-единственная память, из которой вычислительное ядро может выполнять прикладную программу. Пример программы, приведенный на рисунке 3, копирует функцию программирования Flash памяти в стек для выполнения прикладной программы в из ОЗУ. Когда Flash память становится снова доступной, счетчик команд указывает на Flash память и указатель стека восстанавливается. Бит Busy (бит 0 в FCTL3) указывает
Библиотека Компэла
Глава 4. Техника самопрограммирования флэш-памяти MSP430
доступность Flash памяти. В приложении А приведена прикладная программа flash _ram.s43, которая может выполнять три функции:
• стирание одного сегмента
• программирование одного байта
• программирование одного слова
Выполнение программы из ОЗУ позволяет вычислительному ядру работать в процессе изменения Flash памяти. Это позволяет MSP430 выполнять программирование Flash памяти и, например, принимать данные через UART. Конечно, в этой ситуации обнаружение принятых данных может быть реализовано только путем опроса флага принятия данных UART.
MODULE flash_ww
PUBLIC Flash_ww
RSEG CODE
#define _CPU_ 5 /* 5=MSP430F1121, 6=MSP430F149 device*/
#include <Stddef.s43>
Запись во Flash память слова ****************************************************
Запись 1 слова во Flash путем копирования небольшой функции (18 байт)
в ОЗУ при помощи динамической памяти, расположенной в стеке.
Определение функции:
void Flash ww(int*Data ptr, int word) скрэтч-регистр: R12 = int *Data ptr R14 - int слово R13, R15 - общего назначения Предположение: При записи Flash не занята
(Flash _ww_start) ****************************************************
Flash _ww
dint ;зашита стека от повреждения
clr.b &IE1 /блокировка NMI, ACCV и OF
;прерываний mov #5A80h, &WDTCTL;блокировка сторожевого
;таймера mov #Flash ww end, R13 /определение конечного
;адреса и длины
mov #Flash_ww_length, R15 /функция, которая
будет скопирована в ОЗУ
Прямое перепрограммирование Flash памяти
Flash модуль MSP430 имеет уникальную функцию - самопрограммиру-емость. Эта функция позволяет перепрограммировать Flash память без копирования программы в другую память. Когда в течение перепрограммирования Flash памяти вычислительное ядро выбирает команды из нее, Flash модуль возвращает вычислительному ядру команду 3FFFh (JMP $). Эта команда «зацикливает» вычислительное ядро до тех пор, пока перепрограммирование
Библиотека Компэла
Глава 4. Техника самопрограммирования флэш-памяти MSP430
Flash памяти не будет закончено. По окончании перепрограммирования Flash модуль возвращает следующую команду, и выполнение программы продолжается.
Как можно увидеть из кода программы, приведенной на рисунке 3, это-самый простой способ перепрограммировать Flash память микроконтроллеров семейства MSP430. Однако у этого метода имеется один недостаток- при перепрограммировании Flash памяти вычислительное ядро находится в режиме останова и никакая программа или подпрограмма обработки прерывания не может в это время выполняться. Кроме того, этот метод позволяет перепрограммировать Flash память только байтами или словами (7 бит в FCTL1 сброшен), а значит не может использоваться режим быстрой записи сегментами. Более полные примеры программ для стирания и записи Flash памяти при помощи этой функции приведены в приложении А (файл Flash Jdle.c) и приложении В (файл Flash Jest.c). / ***************************************************/
/* Flash _ww */
/* запись одного слова (16 бит) во Flash память*/
void Flash ww(int *Data ptr, int word) {
FCTL3 = 0x0A500; /* Lock = 0 */
FCTL1 = 0x0A540;/* WRT = 1 */
*Data_ptr=word;/* запись слова */
FCTL1 = 0x0A500;/* WRT = 0 */
FCTL3 = 0x0A510; /* Lock = 1 */
Рис.4. Подпрограмма остановки вычислительного ядра при перепрограммировании
Flash памяти
Библиотека Компэла 127
f& Texas
Заключение
В данном примере применения описаны два метода перепрограммирования Flash памяти и приведены примеры их программной реализации. В том случае, когда необходимо обеспечить функционирование вычислительного ядра (например, прием данных при помощи UART), нужно использовать метод перепрограммирования из ОЗУ. При этом методе необходима дополнительная память. Более простой метод состоит в остановке вычислительного ядра при перепрограммировании Flash память. Длительность записи одного слова приблизительно равняется 80 мкс, а одного сегмента-12 мс.
Библиотека Компэла
Глава 4. Техника самопрограммирования флэш-памяти MSP430
Ссылки:
1.MSP430x1xx Family User's Guide, SLAU049, 2000
2. MSP430x11x1 Datasheet, SLAS241C, June 2000
3. MSP430x13x,MSP430x14x Datasheet, SLAS272A, July 2000
Приложение А: файл flash_ram.s43
■k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k;
flash_ram.c 2000-06-2C
Этот модуль содержит функции, необходимые для программирования Flash памяти при помощи программы, работающей из ОЗУ. При программировании Flash памяти вычислительное ядро остается активным и может использоваться, например, для принятия данных при помощи UART. Необходимая функция копирования содержится в определенной программе во Flash памяти или в функции стирания.
Реализованные функции:
void Flash_wb( char *Data_ptr, char byte ) ; void Flash ww( int *Data ptr, int word ); void Flash clr( int *Data ptr );
Автор: Anton Muehlhofer, компания Texas Instruments Incorporated
•k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k
MODULE Flash_wb
PUBLIC Flash_wb
RSEG CODE
#define CPU 5 /* определение микроконтроллера:
5=MSP430F1121, 6=MSP430F149 */ #include <Std_def.s43> /* порты */
•k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k
Запись байта во Flash память
•k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k
Программирование 1 байта во Flash память путем копирования небольшой (18 байт) функции в ОЗУ динамической памяти, расположенной в стеке.
Библиотека Компэла
Глава 4.
Библиотека Компэла
Глава 4. Техника самопрограммирования флэш-памяти MSP430
mov #Flash ww length,R15; функции, которая
; копируется в ОЗУ
mov #0A500h,&FCTL3 ; LOCK = О
copy push @R13 ; копирование функции
; в ОЗУ
deed R13
dec R15
jnz copy
mov SP,R15
WRT = 1 вызов функции записи во Flash память ERASE = О LOCK = 1 SP; обслуживание |
mov #0A540h,&FCTL1
call R15
mov #0A500h,&FCTL1
mov #0A510h,&FCTL3
add #2*Flash_clr_length
стека ret
;----- Функция очистки Flash памяти------------
Flash_clr_start
mov #0,0(R12) ; стирание сегмента Flash
; памяти
wait bf bit #1,&FCTL3 ; ожидание установки флага
; «свободного» состояния
jnz wait_bf Flash_clr_end
ret
; вычисление номера слова, которое будет стерто во Flash памяти
Flash_clr_length EQU (Flash_clr_end-Flash_clr_ start+2)/2
END
Приложение В: файл flash_idle.c
/* flash_idle.c 2000-06-20 */
/* */
/* Функции стирания и программирования Flash памяти */
/* */
/* Приведенные ниже функции используют алгоритм
/* непосредственного программирования Flash памяти. */
Библиотека Компэла
Глава 4. Техника самопрограммирования флэш-памяти MSP430
FCTL3 = ОхОА5ОО; /* Lock = 0 */
FCTL1 = 0х0А54 0; /* WRT = 1 */
*Data_ptr=word; /* программирование слова
/* во Flash память */
FCTL1 = 0х0А500; /* WRT = 0 */
FCTL3 = ОхОА51О; /* Lock = 1 */
/* Flash_clr */
/* Стирание 1 сегмента Flash памяти */
/
void Flash_clr( int *Data_ptr)
{
FCTL3 = 0x0A500; /* Lock = 0 */ FCTL1 = 0x0A502; /* ERASE = 1 */ *Data_ptr=0; /* стирание сегмента Flash
/* памяти */
FCTL1 = 0x0A500; /* ERASE = 0 */ FCTL3 = 0x0A510; /* Lock = 1 */
Приложение С: файл flash_var.s43
***************************************************
File: flash_var.s43 30. мая 200С
определение двух однобайтных переменных, имеющих специфические адреса во Flash памяти, которые могут быть доступны в С как стандартные внешние символьные переменные (см. файл "flashd.h") :
extern unsigned char SegA last; /* абсолютный адрес OlOFFh */
extern unsigned char SegB_last; /* абсолютный адрес 0107Fh */
Автор: Anton Muehlhofer, компания Texas Instruments
Incorporated
***************************************************
extern unsigned char SegA last; /* абсолютный адрес OlOFFh */
Описание программы
Краткий обзор
Демонстрационное программное обеспечение данного примера применения написано как на С, так и на ассемблере. Обе программы функционально идентичны и используют общую библиотеку ведущего I2C интерфейса, кото-
Библиотека Компэла
Глава 1. Подключение ADS1100 к MSP430F413
рая написана на ассемблере. Проект, сформированный только из программ, написанных на ассемблере, имеет размер приблизительно на 20% меньше, чем смешанный проект, сформированный из программы, написанной на С и библиотеки, написанной на ассемблере.
Таблица 1. Описание файлов
Имя файла | Описание |
ADS11OO_Demo.c | Демонстрационная программа считывания данных из ADS11OO, написанная на С |
ADS11OO_Demo.s43 | Демонстрационная программа считывания данных из ADS11OO, написанная на ассемблере |
l2C_Master.s43 | Библиотека реализации ведущего I?C интерфейса |
l2C_Master.h | Основной файл процедуры ведущего I?C интерфейса |
Библиотека Компэла
Глава 1. Подключение ADS1100 к MSP430F413
Когда микроконтроллер работает на заданной по умолчанию частоте 1 048 576 Гц, все временные параметры сгенерированного I2C интерфейса удовлетворяют требованиям к работе в нормальном режиме. Библиотека может использоваться любыми микроконтроллерами семейства MSP430.
Из основных программ, написанных на С или ассемблере, можно легко организовать вызов любых подпрограмм пользователя. Для упрощения интеграции в среду С существует основной файл. Имеется возможность вызова трех функций:
■ void I2CSetup (void)
Эта функция инициализирует выводы MSP430, предназначенные для ведения обмена данными по I2C интерфейсу. Выводы портов SDA и SCL, так же как и определения состояния портов PI2C_DIR, PI2C_OUT и PI2CJN, могут быть изменены в основном файле l2C_Master.h. Для обслуживания линий интерфейса рекомендуется использовать 4 младшие линии портов. В этом случае для манипуляции битами вычислительное ядро MSP430 способно использовать характеристику постоянного генератора, что позволяет уменьшить размер кода и повысить быстродействие. Более подробно об этом можно прочитать в руководстве пользователя по 16-битным RISC микроконтроллерам семейства MSP430x4xx.
■ unsigned int I2CReadl6(unsigned char Addr)
Эта функция считывает 16-разрядные данные из указанного внешнего подчиненного I2C устройства. LSB передаваемого адресного I2C байта устанавливается внутренне и служит для указания запрашиваемого устройства. Данные считываются с шины старшим значащим битом вперед.
■ void I2CWrite8(unsigned char Addr, unsigned char
Data)
При вызове этой функции осуществляется передача 8-битных данных Data устройству с адресом Addr.
Кроме того, библиотека содержит дополнительные вспомогательные функции, позволяющие генерировать I2C условия старта, останова и подтверждения (АСК или пАСК). Как было сказано выше, эти функции могут вызываться и различными пользовательскими функциями. Для удовлетворения специфических требований можно создать и свои варианты функций.
На рисунке 1 приведена схема электрическая принципиальная описанного устройства.
Библиотека Компэла141
f& Texas
INSiraJMENTS
///. Интерфейс с внешними устройствами
:М LI i I I I Kf I | III! I tW |
Рис. У.Схема электрическая принципиальная
Библиотека Компэла
f& Texas
INSiraJMENTS
///. Интерфейс с внешними устройствами
Подключение 3-вольтовых микроконтроллеров MSP430 к 5-вольтовым схемам
Lutz Bierl [slaa148.pdf (Англ.)]
В этом примере применения рассматривается подключение 3 вольтовых микроконтроллеров MSP430x1xx и MSP430x4xx к схемам с питанием 5В или выше. Описано согласование входов, выходов и двунаправленных линий. Там, где это необходимо, даются примеры расчётов. Также показаны примеры построения простых источников питания на оба напряжения.
Введение
Современные микроконтроллеры MSP430, например, семейства MSP430x1xx и MSP430x4xx работают в диапазоне питающих напряжений от 1,8 В до 3,6 В. Это обусловлено используемым технологическим процессом и имеет ряд преимуществ, в частности - микроконтроллеры этих серий потребляют меньший ток, чем 5-вольтовые MSP430C3xx.
Сложности возникают при необходимости сопряжения таких устройств с 5-вольтовыми или ещё более высоковольтными схемами. В этом примере применения показано, как согласовать 5-вольтовые интерфейсы со входами, выходами и двунаправленными линиями микроконтроллеров MSP430. На рис. 1 показаны примеры таких согласований. В этом примере рассматриваются устройства, помеченные на рисунке тёмно-серым цветом.
зв ±
Рис. 1. Интерфейс между 3 В MSP430 и 5 В устройством
Библиотека Компэла
Глава 2. Подключение 3-вольтовых микроконтроллеров MSP430-
Примечание:
Далее по тексту термин MSP430 означает микроконтроллеры семейств MSP430x1xx и MSP430x4xx.
Примечание:
Приведенные формулы для внешнего источника питания V также справедливы и могут быть использованы для напряжений выше, чем 5В. Их можно использовать для любых уровней внешнего напряжения, например, V = 12 В.
В формулах будут использованы следующие замены для упрощения вычислений при малых значениях ах (например,для начального разброса р).
1 + ах ч х/ 1-ах 1ах 1 + ах
При таких заменах ошибка будет ничтожной при laxl < 0,1.
Определения
Входные преобразователи
Показанные входные преобразователи в первую очередь рассчитаны на согласование 5-ти и 3-вольтовых систем. Тем не менее, их также можно применять и при более высоких значениях внешнего питания, например, для согласования входа микроконтроллера MSP430 с 12-вольтовыми сигналами.
Библиотека Компэла
Глава 2.
Библиотека Компэла
Глава 2.
Подключение 3-вольтовых микроконтроллеров MSP430.»
Рис.3.Транзисторный входной преобразователь из 5 В окружения
DV, |
CC(max)
x(3min xRcmin
Где V - напряжение база-эмиттер транзистора, при котором он гарантированно выключается [В]
V - напряжение база-эмиттер транзистора, при котором он гарантированно включается [В]
(3 - коэффициент усиления по току транзистора
l|kg(Tr) - ток утечки транзистора [А]
Пример:Входное напряжение с уровнем М подаётся на вход MSP430 с током утечки I = ±50 нА. Минимальное напряжение лог. «1» V min = 4,5 В, максимальное напряжение лог. «0» V(sysL)max = 0,7 В. Начальный разброс всех резисторов р = ±5%. Напряжение питания DVCC = 3 В ±10%. Характеристики транзистора VBE(on) = 0,75 В, VBE(off) = 0,2 В, (3min = 100, l|kg(Tr) = 10 нА.
Максимальное значение Rc равно:
2,7В-1,9В |
CC(min) TT(max) |
n С |
= 12,7М0м
(1 + P)x(llkfl+llkg(Tr))
Минимальное соотношение номинальных значений RB1 и RB2 равно:
Nv
u vCC(max)
4,5В-0,75ВхГ1+2,75х(1 + 0,1)1
RB1 <---------- ■------ !=----- ■----------- ^x100x2MOmx(1-0,05) = 8
""CC(max)
С учётом значения RB1 = 39 МОм получаем для RB2:
^ = 39М0м = 1 В2 2,75 2,75
Входной преобразователь на микросхеме ULN2003A
В левой части рис. 7, три буфера микросхемы ULN2003A используются в качестве входного преобразователя для согласования с 5-вольтовыми и 12-
Библиотека Компэла
Глава 2.
Входные преобразователи на интегральных микросхемах
Для преобразования 5-вольтовых сигналов в 3,3-вольтовые можно использовать любые КМОП-микросхемы, удовлетворяющие следующим условиям:
• Предназначена для работы с питающим напряжением 3,3 В или менее.
• Явно указана возможность работы с входными уровнями более 3,3 В.
Библиотека Компэла
f& Texas
Библиотека Компэла
Глава 2.
Подключение 3-вольтовых микроконтроллеров MSP430-
4. Выходные преобразователи
Преобразователи не требуются для работы с ЖКИ и с пассивными датчиками. Их можно соответствующим образом подключать непосредственно к MSP430. См. [2].
Глава 2.
Зв
4xO,7nA
= 1,07ГОм
Выходные преобразователи на интегральных микросхемах
В качестве выходных преобразователей 3-вольтовых с 5-вольтовыми схемами можно использовать практически любые TTL-совместимые ИС, например, такие, как семейства НСТ и АНСТ. То же самое справедливо и для биполярных ИС. Если источник питания 5 В может выключаться в то время, как 3-вольтовый источник остаётся включенным (например, в ситуации, изображённой на рис. 11), то для коммутации Vcc можно использовать только ИС, не содержащие встроенных защитных диодов. В противном случае, через защитный диод будет протекать ток с 3-вольтового источника питания на землю. Это означает, что в таких случаях можно использовать только семейство АНСТ или биполярные ИС.
Библиотека Компэла
Тг Texas
INSiraJMENTS
///. Интерфейс с внешними устройствами
Рис. 8. Выходной преобразователь на операционном усилителе
Двунаправленные преобразователи
Простой двунаправленный преобразователь на ОУ
Рис. 9. Двунаправленный интерфейс между 3-вольтовой и 5-вольтовой
системами
Библиотека Компэла
Глава 2. Подключение 3-вольтовых микроконтроллеров MSP430-
Интерфейс, изображенный на рис. 9 можно использовать в случае, если требуется двунаправленный обмен между MSP430 и 5-вольтовыми системами. Операционный усилитель исполняет роль триггера: порт ввода-вывода, работающий в режиме выхода, контролирует состояние триггера. Второй порт ввода-вывода должен быть сконфигурирован как вход.
Формулы расчёта резисторов R3, R4 и R5 для наихудших случаев:
Где Vref - опорное напряжение для детектирования входного уровня [В]
llkg — токутечки входа MSP430 [А]
llkg(Op)-ток утечки входа ОУ [А]
I -токутечки входа 5-вольтовой системы [А]
Пример:двунаправленный интерфейс со следующими параметрами:
V(sys)= 5 В ±10%, V(sysH)min = 4 В, V(sys+)max = 3,5 В, I = ±1 мкА,
| 700А|50АЧ |5В5%
о,р» о
Начальный разброс резистора р = ±5%. Минимальное напряжение питания DVCC(min) = 2,7 В (3,0 V-10%).
В
R4_ 1,38 + 1,14 R5~ 2
Библиотека Компэла—
тг Texas
INSiraJMENTS
///. Интерфейс с внешними устройствами
Номиналы трёх резисторов равны: R3 = 330 кОм, R4 = 2 МОм, R5 = 1,6 МОм.
Двунаправленный преобразователь на интегральных микросхемах
Для двунаправленного интерфейса можно применять специализированные преобразователи уровней, такие, как SN74LVCC4245A. Эта ИМС представляет собой 8-битный двунаправленный преобразователь 5-вольтовых уровней для всего порта MSP430. На рис. 10 показан пример использования этой ИС.
MSP430 определяет направление передачи при помощи вывода DIR. Шина А может быть при необходимости отключена от шины В при помощи вывода ОЕ.
3.3 В |
з.з в
В
Рис. 10. Двунаправленный преобразователь на интегральных микросхемах
Библиотека Компэла
Глава 2.
Сеть
Библиотека Компэла
f& Texas
Заключение
Как показано в данном примере применения, существуют различные недорогие способы подключения 3-вольтовых микроконтроллеров семейства MSP430 к 5-вольтовым схемам. В некоторых случаях внешние 5-вольтовые устройства уже содержат необходимые элементы сопряжения. Автор выражает благодарность Eilhard Haseloff за его ценные замечания.
Ссылки:
1.MSP430 Family Mixed-Signal Microcontroller Application Reports, Literature
Number SLAA024
2. MSP430x4xx Family User's Guide, Literature Number SLAU056
3. MSP430x1xx Family User's Guide, Literature Number SLAU049
4. MSP430x43x, MSP430x44x Mixed Signal Microcontroller data sheet,
Literature Number SLAS344
5. TLC27L4, TLC27L4A, TLC27L4BJLC27L4Y, TLC27L9 LinCMOS™ Precision
Quad Operational Amplifiers data sheet, Literature Number SLOS053
6. ULN2001A, ULN2002A, ULN2003A, ULN2004A,ULQ2003A, ULQ2004A
High-Voltage High-Current Darlington Transistor Array data sheet, Literature Number
SLRS027
7. SN74LVCC4245A Octal Dual-Supply Bus Transceiver With Configurable
Output Voltage and 3-State Outputs data sheet, Literature Number SCAS584
Библиотека Компэла
f& Texas
Введение
Рис. 1. Схема соединения MSP430F413 иТМРЮО |
Библиотека Компэла |
Во множестве систем требуется отслеживать и измерять температуру. Часто такие измерения должны выполняться удаленно и при использовании автономного источника питания, а, следовательно, для увеличения срока службы потреблять система должна минимально. В большинстве систем измерение температуры производится при помощи дискретных транзисторов, терморезисторов или термопар и «систем на кристалле» (SoC). ТМР100 представляет собой SoC, а при объедине-
Глава 3.
Подключение MSP430 и температурного датчика ТМР100-.
нии со сверхнизко потребляющим микроконтроллером MSP430, как это показано на рисунке 1, становится полнофункциональной системой измерения температуры, способной работать от одной батарейки более 10 лет.
Библиотека Компэла
f& Texas
Библиотека Компэла
Глава 3. Подключение MSP430 и температурного датчика ТМР100-.
3. Аппаратный интерфейс
Как показано на рисунке 1, системный интерфейс между MSP430 и ТМРЮО требует дополнительных дискретных компонентов. Питание системы осуществляется от 3 В Li+ батарейки, а в качестве фильтра питания рекомендуется использовать 0.1 мкФ конденсатор. Вход сброса RST рекомендуется подключить через 68 кОм резистор, а 32.768 кГц используется для формирования тактовых импульсов в дежурном режиме. Два дополнительных 10 кОм резистора используются в качестве подтягивающих резисторов линий I2C интерфейса.
Индикация измеренной температуры осуществляется при помощи 3.5 цифрового статического ЖКИ. Встроенный драйвер ЖКИ MSP430F413 позволяет обслуживать до 24 сегментов, а 4 выхода обслуживания общих линий расширяет максимально возможное количество обслуживаемых сегментов до 96. В данном примере применения использован 24 сегментный статический ЖКИ производства компании Varitonix. Хотя в данном примере применения использован микроконтроллер MSP430F413, но может быть использован и любой другой микроконтроллер семейства MSP430 серии 4хх.
Заключение
Как было сказано раньше, измерение температуры может осуществляться различными способами. Способ, применяемый в конкретной задаче, зависит от физических ограничений, наложенных на систему. Часто портативность и низкое потребление являются основными ограничительными факторами. Описанная система, состоящая из MSP430 и ТМР100, является эффективным решением такой задачи.
При помощи описанных аппаратных и программных решений можно реализовать законченный низкопотребляющий измеритель температуры. Эта система не просто измеряет температуру, а делает это так, что может работать от 3 В Li+ батарейки более 10 лет.
Ссылки:
1. MSP430F413 Device Datasheet, Literature Number SLAS340C
2. MSP430 4xx User's Guide, Literature Number SLAU056B
3. TMP100 Datasheet, Literature Number SB0S231В
4. "THE I2C-BUS SPECIFICATION VERSION 2.1 JANUARY 2000", Philips
Semiconductors
5. VI-302 LCD Datasheet, Varitronix International Ltd
Библиотека Компэла
f& Texas
INSiraJMENTS
///. Интерфейс с внешними устройствами
Введение
Рис. У. Демонстрационная схема реализации UART на микроконтроллере MSP430x11x(1) |
Библиотека Компэла |
В микроконтроллере MSP430x11x (1) возможность ведения последовательной асинхронной передачи данных может быть реализована за счет использования встроенного модуля таймера timer_A3. В данном примере применения описывается несколько функций UART, демонстрирующих RS232 интерфейс между микроконтроллером с Flash памятью MSP430F1121и персональным компьютером (см. рисунок 1). Также описывается как использовать аппаратный модуль таймера timer_A3, который обеспечивает автоматическое детекти-
Глава 4. Реализация функции UART с использованием таймера A3
рование стартового условия, формирует заданную частоту передачи данных и захватывает биты данных. Аппаратный модуль таймера timer_A3 позволяет существенно сократить код прикладной программы и уменьшить загрузку вычислительного ядра микроконтроллера. Также параметры этого модуля позволяют UART работать в реальном времени в фоновом режиме.
Глава 4.
Реализация функции UART с использованием таймера A3
Перед передачей каждого бита программа прокручивает регистр RXTXData для установки бита переноса. Выполняется соответствующий переход и подготавливается режим выхода CCTLO, после чего к CCR0 добавляется длительность одного бита.
Программная загрузка
При выборе программной или аппаратной реализации UART разработчики исходят из степени загруженности системы в том или ином случае. Описанная в данном примере применения реализация UART использует возможности ап-
Демонстрационная схема
Демонстрационная схема, приведенная на рисунке 1, питается непосредственно от последовательного порта ПК, при этом 3.3 В напряжение питания микроконтроллера формируется стабилизатором с низким падением напряжения TPS76033. Для преобразования уровней сигналов интерфейса использованы два инвертора SN74AHC1G04 производства компании TI. Если необходимо реализовать интерфейс, полностью отвечающий стандарту RS232, то необходимо использовать низкопотребляющие 3 В преобразователи уровня типа МАХ2331, которые также производятся компанией TI. Вход сброса подтянут к линии питания, а задающий генератор работает от 3.58 МГц керамического резонатора.
Глава 4. Реализация функции UART с использованием таймера A3
jnz SetupOscl
bit.b #OFIFG, &IFG1 ;флаг ошибки
;автогенератора /установлен?
jnz SetupOsc;
bis.b #SELM1+SELMO, &BCSCTL2;MCLK = LFXT1
Режим защиты от сбоев описан в руководстве по использованию микроконтроллеров семейства MSP430x1xx (документ SLAU049). Основная программа инициализирует UART при помощи подпрограммы RX_Ready, а затем переводит микроконтроллер в режим пониженного потребления LPM0, в котором вычислительное ядро отключено. В этом режиме активны только timer_A3 и ACLK. Даже при отключенном вычислительном ядре UART работает в режиме ожидания поступающих данных как фоновая подпрограмма обслуживания прерывания. После принятия приемопередатчиком информационного слова подпрограмма обслуживания прерывания UART активизирует вычислительное ядро и запускает основную программу. Подпрограмма передачи данных возвращает в ПК принятые данные, которые и отображаются на его мониторе. После этого цикл начинается сначала: микроконтроллер вновь переходит в режим ожидания поступления данных. Данная демонстрационная программа оптимизирована сточки зрения повышения быстродействия. В CCROJSR BitCnt используется для автоматического увеличения адреса косвенной адресации, что требуется для обработки передаваемых и принимаемых битов. Программе не требуется опрашивать флаги или уменьшать регистры для определения какой механизм нужно использовать. Автоматическое увеличение адреса используется совместно с поисковой таблицей для мгновенного определения адреса подпрограммы.
add.w #Bitime, & CCRO;Bitime для
;следующего бита
br @BitCnt + /переход к соответствующей подпрограмме
Преимущество автоматического увеличения адреса состоит в быстродействии и эффективности в условиях ограниченного количества доступных программных циклов.
Демонстрационная управляющая программа 11x1_uart2.s43 -использование DCO для задания скорости обмена данными
Демонстрационная программа 11x1_uart2.s43 показывает, как реализовать высокоскоростной UART на микроконтроллере семейства MSP430, работающем в режиме сверх низкого потребления и использующего только один 32 768 кГц часовой кварцевый резонатор. Для задания скорости обмена данными может использоваться встроенный в MSP430 задающий генератор с цифровой регулировкой (DCO). DCO - RC генератор с цифровой регулировкой, способный рабо-
Библиотека Компэла173
Ь ///■ Интерфейс с внешними устройствами
тать в диапазоне частот от 100 кГц до 5 МГц и выше и имеющий время запуска менее 6 мкс. DCO позволяет вести обмен данными даже в режиме сверх низкого потребления: спадающий фронт старт-бита запускает отключенный DCO менее чем за 6 мкс. Демонстрационная программа 11x1_uart2.s43 позволяет вести обмен данными на скорости 9600 бод, используя DCO для задания скорости обмена данными. 32 768 Гц часовой кварцевый резонатор заменяет 3.58 МГц резонатор, использованный в схеме на рисунке 1. DCO работает на частоте 1 228 800 Гц и используется для формирования подсистемных синхроимпульсов (SMCLK), являясь источником синхросигнала для модуля таймера timer_A3. DCO настраивается на высокую частоту при помощи программной системы ФАПЧ. Программная ФАПЧ считает количество синхроимпульсов SMCLK (синхросигнал, формируемый DCO) за период сигнала ACLK (синхросигнал, формируемый 32 768 Гц кварцевым генератором). После этого осуществляется регулировка частоты DCO. при стабильных температуре и напряжении питания частота DCO остается неизменной. Программная ФАПЧ может быть запущена в любое время для подстройки частоты DCO. Подробнее о программной ФАПЧ можно прочитать в техническом описании микроконтроллеров семейства MSP430x11x1 (документ SLAS241). В данном примере основная программа выполняется в режиме LPM3, типовой ток потребления в котором менее 2 мкА, при этом UART готов к приему данных. Эта программа, также как и описанная выше, формирует эхо принятого сигнала. В данном примере для приема кодовой комбинации используется регистр BitCnt.
Демонстрационная управляющая программа 11x1_uart3. s43 -использование 32 кГц кварцевого резонатора для задания скорости обмена данными
В некоторых случаях источником синхросигнала для таймера timer_A3 должен быть 32 768 Гц часовой кварцевый резонатор. В этом случае также можно реализовать UART, но работающий на более низкой скорости, что позволит избежать ошибок принятия данных. Демонстрационная программа 11x1_uart3. s43 позволяет реализовать UART, работающий на скорости 2400 бод. Программная ФАПЧ для подстройки DCO не требуется, так как синхронизация UART осуществляется от 32 кГц кварцевого автогенератора. В активном режиме вычислительное ядро синхронизируется от высокочастотного DCO. Также в этом примере, регистры RXTXData и BitCnt содержатся в ОЗУ.
Ссылки:
1. MSP430x11x1 Mixed Signal Microcontroller, Data Sheet, Texas Instruments
Literature Number SLAS241.
2. MSP430x1xx Family, User's Guide, Texas Instruments Literature Number
SLAU049.
174 Библиотека Компэла
Ь ///- Интерфейс с внешними устройствами
Подключение 12С-интерфейса к ЭСППЗУ серии 24Схх
Brian Merritt [slaal 15.pdf (Англ.)]
Данный пример применения описывает как, используя стандартную шину I2C, реализовать интерфейс между микроконтроллером семейства MSP430 и внешней EEPROM памятью. Приведенные схема включения и управляющая программа могут быть использованы для обеспечения интерфейса между любым микроконтроллером семейства MSP430 и EEPROM памятью или другим внешним устройством с I2C интерфейсом.
Введение
Микроконтроллеры семейства MSP430 имеют программируемую в схеме Flash или ОТР память. Но многим приложениям требуется дополнительная внешняя EEPROM память. Такая потребность может возникнуть при большом размере прикладной программы или при необходимости хранения больших информационных массивов. У микроконтроллеров с ОТР памятью или ROM памятью EEPROM может понадобиться для хранения обновленного программного обеспечения, калибровочных констант, серийных номеров или данных датчиков. Использование I2C шины - наиболее часто используемый метод ведения обмена данными между EEPROM памятью и микроконтроллерами.
Микроконтроллеры семейства MSP430 способны эмулировать выход с открытым коллектором, который необходим для реализации I2C интерфейса. В данном примере применения описывается, как реализовать такой интерфейс между микроконтроллером MSP430x11x1и 512 байтной EEPROM памятью 24LC04. Для реализации интерфейса не требуется дополнительных специфических приборов, а только используются аппаратные периферийные модули MSP430. Прикладная программа демонстрационной схемы считывает и записывает случайные ячейки внешней EEPROM памяти.
Прикладная программа разработана для ведения обмена данными с внешней EEPROM памятью, но небольшие доработки позволят вести обмен данными и с другими приборами, имеющими I2C интерфейс. Для реализации PC интерфейса задействовано всего 420 байт памяти программы. Остальная часть памяти программы используется для обеспечения интерфейса микроконтроллера с ПК (пользовательского интерфейса). Для этой подпрограммы требуется около 520 байт памяти программы. Для реализации PC интерфейса пользовательский интерфейс не нужен, он реализован только для демонстрации работы устройства.
Теория функционирования
Используя две любые доступные линии портов ввода-вывода общего назначения, MSP430 способен эмулировать выходы с открытыми коллекторами для
Библиотека Компэла
Глава 5. Подключение MSP430 к EEPROM серии 24Схх с помощью РС-интерфейса
управления линиями SDA и SCL интерфейса 12С. Это достигается за счет установки для этих выводов низкого выходного сигнала и использования прямой установки направленности выводов для задания логического уровня сигнала на линии. Всякий раз, когда необходимо установить на выходе высокий логический уровень, устанавливается бит направленности линии порта, который переводит линию порта в режим входа. А подтягивающий резистор сигнальной линии устанавливает на ней высокий логический уровень. Если требуется установить на линии низкий уровень, то вывод переводится в режим выхода. Атак как предварительно в порты был записан ноль, то на линии установится низкий логический уровень.
Перед записью случайного байта MSP430 посылает EEPROM стартовое условие. После этого передается управляющий байт. Управляющий байт состоит из кода прибора, к которому идет обращение, адреса блока памяти и бита определения последующей операции (см. рисунок 1). После этого EEPROM подтверждает получение байта. В ответ MSP430 передает адрес ячейки памяти, в которую будут записываться данные. EEPROM снова передает подтверждение приема. После этого MSP430 передает данные, которые записываются в указанную ячейку памяти. После того, как EEPROM подтвердит прием данных, MSP430 посылает условие останова.
Примечание: Биты, помеченные "X1 не имеют значения для семейства 24LC04
Рис. У. Управляющий байт для 24LC04 EEPROM
Считывание произвольного байта несколько отличается от записи. Основное отличие состоит в том, что управляющий байт передается дважды. Сначала- для установки требуемого адреса, а потом - для инициализации чтения. В первом случае бит чтения/записи имеет значение логического нуля, а во втором -логической единицы.
Прикладная программа демонстрационной схемы разработана для обеспечения возможности считывания/записи 512 байт EEPROM памяти 24LC04, но микросхемы памяти с меньшим объемом также будут считываться при условии, что старшие биты будут игнорироваться. При небольших доработках этой программы можно осуществлять обмен данными и с микросхемами памяти большего объема.
Интерфейс пользователя обеспечивает связь демонстрационной схемы с терминальной программой, запущенной на ПК. Обмен данными ведется в ASCII
Библиотека Компэла 177
f& Texas
INSiraJMENTS
///. Интерфейс с внешними устройствами
кодах. Терминальная программа должна быть настроена на ведение обмена данными со скоростью 9600 бод по протоколу 8N1.
Демонстрационная схема
Демонстрационная схема, приведенная на рисунке 2, питается непосредственно от RS232 последовательного порта персонального компьютера. Преобразование уровней сигналов выполняют два инвертора SN74AH1G04 производства компании TI. Если требуется полностью Ри$232-совместимый интерфейс, то можно использовать микросхему МАХ3221, которая также выпускается компанией TI. Два резистора необходимы для привязки сигнальных линий к шине питания. TPS77033 - производимый компанией TI стабилизатор с низким падением напряжения, который формирует из сигналов последовательного порта напряжение питания микроконтроллера и памяти.
Рис.2. Демонстрационная схема
Введение
SMbus это двухпроводной синхронный последовательный протокол, являющийся производным от I2C. Также, как и I2C, он использует линии последовательного тактирования (SCL) и данных (SDA). Для исключения неопределённого состояния на линии используются подтягивающие (pullup) резисторы или источники тока, а устройства, подключенные к шине должны иметь выходы типа «открытый коллектор» либо «открытый сток». Это соответствует монтажному «И» всех устройств, что означает, что каждое из устройств может либо перевести шину в состояние лог. «О», либо освободить её. Так как подключённые к шине устройства могут быть запитаны от различных напряжений, они не должны переводить линию в состояние лог. «1».
Все устройства разделяются на ведущие (master) и ведомые (slave). Ведущее устройство может инициировать передачу и формирует тактовый сигнал. Ведомое принимает либо передаёт данные, но при этом процесс передачи инициируется ведущим. Устройства могут иметь как признаки ведущего и ведомого одновременно, так и быть исключительно одним либо другим. Например, ведомое устройство может в критических случаях становиться ведущим и передавать системе сообщения о неисправности. Алгоритм такого поведения целиком определяется конкретной областью применения.
Каждое устройство на шине имеет уникальный 7-битный адрес. Это позволяет подключать к линии до 128 устройств, однако некоторые адреса являются зарезервированными. Различные коммерчески доступные устройства имеют адреса, присвоенные координационным комитетом SMBus.
При приёме и передаче данных используются семь различных протоколов. Это «Быстрая команда» (Quick Command), «Отправить байт» (Send Byte), «Принять байт» (Receive Byte), «Записать Слово/Байт» (Write Byte/Word), «Прочитать
Библиотека Компэла
Глава 6. Реализация шины SMBus на базе микроконтроллера MSP430
Слово/Байт» (Read Byte/Word), «Запрос состояния» (Process Call), и «Чтение/запись Блока» (Block Read/Write). Каждый протокол имеет собственный конкретный набор действий, но общая схема схожа для всех протоколов.
Передача всегда начинается с символа «Старт» (S). Этот символ передаётся переводом обеих линий в состояние лог. «1», последующим переводом линии SDA в состояние лог. «О» и, наконец, выставлением лог. «О» на шине SCL. После передачи стартовой последовательности, начинается передача 8-ми блоков, завершающаяся подтверждением (АСК). Подтверждение передаётся ведомым устройством путём перевода линии SDA в состояние лог. «О» во время передачи ведущим сигнала SCL Если линия SDA не была переведена в такое состояние за время импульса на шине SCL, это состояние называется неподтверждением (NACK). Первый 8-битный блок является 7-битным адресом ведомого устройства вкупе с битом, определяющим направление передачи во всех протоколах, за исключением «Быстрой команды». В последнем же данный бит собственно является командой. После передачи адреса и направления, ведущий ожидает подтверждения от ведомого. При этом он формирует одиночный импульс на линии SCL и контролирует перевод ведомым в это время линии SDA в состояние лог. нуля. Если подтверждение не получено, ведущее устройство прекращает передачу и повторяет её позднее. Эта операция также может использоваться для определения присутствия ведомого на шине. После получения подтверждения, передаётся либо получается очередной блок из 8-ми бит, либо передаётся символ останова (Р). Этот символ формируется переводом обеих линий в состояние лог. «О», последующим переводом линии SCL в состояние лог. «1» и завершается переводом в лог. «1» линии SDA. Остальные 8-битные блоки могут быть данными, командами либо следующей комбинацией адреса и бита чтения/записи. Точный формат каждого из протоколов можно найти в документе System Management Bus specification на сайте . Ввиду того, что на шине используется подключение устройств по принципу «монтажное «И»», она обладает механизмом арбитража. Если более одного ведущего устройства пытаются передавать данные, первый из них, «отпустивший» шину во время того, как оставшийся удерживает её в состоянии лог. «О» должен отдать арбитраж. Чтобы обеспечить эффективность такого метода, каждое ведущее устройство должно проверять состояние шины каждый раз после перевода её в состояние лог. «1». Если после этого шина удерживается в состоянии лог. «О», ведущее устройство должно прекратить передачу и повторить попытку позднее. В результате такого решения системы арбитража, устройства с меньшими адресами имеют приоритет над устройствами со старшими адресами. Если два ведущих пытаются начать передачу одновременно, тот из них, который передаёт старший адрес, первым освободит линию и потеряет, таким образом, приоритет.
Библиотека Компэла 181
f& Texas
Аппаратная часть
Рис. 1. Пример организации шины SMBus |
Библиотека Компэла |
На рис. 1 приведен пример подключения шины SMBus. В этом случае MSP430 подключен к смарт-батарее. Батарея питает шину и MSP430, но это не является обязательным, необходимым условием является лишь общая «зем-
Глава 6. Реализация шины SMBus на базе микроконтроллера MSP430
ля». Подтягивающие (pull up) резисторы обозначены как RP. Для уменьшения потребляемого тока, значения RP выбраны максимально возможными в рамках требований спецификации. Существуют также специальные драйвера шины SMBus, используемые вместо подтягивающих резисторов. Такие устройства обеспечивают максимальный ток на фронте и минимальный при низком уровне на шине.
Примечание:
Неиспользованный вывод Т это термистор. Он используется в блоках Li-Ion батарей для аварийных измерений в случае неисправности модуля батареи или шины SMBus.
Примеры реализации программы ведущего устройства шины SMBus
Библиотека Компэла
Глава 6. Реализация шины SMBus на базе микроконтроллера MSP430
42. Чтение данных смарт-батареи
Этот пример значительно объёмнее первого. В нём используются протоколы «Чтение слова», «Запись слова» и «Чтение блока» для связи со смарт-батареей. В примере считываются температура, напряжение, производитель, химическая разновидность и ёмкость батареи.
Также используется запись значения в регистр «Предупреждение об оставшейся ёмкости» (RemainingCapacityAlarm), записанное значение проверяется. Эти операции производятся циклически, результат отображается на ЖКИ. Пример демонстрирует использование более сложных протоколов и процесс обработки возвращаемых данных. В данной конфигурации программа протоколов SMBus запускается из EPROM отладочного модуля MSP430x33x (EVK part number MSP-EVK430x330), а пользовательская программа запускается из монитора этого модуля.
Заключение
Необходимость увеличения времени жизни батарей в переносных устройствах привела к разработке батарей со сложным химическим составом и повышению требований к технологиям мониторинга. Шина SMBus предоставляет удобный и чёткий интерфейс для мониторинга смарт-батарей, а сверхнизкое потребление микроконтроллера MSP430 делает его незаменимым для таких систем.
Ссылки:
1. SBS Implemented Forum, System Management Bus Specification, Version 1.1,12/11/98.
Приложение А. Программа ведущего устройства шины SMBus
*****************************************************
; Программа ведущего устройства шины SMBus, параметры ; передаются через стек
RAM_orig .set 00240h SP orig .set 005DEh |
Стартовый адрес в ОЗУ Указатель стека Размещение EPROM
EPROM .set 08850h
;-- Определения управляющих регистров
WDTCTL .equ 0120h WDTHold .equ 80h WDT_wrkey .equ 05A00h
Библиотека Компэла
Глава 6. ;PORT С POIE PODIR POIN POOUT ; port 2 P2IN P2OUT P2IE P2SEL P2DIR SDA SCL DNC OUT TDIR IN LCD1 LCDM IE1 IE2 IFG1 IFG2 block alcd |
; Размещение таблицы |
Библиотека Компэла
f& Texas
Из из
Библиотека Компэла
f& Texas
Из из
Библиотека Компэла
f& Texas
Библиотека Компэла
Глава 6.
Библиотека Компэла
Глава 6. Реализация шины SMBus на базе микроконтроллера MSP430
Протокол «Чтение блока» 9
Влияние на регистры: нет
Влияние на память: стек, максимум 40 байт, блок
памяти
Описание Шаг Направление
старт (start) из
адрес(address) из
запись(W) из
подтверждение(acknowledge) в
команда (command) из
подтверждение(acknowledge) в
старт (start) из
адрес(address) из
чтение(R) из
подтверждение(acknowledge) в
счётчик байт (byte count) в
подтверждение(acknowledge) из
данные (data) в
подтверждение(acknowledge) из
данные и АСК повторяются п раз
неподтверждение(NACK) из
стоп (stop) из
Параметры в стеке
флаг ошибкиеггог_йад младшая область памяти
low mem
счётчик байт byte count
указатель блока block pointer
команда command
адрес address старшая область памяти
high mem
Пример использования
PUSH | #00h |
PUSH | #00Bh |
PUSH | #0020h |
PUSH | #00550h |
PUSH | #00h |
место для кода ошибки поместить адрес в стек код команды "температура батареи" указатель на начало блока зарезервировать байт
Библиотека Компэла
Глава 6.
Библиотека Компэла
f& Texas
Библиотека Компэла
Глава 6. Реализация шины SMBus на базе микроконтроллера MSP430
; повторить сдвиг RET *****************************************************
; подтверждение (АСК) не принято, отправить STOP и busy *****************************************************
sbusy CALL #pbit ; отправить STOP и busy
ADD #02h, SP ; удалить данные из ; стека, так как ; инструкция RET ; не использовалась
MOV.B #00h, 28 (SP) ; код ошибки
POP R13 ; восстановление
; регистров
POP R12
POP Rll
POP R1C
POP R15
POP R14
POP R9
POP R8
POP R7
POP SR
RET *****************************************************
; Ожидание подтверждения (АСК) *****************************************************
ack
BIC.B #SDA, DIR ; выставить лог. «1»
; на линии SDA BIC.B #SCL, DIR ; выставить лог. «1»
; на линии SCL
; проверка удлинения тактового сигнала ; (clock low extending), чтобы не ; опережать ведомое устройство ;MOV #008h, Rll ; счётчик на ?50 мкс MOV #02FFh, Rll ; удлинённый счётчик
; для батареи ; PS100Z-20C
clkex MOV.B IN, RIO ; проверка шины DEC Rll JZ busy ; арбитраж - время
; истекло
AND.В #SCL, RIO ; проверка линии SCL JZ clkex
Библиотека Компэла
f& Texas
Библиотека Компэла
Глава 6.
Библиотека Компэла
f& Texas
Библиотека Компэла
Глава 6.
Библиотека Компэла
Глава 6. Реализация шины SMBus на базе микроконтроллера MSP430
Приложение В. Программа поиска адресов
*****************************************************
Программа поиска адресов *****************************************************
Программа сканирует шину SMBus на предмет подключенных устройств.
Начинает с адреса 0x00 и перебирает все 128 возможных адресов.
Текущий адрес при сканировании отображается на правой части ЖКИ
На левой части отображается адрес последнего из найденных устройств.
Когда устройство найдено, программа приостанавливается, адрес переносится
в левую часть ЖКИ, после чего выполнение продолжается .
Наличие устройства на шине проверяется посылкой стартовой последовательности, адреса устройства и ожидания подтверждения. Далее; тестируется следующий адрес.
Программа поиска адресов является примером удаления неиспользуемых частей кода. т.к. ей не требуются некоторые протоколы, некоторые подпрограммы верхнего и нижнего уровней были удалены. *****************************************************
RAM orig .set 00240h ; Стартовый адрес
SP orig .set 005DEh ; указатель стека
;-- Определения управляющих регистров--------------
WDTCTL | .equ | 0120h |
WDTHold | .equ | 80h |
WDT wrkey | .equ | 05A00h |
;PORT 0 | ||
POIE | .equ | 015h |
PODIR | .equ | 012h |
POIN | .equ | OlOh |
P0OUT | .equ | Ollh |
; port 2 | ||
P2IN | .equ | 028h |
P2OUT | .equ | 029h |
P2IE | .equ | 02Dh |
P2SEL | .equ | 02Eh |
P2DIR | .equ | 02 Ah |
SDA | .equ | 020h |
Библиотека Компэла
Глава 6.
Библиотека Компэла
Глава 6.
Библиотека Компэла
f& Texas
Библиотека Компэла
Глава 6. |
Библиотека Компэла
f& Texas
Библиотека Компэла
Глава 6.
Библиотека Компэла
Библиотека Компэла
Глава 6. Реализация шины SMBus на базе микроконтроллера MSP430
******************************************************
; Вектора прерываний ******************************************************
.sect "Int Vect",05FFh-l ; с программой
; монитора
.word RESET ; POR, внеш.
; Reset,
; Watchdog
.end
Приложение С. Программа работы со смарт-батареей
*****************************************************
Программа SBData
Читает температуру, напряжение, производителя,
хим. конфигурацию, ёмкость, и предупреждение
об оставшейся ёмкости из монитора батареи с шиной
SMBus.
Также производится запись в регистр «Предупреждение
об оставшейся ёмкости» RemainingCapacityAlarm).
В данном частном случае применялся батарейный смарт-модуль PowerSmart;PS100Z-200
Другие данные из батареи можно читать, меняя команды. Контроллер смарт-батареи PowerSmart поддерживает стандарт SMBus VI.О и спецификацию Smart Battery data
Настоящая конфигурация программы написана для использования с пользовательской программой под управлением программы монитора на отладочной плате 337 EVK, подпрограммы SMBus находятся в EPROM. Также требуется Таблица ASCII символов для ЖКИ Здесь использован файл ASCII.txt. На него ссылается указатель alcd.
*****************************************************
RAM orig | .set | 00240h |
SP orig | .set | 005DEh |
EPROM | .set | 08850h |
; Стартовый адрес ; указатель стека ; Размещение EPROM
;-- Определения управляющих регистров----------------
WDTCTL .equ 0120h
WDTHold .equ 80h
WDT_wrkey .equ 05A00h
;PORT 0
Глава 6. Реализация шины SMBus на базе микроконтроллера MSP430
; для протокола записи
; слова skpO ; Чтение температуры
CALL #show_clr
PUSH #00h ; место для кода ошибки PUSH #000Bh ; поместить адрес в стек PUSH #008h ; поместить команду
; чтения температуры
; батареи PUSH #00h ; зарезервировать байт
; для данных PUSH #00h ; зарезервировать байт
; для данных CALL #rwp
POP RIO ; поместить данные в R1C POP Rll ; поместить данные в Rll ADD #04h, SP ; освободить место
; команды и адреса
POP R9 ; читать код ошибки CMP #00h, R9
JZ skpO ; повтор при неудаче RLA R11 RLA R11 RLA R11 RLA R11 RLA R11 RLA R11 RLA R11 RLA R11 XOR RIO, R11 ; объединить 2 байта
; данных MOV Rll, R12 SUB #0AAAh, R12; перевод в градусы
; Цельсия CALL #display ; вызов подпрограммы
; отображения XOR.B #40h, LCD1+1 ; добавить децимальную точку
MOV.B alcd+'T', LCD1+5
CALL #delay ; вызов подпрограммы
; задержки
skpl ; чтение напряжения
CALL #show_clr
Глава 6.
Библиотека Компэла
f& Texas
Библиотека Компэла
Глава 6.
Библиотека Компэла
Глава 6.
Библиотека Компэла
Глава 6.
Библиотека Компэла
f& Texas
Библиотека Компэла
Глава 6. Реализация шины SMBus на базе микроконтроллера MSP430
POP | R13 |
POP | R12 |
POP | Rll |
POP | RIO |
POP | R15 |
POP | R14 |
POP | R9 |
POP | R8 |
POP | R7 |
POP | SR |
RET |
Протокол | «Читать слово» 7 | ||
Влияние Влияние | на регистры: нет на память: стек, максимум | байт | |
Описание | Шаг | Направление |
старт (start) из
адрес(address) из
чтение/запись(R/W) из
подтверждение(acknowledge) в ?
команда (command) из
подтверждение(acknowledge) в ?
старт (start) из
адрес(address) из
чтение/запись(R/W) из
подтверждение(acknowledge) в ?
данные (data) в ?
подтверждение(acknowledge) в ?
данные (data) в ?
подтверждение(acknowledge) в ?
стоп (stop) из
Параметры в стеке
флаг ошибкиеггог_йад младшая область памяти
low mem младший байт
данных low data byte
старший байт
данных high data byte
команда command
Библиотека Компэла
Глава 6.
Библиотека Компэла
f& Texas
Библиотека Компэла
Глава 6.
Библиотека Компэла
f& Texas
Библиотека Компэла
Глава 6.
INSiraJMENTS
///. Интерфейс с внешними устройствами
.sect "Int_Vect",OFFFFh-1 .word RESET
: .end
.sect "Int_Vect",05FFh-l
.word RESET
.end
без программы монитора POR, внеш. Reset, Watchdog
с программой монитора POR, внеш. Reset, Watchdog
Приложение D. Программа ведомого устройства шины SMBus
****************************************
; Программа ведомого устройства шины SMBus ******************************************************
USER END | . set | OFFFFh |
Device | .set | |
;-- Определения уг | 1равляюи | |
SRE | .equ | Oh |
IE1 | .equ | Oh |
IE2 | .equ | Olh |
IFG1 | .equ | 02h |
IFG2 | .equ | 03h |
WDTCTL | .equ | 0120h |
WDTHold | .equ | 80h |
WDT wrkey | .equ | 05A00h |
CPUOFF | .set | lOh |
OSCOFF | . set | 20h |
;Порт PORT С | ||
POIE | .equ | 015h |
PODIR | .equ | 012h |
POIN | .equ | OlOh |
POOUT | .equ | Ollh |
POIES | .equ | 014h |
POIFG | .equ | 013h |
;Порт port 2 | ||
P2IN | .equ | 028h |
P2OUT | .equ | 029h |
P2IE | .equ | 02Dh |
P2SEL | .equ | 02Eh |
Библиотека Компэла
Глава 6. Реализация шины SMBus на базе микроконтроллера MSP430
P2DIR | .equ | 02 Ah |
LCD1 | .equ | 031h |
LCDM | .equ | 030h |
OUT | .equ | P0OUT |
IN | .equ | POIN |
DIR | .equ | PODIR |
SDA | .equ | OlOh |
SCL | .equ | 020h |
DNC | .equ | 030h |
; Расположение таблицы | ||
Table | .equ | 0300h |
; Reset : инициализация процессора
.sect "onreset",OFFFEh
.word INIT
.sect "intv", OFFEOh
.word rbp
.sect "MAIN",0C000h INIT
.if Device — 325 MOV #03C0h, SP
.endif
.if Device — 337 MOV #05D0h, SP
.endif MOV #(WDTHold+WDT_wrkey),&WDTCTL
; Остановить сторожевой таймер Watchdog
; Timer
BIC.B #DNC, DIR BIC.B #DNC, OUT BIS.В #SDA, POIE BIS.В #SDA, POIES |
; Инициализация порта port2
Биты 1 и 0 - входы установить лог. «1» на линиях SDA и SCL разрешить прерывания по Р0.4
прерывание по спаду на Р0.4 RESET nready ;шина не находится в состоянии готовности
;/ нет стартовой посылки
waddr ; возврат сюда, если неверный адрес ; устройства MOV.B #00Oh, error ; сброс флага
Библиотека Компэла
Глава 6.
Библиотека Компэла
f& Texas
Библиотека Компэла
Глава 6.
Библиотека Компэла
f& Texas
Введение
Системы передачи данных по инфракрасному каналу связи появились в связи с необходимостью ведения обмена данными между переносными компьютерами и периферийным оборудованием. IrDA стандарт является дешевым и практическим протоколом передачи данных по инфракрасному каналу связи.
MSP430 - мощный микроконтроллер, способный выполнять различные прикладные программы, в том числе и реализовать последовательный протокол передачи данных IrDA. Микроконтроллер имеет 16- разрядную архитектуру и низкое потребление, что позволяет ему выполнять обмен данными на средних и высоких скоростях в системах с автономным питанием. В данном примере применения описывается использование микроконтроллера MSP430x112 в качестве IrDA кодера-декодера, реализованного на отладочной IrDA плате.
Модуль IrDA приемопередатчика может использоваться для обмена данными между компьютерами по RS232 порту. Для этого каждый компьютер должен иметь стандартный RS232 порт и некоторое обычное терминальное программное обеспечение, типа программы Hyperterminal, которая имеется в операционных системах Windows 3.11, Windows95 и WindowsNT.
Приведенная прикладная программа может использоваться и на других микроконтроллерах семейства MSP430, содержащих драйверы ЖКИ, аналого-цифровые преобразователи и аппаратные умножители.
2. Технические требования к IrDA интерфейсу на физическом
уровне
Технические требования к IrDA интерфейсу на физическом уровне предназначены для определения параметров полудуплексного инфракрасного канала связи, позволяющего вести обмен данными на расстояния до 1 М. Полный
Таблица 1. Технические требования к скорости потока и длительности
IrDA кодер-декодер на микроконтроллере MSP430x112
Краткий обзор модуля
На рисунке 2 приведена структурная схем IrDA модуля приемопередатчика. Основой модуля является микроконтроллер MSP430x112, который выпол-
Библиотека Компэла
Глава 7.
Управляющая программа ШР430x112
В следующем разделе описаны некоторые проблемы программирования и детально обсуждены вопросы использования модуля таймера TIMER_A для кодирования и декодирования последовательного потока данных.
Законченный листинг прикладной программы для управляющего микроконтроллера MSP430x112 приведен в приложении А.
Библиотека Компэла
Глава 7.
Библиотека Компэла
f& Texas
Установки
Выбор скорости передачи данных
IrDA модуль может работать на шести различных скоростях передачи данных в пределах от 2.4 кбит/сек до 115.2 кбит/сек. Скорость передачи данных должна быть выбрана перед началом сеанса связи.
Таблица 2. Установка скорости передачи данных
DATA RATE | JUMPER | ||
J3 | J2 | Л | |
2.4 kbit/s | L | L | L |
2.4 kbit/s | L | L | H |
19.2 kbit/s | L | H | L |
Библиотека Компэла
f& Texas
Описание схемы
На рисунке 7 показана принципиальная схема IrDA модуля. При использовании кварцевого резонатора с резонансной частотой выше 3 МГц, MSP430x112 требуется 5 В питание. Так как RS232 драйвер (HIN232)
Глава 7.
Библиотека Компэла
f& Texas
Библиотека Компэла
Глава 7.
K-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k r
; Инициализация генератора скорости обмена данными
; - сканирование перемычки
; - установка скорости ведения обмена данными
init_BAUDRATE
PUSH R5
CLR R5
BIC #0FFF8H,R5 MOV.B R5,STATUS 1 |
MOV.B &P2IN,R5 ; сканирование состояния перемычки и пересылка его в регистр R5
запоминание скорости обмена данными
Библиотека Компэла
f& Texas
Библиотека Компэла
Глава 7.
Библиотека Компэла
Глава 7.
Библиотека Компэла
f& Texas
Библиотека Компэла
Глава 7.
Библиотека Компэла
f& Texas
Библиотека Компэла
Глава 7.
Библиотека Компэла
Глава 1.
Библиотека Компэла
Глава 2. Ультразвуковое измерение дальности на MSP430
X t (дюймов). Так как звуковые волны преодолевают удвоенное расстояние между излучателем и предметом, реальное расстояние между источником и объектом будет равно 6/2.
Библиотека Компэла 295
f& Texas
INSiraJMENTS
IV. Примеры конкретных применений
фильтрацию питания и дожжен быть расположен как можно ближе к выводам питания. 14-выводный разъём Л предназначен для подключения интерфейса JTAG к MSP430 для внутрисхемного программирования и отладки при помощи MSP430 flash emulation tool. Светодиод LED1 сигнализирует о циклах измерения. Вывод порта Р1.5 сконфигурирован как выход частоты ACLK, требуемой для УЗ-излучателя.
Рис. 1. Схема прибора
Библиотека Компэла
Глава 2. Ультразвуковое измерение дальности на MSP430
Цепь выходного драйвера раскачки излучателя запитана непосредственно от 9-вольтовой батареи и обеспечивает на выходе размах сигнала 18 VPP. Это напряжение получается при помощи мостовой схемы на 4-х инверторах U4-CD4049. Data sheet на CD4049 по ссылке [6]. Один из инверторов вращает фазу сигнала на 180° для одного из плеч драйвера, на второе плечо поступает неинвертированный сигнал. При таком построении драйвера на выходе обеспечивается размах сигнала 18 VPP, необходимый для излучателя. По два инвертора соединены в параллель для удвоения выходного тока. Конденсаторы С6 и С7 обеспечивают развязку излучателя по постоянному току. Т.к. CD4049 запитан от 9 В, a MSP430 от 3.6 В, уровень логического сигнала не согласован. Биполярный транзистор Q1 служит преобразователем уровня.
Операционный усилитель U3 это 5-выводный ОУ с высокой скоростью нарастания выходного сигнала TLV2771 производства TI, документация на который расположена по ссылке [5]. Этот усилитель имеет широкую полосу сигнала и обеспечивает высокое усиление на частоте 40кГц. ОУ включен по инвертирующей схеме. КУ устанавливается резисторами R7 и R5 и равен 55, С5 служит для частотной коррекции. R3 и R4 создают смещение на неинвертирующем входе ОУ для корректной работы с однополярным источником питания. Усиленный ультразвуковой сигнал является двухполярным относительно постоянного уровня в данной точке. Высокая добротность приёмника RX1 обеспечивает требуемую избирательность и ослабление частот, кроме 40 кГц. Выход ОУ подключен ко входу САО компаратора Comparator_A через вывод порта Р1.6. Опорное напряжение компаратора Comparator_A выбрано от внутреннего источника 0.5 VCC. Пока не принято ультразвуковое «эхо» уровень напряжения на входе САО несколько меньше, чем на опорном СА1. При приёме сигнала уровень на входе возрастает выше опорного, при этом переключается выход компаратора Comparator_A CAOUT. Резистором R3 осуществляется точная подстройка чувствительности и, соответственно, оптимального диапазона измерения.
MSP430 и усилитель сигнала УЗ-приёмника питаются от управляемого источника 3.6 В, подключенного к 9-вольтовой батарейке. Источник выполнен на стабилизаторе с низким падением напряжения на регулирующем элементе марки TPS77001. Данная м/сх выпускается фирмой TI, информацию можно найти по ссылке [4]. Резисторы R1 и R2 устанавливают напряжение на выходе стабилизатора на уровне 3.6 В. Конденсаторы С1 и С2 рекомендуются типовой схемой включения стабилизатора. Передатчик питается непосредственно от 9-вольтовой батареи. Выключатель S1 управляет питанием прибора.
На рис.2 приведена осциллограмма пачки из 12 импульсов частотой 40 кГц. Обратите внимание, что напряжение «от пика до пика» составляет 19.2 В. Синусоидальный «звон» на вершинах прямоугольных импульсов вызван резонансом излучателя.
Библиотека Компэла 297
Тг Texas
INSiraJMENTS
IV. Примеры конкретных применений
—^------------- 1 |
M-tD.OllS Л'Mi J S.DBV
■ ■''Z0H.0CH)|J5
Рис.2. Осциллограмма «пачки» 40-килогерцовых импульсов на выходе передатчика
На рис. 3 изображены осциллограммы для полного цикла измерения. Верхняя осциллограмма показывает пачку из 12 40-килогерцовых импульсов на
Рис.З. Осциллограммы для 1-го измерительного цикла
- Библиотека Компэла
Глава 2. Ультразвуковое измерение дальности на MSP430
выходе излучателя. На следующей осциллограмме показан усиленный выход приёмника (вывод 1 ОУ). Первая «пачка» - это сигнал, принятый непосредственно с передатчика и проигнорированный микроконтроллером. Следующая «пачка» - это отражённое эхо, этот сигнал используется в MSP430 для измерения. На последней осциллограмме показан измеренный микроконтроллером интервал времени. Он соответствует времени распространения ультразвукового сигнала от прибора до объекта и зависит от измеряемого расстояния.
Программа Ultrasonic.s43
Библиотека Компэла
Глава 2. Ультразвуковое измерение дальности на MSP430
подпрограммой МиНОО. 32-битный результат умножения сохраняется в переменных htX100_msw и htX100_lsw. После этого 32-битный результат делится на 6 и полученное значение записывается в ячейку DIGITS. В этой переменной значение хранится в шестнадцатеричном виде. Подпрограмма hex2bcd конвертирует его в двоично-десятичный формат (BCD), при этом две последние цифры двоично-десятичного числа отбрасываются чтобы скомпенсировать предыдущее умножение на 100. Полученное двухразрядное число записывается обратно в ячейку DIGITS.
Обработчик прерывания базового таймера BTJSR
Подпрограмма обработки прерываний базового таймера Basic Timeri BTJSR изменяет биты статусного регистра SR, находящегося в стеке таким образом, чтобы обеспечить функционирование MSP430 в активном режиме после возврата из подпрограммы обработки прерываний. Это требуется для того, чтобы MSP430 продолжил выполнение программы, следующей за инструкцией LPM3 в основном цикле Mainloop.
Индикация Display
Эта подпрограмма обновляет информацию на двухцифровом статическом ЖКИ используя информацию, содержащуюся в переменной DIGITS. Данные для линий сегментов статического ЖКИ хранятся в таблице LCD_Tab. Загрузка в память ЖК требуемых данных для сегментов осуществляется выборкой из таблицы LCD_Tab значения, соответствующего числу, хранящемуся в переменной DIGITS.
Pound;. Задержка Delay
Эта подпрограмма обеспечивает программную задержку с требуемым 16-битным значением. Значения в регистрах не изменяются, т.к. для счёта используется переменная, расположенная вверху стека (TOS). После окончания задержки указатель стека (SP) инкрементируется, таким образом, перед возвратом из подпрограммы ему возвращается первоначальное значение.
Заключение
Такие периферийные устройства, как аналоговый компаратор Comparator А, 16-битный таймер Timer_A с аппаратными регистрами захвата-сравнения, базовый таймер Basic Timer! и драйвер ЖКИ значительно упрощают разработку ультразвукового дальномера и обеспечивают однокристальное решение. Средний потребляемый ток прибора 1.3 мАпри измерении расстояния в 15 дюймов. Сюда входит собственное потребление LDO-стабилизатора U2, операционного усилителя U3, и КМОП-инвертера U4. Только ОУ потребляет 1 мА, таким обра-
Библиотека Компэла301
Ь IV. Примеры конкретных применений
зом, вся оставшаяся схема потребляет ЗООмкА. Ток светодиода во включенном состоянии - 5 мА. MSP430 потребляет в среднем 2.1 мкА с учётом постоянно включенного ЖКИ. Это стало возможным благодаря использованию преимуществ функций ультранизкого энергопотребления MSP430. Основное время MSP430 находится в режиме пониженного потребления LPM3, ресурсы ЦПУ использованы всего на 5.6%.
Т.к. скорость звука зависит от температуры, измерение расстояния будет иметь большую погрешность при температурах, отличающихся от комнатной. Для повышения точности измерения во всём диапазоне температур прибор может быть дополнен простым измерителем температуры натермисторе и соответствующей коррекцией показаний. Измеренное расстояние и температура также, по желанию, могут быть сохранены во встроенной флеш-памяти. Добавление дополнительного каскада усиления сигнала приёмника и использование мультиплексированного ЖКИ с любым желаемым количеством цифр позволит увеличить диапазон измерения.
Ссылки:
1. MSP430x41x Mixed Signal Microcontroller data sheet SLAS340
2. MSP430x4xx Family User's Guide, SLAU056
3. MSP430 Family Mixed-Signal Microcontrollers, application report SLAA024
4. TPS770xx Ultra Low-Power LDO Linear Regulators, data sheet SLVS210
5. TLV277x Family of High-Slew-Rate Operational Amplifiers, data sheet
SLOS209
6. CD4049UB, CMOS Hex Inverting Buffer/Converter, data sheet SCHS046A
Приложение: Листинг программы
***************************************************** *****************************************************
Демо - программа ультразвукового дальномера на базе MSP430F413
*****************************************************
#include <msp430x41x.h> /Стандартные определения Назначение регистров
#define DIGITS Rll #define Result RIO #define IRBT R9 #define IROP1 R4 #define IROP2L R5 #define IROP2M R6
Библиотека Компэла
Глава 2.
Библиотека Компэла
f& Texas iNSiraJMENTS |
bis.w bic.b |
TimerCLR |
bis .w mov.w mov.w bis .w bis .b bic.b mov.w |
#LPMO,SR #BIT5,&P1SEL |
IV. Примеры конкретных применений
; Ждём прерывания от
; CCR1
; Отключить ACLK на
; порту PI.5
#TACLR,&TACTL #36,&CCR1 |
#CCIE,&CCTL1 #LPM0,SR #CAON,&CACTL1 #CAIFG,&CACTL1 |
Пауза для установления передатчика Прерывания в режиме сравнения
Ждём прерывания от CCR1
Включить компаратор Comparator_A Очистить флаг прерывания от Comparator_A #CMO+CCISO+SCS+CAP+CCIE,&CCTL1
push &TAR bis.w #LPM0,SR clr.w &CCTL1 bic.b #BITO,&P10UT bit.b #CAIFG,&CACTL1 j z Next mov.w &CCR1,Result sub.w @SP+,Result add.w #48,Result |
Прерывание по фронту от компаратора TOS = TAR в начале измерения Ждём прерывания от CCR1 (Эхо) Запрещаем CCTL1 Выключаем светодиод Проверяем, принято ли эхо
если нет - перегрузка Result = TAR (CCR1) Result = время Компенсируем время на излучение пачки импульсов и задержку 36 циклов на установление передатчика
■ -k-k-k-k-k-k-k-k-k-k-k-k-k-k ^э "P.OTlTTTOT ТТ/ГО
call #Math calc
swpb DIGITS
Вызов подпрограммы
математических
вычислений
Сдвиг на две цифры
для эмуляции деления
на 100
Библиотека Компэла
Ультразвуковое измерение дальности на MSP430 |
Глава 2.
jmp Mainloop Next mov.w #0beh,DIGITS jmp Mainloop
Следующий цикл измерения Вывести на ЖКИ «Е» если не принято эхо
Init Device mov.w bis .b |
SetupP2 mov.b bis .b SetupP6 mov.b bis .b SetupBT mov.b |
; Инициализация MSP430x41x
■k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-
#WDTPW+WDTHOLD,&WDTCTL
Остановить сторожевой таймер WDT
#030h,&FLL_CTL0 ; Включить встроенные
конденсаторы генератора
call | #Delay | ||
mov. | b | #03fh, | &SCFQCTL |
call | #Delay | ||
SetupPl mov. | b | #000h, | &P1OUT |
bis. | b | #0bfh, | &P1DIR |
Задержка для стабилизации генератора MCLK = 4 0КГцХ64 = 2.5 6МГц
задержка для стабилизации умножителя частоты FLL Очистить выходную защёлку порта Р1 Неисполь зуемые выводы назначить выходами
bis.b #040h,&PlSEL |
#000h,&P2OUT #0ffh,&P2DIR #000h,&P6OUT #0ffh,&P6DIR |
Вывод будет использован для компаратора Сотр_А Очистить выходную защёлку порта Р2 Неисполь зуемые выводы назначить выходами
Очистить выходную защёлку порта Р2 Неисполь зуемые выводы назначить выходами
#BTFRFQO+BTFRFQ1+BTIP2+BTDIV,&BTCTL
Разрешить базовый таймер ВТ с частотой
Библиотека Компэла
f& Texas
INSiraJMENTS
IV. Примеры конкретных применений
SetupCA mov.b mov.b mov.b |
#CAPD6,&CAPD #P2CA0,&CACTL2 |
обновления ЖК 150 Гц и прерываниями каждые 250 мс Запретить буфер в компараторе Р1.6 - вход компаратора #CARSEL+CAREF1+CAON,&CACTL1
Включить компаратор, внутр. опора l/2Vcc SetupLCD bis.b #LCDON+LCDSON+LCDSG0_7,LCDCTL
Вкл. модуль ЖК
в статическом режиме
ClearLCD mov #15,R15 |
Очистка 15 знакомест
ЖКИ
mov. | b | #LCDMEM,R14 |
Clearl mov. | b | #0,0(R14) |
inc. | b | R14 |
dec | R15 | |
jnz | Clearl |
bis.b #BTIE,&
eint ret
Запись нулей в дисплейную память
Все сегменты очищены?
Если нет - чистим
дальше
Разрешить прерывания
от базового таймера
Basic Timer
Общее разрешение
прерываний
ВТ ISR
/Обработчик прерываний базового таймера /Basic Timer /после RETI ЦПУ остаётся ;в активном режиме
bic #LPM3,0(SP) reti
Очистить биты LPM3
в стеке TOS
при возврате из пре
рывания
TAX_ISR /Общий обработчик прерывания для
; регистров захвата сравнения CCR1-4 ; и переполнения таймера
Библиотека Компэла
Глава 2.
Библиотека Компэла
InstrumInis
IV. Примеры конкретных применений
rra.w R12 inc.b R15 mov.b R12,0(R15) ;
;
rra.w R12 inc.b R15 mov.b R12,0(R15) ;
;
rra.w R12 inc.b R15 mov.b LCDTab(R13)
mov.b R12,0(R15) ;
rra.w R12 inc.b R15 mov.b R12,0(R15) ;
;
rra.w R12 inc.b R15 mov.b R12,0(R15) ;
;
rra.w R12 inc.b R15 mov.b R12,0(R15) ;
;
rra.w R12 ret
Вывод сегментов е & f младшей тетрады в ЖКИ
Вывод сегментов g & h младшей тетрады в ЖКИ
,R12 ; Вывод старшей
; тетрады во 2-ю цифру
; ЖКИ
Вывод сегментов а & b старшей тетрады в ЖКИ
Вывод сегментов с & d старшей тетрады в ЖКИ
Вывод сегментов е & f старшей тетрады в ЖКИ
Вывод сегментов g & h старшей тетрады в ЖКИ
; Определение ЖКИ
/Определение сегментов
а | equ | OOlh |
b | equ | OlOh |
с | equ | 002h |
d | equ | 020h |
е | equ | 004h |
f | equ | 040h |
Библиотека Компэла
Глава 2. |
Библиотека Компэла
f& Texas
INSiraJMENTS
IV. Примеры конкретных применений
call #Hex2bcd
calc over ret
Преобразование 16-битного двоичного числа в двоично-десятичное (BCD) Result xx.xx Возврат из подпрограммы
Mull00
Подпрограмма умножения на ЮС входные данные Result 16 бит и константа 64h (100d) 16 бит на выходе 32 бит переменные htXIOO msw & htXIOO lsw
mov.w #100,IROP1
mpyu |
clr.w htXIOO lsw
clr.w | htXIOO msw | |
macu | clr.w | IROP2M |
L$002 | bit .w | #1,IROP1 |
jz | L$01 | |
add.w | Result,htX | |
addc.w | IROP2M, ht | |
L$01 | rla. w | Result |
rlc. w | IROP2M | |
rrc. w | IROP1 | |
jnz | L$002 |
ret
Загрузить 1-ый множитель
100 в IROP1
Очистить буфер для младшей
части слова
И для старшей
Очистить 2-й множитель
Проверка младшего бита
Если 0, не делать ничего 0_lsw ; Если 1, добавить
; Result к произведе-; нию 0 0 msw ;
Произведение X 2
Проверка следующего бита Если в carry "1", то завершаем
Divide ; Подпрограмма деления 32-битного числа на
; 16-битное
; входные данные 32-бит htXIOO msw & htXIOO
; lsw и 16-битная константа #06, на выходе
; 16-битная переменная DIGIT
clr.w DIGITS ; Очистка буфера для нового
; результата mov.w #17,IRBT ; Организация цикла
Библиотека Компэла
Глава 2.
Библиотека Компэла
IV. Примеры конкретных применений
COMMON INTVEC ; Вектора прерываний MSP430x41x ******************************************************
г
ORG BASICTIMER_VECTOR BT_VEC DW BT_ISR ; Вектор базового таймера
; Basic Timer ORG TIMERA1_VECTOR ; Вектор таймера
; Timer A TIMA_VEC DW TAX_ISR
ORG RESET_VECTOR RESET_VEC DW RESET ; POR, внешний Reset,
; сторожевой таймер Watchdog
z-k-k-k-k-k-k-k-k-k-k-k-k-t
END
Введение
Дополнительная возможность декодирования устройствами на основе микроконтроллеров семейства MSP430 сигналов телевизионных ИК систем дистанционного управления - наиболее дешевый способ реализации беспроводного ИК канала связи. Способность декодировать ИК сигналы может быть добавлена в любое устройство на базе микроконтроллера MSP430x11x (1), при этом используется только один его таймер захвата/сравнения Timer_A3 и 200 байт памяти программы, плюс необходим дополнительный дешевый внешний ИК приемник. На рисунке 1 можно увидеть демонстрационную схему ИК декодера. Для демонстрации работы декодера поступившие на линию Р1.0 порта ввода-вывода последовательные пакеты данных передаются в персональный компьютер, а так же при принятии сигнала «увеличение канала» («channel +») зажигается светодиод.
В RC5 и SIRC протоколах передача последовательных пакетов данных осуществляется путем модуляции ИК несущей сигналом с частотой 40 кГц. Логическая единица передается ИК импульсами с частотой 40 кГц, а отсутствие этих импульсов интерпретируется как передача нуля. Модуляция ИК сигнала
Библиотека Компэла
Глава 3.
Библиотека Компэла
Ь IV. Примеры конкретных применений
няет прием и передачу данных аппаратно без использования вычислительного ядра и других системных ресурсов операционной системы микроконтроллера. Для передачи принятых данных в персональный компьютер на базе регистра захвата/сравнения CCR0 реализован UART, который использует в качестве выхода линию порта Р1.1.
Демонстрационная схема
Демонстрационная схема питается через 3.3 В стабилизатор с низким падением напряжения TPS76033 от последовательного порта персонального компьютера. Только один маломощный светодиод используется для индикации приема команды «увеличение канала» («channel +»). Передача данных от линии порта Р1.1 осуществляется через инвертор SN74AHC1G04 производства компании TI. Если необходимо реализовать полный RS232 интерфейс, то можно использовать низкопотребляющий 3 В преобразователь уровней МАХ3221. сразу после сброса запускается 32 768 Гц автогенератор, которо-
Библиотека Компэла
Глава 3. Декодирование ТВ ИК ДУ-сигналов используя Таймер A3
му не требуются даже внешние конденсаторы сдвига фазы, так как они уже встроены в MSP430.
Библиотека Компэла 317
f& Texas
INSiraJMENTS
IV. Примеры конкретных применений
В данном примере применения после того, как оканчивается прием ИК пакета при помощи фоновой подпрограммы, прерывание от CCR1 возвращает вычислительное ядро в активный режим путем сброса битов активизации LPM3 режима в сохраненном значении регистра SR. Это очень удобный способ управления работой основной программы с обработкой событий по прерыванию. Полученный пакет ИК данных преобразуется в четыре двоичные кодовые комбинации в ASCII коде и передается в персональный компьютер по UART со скоростью 2400 бодов в формате 8N1 при помощи подпрограммы TXIR_2_PC. Четырем ASCII кодовым комбинациям предшествуют кодовые комбинации перевода корретки и перехода на новую строку. Активная стадия основной программы заканчивается вызовом подпрограммы LED_Disp. Если принята команда увеличения канала «channel +», то подпрограмма LED_Disp зажжет светодиод, подключенный к линии порта Р1.0. После этого микроконтроллер переходит в режим LPM3, ожидая следующего пакета данных.
Первый захват
С|
Мс
S1 SO С А4 A3 А2 А1 АО С5 С4 СЗ С2 С1 СО
Старт Контрольный Код адреса бит
Код команды
Рис.2. Инвертированный пакет данных стандарта RC5, поступающий на вход MSP430
Библиотека Компэла
Глава 3. Декодирование ТВ ИК ДУ-сигналов используя Таймер A3
значение логической единицы. Контрольный бит изменяет свое значение при каждом нажатии кнопки на пульте дистанционного управления. Пять адресных бит предназначены для идентификации 32 различных типов устройств. Шесть командных бит предназначены для передачи 64 команд управления. Длительность бита в стандарте RC5 довольно высокая -1.78 мс, причем половину этого периода передается высокий сигнал, а другую половину- низкий сигнал. Длительность всего 14 битного пакета данных равна приблизительно 25 мс.
Библиотека Компэла
Глава 3.
Декодирование ТВ ИК ДУ-сигналов используя Таймер A3
дача данных в протоколе SIRC ведется младшим битом вперед. Первым после стартового бита принимается бит СО.
На рисунке 3 показан инвертированный ИК приемником пакет данных SIRC протокола на входе MSP430.
Рис.3. Инвертированный пакет данных SIRC протокола на входе MSP430
Библиотека Компэла
Глава 3. Декодирование ТВ ИК ДУ-сигналов используя Таймер A3
6. Программа UART
Функция UART реализована при помощи модуля захвата/сравнения CCR0 и использует два регистра: RXTXData (R4) и BitCnt (R5). Полное описание функционирования UART можно найти в других примерах применения. Отслеживание принятых данных при помощи персонального компьютера.
Для принятия пакетов данных, переданных описанным демонстрационным устройством, может быть использована любая терминальная программа. Содержимое 16-разрядного регистра IRData передается в формате с правым выравниванием в виде четырех ASCII символов. Программа терминала должна быть настроена на прием данных в формате 8N1 со скоростью 2400 бод.
Ссылки:
1.MSP430x11x1 Mixed Signal Microcontroller datasheet, Texas Instruments
literature number SLAS241
2. MSP430x1xx Family Users Guide, Texas Instruments literature number
SLAU049
3. Implementing a UART Function with Timer_A3, Texas Instruments literature
number SLAA078
4. Photo Module for PCM Remote Control System, VISHAY literature number
82052
Приложение А: программа 11x1_SIRC.s43.txt
****************************************************
ЭТА ПРОГРАММА ПОСТАВЛЯЕТСЯ В ВИДЕ «КАК ЕСТЬ». КОМПАНИЯ TI НЕ ДАЕТ НИКАКИХ ГАРАНТИЙ И НЕ НЕСЕТ НИКАКОЙ ОТВЕТСТВЕННОСТИ ЗА ВОЗМОЖНЫЕ НЕТОЧНОСТИ РАБОТЫ ИЛИ НЕПРАВИЛЬНОСТЬ РАБОТЫ ПРОГРАММЫ. ПРИ КОММЕРЧЕСКОМ ИСПОЛЬЗОВАНИИ ДАННОЙ ПРОГРАММЫ КОМПАНИЯ TI ОТКАЗЫВАЕТСЯ ОТ АВТОРСТВА И СНИМАЕТ С СЕБЯ ВСЯКУЮ ОТВЕТСТВЕННОСТЬ.
КОМПАНИЯ TI ОТКАЗЫВАЕТСЯ ОТ ЛЮБЫХ ГАРАНТИЙ В ОТНОШЕНИИ ТОГО, ЧТО ПРОГРАММА НЕ МОЖЕТ ПРИНЕСТИ ПРЯМЫЕ ИЛИ КОСВЕННЫЕ УБЫТКИ ИЛИ ПОТЕРЮ ДОВЕРИЯ ИЛИ ПРИБЫЛИ ПРИ ИСПОЛЬЗОВАНИИ ЕЕ ТЕОРИИ ИЛИ АЛГОРИТМОВ. ОТВЕТСТВЕННОСТЬ ПРИ КОММЕРЧЕСКОМ ИСПОЛЬЗОВАНИИ ДАННОЙ ПРОГРАММЫ ПОЛНОСТЬЮ ЛЕЖИТ НА ЛИЦЕ, ИСПОЛЬЗОВАВШЕМ ДАННУЮ ПРОГРАММУ
Если не указано иное, программа, созданная компанией
Библиотека Компэла 323
Ь IV. Примеры конкретных применений
Texas Instruments поставляется на условиях «свободно распространяемого программного обеспечения» .
Вы можете свободно изменять программу без всяких ограничений
Передавать программу третьим лицам можно только при доведении до их сведений этих условий и при его согласии с этими условиями.
Вы должны приводить лицензию в каждой копии или частичной копии.
Вы признаете и соглашаетесь, что Программа содержит защищенный авторским правом материал, коммерческую тайну и другую частную информацию компании TI и защищена в соответствии с законами об авторском праве, международным соглашением об авторском праве и законом о коммерческой тайне, а так же законом об охране интеллектуальной собственности. Для зашиты авторских прав компании TI Вы соглашаетесь не декомпилировать, перерабатывать, или преобразовывать программу к удобочитаемому виду. Вы соглашаетесь ни в коем случае не изменять и не удалять внесенную в программу информацию об авторском праве. Компания TI оставляет за собой все права, не оговоренные в данной лицензии. Кроме того, что оговорено в данной лицензии, не может рассматриваться при возможном судебном разбирательстве.
Вы не можете использовать программу для микроконтроллеров, которые не производит компания TI.
#include <msp430xllxl.h>
MSP-FET430X110 Demo - SIRC декодер, передающий принятые команды ИК систем ДУ в ПК на скорости 2400 бод
Описание: Декодирование 12-битных SIRC команд ИК систем ДУ при помощи таймера Timer_A. CCR1 таймера Timer_A используется для декодирования ИК пакетов, режим захвата используется для измерения длительности ИК бита.
124 Библиотека Компэла
Глава 3. Декодирование ТВ ИК ДУ-сигналов используя Таймер A3
Принятые пакеты передаются в ПК при помощи модуля CCR0 таймера Timer_A, работающего в качестве UART. Пакеты передаются в виде 4 АСII байтов, содержащих символы CR и LF. Если принята команда «channel+», то на выводе Р1.0 устанавливается высокий уровень, а если любая другая - то низкий.
ИК данные принимаются младшим значащим битом вперед. Сначала передается старт-бит, а потом - 12 бит данных: D4-D3-D2-Dl-D0-C6-C5-C4-C3-C2-Cl-C0-Start
Демонстрация с помощью ИК монитора - переданные ИК данные содержат символы CR, LF и 4 ASCII байта
MSP430F1121
/l I XIN|-
I I 32 кГц
—|RST XOUT|-
IR Receiver -> IP1.2/CCR1 PI.0—> LEDC
Р1.1 |—> 2400 8N1
Длительности битов
Start = 2.4 мс ~ 7 9 при ACLK = 32 кГц
1=1.2 мс низкий
2 = 0.б мс низкий
sync = 0.б мс высокий
sync snyc snyc snyc
H--------- ------------ h ----- h ------------- h ----- h H---------------------------- h
Л 0 л 1 л 0 л Start л
Используемые регистры
#define RXTXData R4
#define BitCnt R5
#define IRData R6
#define IRBit R7
#define IRlength R8
Библиотека Компэла
f& Texas iNSiraJMENTS | IV. Примеры конкретных применений | |||
; Для того, | чтобы | скорость обмена данными по UART была | ||
; 2400 бод | необходимо, | чтобы ACLK == 327 68 | ||
Bitime 5 | equ | Об | .длина 5 бит + небольшая | |
подстройка. | ||||
Bitime | equ | при длине бита 427 мкс | ||
скорость ~ 2341 бод | ||||
IR Mid | equ | 1500 мкс при ACLK=327 68 Гц | ||
IR Start | equ | 2300 мкс при ACLK=327 68 Гц | ||
IR_Start2 | equ | 2500 мкс при ACLK=327 68 Гц | ||
LEDC | equ | OOlh | LED0 на выводе Р1.С | |
TXD | equ | 002h | TXD подключается к выводу | |
Р1.1 | ||||
IRIN | equ | 004h | Вход ИК данных - Р1.2 | |
Ch up | equ | |||
Ch dwn | equ | |||
LF | equ | Oah | Символ LF (перевод строки) |
в ASCII коде
CR |
equ Odh |
Символ CR (возврат каретки)
в ASCII коде
Автор: М. Buccini
Компания Texas Instruments, Inc
Июль 2001
ORG OFOOOh ; Начало программы
RESET mov.w #0300h,SP
call #Init_Sys
Mainloop call #IR_Ready bis.w #LPM0,SR
call call |
#TXIR_2_PC #LED_Disp
Mainloop
Инициализация указателя стека микроконтроллеров серии 'х112х Инициализация системных периферийных устройств
Подготовка ИК декодера Вход в режим LPMx, остановка, снижение потребления Передача принятой команды Приняли команду «Channel + /-»
Библиотека Компэла
Глава 3.
INSiraJMENTS
IV. Примеры конкретных применений
TA1_ISR TA2 ISR
jmp
; reti ; reti ;TA over reti
TA1_ISR mov.w #CMO+SCS+CAP+CCIE IR_ST_Test push.w &CCR1
sub.w IRlength,0(SP) cmp.b #14,IRBit jeq IR_Next
cmp.b #13,IRBit jne IR_Bit
cmp.w #IR_Start2,0 (SP) ; jge IR_error
cmp.w #IR_Start,0 (SP) jge IR_Next IR_error incd.w SP
call #IR_Ready
reti
IR_Bit cmp.w #IR_Mid,0(SP) IR_Shift rrc.w IRData IR_Next mov.w &CCR1,IRlength
CCR1
CCR2
CCR3 не используется
CCR4 не используется
Переполнение
ТА - не используется
&CCTL1 ; CAP CCI1A, спадающий фронт, прерывание Временно сохраняем в стеке содержимое CCR1
Время от последнего захвата
Первый спадающий фронт?
Переход —> первый спадающий фронт Стартовый бит? Переход —> не стартовый бит
Стартовый бит>2.5 мс Переход —> IRlength > 2 .5 мс
Минимальный стартовый бит ~ 2.3 мс Переход —> IRlength > 2.3 мс
Очистка верхушки стека
Ошибка - перезапуск принятой последовательности Выход из прерывания
С=1 если принятый бит ИК данных = 1 Бит переноса —> регистр IRData Сохранение захваченного фронта
Библиотека Компэла
Глава 3.
Библиотека Компэла
f& Texas
INSiraJMENTS
IV. Примеры конкретных применений
ORG |
OFFFOh
DW TAX_ISR END
Вектор прерываний от таймеров Timer_AX
Приложение В: программа 11x1_RC5.s43.txt
ЭТА ПРОГРАММА ПОСТАВЛЯЕТСЯ В ВИДЕ «КАК ЕСТЬ». КОМПАНИЯ TI НЕ ДАЕТ НИКАКИХ ГАРАНТИЙ И НЕ НЕСЕТ НИКАКОЙ ОТВЕТСТВЕННОСТИ ЗА ВОЗМОЖНЫЕ НЕТОЧНОСТИ РАБОТЫ ИЛИ НЕПРАВИЛЬНОСТЬ РАБОТЫ ПРОГРАММЫ. ПРИ КОММЕРЧЕСКОМ ИСПОЛЬЗОВАНИИ ДАННОЙ ПРОГРАММЫ КОМПАНИЯ TI ОТКАЗЫВАЕТСЯ ОТ АВТОРСТВА И СНИМАЕТ С СЕБЯ ВСЯКУЮ ОТВЕТСТВЕННОСТЬ.
КОМПАНИЯ TI ОТКАЗЫВАЕТСЯ ОТ ЛЮБЫХ ГАРАНТИЙ В ОТНОШЕ-НИ ТОГО, ЧТО ПРОГРАММА НЕ МОЖЕТ ПРИНИСТИ ПРЯМЫЕ ИЛИ КОСВЕННЫЕ УБЫТКИ ИЛИ ПОТЕРЮ ДОВЕРИЯ ИЛИ ПРИБЫЛИ ПРИ ИСПОЛЬЗОВАНИИ ЕЕ ТЕОРИИ ИЛИ АЛГОРИТМОВ. ОТВЕТСТВЕННОСТЬ ПРИ КОММЕРЧЕСКОМ ИСПОЛЬЗОВАНИИ ДАННОЙ ПРОГРАММЫ ПОЛНОСТЬЮ ЛЕЖИТ НА ЛИЦЕ, ИСПОЛЬЗОВАВШЕМ ДАННУЮ ПРОГРАММУ
Если не указано иное, программа, созданная компанией
Texas Instruments поставляется на условиях «свободно
распространяемого программного обеспечения».
Вы можете свободно изменять программу без всяких
ограничений
Передавать программу третьим лицам можно только при
доведении до их сведений этих условий и при его
согласии с этими условиями.
Вы должны приводить лицензию в каждой копии или
частичной копии.
Вы признаете и соглашаетесь, что Программа содержит защищенный авторским правом материал, коммерческую тайну и другую частную информацию компании TI и защищена в соответствии с законами об авторском праве, международным соглашением об авторском праве и законом о коммерческой тайне, а так же законом
Библиотека Компэла
Глава 3. Декодирование ТВ ИК ДУ-сигналов используя Таймер A3
об охране интеллектуальной собственности. Для зашиты авторских прав компании TI Вы соглашаетесь не декомпилировать, перерабатывать, или преобразовывать программу к удобочитаемому виду. Вы соглашаетесь ни в коем случае не изменять и не удалять внесенную в программу информацию об авторском праве. Компания TI оставляет за собой все права, не оговоренные в данной лицензии. Кроме того, что оговорено в данной лицензии, не может рассматриваться при возможном судебном разбирательстве.
Вы не можете использовать программу для микроконтроллеров, которые не производит компания TI.
#include <msp430xl4x.h> *****************************************************
MSP-FET430X110 Demo - Декодер команд ИК системы ДУ RC5, передающий их в ПК на скорости 24 00 бод
Описание: Декодирование 12-битных ИК пакетов бифазного формата RC5 при помощи модуля таймера Timer A.
CCR1 модуля таймера Timer А используется для декодирования ИК пакетов, режим захвата - для детектирования межбитного фронта, а режим сравнения - для защелкивания бита данных. CCR2 используется для декодирования перезапуска. Принятый пакет передается в ПК при помощи CCR0 модуля Timer_A, выполняющего функцию UART. Пакет передается в виде четырех ASII байтов, содержащих символы CR и LF. Если принята команда «Chanel+», то на выходе Р1.С устанавливается высокий уровень, а если любая другая - то низкий.
ИК данные передаются начиная со старшего значащего байта. Пакет состоит из 2- ух стартовых бит, бита С и 11 бит данных: S1-S2-C-A4-A3-A2-A1-A0-C5-C4-C3-C2-С1-С0
Демонстрируется работа при помощи ИК монитора,
в который передаются данные символы CR, LF и 4 ASCII
байта
Библиотека Компэла 333
f& Texas
INSiraJMENTS
IV. Примеры конкретных применений
MSP430F1121
— I RST
XINI-
XOUTI -
32 кГц
IR Receiver->|P1.2/CCR1 PI.0—> Светодиод
Pl.l|—> 2400 8N1
Длительности битов
1.78 мс
Н-- н-- н--
Н--
ЛСтартЛСтартЛ 1 л 0 л 0 л Используемые регистры вычислительного ядра #define RXTXData R4 #define BitCnt R5 #define IRData R6 #define IRBit R7 ; Для того, чтобы скорость обмена данными по UART ; равнялась 24 00 бод необходимо, чтобы ACLK = 327 68 Гц |
Bitime_5 equ Об
Bitime |
equ 014
LEDC | equ | OOlh |
TXD | equ | 002h |
IRIN | equ | 004h |
Bit 50 | equ | |
Bit 75 | equ | |
Ch up | equ | |
Ch dwn | equ | |
LF | equ | Oah |
CR |
equ Odh
Длительность 5 бит + небольшая
подстройка
длительность бита 427 мк ~ 2341
бод
Нулевой светодиод подключен
к порту Р1.С
Выход передатчика UART подключен
к порту Р1.1
ИК данные поступают на порт Р1.2
8 90 мкс при ACLK = 327 68 Гц
1348 мкс при ACLK = 32768 Гц
ASCII код символа перевода строки (LF)
ASCII код символа возврата каретки (CR)
Библиотека Компэла
Глава 3.
Библиотека Компэла
f& Texas
INSiraJMENTS
IV. Примеры конкретных применений
IR_Ready ; Подпрограмма подготовки к принятию
; 12-битных данных в формате RC5 в регистр ; IRData
clr.w IRData mov.w #014,IRBit |
12 бит данных + 1 стартовый
бит + 1 окончательный SetupCl mov.w #CM1+SCS+CAP+CCIE,&CCTL1
CAP CCI1A, спадающий фронт, прерывание ret
TXIR_2_PC ; Подпрограмма передачи символов CR, LF
; и содержимого регистра IRData в виде четы-
; рех ASCII байт в ПК R15 используется
; в качестве рабочего регистра и не сохраня-
; ет своего состояния
mov |
#CR,RXTXData
call #TX_Byte mov #LF,RXTXData
call #TX_Byte
символ CR пересылается в буфер UART CR —> ПК/пользователю символ LF пересылается в буфер UART LF —> ПК/пользователю
TX_Word_ASCII ; передача слова из IRData в виде
; четырех ASCII байт
swpb IRData ; IRData = 3412
call #TX_Byte_ASCII
swpb IRData ; IRData = 1234
TX Byte ASCII ; Передача байта из IRData в виде двух ; ASCII байт
передача значения . .x передача значения . .х |
mov.b IRData,R15
call #NUM_ASCIR mov.b IRData,R15
NUM ASCIA
Библиотека Компэла
Глава 3. |
Библиотека Компэла
f& Texas
INSiraJMENTS
IV. Примеры конкретных применений
UART_TX bic.w #0UTM0D2, &CCTLC rra.w RXTXData
jc TX_Test
TX_Space bis.w #0UTM0D2, &CCTLC TX_Test dec.w BitCnt
jnz TX_Next bic.w #CCIE,&CCTLC
TX Next reti
Передача единицы МЗБ (LSB) сдвигается в бит переноса Переход —> бит = 1 Передача нуля Все биты переданы (или приняты)? Следующий бит? Все биты переданы/ приняты, блокировка прерываний
TAX ISR ; Общая подпрограмма обработки прерываний ; CCR1-4 и переполнения
add.w &TAIV, PC
reti
jmp TA1_ISR jmp TA2_ISR
; reti
; reti
;TA over reti
Добавление смещения в вектор прерывания от Timer A CCR0 - не является источником CCR1 CCR2 CCR3 CCR4
Выход по переполнению
TA1_ISR bit.w #CAP,&CCTL1 j с RX_edge
Переход —> захвачен
фронт
mov.w #CM1+CMO+CAP+CCIE+SCS, &CCTL1 |
RX_Bit dec.w IRBit
j z RX_Comp
RX_Cont bit.w #SCCI,&CCTL1
rlc.w IRData
Проверка окончания
пакета
Бит переноса = бит
данных в SCCI
Бит переноса —>
IRData
Библиотека Компэла
Глава 3.
Библиотека Компэла
f& Texas
INSiraJMENTS
IV. Примеры конкретных применений
jne LED exit bis.b #01h,&P10UT LED exit ret
Включение светодиода Выход из подпрограммы
; Используемые вектора прерываний
ORG | OFFFEh |
DW | RESET |
ORG | 0FFF2h |
DW | TAO ISR |
ORG | OFFFOh |
DW | TAX ISR |
END |
Вектор сброса MSP43C Вектор таймера Timer AC Вектор таймеров Timer AX
Введение
Для измерения тока и обеспечения развязки по постоянному току в электросчетчиках обычно используются трансформаторы тока (СТ). Однако, все СТ вносят фазовый сдвиг, который изменяет величину мощности на их выходе. Индуктивные и емкостные нагрузки вызывают взвешенную ошибку измерения мощности переменного тока, которая значительно увеличивается и достигает недопустимой величины при снижении измеряемой мощности.
Традиционным решением преодоления проблемы фазового сдвига является применение аналогового RC фильтра; однако, RC фильтры не способны удовлетворить современным требованиям, из-за высокой стоимости, возникновения проблем с устойчивостью и необходимости проведения трудоемкой ручной калибровки. Применение цифровой коррекции и автоматизированной калибровки позволяет избавиться от этих недостатков.
В этом примере применения рассматриваются два вопроса: коррекция и калибровка. Раздел по коррекции описывает разработку одиночного фильтра с нулевой конечной импульсной характеристикой (zero-FIR - нулевой КИХ). Этот фильтр имеет групповое время задержки, позволяющее компенсировать фазовый сдвиг токового трансформатора. К сожалению, он также изменяет коэффициент передачи по постоянному току, коррекция которого также должна быть произведена впоследствии.
Библиотека Компэла
Глава 4.
Компенсация фазового сдвига и калибровка токового трансформатора
В разделе по калибровке описывается расчет параметров фильтра с КИХ для различных времен задержки, затем рассматриваются вопросы эмуляции non-UPF нагрузки, определение ошибки non-UPF и локализация используемых актуальных параметров КИХ фильтров.
Цифровая коррекция фазового сдвига
Библиотека Компэла
Глава 4. Компенсация фазового сдвига и калибровка токового трансформатора
А"1 = [(cosco + (З)2 + sin2 со]
Например, для электросчетчика, работающего с частотой дискретизации 995.025 Гц, измеряющего входной сигнал с частотой 50 Гц и содержащего СТ, вносящий фазовый сдвиг 1 °, (3=0.0611975, а А-1 =0.944873.
Библиотека Компэла
Глава 4. Компенсация фазового сдвига и калибровка токового трансформатора
После преобразования уравнения (10) можно получить следующее выражение:
Е =-^____ 1
(Р) cos^-ф)
С целью минимизации размера прикладной программы и времени поиска для Е(р) может использоваться неявная таблица. Ошибки Е(тах) и E(min), соответствующие максимальному и минимальному фазовому сдвигу должны быть рассчитаны первыми. Тогда размер шага фазового сдвига может быть преобразован в размер шага ошибки:
E(step)=(E(max)-E(min))/(o6Lnee количество шагов).
Для каждого значения Е(р) фактический фазовый сдвиг рассчитывается по формуле (10), а результат используется в уравнениях (6) - (8) для вычисления окончательных параметров КИХ. Поскольку Е(р) может быть легко рассчитано по известным E(min) и E(step), то нет необходимости его сохранять- следует хранить только значения E(min), E(max) и E(step).
Изменение частоты измеряемого сигнала
Очень важно, чтобы фактическая частота измеряемого сигнала соответствовала частоте калибровки. Любое отклонение вызывает ошибку калибровки фазового сдвига СТ. Однако, после окончания калибровки корректирующая КИХ обеспечивает необходимую точность измерения даже при изменении частоты измеряемого сигнала.
Заключение
Вообще говоря, цифровая обработка имеет неоспоримое преимущество перед аналоговыми интегральными схемами обработки сигналов в отношении точности и повторяемости; однако, часто имеет более высокую стоимость. Метод, описанный в этом примере применения использует цифровые технологии для компенсации и калибровки СТ, при этом он достаточно прост, чтобы быть реализованным дешевым микроконтроллером. Данное решение было с успехом реализовано на микроконтроллере MSP430 производства компании Texas Instruments и получило одобрение для использования электросчетчиках первого класса.
Ссылки:
1. A Low-Cost Single-Phase Electricity Meter Using MSP430C11x, Application
Report, Texas Instruments Literature Number SLAA075
2. MSP430x1xx Family User's Guide, Texas Instruments Literature Number
SLAU049
3.MSP430 Family Mixed-Signal Microcontroller Application Reports, Application Book, Texas Instruments Literature Number SLAA024
4. Bureau of Indian Standards , AC Static Watt-Hour Meters, Class-1 and -2 Specification, Reference Number ET13 (1379)
Введение
Введение микроконтроллеров MSP430 с Flash памятью принесло большую гибкость различным устройствам. Возможность внутрисистемного программирования и срок хранения данных при отключенном питании не менее 10 лет идеально удовлетворяют требованиям самых различных устройств. В данном примере применения использован микроконтроллер MSP430F149, являющийся членом семейства 1хх микроконтроллеров MSP430 с Flash памятью. Этот прибор был выбран потому, что он имеет 60 КБ встроенной Flash памяти, способной хранить в себе до 10 секунд речевых сообщений, и 12 битный АЦП, производящий оцифровку сигнала. В данном примере применения рассматриваются следующие вопросы:
• Внутрисистемное программирование Flash памяти микроконтроллеров
семейства MSP430
• Программирование Flash памяти MSP430 в реальном масштабе времени
• Работа микроконтроллера MSP430x13x/14x с высокочастотным кварце
вым резонатором
• Использование встроенного 12 битного аналого-цифрового преобразо
вателя в реальном масштабе времени
• Обмен данными MSP430 с TLV5616
• Применение операционного усилителя TLV2252 и усилителя мощности
ТРА721 производства компании TI совместно с MSP430
• Работа MSP430 в смешанно-сигнальном режиме от 3 В питания
Библиотека Компэла
Глава 5.
Аналоговая аппаратная часть
На рисунке 2 показан предварительный микрофонный усилитель и фильтр. Электретный микрофон преобразует акустический речевой сигнал в аналоговый электрический сигнал, который затем усиливается предварительным усилителем на базе операционного усилителя TLV2252. TLV2252 - низковольтный низкопотребляющий сдвоенный операционный усилитель, одна часть которого используется для усиления микрофонного сигнала, а другая - для построения активного фильтра низких частот (ФНЧ), который используется для сглаживания выходного сигнала ЦАП. TLV2252 выбран из-за того, что он способен работать от однополярного 3 В источника питания и имеет низкий ток покоя. Перед
Библиотека Компэла
f& Texas
INSiraJMENTS
IV. Примеры конкретных применений
Рис.2. Предварительный микрофонный усилитель и фильтр
подачей аналогового сигнала на вход встроенного АЦП необходимо ограничить его полосу. С этой задачей вполне справляется простой аналоговый RC фильтр, который в нашем случае включен на выходе предварительного микрофонного усилителя и имеет полосу пропускания 2.7 кГц. Конденсатор С4 в цепи обратной связи операционного усилителя также обеспечивает некоторый спад коэффициента передачи на верхних частотах. Фактически этот фильтр предназначен для исключения процесса передискритизации после осуществления выборки сигнала. Частота среза фильтра, равная 2.7 кГц, удовлетворяет требованиям теоремы Котельникова так как дискретизация в нашем случае осуществляется с частотой 5.5 кГц. Частота дискретизации 5.5 кГц выбрана в качестве компромиссного решения между качеством записываемой речи и максимально возможной длительностью записи. При упомянутых выше параметрах во встроенную Flash память можно записать около 6 секунд речи. Речевой сигнал после 12 битного преобразования без всякого сжатия записывается во встроенную Flash память. Сжатие голоса по 8- битному А- или |j- закону позволит увеличить длительность записываемого голоса до 12 секунд.
Библиотека Компэла
Глава 5.
Библиотека Компэла
f& Texas
INSiraJMENTS
IV. Примеры конкретных применений
Рис. 4. Усилитель мощности звуковой частоты
Цифровая аппаратная часть
Цифровая аппаратная часть состоит из микроконтроллера MSP430F149 и пассивных элементов его обвязки. Встроенные периферийные модули микроконтроллера облегчают разработку цифровой части устройства и позволяют назвать его «системой на кристалле» («System in a Chip»). Задающий генератор MSP430 работает с внешним 3.58 МГц керамическим резонатором. Резонатор, используемый в этом примере применения, имеет встроенные нагрузочные конденсаторы. Таймер В7 используется для формирования сигнала прерывания, по которому происходит выборка аналогового сигнала. Таймер В7 тактируется от стабильных 3.58 МГц колебаний. Тактирование его сигналом со стабильной частотой вызвано тем, что нестабильность частоты дискретизации влияет на качество записи и воспроизведения речи. Выбранный аналоговый речевой сигнал оцифровывается встроенным 12 битным АЦП ADC12 микроконтроллера MSP430. Обратите внимание, что питание аналоговой и цифровой аппаратных частей разделено. Также должны быть разделены и цепи общих линий.
Оцифрованный речевой сигнал сохраняется во встроенной Flash памяти программы микроконтроллера. В режиме воспроизведения в той же самой последовательности и с той же частотой данные из памяти поступают в ЦАП через USART, работающий в режиме SPI интерфейса. ЦАП преобразует данные
Библиотека Компэла
Глава 5.
Твердотельный диктофон с использованием MSP430
Рис.5.Схема подключения MSP430F149
в аналоговый сигнал, сглаживающий фильтр восстанавливает его, а УМЗЧ усиливает и подает его на динамик.
Библиотека Компэла
Глава 5. Твердотельный диктофон с использованием MSP430
4. Демонстрационная программа F149VoiceDemo.s43
ЭТА ПРОГРАММА ПОСТАВЛЯЕТСЯ В ВИДЕ «КАК ЕСТЬ». КОМПАНИЯ TI НЕ ДАЕТ НИКАКИХ ГАРАНТИЙ И НЕ НЕСЕТ НИКАКОЙ ОТВЕТСТВЕННОСТИ ЗА ВОЗМОЖНЫЕ НЕТОЧНОСТИ РАБОТЫ ИЛИ НЕПРАВИЛЬНОСТЬ РАБОТЫ ПРОГРАММЫ. ПРИ КОММЕРЧЕСКОМ ИСПОЛЬЗОВАНИИ ДАННОЙ ПРОГРАММЫ КОМПАНИЯ TI ОТКАЗЫВАЕТСЯ ОТ АВТОРСТВА И СНИМАЕТ С СЕБЯ ВСЯКУЮ ОТВЕТСТВЕННОСТЬ.
КОМПАНИЯ TI ОТКАЗЫВАЕТСЯ ОТ ЛЮБЫХ ГАРАНТИЙ В ОТНОШЕНИИ ТОГО, ЧТО ПРОГРАММА НЕ МОЖЕТ ПРИНИСТИ ПРЯМЫЕ ИЛИ КОСВЕННЫЕ УБЫТКИ ИЛИ ПОТЕРЮ ДОВЕРИЯ ИЛИ ПРИБЫЛИ ПРИ ИСПОЛЬЗОВАНИИ ЕЕ ТЕОРИИ ИЛИ АЛГОРИТМОВ. ОТВЕТСТВЕННОСТЬ ПРИ КОММЕРЧЕСКОМ ИСПОЛЬЗОВАНИИ ДАННОЙ ПРОГРАММЫ ПОЛНОСТЬЮ ЛЕЖИТ НА ЛИЦЕ, ИСПОЛЬЗОВАВШЕМ ДАННУЮ ПРОГРАММУ
Если не указано иное, программа, созданная компанией
Texas Instruments поставляется на условиях «свободно
распространяемого программного обеспечения».
Вы можете свободно изменять программу без всяких
ограничений
Передавать программу третьим лицам можно только при
доведении до их сведений этих условий и при его
согласии с этими условиями.
Вы должны приводить лицензию в каждой копии или
частичной копии.
Вы признаете и соглашаетесь, что Программа содержит
защищенный авторским правом материал, коммерческую
тайну и другую частную информацию компании TI
и защищена в соответствии с законами об авторском
праве, международным соглашением об авторском праве
и законом о коммерческой тайне, а так же законом об
охране интеллектуальной собственности. Для зашиты
авторских прав компании TI
Вы соглашаетесь не декомпилировать, перерабатывать,
или преобразовывать программу к удобочитаемому виду.
Вы соглашаетесь ни в коем случае не изменять и не
удалять внесенную в программу информацию
об авторском праве. Компания TI оставляет за собой
Библиотека Компэла 357
f& Texas
INSiraJMENTS
IV. Примеры конкретных применений
все права, не оговоренные в данной лицензии. Кроме того, что оговорено в данной лицензии, не может рассматриваться при возможном судебном разбирательстве.
Вы не можете использовать программу для микроконтроллеров, которые не производит компания TI.
t*************************************************** NAME F14 9VoiceDemo ; Цифровой диктофон на микроконтроллере MSP430F14 9 с FLASH памятью Автор: Murugavel Raju Компания Texas Instruments, Inc
***************************************************
#include <msp430xl4x.h> ****************************************************
Микроконтроллер работает на частоте 3.58 МГц
Определение констант FS equ 00 In Memstart equ 140 In
Memend equ OfeOlh *****************************************************
RSEG CSTACK DS 0
*****************************************************
r
RSEG CODE *****************************************************
определение указателя стека Инициализ ация системы проверка состояния вывода Р1.1 для определения режима Маскирование Bit4 для проверки состояния кнопки Record' Переход по метке Play если кнопка не нажата Вызов подпрограммы очистки Flash памяти |
RESET mov.w #SFE(CSTACK),SP
call #Init_Sys
mov.b &P1IN,R5
and.b #BIT4,R5
jnz Play
call #Erase
Библиотека Компэла
Глава 5.
IV. Примеры конкретных применений
xor.w #FXKEY+WRT, &FCTL1
xor.w #FXKEY+LOCK, &FCTL3
jmp RESET
Playl mov.w @R14,R15
Incd.w R14
cmp.w #Memend, R14
jnz Go_on
jmp RESET
5o_on
LI bit.b #UTXIFGO,&IE1
jc LI
bis.b #FS,&P3OUT
bic.b #FS,&P3OUT
swpb R15
mov.b R15,&TXBUFC
swpb R15
mov.b R15,&TXBUFC
Библиотека Компэла
Глава 5.
Библиотека Компэла
f& Texas
INSiraJMENTS
IV. Примеры конкретных применений
Неиспользуемые выводы переводятся в режим выходов Очистка выходного регистра порта Р5 Неиспользуемые выводы переводятся в режим выходов Рб.О = АО вход модуля ADC12 Выходные линии Рб используются для сброса Р6.1 - 6.7 выходы (неиспользуются) Инициализация модуля ADC12 Активизация модуля USART 8-битный модуль SPI в режиме ведущего ,&U0TCTL SMCLK для передачи, 3-проводный интерфейс SMCLK/2 для задания скорости обмена данными |
bis.b #0ffh,&P4DIR
SetupP5 mov.b #0h,&P5OUT
bis.b #0ffh,&P5DIR
SetupP6 bis.b #BIT0,&P6SEL
mov.b #0h,&P6OUT
bis.b #0feh,&P6DIR
SetupADC Call #ADCset
SetupUSART bis.b #040h,&MEl
mov.b #CHAR+SYNC+MM,&U0CTL
mov.b #CKPL+SSEL1+SSELO+STC
mov.b #02h,&U0BRC
Очистка модуляции Инициализация таймера TBCCR0 для выборки с частотой 5.5 кГц ; Перевод таймера TimerB в режим UP ,&FCTL2 Установка частоты генератора FLASH памяти 447.5 кГц Выход из подпрограммы |
clr.b &U0BR1 clr.b &U0MCTL
SetupCCRO bis.w #CCIE,&TBCCTLC Mov.w #64 9,&TBCCRC
SetupTB7 bis.w #TBSSEL1+MCO,&TBCTL SetupFlash xor.w #FXKEY+FN2+FN1+FNC
ret
Библиотека Компэла
Глава 5.
Библиотека Компэла
f& Texas
Введение
Многие из микроконтроллеров семейства MSP430 имеют или модуль таймера Timer_A, или модули двух таймеров Timer_A и Timer_B. Эти модули содержат 16-разрядный счетчик, который может увеличиваться от различных источников синхросигнала. Они могут работать даже в режиме пониженного потребления. Также эти таймеры имеют регистры захвата/сравнения, которые могут применяться по-разному в разных приложениях. Одним из таких приложений является автоматическое формирование сигнала с ШИМ для управления двигателем постоянного тока. В данном примере применения описывается управление при помощи модулей таймеров Timer_A и/или Timer_B одной из множества существующих схем управления двигателем постоянного тока.
Библиотека Компэла
Глава 6.
Библиотека Компэла
f& Texas
INSiraJMENTS
IV. Примеры конкретных применений
Введение
Рис. 1. Милливольтметр на базе MSP430F11x1 |
Библиотека Компэла |
Используя микроконтроллер MSP430F11 х1 семейства 16-разрядных смешанно-сигнальных процессоров, можно легко реализовать дешевый аналого-цифровой преобразователь с высоким разрешением на основе внутреннего компаратора comparator_A микроконтроллера. Описанный аналого-цифровой преобразователь использует технологию сигма-дельта АЦП. Демонстрацион-
Глава 7. Милливольтметр сигма-дельта типа на MSP430F11x1
ная схема, приведенная на рисунке 1 имеет разрешение 1 мВ при 3.3 В одно-полярном питании. АЦП такого типа, имеющие высокое разрешение, идеально подходят для измерения медленно меняющихся физических величин типа температуры, давления, интенсивности освещения и напряжения. Высокая точность получаемого АЦП и сверх малое потребление MSP430 позволяют изготавливать измерительные устройства с автономным питанием. Ключевые характеристики встроенного АЦП микроконтроллера MSP430F11x1:
• 1 мВ /12 битное разрешение
• Интегрированное решение, обеспечивающее превосходное подавление
шумов
• Не требуется калибровка компаратора
• Для реализации АЦП требуется только два внешних компонента.
Библиотека Компэла 371
f& Texas
INSiraJMENTS
IV. Примеры конкретных применений
I I I I I I I I I I I—> Рис.2. График выходного напряжения встроенного ЦАП
Библиотека Компэла
Глава 7. Милливольтметр сигма-дельта типа на MSP430F11x1
22. Используемые ресурсы MSP430F11x1
Для реализации встроенного АЦП требуется очень мало ресурсов MSP430F11x1:
• Модуль comparator_A и связанные с ним входы Р2.3 и Р2.4 компара
тора.
• Один цифровой выход для реализации 1 -битного ЦАП, например выход
Р2.0 в примере.
Для реализации однобитного ЦАП может использоваться любой доступный цифровой выход MSP430F1101. В описываемом устройстве используется линия Р2.0 порта ввода-вывода. Линия Р2.0 настроена на работу в режиме цифрового выхода, использующего выходной регистр второго порта (P2OUT). Линии Р2.3 и Р2.4 могут использоваться в качестве линий порта ввода-вывода общего назначения или, как в нашем случае, в качестве входов аналогового компаратора модуля comparator_A. Выбор режима работы линий осуществляется путем установления нужного значения регистра второго порта (P2SEL). При помощи регистра управления направленностью линий второго порта (P2DIR) линии Р2.3 и Р2.4 должны быть настроены на работу в качестве входов. Компаратор модуля comparator_A, настраиваемый при помощи управляющих регистров CACTL1 и CACTL2, используется для сравнения аналоговых напряжений Vout и Vin. Результат измерения передается при помощи UART, использующего модуль таймера Timer_A, на скорости 9600 бод по линии Р1.1.
Снижение системной ошибки
Общая точность аналого-цифрового преобразователя определяется точностью однобитного ЦАП. ЦАП формирует выходное напряжение в диапазо-
Библиотека Компэла
Глава 7.
IV. Примеры конкретных применений
На выходе компаратора сигнал высокий или низкий?
Разряд конденсатора Заряд конденсатора
увеличение ADCData в двоично-десятичном коде
Уменьшение счетчика цикла слежения цикл слежения закончен?
разряд конденсатора инвертирование выводов компаратора Выход из подпрограммы
Затем вызывается подпрограмма ТХ_2_РС, осуществляющая передачу данных в персональный компьютер со скоростью 9600 бод. После этого опять начинает выполняться основная программа.
Заключение
Современная 16-разрядная RISC архитектура MSP430 очень хорошо подходит для устройств, манипулирующих с данными, имеющими большую разрядность. 16-разрядная архитектура MSP430 позволяет при помощи одной команды манипулировать АЦП с высоким разрешением, используемым в данном примере применения.
Технология аналого-цифрового преобразования, описанная в данном примере применения очень проста, недорога и не требует больших ресурсов MSP430. Это позволяет изготавливать дешевые АЦП с высоким разрешением. Эта технология интегрирующего АЦП не обеспечивает высокого быстродействия. После того, как входное и выходное напряжения сравняются преобразование выполняется при работе на частоте 3.578545 МГц за 13 мс. Для снижения длительности цикла преобразования можно, если преобразование прошло успешно, оставлять накопительный конденсатор заряженным или использовать более высокую рабочую частоту микроконтроллера MSP430. Максимальная рабочая частота MSP430F11x1намного выше чем 3.578545 МГц, использованная в данном примере применения. Быстродействия интегрирующих АЦП достаточно для измерения сигналов от телеметрических датчиков, систем сбора данных и других датчиков медленно меняющихся физических величин (температура, давление и т.д.).
Имеются и дополнительные преимущества использования интегрирующих ЦАП с коротким периодом симметричного импульса. Аналого-цифровое преобразование, выполняющееся на основе обычной ШИМ, ШИМ с одиночным большим периодом или переменного цикла, требует RC цепочки с относительно большим временем преобразования. Отклик на короткие импульсы, применяющиеся в данном примере применения, устанавливается быстрее, что позволяет использовать RC цепочку с меньшей постоянной времени. Поэтому интегрирующий АЦП фактически накапливает несколько однобитных приращений, что позволяет снизить ошибки, вызванные шумами.
Библиотека Компэла
Глава 7.
Библиотека Компэла
Глава 7.
Библиотека Компэла
f& Texas
INSiraJMENTS
IV. Примеры конкретных применений
jz Cl ; Настройка и накопление импульсов Test DAC bit.b #CAOUT,&CACTL2 |
call #Sample_ADC
Meas_Over clr.b &CACTL1 ret
Sample_ADC mov &VCC_Cal,R15 rra R15
Pre_ADC bis.b #DAC_Out,&P2OUT
Cl bit.b #CAOUT,&CACTL2
High Lowl |
jnc Lowl
bic.b #DAC_Out,&P2OUT
jmp Meas
bis.b #DAC_Out, &P2OUT
setc
dadc ADCData
Meas |
dec |
R15
jnz |
Test DAC
bic.b #DAC_Out,&P2OUT xor.b #CAEX,&CACTL1
ret
результат выборки —> ADCData + предыдущие данные
Выключение компаратора Выход из подпрограммы
-ЗЗОС VCC/2
предварительный заряд конденсатора; заряд конденсатора На выходе компаратора сигнал высокий или низкий?
ЦАП;
На выходе компаратора сигнал высокий или низкий?
Разряд конденсатора Заряд конденсатора
увеличение ADCData в двоично-десятичном коде
Уменьшение счетчика цикла слежения цикл слежения закончен?
разряд конденсатора инвертирование выводов компаратора Выход из подпрограммы
Библиотека Компэла
Глава 7.
Глава 7.
Введение
В течение многих десятилетий для измерения потребления электроэнергии использовались механические счетчики электроэнергии (электросчетчики). Новые, полностью электронные электросчетчики заменяют механические электросчетчики, но до сих пор массовое распространение электросчетчиков тормозилось из-за их высокой стоимости, что было вызвано тем, что в них использовались аналого-цифровые преобразователи (АЦП) и микропроцессор.
MSP430C11х - дешевый член семейства MSP430 микроконтроллеров производства компании Texas Instruments. Он не имеет встроенных аппаратных блоков типа АЦП и перемножителей, которые обычно применялись в электронных электросчетчиках. Однако, наличие у него трех регистров захвата данных позволяет реализовать три дешевых АЦП с высоким разрешением. А его высокопроизводительное 16-разрядное вычислительное ядро с RISC архитектурой позволяет реализовать высокоточный дешевый полностью электронный электросчетчик. Вот некоторые из основных характеристик этого электросчетчика:
• Трехканальный градиентный АЦП, использующий встроенный таймер
захвата
• Двухдиапазонный токовый вход с автоматическим управлением, обеспе
чивающим перекрытие тока до 400 %
• Требуемая для измерителей первого класса высокая точность (ошибка
менее 1%)
• Защита от внешнего вмешательства, позволяющая предотвратить во
ровство электроэнергии
• Простая и легкая внутренняя калибровка
• Однокристальное решение, не требующее внешнего вычислителя
• Устранение смещения по постоянному току в обоих каналах (напряжения
и тока)
• ФНЧ для мгновенных значений мощности
Библиотека Компэла
Глава 8.
Недорогой однофазный счетчик электроэнергии на MSP430C11х
Преобразование потребляемой энергии в частоту импульсной последовательности
INSiraJMENTS
IV. Примеры конкретных применений
Практический пример
Vcc = 5 В
Vmax = 3.5 В
Vbias = 0.6 В
Частота дискретизации = 995 Гц => tc = 1 / (2 х 995)
Библиотека Компэла 391
f& Texas
INSiraJMENTS
IV. Примеры конкретных применений
Если выбрать С = 1000 пФ, то получаем R = 75.8 кОм. Для снижения значения RC выберите R = 68 кОм (или даже 62 кОм).
Библиотека Компэла
Глава 8.
Библиотека Компэла
Глава 8. Недорогой однофазный счетчик электроэнергии на MSP430C11х
уменьшает амплитуду и количество значащих цифр, что ведет к увеличению ошибки вычисления.
INSiraJMENTS
IV. Примеры конкретных применений
Рис. 6. Примеры вмешательства в работу электросчетчиков
Библиотека Компэла
Глава 8.
Недорогой однофазный счетчик электроэнергии на MSP430C11х
ватель энергия-импульс, который управляет дисковым электромеханическим или другим индикатором.
Рис. 7. Структурная схема внутренних потоков данных
Библиотека Компэла
Глава 8.
Блок выбора канала тока
Блок выбора канала тока предназначен для защиты от внешнего вмешательства. Внешнее вмешательство может состоять в уменьшении или полном исключении токов одного из каналов, но не токов обоих каналов. Больший ток по-прежнему отображает реальное потребление. Самый простой способ нахождения большего тока состоит в вычислении суммы токов обоих каналов. В конце каждого кадра производится обновление результата вычисления большего тока, после чего производится выбор канала, используемого для дальнейших вычислений.
Библиотека Компэла
Глава 8.
Заключение
В данном примере применения описано построение дешевого электросчетчика на базе микроконтроллера MSP430C11х. Существуют и более сложные устройства, но они более дороги, так как не имеют дешевых вычислительных микроконтроллеров и одно-градиентных АЦП. В данном примере применения дешевый АЦП на основе встроенного таймера и мощное вычислительное ядро микроконтроллера позволяют справиться с задачей сложных вычислений. MSP430C11X, примененный в описанном электросчетчике, позволяет обеспечить высоко конкурентную цену.
Ссылки:
1.Bureau of Indian Standards, AC Static Watthour Meters, Class 1 and 2
Specification, Reference number ET13 (1379)
2. MSP430 Family, Architecture Guide and Module Library User's Guide,
Literature Number SLAUE1 OB
3. MSP430 Family, Metering Application Report, Literature Number SLAAE1 ОС
4. MSP430 Family, Software User's Guide, Literature Number SLAUE11
5. MSP430 Family, Assembly Language Tools User's Guide, Literature Number
SLAUE12
Введение
В этом примере описывается разработка цифрового термометра с использованием возможностей slope-аналогово-цифрового преобразования на базе модуля таймера-порта Timer Port микроконтроллеров MSP430x3xx. В общем плане можно рассматривать данную разработку как пример подключения резистивных датчиков и опорных резисторов к модулю таймера - порта Timer Port. Такой модуль входит в состав всех микроконтроллеров серии MSP430x3xx. Таймер - порт позволяет подключать несколько резистивных датчиков и опорных резисторов, как и сделано в данном приборе. Неиспользуемые выводы модуля могут быть использованы в качестве независимых выходов.
1.1. Краткое описание микроконтроллеров со сверхнизким энергопотреблением семейства MSP430
MSP430 это 16-разрядный микроконтроллер с RISC-архитектурой, обладающий дополнительными функциями, облегчающими разработку и ортогональной структурой, обеспечивающей ядру повышенную вычислительную мощность наряду с высокой гибкостью использования. Эти особенности позволяют микроконтроллеру MSP430 потреблять всего 400 мкА в активном режиме в типовой 3-вольтовой схеме. MSP430 потребляет только 2 мкА в спящем режиме и выходит из него в полностью синхронизированный активный режим не более, чем за 6 мкс. Подсемейства серии MSP430 включают различные наборы периферийных модулей, представляя собой высокоинтегри-рованные системы. На рис.1 показана блок-диаграмма микроконтроллеров MSP430x32x.
Библиотека Компэла
Глава 9.
Цифровой термометр на базе MSP430
Рис. 1. Фазовая характеристика СТ
Библиотека Компэла 405
f& Texas
INSiraJMENTS
IV. Примеры конкретных применений
быть использовано для проведения дополнительных измерений, для связи с другими устройствами или для осуществления вычислений.
Рис.2. Схема цифрового термометра
Все три элемента схемы могут быть подключены непосредственно к отладочной плате Texas Instruments MSP430 starter kit (STK) или evaluation kit (EVK). Остальные соединения, в том числе, требуемые для ЖКИ уже присутствуют на платах STK и EVK. Приведенный пример программы полностью помещается в 512 байт ОЗУ, имеющейся в наличии на отладочных платах STK и EVK, базирующихся на микроконтроллерах MSP430x325. Программа может быть загружена в ОЗУ через последовательный порт компьютера с использованием имеющегося на платах интерфейса.
Описание работы
Библиотека Компэла |
Формула времени разряда конденсатора имеет следующий вид:
Глава 9.
Заключение
Timer Port, присутствующий в семействе MSP430x3xx, представляет собой весьма универсальный модуль. С его помощью можно измерять показания разнообразных резистивных датчиков в комбинациях с опорными резисторами. Детали схемы могут быть непосредственно подключены к модулю Timer Port, формируя, таким образом, полноценную измерительную систему с минимальным количеством навесных элементов. Совместно с модулем таймера-порта, 16-разрядное ЦПУ с ультранизким потреблением демонстрирует непревзойдённые характеристики MIPS на ватт.
Ссылки:
1. MSP430 Family Architecture Guide and Module Library User's Guide,
SLAUE1OB, Texas Instruments Incorporated, 1996
2. MSP430 Family Metering Applications Report, SLAAE10C, 1998
Приложение: Листинг программы
******************************************************
Программа цифрового термометра ******************************************************
Эта программа демонстрирует пример использования модуля таймера-порта для измерения значений резистивных датчиков. Программа запускается в ОЗУ отладочной платы STK или EVK для MSP430. Программу также можно запустить из ПЗУ, для этого должен быть установлен бит "TOOL", равный двум. При загрузке из ПЗУ таблица значений сопротивления может быть расширена для увеличения измеряемого температурного диапазона. Части этой программы взяты из книги «MSP43 0 METERING APPLICATIONS REPORT», автор LUTZ BIERL, и из примеров программ, написанных Марком Буччини. TEMPDEMO Версия 1.1, 4/1998
Библиотека Компэла
Глава 9.
Библиотека Компэла
f& Texas
INSiraJMENTS
IV. Примеры конкретных применений
EN1 RC2F |
В16 СРО TPDMAX ТРЕ |
.EQU 008H ; Сигнал ENABLE в TPCNT1
только для чтения (Бит 3 в TPCTL)
.EQU 004H ; Флаг переполнения TPCNT2
EN1FG | .EQU | 001H |
TPIE | .EQU | 004H |
TPCNT1 | .EQU | 04CH |
TPCNT2 | .EQU | 04DH |
TP | .EQU | 04EH |
(Бит 2 в TPCTL) Флаг EN1 (Бит 0 в TPCTL) Разрешение прерываний от TIMER PORT (Бит 3 в IE2) Младший байт счётчика Старший байт счётчика Регистр данных ТР (0-5 — Выход ТР, 6=CPON,7 = B16 = 2x8 Бит или 1х16Бит счётчик)
.EQU 080H ; Раздельные таймеры (0) или
один 16-битный (1)
.EQU .EQU |
040Н ; Компаратор выкл (0)/вкл (1)
002Н ; Позиция бита выхода TPD.MAX
(2=Бит1=ТРП.1)
.EQU 04FH ; Регистр разрешения выходов
(0-5 = Биты разрешения TPD 6-7=источник тактирования TPCNT2)
MSTACK .EQU PRESET .EQU |
03D2H ; 1-е слово стека результата 0Е8Н ; Предустановка TPCNT2 для
. ************ ; Определения |
заряда С счёт останавливается при переполнении TPCNT2, значение рассчитано на постоянную времени 6RC ******************************************
управляющих регистров ******************************************
IE1 | .EQU | ОН |
IE2 | .EQU | 01Н |
РОНЕ | .EQU | 08Н |
BTIE | .EQU | 080Н |
IFG1 | .EQU | 02Н |
IFG2 | .EQU | ОЗН |
LCDCTL | .EQU | ОЗОН |
LCDM1 | .EQU | 031Н |
BTCTL | .EQU | 040Н |
Регистр разрешения прерываний 1
Регистр разрешения прерываний 2
Разрешение прерываний от РОЛ в IE1
Разрешение прерываний от BASIC TIMER в IE2 Регистр флагов прерываний 1 Регистр флагов прерываний 2 Регистр управления ЖКИ Первая ячейка памяти ЖКИ Регистр управления BASIC TIMER
Глава 9.
Библиотека Компэла
f& Texas
INSiraJMENTS
IV. Примеры конкретных применений
Вычисление сопротивления датчика
Подпрограмма беззнакового умножения: MSTACK X TEN К? MRESLT_HW/MRESLT_LW
Использованы регистры MSTACK, TEN_K, MLTPLR_HW, MRESLT_LW, MRESLT_HW, BITTEST
Подпрограмма беззнакового умножения с накоплением: (MSTACK X TEN_K) + MRESLT_HW|MRESLT_LW -4 MRESLT_HW|MRESLT_LW
CALC RES |
MPYU CLR CLR MACU CLR MOV L$002 BIT JZ ADD |
L$01 |
MOV #10000,TEN_K
MRESLT_LW MRESLT_HW MLTPLR_HW #1,BITTEST BITTEST,MSTACK
L$01
TEN K,MRESLT LW
ADDC MLTPLR_HW,MRESLT
RLA TEN_K
RLC MLTPLR_HW
RLA BITTEST
JNC L$002
Загрузить 10,000 десятичное в TEN_K 0? LSBS результата 0? MSBS результата 0? MSBS множителя Регистр проверки бит
Проверить текущий бит
Если «0» ничего не делать
; Если «1» добавить множитель к результату
HW Множитель X 2
Проверить следующий
бит
Если бит в CARRY:
завершить
*****************************************************
Подпрограмма беззнакового деления 32-бита на 16-бит Использованы регистры (MSTACK+2), MRESLT_LW, RESULT, LPCNTR, MRESLT_HW MRESLT_HW MRESLT_LW/(MSTACK+2)? RESULT Остаток в MRESLT_HW По выходу: CARRY = 0: OK CARRY = 1: Частное > 16 Бит
DIVIDE CLR RESULT ; Очистить RESULT MOV #17,LPCNTR ; Инициализация
; счётчика
DIV1 CMP MSTACK+2,MRESLT_HW JLO DIV2 SUB MSTACK+2,MRESLT HW
INSiraJMENTS
IV. Примеры конкретных применений
; Отобразить значение, хранящееся в R13 в формате BCD ; на ЖКИ .***************************************************** MOV |
R13,R12 MOV #LCDM1+4,R14 BIC #0FFF0H,R13 MOV. В LCD TAB(R13),0
MOV |
R12,R13
RRA | R13 |
RRA | R13 |
RRA | R13 |
RRA | R13 |
BIC | #0FFF0H,R13 |
JMP |
MOV. В LCD TAB(R13),1
BEGIN
Копировать число в виде BCD в R12 Младшая цифра в памяти ЖКИ? R14 Погасить всё, кроме младшей цифры (R14)
Отправить младшую цифру в ЖКИ Восстановить значение в R13 4 сдвига
Погасить всё, кроме младшей цифры (R14)
Отправить старшую цифру в ЖКИ Переход к началу программы
Подпрограмма обработки прерываний базового таймера
BASIC TIMER:
ЦПУ по возвращении остаётся в активном режиме
благодаря очистке битов
LPM3 в статусном регистре SR в стеке.
BIC |
#LPM3,0(SP)
BTINT |
; Очистить в SR биты ; LPM3, вверху стека RETI *****************************************************
Подпрограмма обработки прерываний таймера - порта
TIMER PORT:
ЦПУ при возвращении по RETI остаётся в активном
режиме *****************************************************
TPINT CLR.b &TPCTL ; Очистить флаги
; прерываний ТР, оста-; новить счёт
Библиотека Компэла
Глава 9. |
Библиотека Компэла
f& Texas iNSiraJMENTS |
IV. Примеры конкретных применений
.WORD | ; 80 F | |
.WORD | ||
.WORD | ||
.WORD | ||
.WORD | ||
.WORD | ; 85 F | |
.WORD | ||
.WORD | ||
.WORD | ||
.WORD | ||
.WORD | ; 90 F | |
.WORD | ||
.WORD | ||
.WORD | ||
.WORD | ||
.WORD | ; 95 F | |
.WORD | ||
.WORD | ||
.WORD | ||
.WORD | ; 99 F | |
Вектора прерываний |
.EVEN
SECT | "INT VECT |
WORD | RESET |
WORD | BTINT ; |
WORD | RESET ; |
WORD | RESET |
WORD | RESET |
WORD | TPINT |
WORD | RESET |
WORD | RESET |
WORD | RESET |
WORD | RESET |
WORD | RESET |
WORD | RESET |
WORD | RESET |
WORD | RESET |
WORD | RESET |
WORD | RESET |
.END
Выравнивание по чётному адресу
",I_VECTORS-31 PORTO, Биты 2...7 BASIC TIMER Нет источника
Нет источника
Нет источника
TIMER PORT
Нет источника
Нет источника
Нет источника
Нет источника
WATCHDOG/TIMER,
Режим таймера
Нет источника
UART
РО.О
NMI, Сбой генератора
POR,Внеш. Reset,
WATCHDOG
Введение
Многие измерительные устройства (например, электросчетчики и счетчики газа) должны иметь возможность установки связи с центральной станцией для передачи результатов измерения и получения новых тарифов. Такая связь может быть легко установлена по телефонной линии.
Передача данных при помощи сигнала с частотной манипуляцией (FSK) и двухтонального многочастотного (DTMF) сигнала - два наиболее популярных метода представления двоичных данных для передачи по телефонным линиям. В данном примере применения описывается программа /.23-совместимого FSK приемопередатчика.
Интеграция в одном чипе измерительных и коммуникационных функций ведет с увеличению стоимости и потреблению. Используя высокоскоростной низкопотребляющий микроконтроллер MSP430, возможно изготовить модем, питающийся от телефонной линии.
В данном примере применения приведены математические формулы для передачи и детектирования FSK сигналов. К листингу управляющей программы приложены типовые схемы телефонного интерфейса и дешевого аналого-цифрового преобразователя. Данные схемы являются типовыми и для использования их в некоторых станах необходимо провести соответствующие доработки.
Теория демодуляции
Демодуляция FSK сигнала обеспечивается квадратурным демодулятором. В этом демодуляторе производится перемножение принятого и задержанного сигнала с последующей низкочастотной фильтрацией результата перемножения. Если время задержки Т установить в соответствии с выражением Wcarrier x Т = ?/2, то на выходе фильтра нижних частот будет присутствовать сигнал, пропорциональный отклонению частоты, который и является информационным.
Библиотека Компэла
Глава 10. FSK модуляция и демодуляция с использованием микроконтроллера...
Если w = Wcarrier ± Wdelta и Т х Wcarrier = pi/2, где w = 2 х pi x f (круговая частота), то процесс демодуляции можно описать с помощью следующего математического выражения:
cos[wt]x cos[w(t - Т)]= cos wT + cos(2wt - wT) -»ФН Ч -» cos wT cos wT = sin[±Wdelta]=± sin[Wdelta].
Библиотека Компэла
Глава 10. FSK модуляция и демодуляция с использованием микроконтроллера...
DELTA = Fdesired / Fsampling x 65536.
Преимущество этого метода по сравнению с методом цифрового автогенератора состоит в том, что этот метод сохраняет фазовое соотношение, даже когда частота изменяется от выборки к выборке.
Выбор частоты дискретизации
8-битный интервальный таймер устанавливает частоту дискретизации 19200 выборок/сек. Эта скорость кратна требуемой скорости потока данных 1200 бод. Также, это позволяет упростить построение устройства выборки-хранения (УВХ) АЦП.
Построение таблицы значений
Чтобы сохранять объем памяти ПЗУ в таблице закодирован только первый квадрант в формате Q7 (от 0 до 127). Это сделано путем деления первого квадранта (90 градусов) на 128 интервалов с шагом приблизительно 0.7 градуса. Восстановление значений трех других квадрантов выполняется путем дополнительных вычислений.
Преобразование данных
В этом разделе описываются необходимые аналого-цифровое и цифро-аналоговое преобразования данных.
Цифро-аналоговое преобразование
Для формирования 6 битного цифро-аналогового преобразователя используется внешняя R-2R цепочка. Так как частота переключений 19200 Гц, что в девять раз больше, чем максимальная частота FSK сигнала, равная 2100 Гц, то реализовать сглаживающий фильтр очень просто. В приведенной схеме применен фильтр низких частот первого порядка на одном конденсаторе, но при необходимости количество звеньев фильтра может быть увеличено при помощи дополнительных пассивных цепочек.
Программное обеспечение
В данном разделе описывается прикладная программа FSK модема.
424 Библиотека Компэла
Глава 10. FSK модуляция и демодуляция с использованием микроконтроллера...
6.1. FSK приемник
FSK сигнал поступает от телефонной интерфейсной схемы. Этот сигнал должен иметь смещение по постоянному току 1.2 В и размах 400 мВ. Программное обеспечение декодирует этого FSK сигнал и выставляет на трех выходах логические сигналы, позволяющие пользователю отследить демодулирован-ные данные.
На выходе ТР.З выдается восстановленный из входного FSK сигнала синхросигнал.
На выходе ТР.5 присутствуют восстановленные из входного FSK сигнала данные, которые защелкиваются по каждому нарастающему фронту сигнала на выходе ТР.З.
На выходах Р0.2-Р0.7 присутствует результат низкочастотной фильтрации. Отфильтровав этот сигнал при помощи внешней R-2R цепочки, можно отслеживать уровень демодулированного FSK сигнала. Этот сигнал формируется только из 6 старших бит 8 битных данных, загруженных в порт Р0.
FSK передатчик
Программа передатчика выводит FSK сигнал в соответствии с BITMAP данными, определенными в таблице TX_DATA_TABLE. Образ начинается с начальной зоны записи (преамбулы), сопровождаемой длинным MARK периодом. После этого идет передача данных. Эта таблица использует нулевое слово в качестве оконечного маркера, а программа перезапускается после достижения нулевого значения данных битового массива.
Типовая схема
В этом разделе приведен и описан пример схемной реализации модема.
Использование MSP430C325 в качестве центрального процессора
На рисунке 1 приведена схема электрическая принципиальная FSK модема, использующего в качестве центрального процессора микропроцессор MSP430C325. Схема была протестирована при подаче на вход FSK сигнала с размахом 400 мВ. Чтобы получить те же самые результаты, на вход Rx должен быть подан FSK сигнал с постоянной составляющей 1.2 В и размахом 400 мВ.
Пример телефонного интерфейса
На рисунке 2 приведен пример схемной реализации телефонного интерфейса, а в таблице 1 приведены параметры FSK приемопередатчика.
Библиотека Компэла425
f& Texas
INSiraJMENTS
IV. Примеры конкретных применений
Рис. 1. Центральный процессор и аналого-цифровой преобразователь
Заключение
Обычно FSK приемопередатчики реализуются аналоговыми средствами или при помощи DSP процессоров и аппаратных MAC модулей. Использование RISC микропроцессора MSP430 без MAC модулей для реализации функций приемопередатчика-очень необычная технология. Способность создавать фильтры при помощи технологии цифровой фильтрации колебаний совместно с дополнительным набором команд и 16 битной архитектурой микроконтроллера MSP430 делает код прикладной программы весьма компактным и производительным. Кроме того, сверхнизкое потребление MSP430 позволяет питать модем от телефонной линии. Это позволяет сделать устройство с малым числом компонентов. Были проведены дополнительные исследования, позволившие сделать заключение, что FSK приемник может работать с 8 битным аналого-цифровым преобразователем и иметь достаточно высокую чувствительность. Поэтому FSK приемопередатчик может быть реализован на любом микроконтроллере семейства MSP430.
Библиотека Компэла
Глава 10.
FSK модуляция и демодуляция с использованием микроконтроллера...
Рис.2. Телефонный интерфейс
Ссылки:
1. Texas Instruments: MSP430 Family, Architecture User's Guide and Module
Library.
2. Texas Instruments Digital Signal Processing Application with the TMS320
Family Volume 2.
3. Gaszi, L: Explicit Formulas for Lattice Wave Digital Filters; IEEE Trans. On
Circuits and Systems VOL. CAS-32, NO. 1, January 1985
Приложение А: подпрограмма FSK приемника
CPUOFF | .equ | OlOh |
SCGC | .equ | 040h |
SCG1 | .equ | 080h |
IE1 | .equ | Oh |
IE1 P0IE1 | .equ | 08h |
IE1 POIEO | .equ | 04h |
IE1 OFIE | .equ | 02h |
IE1 WDTIE | .equ | Olh |
IE2 | .equ | Olh |
Библиотека Компэла - |
f& Texas
INSiraJMENTS
IV. Примеры конкретных применений
IE2_BTIE
IE2_TPIE
IE2_ADIE
IE2_UTXRIE
IE2JJRXIE
IFG1
IFG1_2
IFG2
ME1
ME 2
POIN
POOUT
PODIR
POFLG
POIES
POIE
LCDCTL
LCDM
BTCTL
SSEL Hold DIV FREQ1 FREQO IP2 IP1 IPC |
BTCTL
BTCTL
BTCTL
BTCTL
BTCTL
BTCTL_
BTCTL_
BTCTL_
BTCNT1
BTCNT2
BTIFG
TCCTL
TCCTL TCCTL TCCTL TCCTL TCCTL TCCTL TCCTL |
SSEL1 SSELO
~ISCTL
~TXE
~ENCNT
~rxact ~txd
equ | 80h |
equ | 08h |
equ | 04h |
equ | 02h |
equ | Olh |
equ | 02h |
set | 04h |
equ | 03h |
equ | 04h |
equ | 05h |
equ | OlOh |
equ | Ollh |
equ | 012h |
equ | 013h |
equ | 014h |
equ | 015h |
equ | 030h |
equ | 030h |
equ | 040h |
equ | 80h |
equ | 40h |
equ | 20h |
equ | lOh |
equ | 08h |
equ | 04h |
equ | 02h |
equ | Olh |
equ | 046h |
equ | 047h |
equ | 080h |
equ | 042h |
equ | 080h |
equ | 040h |
equ | 020h |
equ | OlOh |
equ | 008h |
equ | 004h |
equ | 002h |
Адрес регистра управления и режима ЖКИ
Флаг прерывания ВТ Адрес управляющего регистра таймера/ счетчика
Библиотека Компэла
Глава 10. |
FSK модуляция и демодуляция с использованием микроконтроллера...
TCCTL RXD | .equ | OOlh |
TCPLD | .equ | 043h ; Адрес регистра пред- |
; варительной загрузки | ||
; таймера/счетчика | ||
ТС DAT | .equ | 044h ; Адрес таймера/счет- |
; чика | ||
TPD | .equ | 04eh |
TPD B16 | .equ | 080h |
TPD СPON | .equ | 040h |
ТРЕ | .equ | 04fh |
ТРЕ С | .equ | Olh |
ТРЕ 1 | .equ | 02h |
ТРЕ 2 | .equ | 04h |
ТРЕ 3 | .equ | 08h |
ТРЕ 4 | .equ | lOh |
ТРЕ 5 | .equ | 20h |
ТРЕ TPSSEL2 | .equ | 40h |
ТРЕ TPSSEL3 | .equ | 80h |
TPCTL | .equ | 04Bh |
TPCTL EN1FG | .equ | Olh |
TPCTL RC1FG | .equ | 02h |
TPCTL RC2FG | .equ | 04h |
TPCTL EN1 | .equ | 08h |
TPCTL ENA | .equ | lOh |
TPCTL ENB | .equ | 20h |
TPCTL TPSSELC | .equ | 40h |
TPCTL TPSSEL1 | .equ | 80h |
TPCNT1 | .equ | 04Ch |
TPCNT2 | .equ | 04Dh |
SCFIC | .equ | 050h |
SCFI1 | .equ | 051h |
SCFQCTL | .equ | 052h |
CBCTL | .equ | 053h |
CBE | . set | |
AIN | .equ | OllOh |
AEN | .equ | 0112h |
ACTL | .equ | 0114h |
ACTL CSTART | .equ | OOOlh |
ACTL SVCC OFF | .equ | OOOOh |
ACTL SVCC ON | .equ | 0002h |
ACTL 2 | .equ | 0004h |
ACTL 3 | .equ | 0008h AOQ |
f& Texas iNSiraJMENTS | IV. Примеры конкретных применений | |
ACTL 4 | .equ | OOlOh |
ACTL 5 | .equ | 0020h |
ACTL SEL AC | .equ | OOOOh |
ACTL SEL Al | .equ | 0004h |
ACTL SEL A2 | .equ | 0008h |
ACTL I SRC AC | .equ | OOOOh |
ACTL I SRC Al | .equ | 0040h |
ACTL RNG В | .equ | 0200h |
ACTL RNG AUTO | .equ | 0800h |
ACTL POWER UP | .equ | OOOOh |
ACTL POWER DOWN | .equ | lOOOh |
ACTL CLK MCLK | .equ | OOOOh |
ACTL CLK MCLK 2 | .equ | 2000h |
ACTL CLK MCLK 3 | .equ | 4000h |
ADAT | .equ | 0118h |
ADIFG | .equ | 04h |
WDTCTL | .equ | 0120h |
WDTHold | .equ | 80h |
WDT wrkey | .equ | 05A00h |
STACK | . set | 30 Oh ; Начальное значение |
; системного стека | ||
; 280h | ||
.**************** | ******* | ****************************** |
; Фильтры | ||
. **************** | ******* | ****************************** |
WDF PARMS | .usect | "FILTMEM",10,0200h |
IN Z | . set | |
Zl 1 | . set | |
Zl 2 | . set | |
Z3 1 | . set | |
Z3 2 | . set | |
end of parms | .usect | "FILTMEM",2 |
data word | .usect | "FILTMEM",2 |
last sample | .usect | "FILTMEM",2 |
bit lead lag | .usect | "FILTMEM",2 |
cycle counter | .usect | "FILTMEM",! ; Пользователь- |
екая сервисная программа
. *********************************}
■ Они используются для FSK демодуляции
■ при прерывании от 8- битного таймера
г********************
Библиотека Компэла
Глава 10.
FSK модуляция и демодуляция с использованием микроконтроллера...
; DYNAMIC: Регистры маркировки (используемые WDF) ; не должны использоваться для перемещения.
currenty | . set | R6 |
currentx | . set | R7 |
IROP1 | . set | cur |
IROP2L | . set | R7 |
IRACL | . set | R8 |
IRBT | . set | R9 |
lastx | . set | R1C |
bit data | . set | Rll |
mem ptr | . set | R15 |
; Используется WDF
; Используется WDF
ty ; Используется
; WDF
; Используется WDF ; Используется WDF ; Используется WDF
; Используется WDF ; Используется WDF
; STATIC
.kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk r
bit_sync_timer .set R12 ;
global_status .set R13 ;
bits_count .set R14 ;
INTERRUPT_TOGGLE . set 1
FALLING .set 2
CLOCK .set 4
*****************************************************
r
;Инициализация системы *****************************************************
г
;RAM_NORMAL_DEMOD .sect "RAM_CODE",02fOh
Start
.sect |
#STACK,SP #(WDTHold+WDT |
mov |
mov |
"ADC",0f000h ;0214h ;0F000h Инициализация системного указателя стека wrkey),&WDTCTL
clr.b &IFG1 |
clr.b mov.b |
Остановка сторожевого таймера очистка всех флагов прерываний &IFG2 #(17*5)-1,&SCFQCTL
; MCLK=32768*17*5 -» ; получаем производи-; тельность 2.8 MIPs
Библиотека Компэла
f& Texas
INSiraJMENTS
IV. Примеры конкретных применений
bis .b mov.b bic.b bic.b bic.b bis .b |
mov mov.l: call |
mov.b #4,&SCFIC |
mov.b #-205,&TCPLD |
bis.b #TPD B16,&TPD |
Установка частоты RC генератора, равной 2xFreq 32 8/2 /сброс нарастающих/спадающих фронтов операционный усилитель tlllllllOb,&P0DIR ; установка
портов Р0.7 - РОЛ на работу в режиме выходов РО.О используется в качестве входа сигнала RING #(TCCTL_SSEL1+TCCTL_ISCTL +
TCCTL_ENCNT),&TCCTL #IE2_BTIE,&IE2 /отключение прерыва-
; ния основного таймера #IE1_POIEO,&IE1 /отключение прерыва-
; ния от РО.С
#IE2 TPIE,&IE2 ; отключение прерыва-; ния универсального ; таймера
#ТРЕ_0+ТРЕ_1+ТРЕ_2+ТРЕ_3+ТРЕ_5,&ТРЕ ТР 0 используется для сигнала Hook ТР_1 используется для управления RAMP генератором
ТР_2 используется для тестирования схемы
ТР_3 перекрывает биты синхронизации
ТР 5 - бит данных #l,bit_sync_timer #3,cycle_counter #clear_all_parameters
;<----------- активизация демонстрации FSK!!!!---
bis.b #IE1_POIE1,&IE1
eint
WAIT_LOOP: ; неопределенное ожидание
; выход из цикла по прерыванию
jmp WAITJLOOP TIM8 Int:
IV. Примеры конкретных применений
do_6_counts: cmp
jge reti
compensate_lag add mov reti
compensate_lead sub mov reti
#7,bit_lead_lag ; если значение
; равно 6, то нам надо ; компенсировать ; отставание
compensate_lead
#l,bit_sync_timer #O,bit_lead_lag
#l,bit_sync_timer #O,bit_lead_lag
****************************************************
Выполнение алгоритма этого цикла происходит за 113 циклов
Параметры нового фильтра выборок Freq Stop (частота
затухания): 2.5 кГц, Attenuation Stop (подавление
на частоте затухания): 4 0 дБ
Freq_Pass (верхняя частота полосы пропускания):
1.4 кГц, Attenuation_Pass (подавление на верхней
частоте): 1 дБ
Порядок фильтра = 5
filters:
bis #INTERRUPT_TOGGLE,global_status
mov #WDF_PARMS,mem_ptr
.word 4fl6h
.word OOOOh
.word 498fh
.word OOOOh
.word 4fl7h
.word 0008h
.word 8607h
.word 4708h
.word 1108h
.word 480 6h
.word 1108h
IV. Примеры конкретных применений
jge non_negative mov #0,R6
non_negative
cmp #0ffh,R6 jlo non_ceiling mov #0ffh,R6
non_ceiling
mov.b R6,&P0OUT
exit_D_A
reti
; очистка всех параметров, лишних для гребенчатого
; фильтра
***************************************************** г
clear_all_parameters:
#0,r7 #0,r8 #0,r9 #0,rlC #0,rll #0,rl2 #0,rl3 #0,rl4 #0,rl5 #WDF_PARMS,r4 |
mov #0,r6
mov
mov
mov
mov
mov
mov
mov
mov
mov
mov clear_parms_loop
mov #0,0(r4)
incd r4
cmp #end of parms,r4
jnz clear parms loop
ret
Адреса векторов прерывания:**
.sect "Int_Vect",0ffe0h
.word Start
.word Start
.word Start
.word Start
.word Start
03e0h ; OFFEOh
P0.27
ВТ
универсальный таймер
Библиотека Компэла
Глава 10.
FSK модуляция и демодуляция с использованием микроконтроллера „.
.word .word .word .word .word .word
.word .word .word .word .word
Start Start Start Start Start Start
Start
TIM8_Int
Start
Start
Start
АЦП
сторожевой таймер
РОЛ PO.O RSTI/OF PUC/WDT
Приложение В:
CPUOFF
SCGC
SCG1
IE1
IE1_POIE1
IE1_POIEO
IE1_OFIE
IE1_WDTIE
IE2
IE2_BTIE
IE2_TPIE
IE2_ADIE
IE2_UTXRIE
IE2_URXIE
IFG1
IFG2
ME1
ME 2
POIN
POOUT
PODIR
POFLG
POIES
POIE
LCDCTL
LCDM
Библиотека Компэла
f& Texas
INSiraJMENTS
IV. Примеры конкретных применений
.equ .equ .equ .equ .equ .equ .equ .equ .equ .equ .equ .equ .equ .equ .equ |
SSEL Hold DIV FREQ1 FREQC IP2 IP1 IPO |
BTCTL
BTCTL
BTCTL_
BTCTL_
BTCTL_
BTCTL_
BTCTL_
BTCTL_
BTCTL_
BTCNT1
BTCNT2
BTIFG
TCCTL
SSEL1 ~SSELC "iSCTL TXE ENCNT RXACT TXD RXD |
TCCTL TCCTlT
tcctiT tcctiT
TCCTL_ TCCTL_ TCCTL_ TCCTL_ TCPLD
TCDAT
TPD
TPD_B16
TPD_CPON
TPE
TPE_C
TPE_1
TPE_2
TPE_3
TPE_4
TPE_5
TPE_TPSSEL2
TPE_TPSSEL3
TPCTL
TPCTL EN1FG
equ | 040h |
equ | 80h |
equ | 40h |
equ | 20h |
equ | lOh |
equ | 08h |
equ | 04h |
equ | 02h |
equ | Olh |
equ | 046h |
equ | 047h |
equ | 080h |
equ | 042h |
equ | 080h |
equ | 040h |
equ | 020h |
equ | OlOh |
equ | 008h |
equ | 004h |
equ | 002h |
equ | OOlh |
equ | 043h |
044h
04eh
080h
040h
04fh
Olh
02h
04h
08h
lOh
20h
40h
80h
04Bh
Olh
флаг прерывания ВТ адрес управляющего регистра таймера/ счетчика
адрес регистра предварительной загрузки таймера/счетчика адрес таймера/счетчика
IV. Примеры конкретных применений
; константы:
; delta_phase
г
_1300_Hz
_2100_Hz
DELTAPHASE
= (freq/sam_freq)*6553б
.equ 01155h .equ OlcOOh . equ 1
Фильтры
sinne_value
tx_cycle_counter
tx_cycle_ptr
.usect "FILTMEM",2, 2 0Oh .usect "FILTMEM",2
.usect "FILTMEM",2 ; подпрограмма
; обслуживания
пользователя
delta phase | . set | R6 |
phase ptr | . set | R7 |
tx data ptr | . set | R8 |
tx data mask | . set | R9 |
DELAY COUNTER | . set | R1C |
global status | . set | Rll |
reg 1 | . set | R12 |
reg 2 | . set | R13 |
reg 3 | . set | R14 |
TX DONE | . set | |
FALLING | . set | |
CLOCK | . set | |
HUNT | . set | |
2 0MS | . set | |
1PT5S | . set | 2880C |
; Инициализ ация сие темы *****************************************************
г
Start .sect "ADC",0f000h ;0214h
;0F000h mov #STACK,SP ; инициализация
; системного указателя ; стека mov #(WDTHold+WDT_wrkey),&WDTCTL
; остановка сторожево-; го таймера
Библиотека Компэла
Глава 10.
FSK модуляция и демодуляция с использованием микроконтроллера...
Loop |
clr.b &IFG1 ; очистка всех флагов
; прерываний clr.b &IFG2 mov.b #(75)-l,&SCFQCTL ; MCLK=32768*17*4
; получаем 2.45 MIPS
mov.b #4,&SCFI0 ; установка частоты RC
; генератора 2xFreq mov.b #-128,&TCPLD ; 32768*75/128 = 1920C
; выборок/секунду mov.b #(TCCTL_SSEL1+TCCTL_ISCTL +
TCCTL_ENCNT),&TCCTL mov.b #IE1_POIE1,&IE1 ; разрешение 8-бит-
; ного таймера bis.b tllllllllb,&P0DIR ; установка пор-
; тов Р0.7-Р0.0
; на работу в качестве
; выходов eint
Основная программа:'
mov mov mov mov bic call call wait_for_tx_done ~ bit jz Loop2: jmp TIM8_Int: NORMAL_MOD: call |
; ожидание прерывания #TX_DATA_TABLE,tx_data_ptr #08000h,tx_data_mask #O,phase_ptr #1,tx_cycle_counter #TX_DONE,global_status #fetch_new_output_bit #fsk_modulation
#TX_DONE,global_status wait for tx done
Loop2
#fsk modulation
Эта часть программы формирует сигнал на выходе P0OUT, к которому должен быть подключена 8-битная R-2R цепочка. Она используется для отслеживания отфильтрованного значения, но если необходимо использовать порт для формирования сигнала
Библиотека Компэла
f& Texas iNSiraJMENTS |
IV. Примеры конкретных применений
; FSK передатчика, то она должна быть отключена D А
mov mov.b reti |
sinne_value,reg_l reg_l,&P0OUT ; MSB содержится ; в седьмом бите.
Таблица слежения
fsk modulation: add
delta_phase,phase_ptr
таблица содержит 128 элементов, 4*128 = 512 = ± 256 извлекаются старшие 9 бит
mov |
phase_ptr,reg_l
tst jge xor add swpb |
таблица косинусов 3-и 4-ого квадрантов переносятся на 1- и 2-ой квадранты
reg_l
no_tx_abs
#Offffh,reg_l
#l,reg_l
no tx abs:
LSB (МЗБ) результата в MSB (СЗБ) регистра reg_l, 8 MSB бит в младшем байте регистра reg_l С в бит bitO, 8 MSB бит в биты 1-8 reg_l формат Q8 |
reg_l
bit #8000h,
rlc reg 1
bic #0fe00h,
first_two_quadrant cmp
second_quadrant mov sub mov.b
#128,reg_l first_quadrant #256,reg_2 reg_l, reg_2 cos_table(reg_2),reg_2 |
reg
Библиотека Компэла
Глава 10.
FSK модуляция и демодуляция с использованием микроконтроллера„.
0-127 градусов |
#80h,reg_2 reg_2,sinne_value |
хог add jmp
first_quadrant
mov.b
output_sample: add mov
#0ffffh,reg_2
#l,reg_2
output_sample
cos_table(reg 1),reg_2
; результат ; в переменной ; sinne value
/начало сервисной подпрограммы fetch new out bit
fetch new | output | _bit: |
dec | tx cycle counter | |
jnz | NO RESET TX PTR | |
; при производительности | ||
; 19200 выборок/сек divl6 = | ||
; 12 00 бод | ||
mov | #16,tx cycle counter | |
load next | cycle: | |
mov | # 2100 Hz,delta phase ; примите это | |
; сначала | ||
mov | tx data ptr,reg 1 | |
bit | @reg l,tx data mask | |
jnz | TX BIT IS 1 | |
TX BIT IS | _0: | |
mov | # 1300 Hz,delta phase | |
TX BIT IS | 1: | |
rra | tx data mask | |
BIC | #8000h,tx data mask | |
jnc | NO TX PTR UPDATE | |
mov | #8000h,tx data mask | |
add | #2,tx data ptr | |
mov | tx data ptr,reg 1 | |
tst | 0(reg 1) | |
jnz | NO RESET TX PTR | |
mov | #TX DATA TABLE,tx data ptr | |
bis | #TX DONE,global status | |
NO TX PTR | UPDATE | |
NO RESET | TX PTR | |
RufinunTRKa Kn | ret | AA |
II
IV. Примеры конкретных применений
********************
; конец сервисной подпрограммы fetch_new_out_bit
TX DATA TABLE | |
.word | 05555h |
.word | 05555h |
.word | 05555h |
.word | 05555h |
.word | 05555h |
.word | 05555h |
.word | OFFFFh |
.word | OFFFFh |
.word | OFFFFh |
.word | OFFFFh |
.word 0FC07h
-k-k-k-k-k-k-k-k-k-k-k-k-k-k
; это имело множество битов меток ; содержание: 5 байт, 13 5 7 9
-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k
.word | OFCOBh |
.word | 0FC03h |
.word | 0FC07h |
.word | OFCOBh |
.word | OFCOFh |
.word | 0FC13h |
.word | |
cos table: | |
.byte | 07fh |
.byte | 07fh |
.byte | 07fh |
.byte | 07fh |
.byte | 07fh |
.byte | 07fh |
.byte | 07fh |
.byte | 07fh |
.byte | 07fh |
.byte | 07fh |
.byte | 07fh |
.byte | 07eh |
.byte | 07eh |
Библиотека Компэла
Глава 10.______ FSK модуляция и демодуляция с использованием микроконтроллера...
.byte | 07eh |
.byte | 07eh |
.byte | 07dh |
.byte | 07dh |
.byte | 07dh |
.byte | 07ch |
.byte | 07ch |
.byte | 07ch |
.byte | 07bh |
.byte | 07bh |
.byte | 07ah |
.byte | 07ah |
.byte | 07ah |
.byte | 079h |
.byte | 079h |
.byte | 078h |
.byte | 077h |
.byte | 077h |
.byte | 076h |
.byte | 076h |
.byte | 075h |
.byte | 075h |
.byte | 074h |
.byte | 073h |
.byte | 073h |
.byte | 072h |
.byte | 071h |
.byte | 070h |
.byte | 070h |
.byte | 0 6fh |
.byte | 0 6eh |
.byte | 0 6dh |
.byte | 0 6ch |
.byte | 0 6ch |
.byte | 0 6bh |
.byte | 0 6ah |
.byte | 069h |
.byte | 068h |
.byte | 067h |
.byte | 066h |
Библиотека Компэла-- |
;cos 23.2031
^P Texas | |
Insitujments | |
.byte | 065h |
.byte | 064h |
.byte | 063h |
.byte | 062h |
.byte | 061h |
.byte | 060h |
.byte | 05fh |
.byte | 05eh |
.byte | 05dh |
.byte | 05ch |
.byte | 05bh |
.byte | 05ah |
.byte | 059h |
.byte | 058h |
.byte | 057h |
.byte | 055h |
.byte | 054h |
.byte | 053h |
.byte | 052h |
.byte | 051h |
.byte | 04fh |
.byte | 04eh |
.byte | 04dh |
.byte | 04ch |
.byte | 04ah |
.byte | 049h |
.byte | 048h |
.byte | 047h |
.byte | 045h |
.byte | 044h |
.byte | 043h |
.byte | 041h |
.byte | 040h |
.byte | 03fh |
.byte | 03dh |
.byte | 03ch |
.byte | 03ah |
.byte | 039h |
.byte | 038h |
.byte | 036h |
IV. Примеры конкретных применений
;cos 61.1719
Библиотека Компэла
Глава 10. FSK модуляция и демодуляция с использованием микроконтроллера „.
.byte | 035h |
.byte | 033h |
.byte | 032h |
.byte | 030h |
.byte | 02fh |
.byte | 02eh |
.byte | 02ch |
.byte | 02bh |
.byte | 029h |
.byte | 028h |
.byte | 026h |
.byte | 025h |
.byte | 023h |
.byte | 022h |
.byte | 020h |
.byte | Olfh |
.byte | Oldh |
.byte | Olch |
.byte | Olah |
.byte | 018h |
.byte | 017h |
.byte | 015h |
.byte | 014h |
.byte | 012h |
.byte | Ollh |
.byte | OOfh |
.byte | OOeh |
.byte | OOch |
.byte | OOah |
.byte | 009h |
.byte | 007h |
.byte | 006h |
.byte | 004h |
.byte | 003h |
.byte | OOlh |
-kkkkkkkkkkkkkkk | kkkkkkkkkkkkkkkkkk |
■k k k k —im-^nn-1 ti^t/ | m /~y-^ /~ t—i ттy-* /- -y-^т tt—i -i ttt/tt • k |
;cos 8 9.2 969
.sect "Int_Vect",0ffe0h ;03e0h ;0FFE0h
.word Start ;P0.27
.word Start ;BTIM Int ;BT
Введение
Цель этого примера применения состоит в том, чтобы показать, как добавить микроконтроллерному устройству основные функциональные возможности модема. Чтобы подключить устройство к телефонной линии необходимо всего несколько внешних элементов. Такое подключение может быть реализовано при помощи демонстрационной платы DAA.
Данный программный модем предназначен для работы только с входящим соединением. Такое упрощение связано с тем, что ставилась задача только показать возможность создания программного модема. Кроме того, в данном примере применения описывается, как установить соединение между программным модемом на базе MSP430 и стандартным модемом персонального компьютера.
2. Использование модема стандарта V.21 на телефонных сетях
общего пользования (ТФСОП)
Основная функция модема состоит в преобразовании двоичных сигналов в аналоговые сигналы, которые могут передаваться в полосе телефонного канала, и наоборот - принятых аналоговых сигналов в двоичные сигналы. CCITT/ ITU определяют различные стандарты для модемов. Ниже некоторые основные технические требования к модемам стандарта V.21:
• Полнодуплексное соединение «точка-точка» для передачи данных по те
лефонной линии
• Двоичная частотная манипуляция (FSK)
• Скорость передачи данных до 300 бит/сек (бод)
Параметры модуляции стандарта V.21:
454 Библиотека Компэла
Глава 11.
Таблица 1. Частотные параметры FSK сигналов стандарта У21
Канал 1 | Канал 2 | |
Центральная частота | 1080 Гц | 1750 Гц |
Девиация частоты | 100 Гц | 100 Гц |
Двоичная «1» | 980 Гц | 1650 Гц |
Двоичный «0» | 1180 Гц | 1850 Гц |
Стандарт V.21 допускает нестабильность частоты на выходе модулятора не более ±6 Гц. Демодулятор должен быть способен распознать частоты в пределах диапазона ±12 Гц от ожидаемых значений. Стандарт V.21 определен для передачи данных как в синхронном, так и в асинхронном режиме. Для стандартного двухточечного соединения модемом используется асинхронные режим с одним стартовым битом, восьмью информационными битами и одним стоп битом. На рисунке 1 приведены двоичный и FSK сигналы для символа «К» в кодировке ASCII (0x4B). Данные передаются младшим значащим битом вперед (LSB).
Приведенный программный модем на базе MSP430 работает только в режиме ответа. Поэтому каналы передачи данных имеют вид, представленный на рисунке 2. Программный модем на базе MSP430 передает данные по второму каналу, а принимает - по первому.
Библиотека Компэла
f& Texas
INSiraJMENTS
IV. Примеры конкретных применений
Рис.2. Частотные спектры каналов передачи данных стандарта V.21
456 Библиотека Компэла
Глава 11.
Программный встроенный модем на MSP430
3. Описания аппаратной части
Подключение к DM
Управляющие сигналы
Программный модем на базе MSP430 использует два управляющих сигнала DAA, которые непосредственно подаются на порты ввода-вывода микроконтроллера MSP430.
Первый управляющий сигнал - выходной сигнал LITELINK III - сигнал обнаружения вызова RING, который подается непосредственно на способный формировать прерывание порт Р2.5 MSP430. Выходной сигнал RING обычно удерживается в высоком состоянии, а при поступлении вызова на нем появляются импульсы.
Библиотека Компэла
Глава 11.
Программный встроенный модем на MSP430
Второй управляющий сигнал, сигнал занятия линии, является для DAA входным и обозначается попОН. Формируется этот сигнал на порту Р2.1. В таблице 2 приведены требуемые состояния сигнала попОН для двух режимов работы.
Таблица 2. Управление занятием линии
попОН | Режим работы | Описание |
Высокий уровень | Устройство отключено от линии | DAA готов занять линию или принять вызов, схема слежения за линией активна, а при поступлении вызова на выходе RING формируется сигнал. |
Низкий уровень | Устройство подключено к линии (занятие линии) | Линейный ток протекает через линейный терминал устройства, которое осуществляет ответ или вызов другого абонента. |
Библиотека Компэла
f& Texas
INSiraJMENTS
IV. Примеры конкретных применений
Таблица 3. Уровни передаваемых сигналов
Частота (f) | Уровень сигнала Р (Шх) |
1650 Гц | -24 dBm |
1850 Гц | -24.5 dBm |
Глава 11.
Таблица 4. Краткий обзор программных модулей
Модуль | Описание |
Прикладная программа (softmodem.c, softmodem.h) | Реализует интерфейс пользователя при помощи модуля V.21 для передачи данных по модемному каналу. |
Модуль V.21 (v_21.c,v_21.h) | Содержит все программы и подпрограммы, реализующие функциональные возможности модема V.21, включая функции, необходимые для передачи данных при помощи UART. |
Детектор вызывного сигнала (ring_detection.c, ring_detection.h) | Содержит подпрограмму инициализации детектора вызывного сигнала и формирования основных временных интервалов, используемых модули V.21. |
Библиотека Компэла 461
тг Texas
INSiraJMENTS
IV. Примеры конкретных применений
Рис. 6. Блок-схема подпрограммы обработки прерывания по порту Р2.5 алгоритма детектирования вызывного сигнала
Библиотека Компэла
Глава 11.
Программный встроенный модем на MSP430
Рис. 7. Блок-схема подпрограммы обработки прерывания от WDT алгоритма детектирования вызывного сигнала
Библиотека Компэла
f& Texas
INSiraJMENTS
IV. Примеры конкретных применений
Глава 11.
INSiraJMENTS
IV. Примеры конкретных применений
При чтении P1IES.3 ISR определяет, фронт сигнала (нарастающий или спадающий). В зависимости от этого обновляется переменная BitFreq, которая и определяет период формируемого сигнала с ШИМ. Вследствие этого период выходного сигнала зависит от потока данных UART (см. рисунок 10).
Рис. 10. Эпюры колебаний FSK модулятора
Библиотека Компэла
Глава 11.
Библиотека Компэла
f& Texas
INSiraJMENTS
IV. Примеры конкретных применений
Таблица 5. Значения, соответствующие длительностям сигналов
Библиотека Компэла
Глава 11.
Библиотека Компэла
Рис. 14. Функциональная схема блока FSK демодулятора
Установление связи и управление занятием линии
Перед обменом данных по телефонной линии связывающиеся модемы должны договориться об общем стандарте связи. Так как этот процесс времяза-висимый, то для формирования временных меток используется модуль захвата/сравнения Timer_A.CCRO работающий в режиме сравнения. Подпрограмма обработки прерывания от Timer_A.CCRO вызывается каждую 1/300 секунды и позволяет обеспечить алгоритм установления связи (см. рисунок 15).
Мс 3300 мс 75 мс хмс 155 мс 600 мс
Рис. 15. Установление связи по протоколу V.21
После обнаружения вызывного сигнала программный модем на базе MSP430 подключается к телефонной линии. В этот момент тракты приема и передачи активны и MSP430 осуществляет установку связи.
Библиотека Компэла
Глава 11. Программный встроенный модем на MSP430
После начального периода молчания длительностью 2150 мс (2 секунды из этого периода используются алгоритмом детектирования звонка), программный модем MSP430 посылает ответный тон, частота которого 2100 Гц, а длительность 3300 мс. Формируется этот сигнал при помощи модуля захвата/сравнения Timer_A.CCR2.
После дополнительного периода молчания длительностью 75 мс, программный модем MSP430 активизирует FSK модулятор и начинает посылать двоичные единицы (1650 Гц). Теперь вызывающий модем имеет время для распознавания передачи по протоколу V.21. После обнаружения стандарта V.21 сам вызывающий модем начинает передавать двоичные единицы (980 Гц). Необходимо не менее 155 медля их распознавания программным модемом MSP430. Осуществляется это путем подсчета длительности сигналов при помощи ISR захвата Timer_A.CCR1. После того, как подсчитано достаточное количество периодов сигналов (DetectTime_ Chn1), оба модема ожидают еще 600 мс, продолжая передавать единицы, а после этого переходят в режим передачи данных.
Библиотека Компэла 471
Тг Texas
INSiraJMENTS
IV. Примеры конкретных применений
Рис. 17. Блок-схема пользовательской программы, использующей модем V.21
472 Библиотека Компэла
Глава 11.
Программный встроенный модем на MSP430
На рисунке 17 показана блок-схема алгоритма пользовательской программы, использующей модем V.21.
INSiraJMENTS
IV. Примеры конкретных применений
дартный модем получает соответствующие строки, содержащие информацию о состоянии (см. Таблицу 6).
Таблица 6. Сообщения программного модема
Кодовая комбинация | Ответ программного модема |
Программный модем MSP430 переключает порт Р1.0, к которому подключен желтый светодиод. В зависимости от состояния порта светодиод загорается или тухнет. | |
Передается состояние порта Р6.6. В зависимости от уровня сигнала на этом входе передается строка «Р6.6 Input: HIGH» или «Р6.6 Input: LOW». | |
Аналогично описанному выше, но передается состояние порта Р6.7. | |
t | Возвращается результат аналого-цифрового преобразования встроенного температурного датчика. |
X | Программный модем MSP430 возвращает строку «Good Bye!» и разрывает модемное соединение. |
Любой другой символ | Полученный символ возвращается стандартному модему |
Использованные аппаратные ресурсы MSP430
Программный модем V.21 использует следующие аппаратные ресурсы микроконтроллера:
• Таймер Timer_A3
• Компаратор Comparator_A
• Модуль USART
• Сторожевой таймер
• Два цифровых порта ввода - вывода
• 1.7 КБ Flash памяти, 100 байт ОЗУ
Заключение
Все тестируемые стандартные модемы смогли соединиться с программным модемом на базе MSP430 без каких-либо проблем. Было показано, что функциональные возможности модема могут быть реализованы при помощи самого микроконтроллера без использования дополнительного аппаратного модема. Это позволяет поднять рентабельность многих прикладных решений, которым необходимо вести обмен данными по телефонной линии с другими устройствами.
Ссылки:
1. MSP430x13x, MSP430x14x Mixed Signal Microcontroller data sheet (SLAS272)
474 Библиотека Компэла
Глава 11.
Приложение А. Схема электрическая принципиальная программного модема
f& Texas iNSiraJMENTS |
IV. Примеры конкретных применений
Приложение В. Перечень элементов программного модема | ||
Позиция | Наименование | Корпус |
R1.R9 | 100кОм | |
R2 | ЮкОм | |
R3 | 180кОм | |
R4 | 2к0м | |
R5 | 22к0м | |
R6.R7, R8.R11 | 560 0м | |
R10 | 9.1 кОм | |
R12, R13 | 5.1 кОм | |
С1.С2, СЗ,С4,С5, С8.С10 | 0.1 мкФ | |
С6 | 2.2 мкФ х 50 В | D4mm |
С7 | 47мкФх16В | D 6.3 мм |
С9 | 4700 пФ | |
С11 | 0.01 мкФ | |
С13 | 47 пФ | |
D1 | Голубой светодиод | |
D2 | Желтый светодиод | |
D3 | Красный светодиод | |
D4 | ВАТ 48 SMD | |
Q2 | 32 768 Гц | |
IC1 | MSP430F149 | TQFP-64 |
IC2 | TLV2782ID, ОУ Texas Instruments | S0-8 |
IC3 | TPS7233QD, стабилизатор напряжения Texas Instruments | S0-8 |
Р1 | HEBW21/ разъем питания | |
Х1 | Разъем 1x2 | |
Х2 | Разъем 1x12 | |
ХЗ | Штырьковый разъем 2x7 | |
Х4 | Разъем RJ11 | |
JP1 | Штырьковый разъем с перемычками 2x3 |
Библиотека Компэла
f& Texas iNSiraJMENTS |
IV. Примеры конкретных применений
Генерация и распознавание DTMF-сигналов Часть I.
Robert Siwy [slaae16.pdf (Англ.)]
Введение
Первая часть данного примера применения описывает генерацию DTMF сигналов с использованием микроконтроллера MSP430. Даётся объяснение наиболее важных спецификаций, используемых в этом случае, приводятся теоретические и математические обоснования генерации синусоидальных сигналов при помощи прямоугольных с использованием соответствующих аналоговых фильтров. Также пример включает протестированные демонстрационные программы генерации прямоугольных сигналов на базе различных конфигураций таймеров микроконтроллеров MSP430. В заключительной части приводится принципиальная схема, позволяющая генерировать сигналы DTMF из прямоугольных сигналов.
Библиотека Компэла
Глава 12.
IV. Примеры конкретных применений
• Отклонение частоты от номинальной - не более 1.8% в процессе набора номера | ||||||
Длительность символа | Пауза между символами | Мин. уровень в дБ (950мВ) | Макс, уровень в дБ (950мВ) | |||
fu | fo | fu | fo | |||
Автоматический набор или ручной набор с автоматическим ограничением длительности | 65 MC<t < 100 мс | 80 мс < t < 6500 мс | -16 | -14 | -10.5 | -8.5 |
Ручной набор без ограничения длительности | t>65 мс | t>80MC | -16 | -14 | -13 | -11 |
• Номинальный уровень напряжения верхней из 2-х частот должен быть
выше как минимум на 0.5 дБ, но не более чем на 3.5 дБ, чем номиналь
ный уровень напряжения нижней из 2-х частот с целью компенсации по
терь в длинных линиях
• В диапазоне частот 250..4600 Гц, суммарный уровень всех частот, кроме
тех, которые формируют набор номера, должен быть как минимум на
23 дБ ниже суммарного уровня частот, формирующих набор номера и
как минимум на 20 дБ ниже уровня каждой из таких частот.
Генерация сигналов DTMF
Как было описано выше, сигналы DTMF являются аналоговыми и состоят из двух независимых друг от друга синусоидальных сигналов. Таким образом, невозможно сгенерировать такие сигналы только цифровым способом. Цифровые сигналы должны быть преобразованы при помощи АЦП и/или аналоговых фильтров в требуемую синусоидальную форму.
Библиотека Компэла
Глава 12.
Программное обеспечение для генерации меандра
Программа генерации меандра должна удовлетворять следующим требованиям:
• Иметь возможность синтеза двух независимых друг от друга прямо
угольных сигналов.
• В целях разделения сигналов требуются два выходных вывода, обеспе
чивающих генерацию сигналов из «верхнего» (Hi-Group) и «нижнего»
(Lo-Group) частотных диапазонов соответственно.
Глава 12.
Библиотека Компэла
f& Texas
INSiraJMENTS
IV. Примеры конкретных применений
Рис. 4. Блок - схема прерываний от 8-битного таймера (Lo-Group)
484 Библиотека Компэла
Глава 12.
Библиотека Компэла
Глава 12. Генерация и распознование DTMF-сигналов
.word Offffh-(TCLK/(1477*2))+24 ; Верхняя
; частота для 9 .word Offffh-(TCLK/(1633*2) )+22 ; Верхняя
; частота для А .word Offffh-(TCLK/(1633*2) ) +22 ; Верхняя
; частота для В .word Offffh-(TCLK/(1633*2) ) +22 ; Верхняя
; частота для С .word Offffh-(TCLK/(1633*2) ) +22 ; Верхняя
; частота для D .word Offffh-(TCLK/(1207*2) ) +28 ; Верхняя
; частота для * .word Offffh-(TCLK/(1477*2) ) +24 ; Верхняя
; частота для #
; Таблица для «нижней» частоты
DTMFJLO .byte Offh-(TCLK/(941*2*3)) ; Нижняя
; частота для С
.byte Offh-(TCLK/(697*2*3) ) ; Нижняя
; частота для 1
.byte Offh-(TCLK/(697*2*3) ) ; Нижняя
; частота для 2
.byte Offh-(TCLK/(697*2*3) ) ; Нижняя
; частота для 3
.byte Offh-(TCLK/(770*2*3) ) ; Нижняя
; частота для 4
.byte Offh-(TCLK/(770*2*3) ) ; Нижняя
; частота для 5
.byte Offh-(TCLK/(770*2*3) ) ; Нижняя
; частота для 6
.byte Offh-(TCLK/(853*2*3) ) ; Нижняя
; частота для 7
.byte Offh-(TCLK/(853*2*3) ) ; Нижняя
; частота для 8
.byte Offh-(TCLK/(853*2*3) ) ; Нижняя
; частота для 9
.byte Offh-(TCLK/(697*2*3) ) ; Нижняя
; частота для А
.byte Offh-(TCLK/(770*2*3) ) ; Нижняя
; частота для В
.byte Offh-(TCLK/(853*2*3) ) ; Нижняя
; частота для С
Библиотека Компэла 487
тг Texas
INSiraJMENTS
IV. Примеры конкретных применений
.byte Offh-(TCLK/(941*2*3) ) ; Нижняя
; частота для D
.byte Offh-(TCLK/(941*2*3) ) ; Нижняя
; частота для *
.byte Offh-(TCLK/(941*2*3) ) ; Нижняя
; частота для #
Таблица длительностей сигнала
DTMF L
.byte .byte .byte .byte .byte .byte .byte .byte .byte |
2*941* 2*697* 2*697* 2*697* 2*770* 2*770* 2*770* 2*852* 2*852*
.byte 2*852"
.byte .byte |
2*697* 2*770*
.byte 2*852"
.byte .byte .byte |
2*941* 2*941* 2*941*
DL/100C DL/100C DL/100C DL/100C DL/100C DL/100C DL/100C DL/100C DL/100C DL/100C DL/100C DL/100C DL/100C DL/100C DL/100C DL/100C
Полупериоды Полупериоды Полупериоды Полупериоды Полупериоды Полупериоды Полупериоды Полупериоды Полупериоды Полупериоды Полупериоды Полупериоды Полупериоды Полупериоды Полупериоды Полупериоды
для С для 1 для 2 для 3 для 4 для 5 для 6 для 7 для 8 для 9 для А для В для С для D для * для #
Сохранить номер во временном регистре ,RCOUNT ; Сохранить счётчик длительности ; подготовка 8-битного таймера для частоты DTMF-Lo mov.b #0a8h,&TCCTL |
mov. b DTMF_NR,RTEMP mov.b DTMF L(RTEMP), |
; DTMF-TX Подпрограмма DTMF DTMF TX
mov.b DTMF LO(RTEMP)
mov.b #000,&TCDAT
Тактирование от MCLK ,&TCPLD ; Подготовка регистра предварительной загрузки Загрузка счётчика из регистра
Библиотека Компэла
Глава 12.
Библиотека Компэла
f& Texas
INSiraJMENTS
IV. Примеры конкретных применений
ADD FDTMFL0,R5 ; Смещение для меныпе-
; го времени
MOV R5,&CCR1 ; Первая смена состоя-
; ния через 0.71мс
MOV R5,&CCR2 ; 1/(2x697) = 0.71мс
MOV #OMT+CCIE,&CCTL1 /Инверсия выхода,
; прерывание разр.
MOV #OMT+CCIE,&CCTL2 /Инверсия выхода,
; прерывание разр.
MOV.B STDTMF,R5 ; Счётчик на 82 мс
RRA R5 ; число смен состояния
; нижней частоты
для длительности
MOV.В DTMFL(R5),LENGTH
сигнала
продолжение программы
; Обработчик прерывания от CCR0 (здесь не используется)
TIMMOD0
RETI
; Обработчик прерываний от регистров захвата-сравнения
; 1. . 4
TIM HND | ADD | &TAIV,PC |
RETI | ||
JMP | HCCR1 | |
JMP | HCCR2 | |
JMP | HCCR3 | |
JMP | HCCR4 | |
TIMOVH | INC | TIM32B |
RETI |
Обработка запроса с наивысшим приоритетом
нет запроса прерывания: RETI запрос от CCR1 (нижняя частота DTMF) запрос от CCR2 (верхняя частота DTMF) запрос от CCR3 запрос от CCR4
Расширение таймера Timer А до 32 бит
; Нижняя частота DTMF: TA1 инвертирует выход модуля ; Output Unit I
Библиотека Компэла
Глава 12.
Библиотека Компэла
f& Texas
INSiraJMENTS
IV. Примеры конкретных применений
Таблица частот DTMF: в таблице содержится число тактов MCLK на полупериод. Значения скорректированы для действующей частоты MCLK в процессе ассемблирования и округлены с минимально возможной ошибкой частоты
FDTMFLO | .word |
.word | |
.word | |
.word | |
FDTMFHI | .word |
.word | |
.word | |
.word |
((TCLK/697)+l)/2
((TCLK/770)+l)/2 ((TCLK/852)+l)/2 ((TCLK/941)+l)/2 ((TCLK/1209)+l)/2
((TCLK/1336)+1)/2 ((TCLK/1477)+1)/2 ((TCLK/1633)+1)/2
Нижняя частота DTMF 697Hz 770Hz 852Hz 941Hz
Верхняя частота DTMF1209Hz 1336Hz 1477Hz 1633Hz
; Таблица содержит число полупериодов для длительности
сигнала DL (мс).
; Для подсчёта используется нижняя частота DTMF
Число полупериодов для DL в мс |
DTMFL .byte 2*697*DL/100C
.byte 2*770*DL/100C
.byte 2*852*DL/1000 ;
.byte 2*941*DL/1000 ;
.sect «TIMVEC»,OFFFOh
.word TIM_HND
.word TIMMODC
.sect «INITVEC»,OFFFEh
.word INIT
Вектора прерываний таймера Timer_A
Вектор модулей 1..4 таймера Вектор модуля О таймера Вектор сброса Reset
Ниже приведено несколько более быстрое решение. Однако, при этом оно требует большего объёма ОЗУ т.к. данные, получаемые из таблиц не пересчитываются каждый раз, а хранятся в двух словах в ОЗУ DTMFLO и DTMFHI. Чтение производится из подпрограмм обработки прерываний таймера Timer_A. Используемые таблицы идентичны приведенным в предыдущем примере.
Библиотека Компэла
Глава 12.
Библиотека Компэла
IV. Примеры конкретных применений |
f& Texas
Библиотека Компэла
Глава 12. Генерация и распознование DTMF-сигналов
JMP HCCR4 ; запрос от CCR4
TIMOVH INC TIM32B ; Расширение таймера
; Timer_A до 32 бит RETI
; Нижняя частота DTMF: ТА1 инвертирует выход модуля ; Output Unit I
HCCR1 ADD DTMFLO,&CCR1 ; Добавить длитель-
; ность полупериода
DEC.В LENGTH ; Длительность сигнала
; DL завершена?
JNZ TARET ; Нет
; Да, прекратить выдачу сигнала DTMF: запретить ; прерывания
BIC #OMRS+OUT+CCIE,&CCTL1 ; Сброс ТА1
BIC #OMRS+OUT+CCIE,&CCTL2 ; Сброс ТА2
TARET RETI ; Возврат из прерыва-
; ния
; Верхняя частота DTMF: TA2 инвертирует выход модуля ; Output Unit 2
HCCR2 ADD DTMFHI,&CCR2 ; Добавить длитель-
; ность полупериода
RETI ; Возврат из прерыва-
; ния
HCCR3 ... ; Задача, контролируе-
; мая регистром CCR3
RETI
HCCR4 ... ; Задача, контролируе-
; мая регистром CCR4
RETI
; Таблицы и вектора прерываний идентичны приведенным ; в предыдущем примере
Библиотека Компэла
Глава 12. Генерация и распознование DTMF-сигналов
J0
|A(3f3)f < 3
В результате вычислений для частот обеих групп имеем требуемый порядок фильтра п=1.15. Таким образом, требованиям будет удовлетворять фильтр 2-го порядка, который может быть построен на операционном усилителе. В случае использования фильтра 3-го порядка понадобится только два дополнительных элемента. Однако, это позволит снизить требования к разбросу параметров компонентов. Оба приведенных выше требования будут соблюдены, если частота среза находится в следующих пределах:
Нижняя группа fg > 880 Гц fg < 1418 Гц
Верхняя группа fg > 1527 Гц fg < 2460 Гц
Если частота среза минимальна, будет наблюдаться максимальное подавление гармоник. Однако, в этом случае разность уровней самой низкой и самой высокой частоты в группе будет равна 3 дБ. При максимально возможной частоте среза разность уровней минимальна, но гармонические составляющие подавляются только на 20 дБ.
При расчёте фильтра было обращено повышенное внимание на подавление гармоник, разность уровней внутри группы была зафиксирована на уровне 2 дБ. В результате этого, частоты среза имеют значения 977 Гц и 1695 Гц. Результирующее подавление гармоник значительно превосходит предъявляемые требования. Разность уровней частот в группе находится в пределах требований даже в случае девиации частоты среза, связанной с разбросом параметров применяемых компонентов. При вычислении значений элементов фильтра резисторы выбирались исходя из соображения их максимальной близости к стандартным значениям ряда Е12.
На выходах фильтров в результате получаем два синусоидальных сигнала с значительно подавленными гармониками. Для объединения этих сигналов введен дополнительный сумматор.
Таким образом, используя только 3 ОУ и несколько пассивных элементов, мы имеем возможность генерировать сигналы DTMF при помощи микроконтроллера без использования значительных вычислительных ресурсов.
При помощи программ-симуляторов была проведена проверка приблизительных значений. Отклик фильтров весьма точно совпадает с расчётной частотной характеристикой.
На рис. 6 приведен амплитудный спектр прямоугольного сигнала частотой 697 Гц, пропущенного через фильтр 3-го порядка. Как видно из рисунка, третья и пятая гармоники (2091 Гц и 3485 Гц) существенно ослаблены (-25.6 dB).
Библиотека Компэла 499
f& Texas
INSiraJMENTS
IV. Примеры конкретных применений
Рис. 6. Амплитудный спектр прямоугольного сигнала частотой 697 Гц на выходе фильтра 3-го порядка
На рис. 7 показан спектр прямоугольного сигнала частотой 941 Гц. В интересующей нас частотной области до 4600 Гц присутствует только одна гармоника. После прохождения фильтра, эта гармоника частотой 2823 Гц значительно ослаблена (-27.9 дБ). Разность уровней между самой низкой и самой высокой частотой в группе не превышает 1.9 дБ.
МВ г
Рис. 7. Амплитудный спектр прямоугольного сигнала частотой 941 Гц на выходе фильтра 3-го порядка
Библиотека Компэла
Глава 12.
Генерация и распознование DTMF-сигналов
С целью использования недорогих компонентов с высоким разбросом параметров было проведено дополнительное моделирование. Результаты моделирования показали, что допустимый разброс величины резисторов и конденсаторов составляет 10%.
20,-
25 26 27 28 29 30 31
YatX(Vdb(OUT_LO_3), 697) - YatX(Vdb(OUT_LO_3), 2091) + 9,5
n samples = 100 sigma =1,09747 median =26,9483
n divisions = 20 minimum = 24,2059 90th %ile = 28,4076
mean =26,9588 10th %ile =25,6125 maximum =29,6126
Рис.9. Гистограмма- подавление гармоник
На рис. 8 и 9 показаны гистограммы полученные при помощи анализа по методу Монте-Карло. В данном случае, значения компонентов менялись случайным образом в пределах разброса 10%. После 100 итераций результаты для всех смоделированных фильтров помещены на гистограммы. В гистограмме на рис. 8 показана разность уровней между частотами внутри группы. Максимально допустимая разность - 3 дБ между минимальной и максимальной частотой ни в одном случае не была достигнута. Среднее значение составляет 1.6 дБ, что несколько лучше расчётного значения 2 дБ.
На рис. 9 показано ослабление гармоник для «нижней» группы частот. Требуемая величина в 20 дБ достигается во всех случаях, среднее значение примерно 27 дБ. В наихудшем случае гармоника подавлена на 24.2 дБ.
Значения, рассчитанные для фильтра «нижней» группы частот выполняются также и для фильтра «верхней» группы частот.
Оба фильтра имеют идентичную схемотехнику. Различие только в частотах среза фильтров для верхней и нижней групп частот. R1 и С1 формируют ФВЧ
Библиотека Компэла
Глава 12.
Библиотека Компэла
тг Texas
INSiraJMENTS
IV. Примеры конкретных применений
Рис. 12. Амплитудный спектр символа "D": 941 и 1633 Гц
Абсолютной точности частоты генерируемых прямоугольных сигналов при использовании двух различных таймеров достичь не удастся, результат будет зависеть от комбинации двух частот и типа используемых таймеров. При-
Библиотека Компэла
Глава 12.
Заключение
Программное обеспечение для данного примера весьма простое и, занимая примерно 300 Байт, требует малого объёма ОЗУ и ПЗУ. Благодаря наличию встроенного модуля таймера требуемые частоты генерируются с высокой точностью без непроизводительной загрузки ЦПУ. В конфигурации, где для генерации используются 8-битный таймер и таймер-порт Timer/Port, подпро-
Библиотека Компэла505
Ь IV. Примеры конкретных применений
граммы обработки прерываний занимают примерно 12% ресурса ЦПУ. В том случае, когда частоты генерируются таймером Timer_A, загрузка ЦПУ на обработку подпрограмм прерываний снижается до 6%. В результате этого, во время передачи сигналов DTMF могут выполняться другие задачи, либо ЦПУ может быть переведен в режим пониженного потребления с целью снижения потребляемого тока.
Хорошая функциональность описанного модуля генерации сигналов DTMF при помощи прямоугольных сигналов демонстрируется схемотехникой аппаратного обеспечения. Т.к. в схеме возможно применение компонентов с большим разбросом параметров, цена такого решения весьма низкая. Все требования спецификации выполнены с большим запасом, таким образом, отдельный модуль генератора сигналов DTMF в приборах, использующих MSP430 в качестве управляющего контроллера, не требуется.
Если в конкретном случае требуется повысить соотношение сигнал -шум, используя дополнительный ОУ можно сконструировать фильтр для дальнейшего подавления интермодуляционных искажений. Такой дополнительный операционный усилитель уже присутствует в составе счетверённого ОУ в корпусе DIL14.
Ссылки:
1. Bundesamt fur Post und Telekommunikation (Federal Office for Post and
Telecommunications): BAPT 223 ZV 5, Zulassungsvorschrift fur Endeinrichtungen
zur Anschaltung an analoge Wahlanschlusse (ausgenommen Notruf- und
Durchwahlanschlusse) des Telefonnetzes (approval specification for end equipment
to be connected to analog dialling connections of the telephone network, except for
emergency and in-dialling connections)/ISDN of the Deutschen BundespostTelekom;
Bundesministerium fur Post und Telekommunikation, Draft, Bonn April 1994
2. Papula: Mathematik fur Ingenieure 2 (Mathematics for Engineers); Vieweg
Verlag, Braunschweig 1990
3. Tietze / Schenk: Halbleiterschaltungstechnik; (Semiconductor Circuit Design),
10th. Edition; Springer Verlag, Berlin 1993
4. Lutz Bierl /Texas Instruments: MSP430 Family, Metering Application Report,
Texas Instruments, Issue 2.1, Jan 1997, SLAAE10B
5. Texas Instruments: MSP430 Family, Architecture User's Guide and Module
Library, Texas Instruments, 1996, SLAUE10B
6. Texas Instruments: MSP430 Family, Software User's Guide, Texas Instruments,
1996
7. Texas Instruments: MSP430 Family, Assembly Language Tools User's Guide,
Texas Instruments, 1996
Библиотека Компэла
Глава 12. Генерация и распознование DTMF-сигналов
8. Siwy, Robert: Systementwicklung einer Telekom-Applikation zum Senden und Empfangen von DTMF-Signalen mit dem Microcontroller MSP430 (System development of a telecom application to send and receive digital signals with the Microcontroller MSP430); Diplomarbeit, Fachhochschule Landshut, Mai 1997
Часть II.
Введение
Во второй части данного примера применения описан приём и распознавание сигналов DTMF при помощи микроконтроллера MSP430. Рассматриваются теоретические и математические вопросы, связанные с реализацией цифровых фильтров. Отдельно рассмотрено применение таких фильтров для выделения требуемых компонентов из аналоговых сигналов. Для аналого-цифрового преобразования используется АЦП, имеющийся в конфигурации С32х. 8 цифровых фильтров обрабатываются в режиме реального времени, из их выходных значений восстанавливаются символы DTMF. Также в данном разделе приведена принципиальная схема, поясняющая подключение аналоговых сигналов к MSP430.
2. Прием сигналов DTMF с помощью цифровых фильтров-
резонаторов
С целью приёма сигналов DTMF при помощи микроконтроллера без использования специализированных дорогостоящих компонентов, входные импульсы должны быть оцифрованы с помощью аналогово-цифрового преобразователя (АЦП) и распознаны методами цифровой фильтрации. MSP430 подходит для этих целей благодаря следующим особенностям:
• Несмотря на сравнительно низкую тактовую частоту (до 3.3 МГц)(в сов
ременных моделях - до 8МГц, прим. перев.), микроконтроллер имеет
достаточно высокую вычислительную мощность благодаря наличию ко
манд, выполняемых за один цикл, аналогичных архитектуре RISC.
• Благодаря наличию встроенного АЦП, подключение МК к аналоговым
системам не представляет сложностей. Необходимость во внешнем
АЦП отсутствует.
Библиотека Компэла
Глава 12.
Библиотека Компэла
f& Texas
INSiraJMENTS
IV. Примеры конкретных применений
частоты будут ослаблены. Коэффициент усиления резонансной частоты, либо коэффициент ослабления остальных частот определяется параметром К в виде -20 log К (дБ). Полоса пропускания фильтра определяется как полоса частот по уровню -10 log К (дБ). Превышение амплитудой на выходе фильтра определённого порога означает присутствие искомой частоты в спектре. Регулировка усиления производится при помощи согласующей цепи с наличием потерь. Структура этой цепи идентична для всех фильтров (см. рис. 15). Цепь с последовательным резонансом состоит из двух элементов задержки и адаптера. Существуют четыре различных конфигурации в зависимости от требуемой резонансной частоты (рис. 16).
Рис. 14. Амплитудно-частотная характеристика цифрового фильтра-резонатора
Т.к. в данном примере арифметика с плавающей точкой не используется, алгоритм фильтра вычисляется с целочисленной точностью 16 бит; коэффициенты умножения присутствуют в конфигурациях А и D, что улучшает динамические характеристики фильтра.
Библиотека Компэла
Глава 12.
Глава 12. Генерация и распознование DTMF-сигналов
ны быть отброшены, желательно при этом не потерять требуемую точность. С минимальной ошибкой это может быть обеспечено использованием метода Хорнера [5].
В нижеприведенном примере 12-битный результат формируется умножением 12-битного и 9-битного множителей.
Обычное умножение выглядит так:
X * Y
0.11001011111b * 0.01001001b
0.796386719 * 0.28515625 = 0.22709465
При использовании метода сдвига-сложения: 0.00110010111 Х*2-2 0.00000110010 Х*2-5
0.00111001111 Х*2-8 = 0.226074219 (-2.1 LSB)
Как видно из примера, ошибка превышает 2 МЗР, из-за того, что большое количество бит было утеряно в результате сдвига вправо.
Метод Хорнерна лишён этого недостатка, в нём младшие биты сохраняются до тех пор, пока это возможно:
0.00011001011 Х*2-3
0.11001011111 +Х
0.11100101010
0.00011100101 (Х*2-3 + Х)*2-3
0.11001011111 +Х
0.11101000100
0.00111010001 (Х*2-3 + Х)*2-3Х*2-3 + Х)*2-3= 0.227050781 (-0.1 LSB)
Процесс начинается с младшей '1' множителя, в дальнейшем происходит накопление, после чего промежуточный результат сдвигается вправо (на разницу положений бит до следующей 'Г), с последующим сложением, сдвигом и т.д. Операции абсолютного сдвига (в данном случае 28,25,22) выполняются корректно. Вышеописанный процесс используется для введения и оптимизации коэффициентов фильтра, с целью минимизировать вычислительные ресурсы при максимальном сохранении точности. Т.к. арифметические вычисления в микроконтроллере обычно осуществляются с 16-битными целыми операндами, следует договориться о представлении значений сигнала. Для программной обработки операций с плавающей точкой потребуется слишком
Глава 12.
Библиотека Компэла 515
f& Texas
INSiraJMENTS
IV. Примеры конкретных применений
проведенного укорочения данных коэффициентов, резонансная частота была пересчитана заново с учётом новых значений. В результате успешной оптимизации были получены следующие значения:
Частота, Гц | ||||||||
alpha (*п2) | 0.359375 | 0.234375 | 0.09375 | 0.046875 | 0.5 | 0.328125 | 0.171875*2 | 0.046875*4 |
Резонансная частота | ||||||||
Отклонение, % | 0.39 | 0.35 | -0.43 | 0.33 | 0.07 | -0.14 | 0.55 | |
alpha (*п2)в представлении CSD | 0.010111 | 0.010000-1 | 0.00011 | 0.000011 | 0.1 | 0.010101 | 0.01011 | 0.0011 |
Несмотря на значительное укорочение коэффициентов и, благодаря этому, времени вычисления, отклонение частоты от номинальной несущественно. При внимательном рассмотрении выясняется подобие коэффициентов согласующей цепи с наличием потерь. Это легко объяснимо с учётом того фактора, что данные коэффициенты зависят в основном от параметра -10 log К, который выбран одинаковым для всех фильтров исходя из критерия: соседняя частота DTMF должна быть подавлена на -10 log К.
В результате этого, для всех 8-ми фильтров DTMF была выбрана единственная согласующая цепь с округлённым значением. Такое решение имеет массу преимуществ:
• Требуется расчёт и программирование только одной цепи вместо 8
• Ассемблерный код лучше оптимизирован
• Существенно упрощается отладка при использовании одинаковой про
граммы
• При наличии свободного времени на вычисления, можно сэкономить па
мять вызывая подпрограмму
Оптимальные значения коэффициентов представлены в таблице:
диапазон | 697 Гц-1633 Гц |
n1 *gamma1 | 0.00001b |
gamma2 | -1,0 +0,00001b |
1/n1 |
Библиотека Компэла
Глава 12.
K1<-(t2-t1)x alpha
k3<-k1 + t2
k2<-k1 + t1
T2<-k2
t1 <- k3 x gamma_2 + хгдатта_1_п
кз + ti
n1 |
-X:
Программа для проверки фильтра на 770 Гц методом математического
моделирования
u := f(0.234375,0.0242837, - 0.9745813,0.0248447 Функция с неокруглёнными значениями gamma_1_n1, gamma_2 и п1
Библиотека Компэла
f& Texas
INSiraJMENTS
IV. Примеры конкретных применений
z:=f | 0.234375,—,( —-1[ — 32 32 32
Функция с округлёнными значениями
• Резонансная частота равна 773 Гц, поэтому предварительно полученное
значение alpha = 0.234375 достигается точно.
• Усиление фильтра уменьшилось до -36 дБ взамен -40 дБ. Причиной
этого является округление коэффициентов gammaj и gamma_2. При
моделировании с использованием точных значений коэффициентов до
стигается расчётное значение -40 дБ.
• Соседняя частота DTMF (697 Гц) имеет усиление -18.5 дБ, что соответс
твует 1/8 входного значения. Такого разделения достаточно для безоши
бочного распознавания частоты.
Этот пример демонстрирует весьма важное свойство цифровых фильтров-резонаторов - их низкую чувствительность к округлению коэффициентов: несмотря на значительное укорочение коэффициентов и сокращение времени расчёта, характеристики фильтра существенно не изменились.
Рис. 18. Амплитудно-частотная характеристика фильтра на 770 Гц, смоделированная при помощи MathCad
Библиотека Компэла
Глава 12. Генерация и распознование DTMF-сигналов
7. Программное обеспечение для реализации цифровых фильтров
Алгоритмы цифровых фильтров требуют большой вычислительной мощности, ввиду большого числа умножений и сложений, требуемых при расчётах- особенно в тех случаях, когда умножение производится без помощи аппаратных умножителей, а осуществляется методом сдвигов-сложений. По этой причине для таких задач часто применяются цифровые сигнальные процессоры, т.к. они имеют быстрый умножитель с накоплением (MAC), или, как минимум, многорегистровый циклический сдвигатель (Barrel Shifter), позволяющий осуществлять операцию сдвига на несколько позиций одной командой. Таким образом, реализовать алгоритм фильтра в реальном времени с использованием медленного микроконтроллера невозможно.
Тем не менее, микроконтроллер MSP430 позволяет реализовать такой алгоритм благодаря тому, что инструкции, операнды которых находятся в регистрах, выполняются за один такт. Кроме этого, для повышения вычислительной мощности системная частота повышена с 1 МГц до 3.3 МГц (прим. перев. - на момент перевода макс, частота семейства - 8МГц).
Аналоговая часть легко сопрягается с цифровой при помощи встроенного АЦП. Его разрешение в 14 бит достаточно высоко, чтобы гарантировать в последующем хороший динамический диапазон цифрового фильтра. При этом гарантируется, что сигнал с низкой амплитудой будет обработан с такой же точностью, что и сигнал с большой амплитудой. Необходимость во внешнем АЦП соответственно отпадает.
Если алгоритм должен быть обработан в режиме реального времени, вычисление определённого «куска» данных должно быть завершено перед тем, как будут получены новые данные. Промежуточное хранение данных в ОЗУ невозможно, т.к. его объёма недостаточно для хранения большого массива данных, поступающих из АЦП с определённой частотой.
Для таймера-порта выбрана частота прерываний 3640 Гц. Это соответствует девяти тактам частоты ACLK. АЦП запускается по прерыванию таймера-порта. Т.к. частота ACLK генерируется при помощи «часового» кварца частотой 32.768 кГц, получаемая частота выборки имеет низкое дрожание фазы (джит-тер) и высокую стабильность, присущую кварцевому резонатору. При этом гарантируется корректная выборка аналогового сигнала и, соответственно, верные расчётные значения [10]. По завершении преобразования, осуществляется вычисление для 8-ми цифровых фильтров и распознавание частот DTMF на основе полученных значений фильтров. На алгоритм расчёта и распознавания выделено, таким образом, 274.7 мкс. Это соответствует 915 тактам при дли-
Библиотека Компэла 519
f& Texas
INSiraJMENTS
IV. Примеры конкретных применений
тельности такта 300 не. По завершении этого времени вычисление должно повторяться с использованием обновлённых данных АЦП. Реализация алгоритма представлена на рис. 19.
Рис. 19. Алгоритм вычисления 8-ми цифровых фильтров и распознавания сигналов DTMF в режиме реального времени
Библиотека Компэла
Глава 12. Генерация и распознование DTMF-сигналов
8. Программа распознавания сигналов DTMF
С целью распознавания полученного символа DTMF из вычисленных значений фильтров, после вычислений фильтров применяется алгоритм декодирования. Этот алгоритм должен сопоставить распознанные частоты символу DTMF. Кроме этого, в процессе вычисления фильтров производится сравнение их значений. В практической реализации, раздельно для «верхней» (Hi-Group) и «нижней» (Lo-Group) групп частот находится частота с максимальной амплитудой, её значение сохраняется. Таким образом, после каждого вычисления 8-ми фильтров нам известны частоты «верхней» и «нижней» группы с максимальной амплитудой. На рис. 20 представлен алгоритм декодирования:
Чтобы убедиться в том, что все фильтры находятся в установившемся режиме и максимумы соответствующих частот определены, всегда производится 20 последовательных просчётов фильтра. Когда обработано достаточное число отсчётов, два максимума из «верхней» и «нижней» группы проверяются на достоверность по двум критериям. Первый критерий - оба максимальных значения должны превышать уровень шума. Второй критерий - незначительность отличия максимальных уровней друг от друга. Конечно, эти критерии могут быть расширены и дополнены с целью улучшения качества приёма относительно слабых сигналов.
В том случае, если сигнал удовлетворяет обоим условиям, обе частоты DTMF считаются достоверными. При этом, частоты могут быть признаны сигналами DTMF только по истечении определённого времени. Это осуществляется при помощи счётчика длительности, фиксирующего длительность сигнала. По достижении требуемой длительности, символ DTMF выбирается из таблицы исходя из двух частот, определяющих столбец и строку. Чтобы исключить повторное распознавание одного сигнала, при достижении требуемой длительности сигнала устанавливается соответствующий флаг, сигнализирующий о достоверности принятого символа.
При невыполнении одного из условий счётчик длительности декремен-тируется. Достижение счётчиком нуля интерпретируется как пауза между символами. Флаг при этом сбрасывается.
На рис. 21 показано графическое представление временных параметров при распознавании сигнала DTMF:
Библиотека Компэла
f& Texas
INSiraJMENTS
IV. Примеры конкретных применений
Рис.20. Алгоритм декодирования
Библиотека Компэла
Глава 12.
Библиотека Компэла
f& Texas
INSiraJMENTS
IV. Примеры конкретных применений
ACTL .equ 0114h
PD .equ lOOOh
ADAT .equ 0118h
; Программные определения
DISPL .equ 031h
LPMO .equ OlOh
LENGTH .equ 7
THRE | .equ | IOC |
FLAG REG | .equ | r4 |
LCOUNT | .equ | r5 |
ROW | .equ | гб |
COL | .equ | r7 |
MAXLO | .equ | r8 |
IN | .equ | r9 |
MAXHI | .equ | rlC |
OUT | .equ | rl3 |
COUNT | .equ | rl5 |
Базовый адрес ЖКИ
(Length+1) * 5.48 мс = длительность сигнала порог шума
Строка «нижней» группы Столбец «верхней» группы
Входной регистр
; Распределение памяти для 8-ми фильтров
******************************************************
.bss | Tl | 1633, | |
.bss | T2 | 1633, | |
.bss | Tl | 1477, | |
.bss | T2 | 1477, | |
.bss | Tl | 1336, | |
.bss | T2 | 1336, | |
.bss | Tl | 1209, | |
.bss | T2 | 1209, | |
.bss | Tl | 941, | |
.bss | T2 | 941, | |
.bss | Tl | 852, | |
.bss | T2 | 852, | |
.bss | Tl | 770, | |
.bss | T2 | 770, | |
.bss | Tl | 697, | |
.bss | T2 | 697, | |
Программа |
INIT
.text #STACK-2,SP
; инициализация ; стека
Библиотека Компэла
Глава 12. |
Библиотека Компэла
Глава 12. |
Библиотека Компэла
Глава 12.
Библиотека Компэла
Глава 12. |
Библиотека Компэла
Глава 12. |
Библиотека Компэла
Глава 12. |
Аппаратная часть
Преобразование аналоговых сигналов в цифровые осуществляется при помощи АЦП, встроенного в MSP430C25x. Источник опорного напряжения выведен на ножку SVCC. Оно может быть подано снаружи, либо в качестве ИОН можно использовать напряжение питания контроллера (VDD). Таким образом, 14-битный
Библиотека Компэла
f& Texas
INSiraJMENTS
IV. Примеры конкретных применений
диапазон соответствует диапазону напряжений от 0 до SVCC. Рабочее напряжение должно быть 5В, т.к. выбрана максимальная тактовая частота процессора 3.3 МГц(прим. перев. - на момент перевода макс, частота семейства - 8МГц, а макс, рабочее напряжение 3,6В). Если это же напряжение используется в качестве опорного для АЦП и подключено встроенным ключом к выводу SVCC, то можно обойтись без внешнего ИОН. Один МЗР, таким образом, соответствует величине 0.305 мВ. Доступные в продаже коммерческие приёмники DTMF принимают сигнал в диапазоне от +1 дБм (600) до -31 дБм(600). Это соответствует амплитуде сигнала от 1.230В до 30.8 мВ. Исходя из этого, разрешение наименьшего входного напряжения составляет не менее 100 МЗР. Если всё же требуется работа с более слабыми входными сигналами, к выводу SVCC следует подключать внешний ИОН. Конденсатор (С1) фильтрует помехи от внешнего или внутреннего ИОН. Для вычисления компонентов цифрового фильтра требуются значения со знаком, не поддерживаемые имеющимся АЦП. По этой причине, аналоговый вход смещён резистивным делителем (R1/R2) на величину SVCC/2, а входной сигнал подаётся через разделительный конденсатор С2. Численное значение SVCC/2 позже вычитается из каждого входного отсчёта. Если установившееся выходное значение АЦП численно равно Olfffh при разрешении в 14 бит, то оно будет равно напряжению SVCC/2, и остаток от вычитания значения SVCC/2 будет 01fffh-01fffh=0000h. Положительный входной сигнал, следовательно, будет соответствовать положительным численным значениям и наоборот. Развязывающий конденсатор С2 вкупе с резисторами R3 + ( R1 II R2 ) формируют ФВЧ. С учётом того, что частота среза выбрана примерно в 200 Гц, помехи с более низкой частотой, например сетевые, будут подавлены. Вход АЦП защищен от перенапряжения резистором R3 и стабилитроном D1. Принципиальная схема приведена на рис. 22:
MSP430
Рис.22. Принципиальная схема подключения сигналов к АЦП
540 Библиотека Компэла
Глава 12.
Генерация и распознование DTMF-сигналов
Так как разрядность измеряемого значения ограничена 14-ю битами, в то время, как обработка в ЦПУ производится с 16-ти битной разрядностью, перед вычислениями значения отсчётов сдвигаются влево дважды, что соответствует умножению на 4. Благодаря такому масштабированию, улучшается динамический диапазон и уменьшается шум, вносимый при округлении в процессе умножения.
Библиотека Компэла
Ь IV. Примеры конкретных применений
Даже с учётом высокой вычислительной мощности, потребляемый устройством ток всего около 1.8 мА.
Программа занимает примерно 1 КБ ПЗУ и требует 32 байта ОЗУ.
Заключение
Вычисления в системах реального времени требуют высокой вычислительной мощности, поэтому для таких целей часто используют цифровые сигнальные процессоры (DSP). Применение MSP430 в такой задаче для вычисления цифровых фильтров не является традиционным, в частности из-за того, что операции умножения осуществляются без использования аппаратного умножителя. Тем не менее, MSP430 является подходящим выбором в тех случаях, когда требуется распознавание частот в массиве цифровых отсчётов, а вычисленные значения не требуется выводить при помощи ЦАП. В MSP430 имеется в наличии высокопроизводительный АЦП. Его разрешение 14 бит гарантирует широкий динамический диапазон при вычислениях.
В нашем примере частоты с входными уровнями от 25 мВ RMS до 1.5 В RMS обрабатываются без проблем. Динамический диапазон при этом превышает 35 дБ, что позволяет избавиться от внешних приёмников DTMF. Так как 14-битный АЦП имеет теоретический динамический диапазон 84 дБ, есть возможность дальнейшего расширения динамического диапазона в обе стороны. Одним из способов является использование внешнего ИОН.
В зависимости от сложности фильтра и требуемой частоты сэмплирования, система может работать с сигналами вплоть до 5 кГц.
Расчёт и реализация восьми узкополосных полосовых фильтров, описанные в данном примере, демонстрируют:
• Возможность использования MSP430 и встроенного АЦП для задач
фильтрации в режиме реального времени;
• Прекрасные свойства цифровых фильтров-резонаторов;
• Эффективность на уровне 1.32 цикла на инструкцию, возможную благо
даря RISC-архитектуре процессора и ортогональности набора команд;
• Для 8-ми фильтров DTMF может быть достаточно 359 инструкций.
Ссылки:
1. Bundesamt fur Post und Telekommunikation (Federal Office for Post and Telecommunications): BAPT 223 ZV 5, Zulassungsvorschrift fur Endeinrichtungen zur Anschaltung an analoge Wahlanschlusse (ausgenommen Notruf- und Durchwahlanschlusse) des Telefonnetzes (approval specification for end equipment to be connected to analog dialing connections of the telephone network, except for
Библиотека Компэла
Глава 12. Генерация и распознование DTMF-сигналов
emergency and in-dialing connections) / ISDN of the Deutschen Bundespost Telekom; Bundesministerium fur Post und Telekommunikation, Draft, Bonn April 1994
2. Tietze / Schenk: Halbleiterschaltungstechnik; (Semiconductor Circuit Design),
10th. Edition; Springer Verlag, Berlin 1993
3. Marven / Ewers: A Simple Approach to Digital Signal Processing; Texas
Instruments, 1994
4. Sauvagerd, Ulrich: A Ten-Channel Equalizer for Digital Audio-Applications;
IEEE Transactions on Circuit and Systems, Vol. CAS-36, No 2, February 1989, pp.
276-280
5. Kaiser, Ulrich: RISP: Eine digitale Signalprozesorarchitektur mit reduziertem
Befehlssatz fur Wellen-Digitalfilter (Digital Processor Architecture with Reduced
Instruction Set for Wave Digital Filters); Dissertation, Fakultat fur Elektrotechnik,
Ruhr-Universitat Bochum 1991
6. Lutz Bierl /Texas Instruments: MSP430 Family, Metering Application Report,
Texas Instruments, Version 2.1, Jan 1996
7. Texas Instruments: MSP430 Family, Architecture User's Guide and Module
Library, Texas Instruments, 1996
8. Texas Instruments: MSP430 Family, Software User's Guide, Texas Instruments,
1996
9. Texas Instruments: MSP430 Family, Assembly Language Tools User's Guide,
Texas Instruments, 1996
10. Kitzberger, Holger: Aufbau einer Signalprozessorkarte mit MSP430 und
Untersuchung eines Wellen-Digitalfilters; (Design of a signal processor card with
the MSP430, and tests on a wave digital filter) Diplomarbeit, Fachhochschule
Regensburg, April 1994
11. Siwy, Robert: Systementwicklung einer Telekom-Applikation zum Senden
und Empfangen von DTMF-Signalen mit dem Microcontroller MSP430 (System
development of a telecom application to send and receive digital signals with the
Microcontroller MSP430); Diplomarbeit, Fachhochschule Landshut, Mai 1997
Библиотека Компэла
– Конец работы –
Используемые теги: Семейство, микроконтроллеров, MSP4300.038
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Семейство микроконтроллеров MSP430
Если этот материал оказался полезным для Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Твитнуть |
Новости и инфо для студентов