рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Семейство микроконтроллеров MSP430

Семейство микроконтроллеров 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 (Англ.)]

В данном примере применения описывается, как сравнить микроконт­роллеры со сверхнизким потреблением. Будут обсуждены основные разли­чия между популярными микроконтроллерами со сверхнизким потреблени­ем, а также рассмотрено как интерпретировать характеристики и технические требования и соотнести их с техническими требованиями к устройству.

Введение

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

Среднее значение потребляемого тока

Режимы пониженного потребления

InsitojmInts /. Общие вопросы того, что он работает от 32768 Гц кварцевого резонатора и потребляет менее 1…

Системы синхронизация

    Кроме того, если система синхронизации микроконтроллера способна формировать…

Прерывания

и Timer_B и АЦП ADC12, для обеспечения большей гибкости имеют несколько прерываний. Наибольшую выгоду от развитой системы прерывания получают устройства с…

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

Кроме того, периферийные устройства могут управляться прерываниями от других периферийных устройств. Например, АЦП ADC12 микроконтроллеров семейства… Некоторые микроконтроллеры семейства MSP430 имеют функцию пря­мого доступа к…

Глава 1. Выбор микроконтроллера со сверхнизким потреблением

Управление синхронизацией периферийных модулей - другая важная ха­рактеристика, которая позволяет снизить средний ток потребления системы. I2C модуль микроконтроллеров семейства MSP430 имеет непосредственное управление системой синхронизации. Это означает, что, если I2C модулю нуж­ны синхросигналы, то он автоматически активизирует задающий генератор. Это также позволяет вычислительному ядру оставаться отключенным. При этом имеется возможность декодировать I2C адрес даже при отключенном вычис­лительном ядре.

Защита от кратковременного пропадания напряжения питания

Схема защиты от кратковременного пропадания напряжения питания в микроконтроллерах семейства MSP430 не может быть отключена, при этом она не…

Ток утечки выводов

Иногда при выборе низкопотребляющего микроконтроллера ток утечки выводов не учитывается, но для большинства приложений он очень важен. Большинство низкопотребляющих микроконтроллеров имеет ток утечки выво­дов до 1 мкА. Таким образом, суммарный ток утечки микроконтроллера, име­ющего 20 выводов, может достигнуть 20 мкА! Микроконтроллеры семейства MSP430 имеют ток утечки выводов не более 50 нА, поэтому ток утечки 20 вы­водного микроконтроллера этого семейства не превысит 1 мкА.

Эффективность обработки

Наконец, часто неправильно истолковывается эффективность обработки микроконтроллеров. Часто думают, что 16-разрядные микроконтроллеры тре­буют в два раза больше памяти, чем 8-разрядные микроконтроллеры, но 16-

Библиотека Компэла21


f& Texas

INSiraJMENTS

разрядным микроконтроллерам может потребоваться намного меньше памяти программы, а, кроме того, они обычно выполняют задачи быстрее. Например, в…

Таблица 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


/. Общие вопросы


Сравнение микроконтроллеров семейства MSP430 с другими микроконтроллерами

В данном примере применения приведены результаты сравнения микро­контроллеров семейства MSP430 с микроконтроллерами других производите­лей. Для…                   … MSP430F135 ATmega8 PIC18F242 8051 H8/300L МС68НС11

Микроконтроллер

Рис. 1. Диаграмма сравнения суммарных размера кодов программ

Библиотека Компэла

Рис.2. Диаграмма сравнения суммарного количества командных циклов В таблице 1 приведены коэффициенты деления частоты задающего ге­нератора для…

Таблица 1. Коэффициенты деления частоты задающего генератора для формирования сигналов синхронизации вычислительного ядра

 

Микроконтроллер Коэффициент деления
MSP430F135
ATmega8
PIC18F242
H8/300L
МС68НС11

В таблице 2 показаны суммарные размер кода и количество командных циклов, приведенные к соответствующим суммарным размеру кода и количес­тву циклов микроконтроллера MSP430.

Библиотека Компэла25


тг Texas

/. Общие вопросы

INSiraJMENTS

Таблица 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. Влияние аппаратного умножителя и полной оптимизации

Компилятора

  байт циклов 8- битная математика 172 299 156 268 136 249 8- битная 2 Dim матрица 118…

Библиотека Компэла


InsitojmInts /. Общие вопросы

Приложение

Тестовые прикладные задачи

8-bit_math.c-исходный файл, содержащий три математических функции. Одна функция выполняет сложение двух 8- битных чисел, одна выполняет ум­ножение и… 16-bit_math.c- исходный файл, содержащий три математических функ­ции. Одна… 32-bit_math.c- исходный файл, содержащий три математических функ­ции. Одна функция выполняет сложение двух 32- битных…

Библиотека Компэла


Глава 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А

Библиотека Компэла

Исходные тексты тестовых прикладных задач Ниже приведены исходные тексты на «С» тестовых прикладных задач,… 8-bit Math£

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

INSiraJMENTS

  UInt8 output; switch (a) case 0x01:

Библиотека Компэла


Глава 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

INSiraJMENTS

result[1]=12; result[2]=add(result[0], result[1]); result[l]=mul(result[0], result[2]);… 16-bit 2-dim Matrixx

Глава 2. Сравнение микроконтроллеров семейства MSP430 с другими...

} return;

}

Bit Switch Casejc

* Имя: 16-bit Switch Case * Назначение: Тестовая прикладная задача, * осуществляющая коммутацию по полученному 16-битному

Библиотека Компэла

break; case OxOOOa: output=0x000a;

FIR Filter jc

* Имя : FIR Filter * Назначение: Тестовая прикладная задача фильтра * с КИХ. Входным значением для фильтра является массив

INSiraJMENTS

typedef unsigned short UIntl6; const UIntl6 ml[3][4]={ {0x01, 0x02, 0x03, 0x04},

Библиотека Компэла



 


f& Texas

INSiraJMENTS

Подключение EEPROM к модулю 12С микроконтроллеров MSP430 Christian Hernitscheck В этом примере применения описана организация обмена по протоколу I2C между аппаратным модулем 12С микроконтроллера…

Пример подключения

Схема, изображённая на рис. 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

Запись Байта (Byte Write)

Рис.2. Запись Байта (Byte Write) - Библиотека Компэла

Глава 3.


Подключение EEPROM к MSP430 с помощью интерфейса PC

Адрес ведомого I2C

Устройства в MSP430

(регистр I2CSA)

Управляющий байт памяти EEPROM 24хх65 1 | 0 1 0 | А2 аТ|аО |r/W


Рис. 3. Преобразование содержимого регистра I2CSA в управляющий байт I2C

Чтение Текущего Адреса (Current Address Read)

Данные

Управляющий байт

Рис. 4. Чтение Текущего Адреса (Current Address Read) Библиотека Компэла InsitojmInts /. Общие вопросы Формирование управляющего байта осуществляется так же, как описано в параграфе Запись Байта (Byte Write). В примере…

Чтение Произвольного Адреса (Random Address Read)

                            … II I I й"1 II I I о i ii i >u i ii i i о i

Подтверждение Подтверждение Подтверждение Нет подтверждения

(Ack) (Ack) (Ack) (No Ack)

Рис.5. Чтение Произвольного Адреса (Random Address Read)

Прежде всего, должен быть выставлен адресный счётчик памяти EEPROM. Это осуществляется при помощи операции Запись Байта (Byte Write). При этом в EEPROM предаётся новое значение адреса. После этого выполняется перезапуск и осуществляется операция Чтение Текущего Адреса (Current Address Read).

Опрос Подтверждения (Acknowledge Polling)

3. Ссылки: 1. MSP430F169 Data Sheet (SLAS368) 2. Руководство пользователя MSP430x1xx (MSP430x1xx Family User's Guide) (SLAU049)

Библиотека Компэла



 


InsitojmInts /. Общие вопросы

MSP430F21x1 Обзор архитектуры

Mark Buccini [slaa217.pdf (Англ.)]

Введение

Семейство микроконтроллеров (МК) MSP430 сочетает в себе низкое энергопотребление и весьма гибкую архитектуру, что делает его незамени­мым для широкого круга применений, где требуется особо низкий потребля­емый ток. Такими применениями являются счётчики электроэнергии, пере­носные измерительные устройства и бытовые приборы, другие устройства, работающие длительное время без смены батарей. Главные преимущества семейства MSP430:

• Особо низкое энергопотребление

• Комплексная система обработки смешанных сигналов (SoC) на одном
кристалле

• Использование современных технологий программирования

Со времени появления первых устройств серии MSP430, более 30,000 разработчиков по всему миру выбрали данную архитектуру, создав за это время огромное количество разнообразных устройств, от простых, таких, как термостаты и счётчики электроэнергии, до изменивших жизнь миллионов диабетиков во всём мире переносных измерителей уровня глюкозы в крови. Высокая популярность семейства обусловила необходимость дальнейшего развития серии. Требования к разработкам постоянно растут и зачастую явля­ются противоречивыми, например повышение производительности сочетает­ся с понижением энергопотребления, снижением цены и работой в жёстких климатических условиях.

Для обеспечения таких требований к разработкам была разработана но­вая серия MSP430F2xx, в которой были учтены требования снижения цены и повышения производительности для работы как в устройствах с понижен­ным потреблением, так и в приборах общего применения. Потребляя менее 1 микроампера в дежурном режиме и обладая при этом способностью пере­ключиться в режим синхронной работы со скоростью 16 миллионов инструк­ций в секунду (MIPS) за время менее одной микросекунды, новое семейство MSP430F2xx обеспечивает удвоенную производительность при половинном энергопотреблении по сравнению с более ранней серией MSP430F1xx.

Библиотека Компэла


Глава 4. MSP430F21x1 Обзор архитектуры

2. Обновления

Микропотребляющий модуль сброса Brownout Reset

• Наличие модуля BOR повышает устойчивость работы устройства в тяжё­ лых эксплуатационных условиях, где может присутствовать нестабиль­ ность… • Функция BOR в MSP430 постоянно включена. Аналогичные решения дру­ гих фирм…

Повышение тактовой частоты

Библиотека Компэла49 InsitojmInts /. Общие вопросы переключаясь в режим максимальной производительности на требуемое вре­мя лишь по необходимости. Система тактирования…

Библиотека Компэла


Глава 4. MSP430F21x1 Обзор архитектуры

• Выбор диапазона кварцевого резонатора в высокочастотном режи­
ме - эта функция обеспечивает повышенную стабильность и позволяет
использовать более дешёвые резонаторы с высоким эквивалентным со­
противлением (ESR).

• Улучшенный встроенный генератор с цифровым управлением (DCO) -
обновлённый модуль DCO, входящий в состав BCS+ с гарантированным
временем запуска менее 1 микросекунды, погрешностью не более ±2.5%
и рабочей частотой до 16МГц во всём диапазоне рабочих температур и
напряжений. Повышенная точность генератора DCO позволяет во мно­
гих случаях избавиться от внешнего кварцевого резонатора и снизить,
таким образом, стоимость системы. Следует отметить, что генератор
DCO запускается непосредственно на запрограммированной частоте,
не требуя дополнительного времени для стабилизации. Это важно в за­
дачах, где требуется моментальный доступ к генератору с известной и
стабильной частотой, таких, как обмен данными по УАПП (UART). Без
обеспечения стабильности, быстрый запуск тактового генератора в та­
ких задачах не имеет смысла.

Улучшенная встроенная Flash-память

Изменения в программу прибора могут вноситься и проверяться от дня на­чала разработки вплоть до дня его непосредственного выпуска. Также имеется… Вся Flash-память микроконтроллеров MSP430 работает во всём диапа­зоне рабочих…

Библиотека Компэла 51

• Минимальное напряжение программирования/стирания понижено с 2.7 В до 2.2В - это изменение на 0.5В имеет важное значение в тех случаях, когда… • Время программирования снижено до 17 мкс на байт, время полного сти­ рания -…

Улучшенная защита программной памяти

• Для уменьшения вероятности взлома, загрузчик BSL в серии MSP430F2xx производит полное стирание чипа после однократного приёма неверного… • Для снижения вероятности случайного вызова программатора BSL из- за ошибки в…

Библиотека Компэла


Глава 4. MSP430F21x1 Обзор архитектуры

pa BSL практически невозможным, т.к. flash-память может быть стёрта или запрограммирована только в том случае, когда BSL был запущен в результате подачи корректной последовательности, и после этого была подана правильная команда.

Улучшения, касающиеся сторожевого (Watchdog) таймера

• Добавлена функция устойчивого к сбоям тактирования, которая запре­ щает остановку источника тактирования модуля WDT+ в режиме сто­ рожевого… • Невозможно программно отключить активный источник тактирования модуля WDT+.… • Запрещено выполнение программы с адреса периферийного модуля. Являясь представителем Фон-Неймановской архитектуры,…

Библиотека Компэла 53

2.6. Дополнительные возможности Семейство MSP430F2xx также обладает рядом дополнительных возмож­ностей. Выводы… В 20/28-выводных устройствах серии MSP430F2xx выводы кварцевого генератора XIN/XOUT теперь совмещены с выводами порта…

Архитектура ядра MSP430

Почему такое внимание уделяется эффективности программы? Совре­менное ядро, такое, как MSP430 является довольно компактным и занимает около 4 тысяч…

Библиотека Компэла


Глава 4. MSP430F21x1 Обзор архитектуры

занимает 32КБ и выше, что диктуется требованиями обслуживания возросшей сложности программы, то размер кристалла и его цена будут в основной мере определяться именно памятью.

Учитывая это обстоятельство, архитектура, обеспечивающая максималь­ную плотность кода (т.е. использующая минимальный объём программной памяти для конкретной функции) даёт в результате максимальное снижение стоимости чипа.

Так как семейство MSP430 в основном предназначено для низкопотреб­ляющих устройств, архитектура, обеспечивающая эффективность програм­мы также позволяет дополнительно снизить потребление энергии благодаря уменьшению числа тактов, затрачиваемых на определённую функцию. Се­мейство MSP430 обеспечивает наивысшую плотность кода благодаря двусто­роннему подходу- интеллектуальным периферийным модулям и современ­ному RISC-подобному ядру.

• Интеллектуальные периферийные модули - все модули, входящие в
состав MSP430 разработаны с учётом минимального программного
обслуживания. Например, АЦП имеют автоматическое сканирование
входов, аппаратный запуск преобразования и, зачастую, механизмы
прямого доступа к памяти DMA. Такой набор аппаратных возможнос­
тей предоставляет ЦПУ возможность перенаправить ресурсы на спе­
цифические задачи, не отвлекаясь на перемещение данных. Это даёт
возможность разработки более дешёвых систем, требующих меньших
программных ресурсов и потребляющих меньше энергии.

• Современное RISC-подобное ядро, обладающее максимальной плот­
ностью кода благодаря своим особенностям (которые будут рассмот­
рены ниже)

Для рассмотрения задачи получения максимальной эффективности кода на языке С, попробуем взглянуть на проблему со стороны компилятора. Итак, что же «любит» компилятор? Очевидно, это ортогональность команд и большое количество идентичных регистров, не имеющих ограничений на хра­нимые ресурсы. Также ему требуется стек для передачи параметров и хране­ния временных переменных. Архитектура MSP430 была разработана с учётом этих пожеланий и выглядит следующим образом:

• Полностью ортогональный набор команд - несмотря на то, что архитек­
тура MSP430 содержит всего 27 инструкций, каждая из них может быть
использована с любым типом адресации в пределах всего адресного

Библиотека Компэла 55

пространства. Эта особенность позволяет получить широкий набор фун­кций при малом наборе команд, упростить и удешевить ЦПУ. • Большое число регистров - кроме программного счётчика и указате­ ля стека… • Отсутствие разбиения на страницы - 16-битная архитектура семейства MSP430 допускает непосредственную адресацию любой…

Библиотека Компэла


Глава 4. MSP430F21x1 Обзор архитектуры

таблиц, т.к. позволяет использовать наиболее удобный в каждом конк­ретном случае формат данных.

• Генератор констант - одним из факторов, влияющих на высокую эф­фективность программ для MSP430, является генератор констант, кото­рый аппаратно генерирует 6 наиболее часто используемых констант. Для этой цели автоматически используется один из регистров ЦПУ. Благода­ря тому, что константы генерируются непосредственно в ядре, при этом не требуется чтение операнда из памяти, что экономит программную память и повышает скорость выполнения программы. Функция генера­тора констант является полностью автоматической и «прозрачной» для пользователя.

Ресурсы для отладки

Встроенный эмулятор является особенно важным в малогабаритных и «аналогово-насыщенных» приборах, где использование внешнего эмулятора, подключенного…

Заключение

Семейство MSP430F2xx обеспечивает удвоенную производительность при половинном потреблении в режиме stand-by по сравнению с более ранними устройствами семейства MSP430F1. Кроме того, серия MSP430F2xx обладает

Библиотека Компэла 57


InsitojmInts /. Общие вопросы

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

Библиотека Компэла

Ь //- Использование внутренних функций, периферийных блоков... Отличительные особенности программатора на основе загрузочного сектора… Franz Graf [slaaO89b.pdf (Англ.)]

Введение

Программатор на основе загрузочного сектора (BSL) представляет воз­можность программирования флеш-памяти микроконтроллера MSP430 в процессе разработки либо для обновлений. Активизация такого режима может быть осуществлена утилитой, передающей команды по широкоизвестному протоколу УАПП (UART). BSL даёт возможность пользователю контролировать функционирование MSP430 и осуществлять обмен данными с персональным компьютером либо другим устройством, поддерживающим протокол UART.

Для защиты программы BSL от случайного стирания она содержится в специальном, масочно запрограммированном на заводе загрузочном секторе ПЗУ. Программа BSL не может быть стёрта никакими методами. Код загрузчи­ка тщательно оптимизирован под нужды BSL, доступ к нему осуществляется с помощью команд, описанных ниже в данном документе. В целях безопаснос­ти было обращено большое внимание на защиту пользовательского кода от несанкционированного считывания. Любая команда BSL, позволяющая непос­редственное или опосредованное чтение данных защищена паролем.

Библиотека Компэла


Глава 1.


Отличительные особенности программатора на основе загрузочного...


Для активизации программатора на основе загрузочного сектора следует подать специальную последовательность сигналов BSL на определённые выво­ды процессора. После этого, передаётся символ синхронизации, сопровождае­мый посылкой данных, определяющих выполнение желаемой операции.

Стандартная функция сброса (RESET) и активизация BSL

Формирование определённой последовательности сигналов на выводах -RST/NMI и TEST переводит MSP430 в режим выполнения программы с ад­реса сброса BSL,… Если в приборе используется связь с ПК через УАПП (UART), эти 2 вывода могут… Выполнение программы BSL начинается с того момента, как на вход TEST будет подано как минимум 2 положительных импульса…

Библиотека Компэла


f& Texas

INSiraJMENTS

вход -RST/NMI находится в состоянии лог. «О», сигнал на входе TEST перево­дится в лог. «О» внутренней схемой (прикладной режим). Режим BSL не будет активизирован (с адреса вектора сброса BSL RESET) втом… • Присутствует менее 2-х фронтов 0 -»1 на входе TEST во время лог. «О» на входе -RST/NMI

Микроконтроллеры с флеш-памятью MSP430 с обособленными выводами JTAG

Выполнение программы BSL начинается после того, как на входе ТСК по­явятся как минимум два отрицательных перепада 1 —> 0 и, кроме этого, вход ТСК…   -RST/NMI       …   к ; к Н             …

Глава 1. Отличительные особенности программатора на основе загрузочного...

Режим BSL не будет активизирован (с адреса вектора сброса BSL RESET) втом случае, если:

• Присутствует менее 2-х фронтов 1 -» 0 на входе ТСК во время лог. «О»
на входе -RST/NMI

• Вход ТСК находится в состоянии лог. «1» во время перехода 0 -»1 на
входе -RST/NMI

• Ресурсы MSP430 уже контролируются через интерфейс JTAG

• Напряжение питания VCC «просело» ниже допустимого уровня, что вы­
звало сброс по включению (POR)

• Вход -RST/NMI сконфигурирован как NMI (установлен бит I

Протокол УАПП (UART)

• Скорость обмена 9600 бод, режим полудуплекс (один передатчик в лю­ бой момент времени). • Стартовый бит, 8 бит данных (первым передаётся МЗР), бит контроля по… • Успешный приём подтверждается передачей соответствующего символа (acknowledge).

Последовательность синхронизации

Далее, BSL отправляет символ подтверждения DATA_ACK = 90h, сообщаю­щий об успешном приёме. Примечание: Символ синхронизации не входит в последовательность данных Data Frame, описанную ниже.

Команды, защищенные паролем

• Принять блок данных для программирования флеш-памяти, ОЗУ либо
периферийных модулей

• Передать блок данных

• Стереть сегмент

• Проверка стирания (команда поддерживается в 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]

Библиотека Компэла

Все цифры в таблице - байты в шестнадцатеричном виде АСК передаётся обратно от BSL Синхропоследовательность не входит в блок посылки.

Библиотека Компэла


Глава 1. Отличительные особенности программатора на основе загрузочного...

LL,LH Число байт данных (макс. 250), либо информация о стирании, млад­ший/старший байты, либо длина блока проверки стирания (макс. FFFFh)

D1...Dn Байты данных

CKL, СКН16-битная контрольная сумма, младший/старший байты

ххДанные могут быть любыми

- Байты данных не принимаются и не передаются

АСКСимвол подтверждения, возвращаемый BSL, может быть либо

DATA_ACK = 90h: Блок принят корректно, команда выполнена успешно, либо

DATA_NAK = AOh: Некорректный блок (например: ошибка контрольной суммы, L1 ф L2), неизвестная, недопустимая либо выполненная с ошибками команда.

пЧисло байт в посылке от AL до Dn

Команды - детальное описание

См. Таблицу 1.

Общие положения

Байты AL, АН, LL, LH, D1 ...Dn зависят от типа команды. Несмотря на это, байты контрольной суммы CKL (младший) и СКН (старший) являются… Если пакет данных принят корректно и выполнение команды завершено успешно, BSL… Примечание:

Принять блок данных (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).

Принять пароль (RX Password)

Стартовый адрес, равно как длина блока, для данной команды не требуют­ся, т.к. 32-байтовый пароль всегда расположен по адресам FFEOh-FFFFh. Байты… Если приём и верификация пароля выполнены успешно, BSL возвращает… Однократная разблокировка защищенных команд сохраняет своё действие вплоть до следующей инициализации сессии BSL

Полное стирание (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 (старший). Оба могут быть как чётными, так и нечётными для обеспечения про­верки границы чётности.

Библиотека Компэла 69

Если проверка стирания соответствующего блока выполнена успешно (все байты имеют значение OFFh), BSL возвращает символ подтверждения DATA_ACK. В… Примечание: Эта команда не входит в набор стандартных команд. Она включена в BSL, начиная с версии V1.60 и в загружаемую версию…

Сменить скорость обмена (Change Baud Rate)

Три байта от D1 до D3 определяют выбираемую скорость обмена. D1 и D2 определяют скорость процессора (f > fmin), D3 косвенно задаёт частоту…   D1: F1xx: Управляющий регистр основного модуля…   F4xx: Управляющий регистр умножителя частоты FLL+ SCFIO (D, FN_8 ... FN_2) D2: …

Глава 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

Библиотека Компэла 71

(старший). Из-за того, что число байт данных ограничено до 250, байт LH всегда равен 0. В конце посылки передаются байты контрольной суммы CKL… В ответ на команду BSL возвращает запрошенный блок данных. После пе­редачи…

Передать версию BSL (TX BSL Version)

Значения AL, АН, LL, и LH могут быть любыми, но, всё равно, должны быть переданы для обеспечения требований протокола. Посылка завершается байта­ми… После этого, BSL возвращает блок данных длиной 16 байт. Сначала пере­даётся… Байты D1, D2 и D11, D12 (десятичные) содержат специальную информа­цию:

Загружаемые BSL

• Принять пароль (RX password) (снять защиту паролем для нижеследую­ щих команд) • Принять блок данных (RX data block) (код загружаемого BSL, стартовый адрес… • Передать блок данных (TX data block) (для верификации)

Библиотека Компэла


Глава 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 для обеспечения максимальной функциональности, в частности, использо­вания верификации в режиме реального времени, и для повышения скорости при работе с соответствующими устройствами.

Библиотека Компэла 73

9. Выход из BSL Существуют 2 способа выхода из режима BSL: • Микроконтроллер продолжает работу с определённого адреса, задава­ емого командой «Загрузить программный счётчик».…

Защита паролем

Выполнение команды «Принять пароль», сопровождаемое передачей кор­ректного пароля разблокирует выполнение остальных команд. Действие разблокировки сохраняется вплоть до следующей инициализа­ции сессии… Пароль представляет собой значение 16-ти векторов прерываний, распо­ложенных по адресам от FFEOh до FFFFh (256 бит),…

Предохранитель защиты данных (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п: Вектор(а) для будущего использования. Таблица может быть рас­
ширена.

Статус после инициализации

• Остановить сторожевой таймер Watchdog Timer • Запретить все прерывания (GIE=O) • В версии V1.10: указатель стека не изменяется, кроме тех случаев, когда он указывает на несуществующую область…

Распределение памяти и используемые ресурсы

• Программный код загрузчика 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

• Влияния на обработку прерываний не оказывает.

Отличительные особенности версии BSL 1.10

• Отправить команду «Принять пароль» (RX password) и разблокировать выполнение последующих команд • Отправить команду «Загрузить программный счётчик» (Load program counter… Библиотека Компэла 77

Библиотека Компэла


Глава 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

INSiraJMENTS

  Тип микроконтроллера F13X F14x(1) F11x (устаревшие) F11x1 (устаревшие) Версия BSL 1.10 …

Таблица 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

Библиотека Компэла

    Тип микроконтроллера F122, F123X Версия BSL 1.40 Используемый диапазон…

Таблица 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
«Горячий» запуск не изменяется

Библиотека Компэла

Отличительные особенности программатора на основе загрузочного- Тип микроконтроллера F1122, F1132 F1222, F1232 … Таблица 7. Версия BSL 1£1 в микроконтроллерах серий F15x, F16x, F161x

Библиотека Компэла

Ь //- Использование внутренних функций, периферийных блоков... Реализация часов реального времени на MSP430 Mike Mitchell [slaaO76a.pdf (Англ.)]

Введение

Семейство микроконтроллеров 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, объединяя все эти четыре функции в одном приборе со сверх малым потреблением.

Задающий генератор MSP430

Цифровая коррекция фазового сдвига

Библиотека Компэла87 Ь //- Использование внутренних функций, периферийных блоков... роконтроллера MSP430F1121. В нижеследующих разделах дается полное опи­сание этого устройства.

Формирование синхроимпульсов

DCO вырабатывает сигнал для синхронизации вычислительного ядра и MCLK. Фактически вычислительное ядро работает асинхронно с периферий­ным…

Выбор Таймера

Любой таймер, способный вырабатывать 1-секундные прерывания может использоваться с прикладной программой, приведенной в данном примере применения.…

Внешний интерфейс

Приведенные в приложении прикладные программы RTC не обеспечивают внешнего интерфейса. Если использовать вместо оговоренного любой другой

Библиотека Компэла

Реализация часов реального времени на MSP430 микроконтроллер семейства MSP430, то имеется возможность выбора…

Описание принципиальной схемы

На рисунке 1 приведена принципиальная схема часов реального време­ни. Обратите внимание, что единственный требуемый внешний компонент-32768 Гц кварцевый резонатор.

Vcc Д

Рис. 1. Принципиальная схема часов реального времени

Потребляемый ток

Типовой ток потребления микроконтроллера MSP430F11x1при работе в активном режиме на частоте 1 МГц от 3 В источника питания - 300 мкА. Типовой ток потребления в третьем режиме пониженного потребления (режиме сна) -1.6 мкА при 3 В питании. Микроконтроллер выходит из третьего режима понижен­ного потребления менее чем за 6 мкс, а подпрограмма синхронизации выпол-

Библиотека Компэла


Ь //- Использование внутренних функций, периферийных блоков...

няется примерно за 130 мкс. Учитывая сверхнизкий ток потребления и малое время восстановления работоспособности, микроконтроллер MSP430F11x1,работающий в качестве RTC потребляет очень маленький средний ток, а поэто­му способен работать длительное время от автономного источника питания.

Pound;. Проблемы обеспечения точности

Точность RTC зависит от точности используемого кварцевого резонатора. Это позволяет выбрать такой кварцевый резонатор, который обеспечит требу­емую точность.

Выбор точности кварцевого резонатора

Влияние стабильности очевидно: чем выше стабильность резонансной частоты кварцевого резонатора, тем выше будет точность RTC. Например, RTC,… Емкость нагрузки также влияет на точность хода 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 и все периферийные устройства имеют широкие возможности по формированию прерываний.

Обсуждение прикладной программы

Подпрограмма инициации производит настройку модулей MSP430. Мо­дуль таймера настраивается на непрерывный счет от 0 до 32767 и формирова­ние… Основная ветвь - программа, выполняемая каждый раз после формиро­вания… Подпрограмма обслуживания прерывания (interrupt service routine - ISR) таймера обрабатывает биты регистра состояния…

Библиотека Компэла 91

4. Заключение Микроконтроллеры семейства MSP430 могут работать в качестве часов реального… Ссылки:

A.1 Использование сторожевого таймера - файл RTC11xWDs43

ЭТА ПРОГРАММА ПОСТАВЛЯЕТСЯ В ВИДЕ «КАК ЕСТЬ». КОМПА­НИЯ TI НЕ ДАЕТ НИКАКИХ ГАРАНТИЙ И НЕ НЕСЕТ НИКАКОЙ ОТВЕТСТВЕННОСТИ ЗА ВОЗМОЖНЫЕ НЕ­ТОЧНОСТИ РАБОТЫ ИЛИ… КОМПАНИЯ TI ОТКАЗЫВАЕТСЯ ОТ ЛЮБЫХ ГАРАНТИЙ В ОТНОШЕ-НИ ТОГО, ЧТО ПРОГРАММА НЕ МОЖЕТ ПРИНЕСТИ ПРЯМЫЕ ИЛИ КОСВЕННЫЕ…

Глава 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

Библиотека Компэла 93

#define MIN R14 #define HR R15 Программа RESET RSEG CODE

INSiraJMENTS

  RSEG INTVEC вектора прерывании

А2 Использование таймера Timer_А - файл RTC11xTAs43 File

ПРИ КОММЕРЧЕСКОМ ИСПОЛЬЗОВАНИИ ДАННОЙ ПРОГРАММЫ КОМПАНИЯ TI ОТКАЗЫВАЕТСЯ ОТ АВТОРСТВА И СНИМАЕТ С СЕБЯ ВСЯКУЮ ОТВЕТСТВЕННОСТЬ. КОМПАНИЯ TI ОТКАЗЫВАЕТСЯ ОТ ЛЮБЫХ ГАРАНТИЙ В ОТНОШЕНИ ТОГО, ЧТО ПРОГРАММА НЕ МОЖЕТ ПРИНЕСТИ

Библиотека Компэла


Глава 2. Реализация часов реального времени на MSP430

Вы можете свободно изменять программу без всяких

ограничений

Передавать программу третьим лицам можно только при

доведении до их сведений этих условий и при

его согласии с этими условиями.

Вы должны приводить лицензию в каждой копии или

частичной копии.

Вы признаете и соглашаетесь, что Программа содержит

защищенный авторским правом материал, коммерческую

тайну и другую частную информацию компании TI

и защищена в соответствии с законами об авторском

праве, международным соглашением об авторском праве

и законом о коммерческой тайне, а так же законом

об охране интеллектуальной собственности. Для защиты

авторских прав компании TI

Вы соглашаетесь не декомпилировать, перерабатывать,

или преобразовывать программу к удобочитаемому виду.

Вы соглашаетесь ни в коем случае не изменять и не

удалять внесенную в программу информацию об

авторском праве. Компания TI поставляет за собой

все права, не оговоренные в данной лицензии. Кроме

того, что оговорено в данной лицензии, не может

рассматриваться при возможном судебном

разбирательстве.

Вы не можете использовать программу для

микроконтроллеров, которые не производит

компания ТТ.

***************************************************

RTC, использующие таймер TIMER_A

Описание: Эта программа демонстрирует возможность

реализации часов реального времени.

В основной программе MSP430 переводится в режим

LPM3.

Таймер Timer А формирует прерывание раз в секунду,

по которому MSP430 переходит в активный режим

и оканчивает выполнение основной программы

Основная программа вызывает подпрограммы Clock,

а затем переводит микроконтроллер в режим LPM3.

Эта программа написана для микроконтроллера MSP430F1121, но легко может

Библиотека Компэла 97

быть переработана для использования в любом микроконтроллере семейства MSP430. Для хранения информации о часах, минутах и секундах используются три… #include <msp430xllxl.h> ; включить файл заголовков

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, внешний сброс, сторожевой таймер


Библиотека Компэла

Ь //- Использование внутренних функций, периферийных блоков... Использование широтно-импульсной модуляции таймера В в качестве ЦАП Mike Mitchel [slaa116.pdf (Англ.)]

Введение

Во многих встраиваемых применениях на базе микроконтроллеров тре­буется генерация аналоговых сигналов. В некоторых случаях для этих целей используются встроенные либо внешние цифро-аналоговые преобразовате­ли (ЦАП).

Тем не менее, сигналы ШИМ также могут быть использованы для полу­чения требуемых аналоговых сигналов. С их помощью можно синтезировать аналоговые сигналы, как с переменным, так и с постоянным уровнем. В этой статье обсуждается использование ШИМ-таймера в качестве ЦАП и приводится пример одновременной генерации синусоидального сигнала, пилообразного сигнала и сигнала с постоянным уровнем, а также суммирование синусоидаль­ного сигнала с постоянным уровнем для создания смещения. В данном приме­ре использован таймер Timer_B, аналогичным образом можно также использо­вать таймер Timer_A.

Теория функционирования

Сигналы ШИМ представляют собой цифровые сигналы с постоянной частотой и меняющимся коэффициентом заполнения. Пример таких сигналов приведен на рис. 1. Если коэффициент заполнения ШИМ-сигнала изменяет­ся со временем, то, отфильтровав его, получим на выходе аналоговый сигнал. Блок-схема ЦАП на базе ШИМ с использованием такого способа приведена ниже на рис. 2. В примере программы в конце этой статьи таймер Timer_B микроконтроллера MSP430F149 используется для одновременной генерации

Библиотека Компэла


Глава 3.


Использование широтно-импульсной модуляции таймера В„.


синусоидального и пилообразного сигналов с разными частотами и сигнала с постоянным уровнем. ЦАПы, основанные на ШИМ также позволяют синтези­ровать другие сигналы. Некоторые аудиопроцессоры фирмы Texas Instruments Inc. также используют сигналы ШИМ для генерации речевых сигналов.

Рис.2. Блок-диаграмма ЦАП на базе ШИМ

Разрешение

Разрешение ЦАП на базе ШИМ, построенного на таймере Timer_B экви­валентно длине счётчика, которая, как правило, представлена значением в ре-

Библиотека Компэла

гистре CCRO. МЗР ЦАП на базе ШИМ представляет собой единичный отсчёт, а разрешение соответствует общему числу отсчётов: Rcounts = Lcounts Где Rcounts - разрешение (в отсчётах),

Библиотека Компэла

22. Частота Частота, требуемая для формирования выходного сигнала ШИМ эквива­лентна… F = F х?п

Используемые ресурсы MSP430

Таймер Timer_B используется в 16-битном режиме и сконфигурирован для работы в режиме инкремента, но при этом счётчик считает до значения,… В этом режиме каждый выход сбрасывается в «0» в тот момент, когда значение…

Библиотека Компэла


f& Texas

INSiraJMENTS

устанавливается в «1», когда значение счётчика равно значению в регистре CCR0. Это обеспечивает на соответствующих выходах импульсы положитель­ной… Также в примере использованы: • Кварцевый резонатор частотой 32768 Гц

Принципиальная схема и осциллограммы

Библиотека Компэла

Полная принципиальная схема устройства приведена на рис. 3. Генерируе­мые ей переменные сигналы показаны на рис. 4. Сигнал с постоянным уровнем показан на рис. 5 совместно с сигналом ШИМ.


Глава 3.


Использование широтно-импульсной модуляции таймера В„.


Рис.4.Осциллограммы сигналов

Рис.5.Сигнал ШИМ и постоянный сигнал
Библиотека Компэла 107


Ь //- Использование внутренних функций, периферийных блоков...

Синусоидальный сигнал, формируемый в этом примере, использует 32 отсчёта на период. Значения отсчётов хранятся в таблице в начале программы. Для определения текущей ячейки используется указатель, в конце каждого пе­риода ШИМ в регистр сравнения-захвата ШИМ-таймера записывается новое значение.

Для генерации пилообразного сигнала в этом примере табличные зна­чения не используются. «Пила» формируется обычным инкрементом коэф­фициента заполнения на каждом периоде ШИМ до тех пор, пока не будет до­стигнуто максимальное значение. После этого инкремент начинается снова с минимального значения. Такое последовательное увеличение коэффициента заполнения ШИМ-сигнала после его фильтрования формирует на выходе пи­лообразный сигнал.

Сигнал с постоянным уровнем в данном примере формируется записью неизменного значения коэффициента заполнения ШИМ-сигнала. Постоянный уровень прямо пропорционален значению коэффициента заполнения ШИМ-сигнала. Таким образом, раз значение коэффициента заполнения ШИМ-сигна­ла на выходе ТВЗ не изменяется, после фильтрования RC-цепью получим на выходе постоянное значение.

Требования к фильтрам

Частота среза фильтра вычисляется следующим образом: 'с- C' 2nRC =R2C2 = RC

Библиотека Компэла


Глава 3.


Использование широтно-импульсной модуляции таймера В„.


В отличие от фильтров переменных сигналов, фильтр для постоянного сигнала используется только для хранения заряда. Поэтому в этом случае при­менена простая однополюсная RC-цепь.

Pound;. Суммирование постоянного и переменного сигналов

Рис. 6. Суммирующая схема Сложение сигналов таким образом, как описано в примере выше, поз­воляет легко регулировать постоянную и переменную…

Библиотека Компэла


f& Texas

INSiraJMENTS


//. Использование внутренних функций, периферийных блоков...


Рис. 7. Синусоидальный сигнал со смещением

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

Описание программы

После сброса (reset) производится останов сторожевого таймера watchdog, конфигурация выходных портов и системы тактирования. Далее формируется… В завершение, MSP430 переводится в режим пониженного энергопотреб­ления О…

О Библиотека Компэла


Глава 3.


Использование широтно-импульсной модуляции таймера В„.


Рис. 8. Процесс выполнения программы

Калибровка генератора DC0

Генератор DCO микроконтроллера MSP430 представляет собой генератор RC типа и обладает схожими с RC-генератором характеристиками, в частнос­ти такими, как неточная установка частоты и её уход. Тем не менее, цифровое управление этим генератором позволяет настроить его на стабильную частоту, используя источник тактирования со стабильным известным значением, такой, как кварцевый резонатор 32768Гц. Некоторые микроконтроллеры семейства

Библиотека Компэла

MSP430 имеют встроенный генератор с автоподстройкой частоты Frequency Lock Loop (FLL), позволяющий осуществить это автоматически, однако,… Ввиду того, что микроконтроллеры MSP430x1xx не имеют встроенного FLL,… По выполнении этого условия частота генератора DCO является откалиб-рованной к требуемому значению.

Библиотека Компэла 113

Требуемая частота генератора DCO = 2.048МГц Это значение используется в программном стабилизаторе FLL для калибровки частоты генератора DCO с… 255 /Таблица синуса, отсчёты /десятичные значения /загружаемые в регистр… /коэффициента заполнения ШИМ. /Вместо байт требуется /использовать слова /т.к. в регистры ТВ /требуется записывать…

Библиотека Компэла

Использование широтно-импульсной модуляции таймера В„.   DW 103   DW 128 … SetupP4 bis.b #00Eh,&P4SEL

INSiraJMENTS

  call #SW_FLL call #TB_SETUP

Библиотека Компэла

в качестве опорной частоты для стабилизации и подстройки генератора DCO до требуемой частоты 2.048 МГц. Это требуется в устройствах где нужна… Процедура основана на подсчёте тактов DCO за период ACLK (точнее, за 1/4… Процесс продолжается до тех пор, пока значения не сравняются. После этого DCO генерирует на требуемой частоте

Библиотека Компэла


 
 

//. Использование внутренних функций, периферийных блоков... bis
#MC1,&TACTL

f& Texas

INSiraJMENTS

AdjDCO DecDCO IncDCO DoneFLL bit #CCIFG,&CCTL2 bic

Библиотека Компэла


Глава 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

INSiraJMENTS

Значение в CCR3 не изменяется для формирования постоянного уровня   incd R15

Библиотека Компэла

Ь //- Использование внутренних функций, периферийных блоков... Техника самопрограммирования флэш-памяти MSP430 Anton Muehlhofer [slaa 103.pdf (Англ.)]

Введение

Самопрограммируемость Flash становится все более и более важной функцией. Однако при выполнении программирования/стирания Flash памяти программы микроконтроллер не может одновременно выполнять прикладную программу, расположенную в том же массиве памяти. Таким образом, микро­контроллер только с одним встроенным массивом Flash памяти не может одно­временно выполнять программу и изменять ее.

Есть два подхода к решению этой задачи. Первый состоит в том, что ко­манды стирания/программирования Flash памяти перед выполнением копиру­ются в ОЗУ. Второй - в том, что при выполнении стирания/программирования вычислительное ядро переходит в режим Idle.

Все микроконтроллеры семейства MSP430 компании Texas Instruments имеют встроенный контроллер Flash памяти, который позволяет выполнять прикладную программу и изменять содержимое одного и того же модуля Flash памяти.

Этот пример применения описывает способ, который позволяет стирать/ программировать Flash память, а также приводятся тексты программных моду­лей, необходимых для выполнения этих операций.

Библиотека Компэла


Глава 4.


Техника самопрограммирования флэш-памяти MSP430

Состав Flash модуль MSP430: • Управляющая логика: автомат состояния и задающий генератор управля­ ют… • Логика защиты Flash: защита от некорректных действий при стирании/ записи

Стирание и программирование Flash-модуля

В настоящее время микроконтроллеры семейства MSP430 имеют один модуль Flash для хранения данных и прикладной программы. Это означает, что при… dint clr.b &IE1

Программирование 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 /функция, которая

будет скопирована в ОЗУ

Библиотека Компэла

. kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk Функция записи Flash памяти Flash ww start ; запись байта во ; Flash… waitjof бит #1, &FCTL3 jnz wait bf Flash ww end ret

Прямое перепрограммирование 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 памяти

Демонстрационная программа

• программирование Flash памяти из ОЗУ; • прямое перепрограммирование Flash памяти. Файл Flash _ram.s43 содержит программу перепрограммирования Flash памяти из ОЗУ, которая написана на ассемблере и…

Библиотека Компэла 127


f& Texas

INSiraJMENTS

Поскольку они имеют одинаковый формат вызова, то они взаимозаменя­емы, что и показано на рисунке 5. Демонстрационной программе необходимы три следующих файла: • Flash _ram.s43 или Flash Jdle.c - содержат функции перепрограммиро­ вания Flash памяти

Заключение

В данном примере применения описаны два метода перепрограммиро­вания 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 байт) функции в ОЗУ динамичес­кой памяти, расположенной в стеке.

Библиотека Компэла

Определение функции: void Flash wb( char *Data ptr, char byte) рабочий регистр: R12 = char *Data_ptr R14 = символьный байт R13,R15 = общего назначения ; WRT = 1 …

Библиотека Компэла


Глава 4.


Техника самопрограммирования флэш-памяти MSP430

MODULE flash_ww PUBLIC Flash_ww RSEG CODE

Библиотека Компэла

add #2*Flash ww length,SP ; Обслуживание ; стека ret ;----------------- Функция записи во Flash память ---------------------

Библиотека Компэла


Глава 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 памяти. */

Библиотека Компэла 133

/* После запуска цикла записи или программирования, /* вычислительное ядро будет ожидать*/ /* до тех пор пока 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 */

Библиотека Компэла

ASEG OlOFFh SegA_last DS 0

Библиотека Компэла

Ь ///- Интерфейс с внешними устройствами Подключение ADS1100 к MSP430F413 Andreas Dannenberg [slaa2O6.pdf (Англ.)]

Описание аппаратной части

Питание мостового датчика осуществляется от выводов порта ввода-вывода. Это позволяет снизить потребление путем отключения питания мос­тового… 3.5-цифровой статический ЖКИ марки VI-302 производства компании Varitronix…

Описание программы

Краткий обзор

Демонстрационное программное обеспечение данного примера примене­ния написано как на С, так и на ассемблере. Обе программы функционально идентичны и используют общую библиотеку ведущего I2C интерфейса, кото-

Библиотека Компэла


Глава 1. Подключение ADS1100 к MSP430F413

рая написана на ассемблере. Проект, сформированный только из программ, написанных на ассемблере, имеет размер приблизительно на 20% меньше, чем смешанный проект, сформированный из программы, написанной на С и библи­отеки, написанной на ассемблере.

Таблица 1. Описание файлов

 

Имя файла Описание
ADS11OO_Demo.c Демонстрационная программа считывания данных из ADS11OO, написан­ная на С
ADS11OO_Demo.s43 Демонстрационная программа считывания данных из ADS11OO, написан­ная на ассемблере
l2C_Master.s43 Библиотека реализации ведущего I?C интерфейса
l2C_Master.h Основной файл процедуры ведущего I?C интерфейса

Работа программы

ADS1100 настроен на работу в непрерывном режиме преобразования с 16-разрядной точностью. Для усиления выходного напряжения дифференциаль­ного… Затем, MSP430 переходит в режим пониженного потребления LPM3, при этом…

Библиотека Компэла 139

В режиме калибровки задаются две константы. Это нижний (CAL L0) и верхний (CAL HI) пороги диапазона измерений. При нажатии одной из кно­пок… CurrentADCValue - CalMin DisplayValue =--------------------------------------- х CAL_MIN_MAX_SPAN

Библиотечная функция ведущего PC интерфейса

Для того чтобы иметь возможность правильно формировать временные параметры, библиотека написана на ассемблере. Если написать ее на С, то вре­менные…

Библиотека Компэла


Глава 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 + ах

При таких заменах ошибка будет ничтожной при laxl < 0,1.

Определения

Значения из спецификаций MSP430

Минимальный уровень питания цифровой части uvcc(min) MSP430x4xx Максимальный уровень питания цифровой части CC(max) MSP430X4XX '

Входные преобразователи

Показанные входные преобразователи в первую очередь рассчитаны на согласование 5-ти и 3-вольтовых систем. Тем не менее, их также можно приме­нять и при более высоких значениях внешнего питания, например, для согласо­вания входа микроконтроллера MSP430 с 12-вольтовыми сигналами.

Входные преобразователи на резистивных делителях

R1 V(sysH)min-V^(max) м R1 V(sysL)max-VIT(min) MR1||R2 DV R2 VIT(max)x(U2p) R2 VIT(min)x(1-2p) Первые два неравенства обеспечивают превышение входным напряжени­ем VI(430) на входе MSP430 соответствующих наихудших…

Библиотека Компэла


Глава 2.


Подключение 3-вольтовых микроконтроллеров MSP430-

   

Библиотека Компэла

5 х---------- 1,26 МОм-------- <2,7В + 0,3 -> 2,8875В < 3,0В 1,14МОм+1,26МОм 0,0 Вх---------- 1'14М°М------------- > -0,3 -> +0,0В > -0,3В

Входной преобразователь на транзисторе

Расчётные формулы для резисторов RC, RB1 и RB2 имеют следующий вид: С (1+P)x(llkB+llkB(Tr)) Re>[ V Третье неравенство обеспечивает включение транзистора при входном уровне V(sysH)min:

Библиотека Компэла


Глава 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 равно:


Библиотека Компэла

Rg! V(sysL)max_.| (1 g ) = Г07В_1"| RB2 [ vBE(off) J [0,2В J Максимально допустимое значение для R :

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

Входной преобразователь на операционном усилителе

Формулы для вычисления номиналов резисторов R1 и R2 по схеме, приве­денной на рис. 4 при наихудших условиях: Vre((min) 2) … Л^ Че,(тах) V(1 2) R2

Входной преобразователь на микросхеме ULN2003A

В левой части рис. 7, три буфера микросхемы ULN2003A используются в качестве входного преобразователя для согласования с 5-вольтовыми и 12-

Библиотека Компэла


Глава 2.


Подключение 3-вольтовых микроконтроллеров MSP430-

Рис.4. Входной преобразователь на операционном усилителе вольтовыми системами. Последовательный резистор RV (р = ±5%) для вход­ного… V, mmin-V, , min 11В-2 4В

Входные преобразователи на интегральных микросхемах

Для преобразования 5-вольтовых сигналов в 3,3-вольтовые можно исполь­зовать любые КМОП-микросхемы, удовлетворяющие следующим условиям:

• Предназначена для работы с питающим напряжением 3,3 В или менее.

• Явно указана возможность работы с входными уровнями более 3,3 В.

Библиотека Компэла


f& Texas

INSiraJMENTS

Указанным требованиям соответствуют микросхемы семейств АНС и LVC. Их можно подключать к источнику питания 3,3 В микроконтроллера MSP430. Примечание: Обязательно проверьте, действительно ли выбранная вами микросхема допуска­ет подачу входных сигналов с уровнем VI,…

Pound;. Входные преобразователи аналоговых сигналов

  Рис. 5. Аналоговый входной преобразователь 5 В —> 3 В для АЦП ADC12 Если внешняя схема не способна запитывать вытекающим током ре-зистивный делитель, следует применять повторитель на ОУ,…

Библиотека Компэла


Глава 2.


Подключение 3-вольтовых микроконтроллеров MSP430-


4. Выходные преобразователи

Преобразователи не требуются для работы с ЖКИ и с пассивными дат­чиками. Их можно соответствующим образом подключать непосредственно к MSP430. См. [2].

Выходной преобразователь на транзисторе

RLminxpminx(V0 )-VB (1 + P)xV(sys)max

Библиотека Компэла

1000мх(1-0,03)х100х(2,7В-0,25В-0,7В) ^ в (1 + 0,1)х5Вх(1 + 0,1) в 42. Выходной преобразователь для входов ШОП - TTL Все интегральные микросхемы со входами TTL-КМОП могут быть исполь­зованы в качестве выходных цепей для MSP430x1xx и…

Согласование со входами микросхемы ULN2003

lLmax Максимальный выходной ток 500 мА VLmax Максимальное выходное напряжение 50 В V max Максимальное входное напряжение (IL = 200 мА) 2,4 В

Глава 2.


Подключение 3-вольтовых микроконтроллеров MSP430-

Защитные диоды 5В Рис. 7. Интерфейсы с сильноточными выходными буферами ULN2003

Выходной преобразователь на операционном усилителе

nD1 II nD      

Зв

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.


Подключение 3-вольтовых микроконтроллеров MSP430-

Примечание: Формулы для расчёта рассматриваемых ниже источников питания приведены в… На рис. 11 показан конденсаторный источник питания на два выходных напряжения, VCC1 = 3 В и VCC2 = 5 В. Если выходного…

Сеть

К периферийным устройствам

Используя вывод выключения PD, MSP430 может отключать 5-вольтовый источник на время нахождения в режиме пониженного потребления (LPM3): • Активный режим (Active mode): выход MSP430 подключенный к PD пере­… • Режим пониженного энергопотребления (LPM3): выход MSP430 подклю­ ченный к PD подключается к DVCC. На выходе…

Библиотека Компэла


f& Texas

INSiraJMENTS

                                … —► к периферийным устройствам Рис. 12. Источник питания с двумя выходными напряжениями

Заключение

Как показано в данном примере применения, существуют различные не­дорогие способы подключения 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

INSiraJMENTS

Подключение MSP430 и температурного датчика ТМР100 с интерфейсом 12С lack Albus [slaa151 .pdf (Англ.)] В данном примере применения описывается аппаратный и программный интерфейс между 16-разрядным микроконтроллером…

Введение


Рис. 1. Схема соединения MSP430F413 иТМРЮО

Библиотека Компэла

Во множестве систем требуется отслеживать и измерять температуру. Часто такие измерения должны выполняться удаленно и при использовании автономно­го источника питания, а, следовательно, для увеличения срока службы потреблять система должна минимально. В большинстве систем измерение температуры про­изводится при помощи дискретных транзисторов, терморезисторов или термопар и «систем на кристалле» (SoC). ТМР100 представляет собой SoC, а при объедине-


Глава 3.


Подключение MSP430 и температурного датчика ТМР100-.


нии со сверхнизко потребляющим микроконтроллером MSP430, как это показано на рисунке 1, становится полнофункциональной системой измерения температу­ры, способной работать от одной батарейки более 10 лет.

Теория функционирования

Рис.2. Диаграмма потребления системой тока Питание системы осуществляется от одной 3 В батарейки типа CR-2032, которая имеет емкость порядка 220 мА*часов. При…

Библиотека Компэла


f& Texas

INSiraJMENTS

Рис.3. Блок-схема алгоритма работы MSP430F413/TMP100 За счет снижения времени активности MSP430 в 1,6 мс цикле преобразо­вания…

Библиотека Компэла


Глава 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хх.

Работа системы

При любых запросах к ТМРЮО сначала необходимо послать адрес (7 бит + бит записи WR), а потом 8 битный указатель адреса. Указатель адреса определяет… Запрос на считывание данных из ТМРЮО, как и в режиме записи, начина­ется с… Результат преобразования передается в виде 16 битных данных. Оба байта передаются старшим значащим битом вперед.…

Заключение

Как было сказано раньше, измерение температуры может осуществляться различными способами. Способ, применяемый в конкретной задаче, зависит от физических ограничений, наложенных на систему. Часто портативность и низкое потребление являются основными ограничительными факторами. Опи­санная система, состоящая из 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 с использованием таймера A3

В данном примере применения описывается как при помощи модуля тай­мера timer_A3 реализовать функцию UART. Приведенные примеры предназна­чены для…

Введение


Рис. У. Демонстрационная схема реализации UART на микроконтроллере MSP430x11x(1)

Библиотека Компэла

В микроконтроллере MSP430x11x (1) возможность ведения последова­тельной асинхронной передачи данных может быть реализована за счет исполь­зования встроенного модуля таймера timer_A3. В данном примере применения описывается несколько функций UART, демонстрирующих RS232 интерфейс между микроконтроллером с Flash памятью MSP430F1121и персональным компьютером (см. рисунок 1). Также описывается как использовать аппарат­ный модуль таймера timer_A3, который обеспечивает автоматическое детекти-


Глава 4. Реализация функции UART с использованием таймера A3

рование стартового условия, формирует заданную частоту передачи данных и захватывает биты данных. Аппаратный модуль таймера timer_A3 позволяет су­щественно сократить код прикладной программы и уменьшить загрузку вычис­лительного ядра микроконтроллера. Также параметры этого модуля позволяют UART работать в реальном времени в фоновом режиме.

Описание UART, реализованного на модуле таймера Timer_A микроконтроллера MSP430x11x (1)

В режиме приема нулевой управляющий регистр захвата-сравнения (CCTLO) сначала устанавливает модуль CCR0 в режим захвата данных по спадающему фрон­ту…

Библиотека Компэла 169

поступления старт-бита на вход Р2.2. По спадающему фронту на входе Р2.2 текущее значение работающего в свободном режиме таймера timer_A3 (TAR)… RX_Bit bit.w #SCCI, &CCTL0 /получение бита, /защелкнутого в SCCI

Глава 4.


Реализация функции UART с использованием таймера A3


Перед передачей каждого бита программа прокручивает регистр RXTXData для установки бита переноса. Выполняется соответствующий переход и под­готавливается режим выхода CCTLO, после чего к CCR0 добавляется длитель­ность одного бита.

Вычисление скорости передачи данных

Bltlme Bitime1_5 Рис.2. Информационное слово в формате UART8N1

Программная загрузка

При выборе программной или аппаратной реализации UART разработчики исходят из степени загруженности системы в том или ином случае. Описанная в данном примере применения реализация UART использует возможности ап-

Библиотека Компэла 171

паратного таймера timer_A3, что позволяет снизить загруженность вычисли­тельного ядра. Модуль таймера Timer_A3 автоматически определяет спадаю­щий… Программная загрузка = (26 циклов вычислительного ядра) * (9600 бод) / 3 579…

Демонстрационная схема

Демонстрационная схема, приведенная на рисунке 1, питается непосредс­твенно от последовательного порта ПК, при этом 3.3 В напряжение питания мик­роконтроллера формируется стабилизатором с низким падением напряжения TPS76033. Для преобразования уровней сигналов интерфейса использованы два инвертора SN74AHC1G04 производства компании TI. Если необходимо реа­лизовать интерфейс, полностью отвечающий стандарту RS232, то необходимо использовать низкопотребляющие 3 В преобразователи уровня типа МАХ2331, которые также производятся компанией TI. Вход сброса подтянут к линии пита­ния, а задающий генератор работает от 3.58 МГц керамического резонатора.

Демонстрационная управляющая программа 11x1_uart1.s43

SetupBC bis.b #XTS, &BCSCTL1;ACLK = LFXT1 ВЧ XTAL SetupOsc bic.b #OFIFG, &IFG1 /сброс флага ошибки ;автогенератора mov.b #0FFh, R15 SetupOscldec.b R15 /формирование задержки ;для гарантирования

Глава 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. Демонстрационная схема

Прикладная программа

Ссылки: 1.MSP430x11x1 Data sheet (SLAS241 С) 2. MSP430x1xx User's Guide (SLAU049)

Введение

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

INSiraJMENTS

Рабочими частотами шины являются 10 кГц и 100 кГц. Это аналогично шине I2C, за исключением того, что I2C не имеет ограничения скорости снизу, при…

Аппаратная часть


Рис. 1. Пример организации шины SMBus

Библиотека Компэла

На рис. 1 приведен пример подключения шины SMBus. В этом случае MSP430 подключен к смарт-батарее. Батарея питает шину и MSP430, но это не является обязательным, необходимым условием является лишь общая «зем-


Глава 6. Реализация шины SMBus на базе микроконтроллера MSP430

ля». Подтягивающие (pull up) резисторы обозначены как RP. Для уменьшения потребляемого тока, значения RP выбраны максимально возможными в рамках требований спецификации. Существуют также специальные драйвера шины SMBus, используемые вместо подтягивающих резисторов. Такие устройства обеспечивают максимальный ток на фронте и минимальный при низком уров­не на шине.

Примечание:

Неиспользованный вывод Т это термистор. Он используется в блоках Li-Ion батарей для аварийных измерений в случае неисправности модуля батареи или шины SMBus.

Реализация ведущего устройства шины SMBus

Программа состоит из двух основных частей: подпрограмм верхнего уров­ня и подпрограмм нижнего уровня. Низкоуровневые подпрограммы обрабаты­вают…

Библиотека Компэла 183

Соответствующий порт выбирается назначением OUT, DIR и IN. В зависимости от конкретного применения, могут использоваться не все протоколы. Ненуж­ные… Так как SMBus поддерживает несколько ведущих устройств на шине (multimaster) и… Основная программа включает в себя подпрограммы верхнего и нижне­го уровней и располагается отдельно от…

Примеры реализации программы ведущего устройства шины SMBus

Поиск устройств на шине

Ввиду простоты примера, была удалена значительная часть кода. Остав­шийся код можно запускать из-под программы монитора отладочного модуля…

Библиотека Компэла


Глава 6. Реализация шины SMBus на базе микроконтроллера MSP430

42. Чтение данных смарт-батареи

Этот пример значительно объёмнее первого. В нём используются прото­колы «Чтение слова», «Запись слова» и «Чтение блока» для связи со смарт-батареей. В примере считываются температура, напряжение, производитель, химическая разновидность и ёмкость батареи.

Также используется запись значения в регистр «Предупреждение об ос­тавшейся ёмкости» (RemainingCapacityAlarm), записанное значение проверяет­ся. Эти операции производятся циклически, результат отображается на ЖКИ. Пример демонстрирует использование более сложных протоколов и процесс обработки возвращаемых данных. В данной конфигурации программа прото­колов SMBus запускается из EPROM отладочного модуля MSP430x33x (EVK part number MSP-EVK430x330), а пользовательская программа запускается из монитора этого модуля.

Реализация ведомого устройства шины SMBus

Чтобы исключить контроль шины ведомым устройством во время работы с другими ведомыми могут быть использованы внешние элементы, контро­лирующие шину…

Библиотека Компэла 185

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

Заключение

Необходимость увеличения времени жизни батарей в переносных уст­ройствах привела к разработке батарей со сложным химическим составом и повышению требований к технологиям мониторинга. Шина 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
; Размещение таблицы

Реализация шины SMBus на базе микроконтроллера MSP430

; символов ASCII для ЖКИ .**************************************************** Reset : инициализация процессора

Библиотека Компэла


f& Texas

INSiraJMENTS

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

Библиотека Компэла

Реализация шины SMBus на базе микроконтроллера MSP430 PUSH R9   PUSH R14 …   Протокол «Отправить байт»     Влияние …

Из из


Библиотека Компэла


f& Texas

INSiraJMENTS

///. Интерфейс с внешними устройствами команда (command) подтверждение(acknowledge) в стоп (stop) Параметры в стеке

Библиотека Компэла

Реализация шины SMBus на базе микроконтроллера MSP430                   CALL #sbit …

Из из


Библиотека Компэла


f& Texas

INSiraJMENTS

  команда (command) подтверждение(acknowledge) в

Библиотека Компэла


Глава 6.


Реализация шины SMBus на базе микроконтроллера MSP430

CMP JZ #00h, error R9

Библиотека Компэла

Влияние на память: стек, максимум 40 байт, блок памяти Описание Шаг Направление

Реализация шины SMBus на базе микроконтроллера MSP430

    PUSH #00h PUSH #00Bh PUSH #0020h PUSH #00550h … место для кода ошибки поместить адрес в стек код команды "темпера­тура… зарезервировать байт под счётчик

Библиотека Компэла

Библиотека Компэла


Глава 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

место для кода ошибки поместить адрес в стек код команды "темпера­тура батареи" указатель на начало блока зарезервировать байт

Библиотека Компэла 199

  PUSH SR PUSH R7 PUSH R8 PUSH R9 PUSH R14 …   MOV. В #00h, Rib циклический байтовый … CALL #rbyte

Библиотека Компэла


Глава 6.


Реализация шины SMBus на базе микроконтроллера MSP430

rblk rep blk done   MOV.B R14, 22 (SP), поместить счётчик     ; в стек …

Библиотека Компэла


f& Texas

INSiraJMENTS

  BIC.B #DNC, DIR ; проверка освобождения шины 50 микросе- дополнительное… #05h, R1C rsbit MOV.В IN, Rll

Библиотека Компэла


Глава 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

INSiraJMENTS

  ; ожидание подтверждения (АСК) ; (SDA переходит в лог. «О») MOV #05F6h, R11 ; счётчик таймаута ; для NACK wack MOV.В IN, R1C DEC Rll JZ sbusy

Библиотека Компэла


Глава 6.


Реализация шины SMBus на базе микроконтроллера MSP430

                  CMP. В #00h, R12 … MOV.В #08h, R12 BIC.B #SDA, DIR rrep

Библиотека Компэла


f& Texas

INSiraJMENTS

BIS.В #SCL, DIR ; выставить лог. «О» ; на линии SCL RET *****************************************************

Библиотека Компэла


Глава 6.


Реализация шины SMBus на базе микроконтроллера MSP430

show clr MOV ; очистка дисплейной ; памяти #15, r5

Библиотека Компэла

; Вектора прерываний ****************************************************** ; .sect "Int_Vect",OFFFFh-1 ; без программы монитора POR, внеш. Reset, Watchdog с программой монитора POR, внеш. Reset, Watchdog

Библиотека Компэла


Глава 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

Библиотека Компэла

SCL DNC OUT

Библиотека Компэла


Глава 6.


Реализация шины SMBus на базе микроконтроллера MSP430

байт) MOV.B address, R5 AND #OOOFh, R5 MOV.B LCD_Tab(R5) отобразить младшую тетраду 0-MOV.B address, R5 AND #00F0h, R5 R5 ? младший байт ; маска на старшую

Библиотека Компэла

///. Интерфейс с внешними устройствами ; сдвиг вправо ; сдвиг вправо

Библиотека Компэла


Глава 6.


Реализация шины SMBus на базе микроконтроллера MSP430

Подпрограммы нижнего уровня, общие для всех протоколов ***************************************************** ***************************************************** отправка стартовой последовательности и адреса *****************************************************

Библиотека Компэла


f& Texas

INSiraJMENTS

  MOV.В R7, Rll ashift RLA.B Rll MOV.В Rll, R12

Библиотека Компэла


Глава 6.

Реализация шины SMBus на базе микроконтроллера MSP430

PUSH Rll BIC.B #SDA, DIR ; установить лог. «1» ; на линии SDA BIC.B #SCL, DIR ; установить лог. «1»

Библиотека Компэла


f& Texas

INSiraJMENTS

устройству проверка шины маскировать всё, кроме SDA освободить линию SCL определение повторяю­щейся стартовой после довательности

Библиотека Компэла


Глава 6.


Реализация шины SMBus на базе микроконтроллера MSP430

BIC.B #SDA, DIR ; выставить лог. «1» ; на линии SDA BIC.B #SCL, DIR ; выставить лог. «1» ; на линии SCL ; проверка удлинения… clkex wack

Библиотека Компэла


InstrumInis

NOP BIC.B #SDA, DIR ; выставить лог. «1» ; на линии SDA RET

Библиотека Компэла


Глава 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

Библиотека Компэла

POIE .equ 015h PODIR .equ 012h POIN .equ OlOh

Глава 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

Библиотека Компэла 221

  CALL #show clr   PUSH #00h место для кода ошибки PUSH #000Bh …

Глава 6.


Реализация шины SMBus на базе микроконтроллера MSP430

зарезервировать байт для данных SP R9 поместить данные в R1C читать код ошибки повтор при неудаче копировать символ

Библиотека Компэла

Реализация шины SMBus на базе микроконтроллера MSP430 RLA R11     XOR … добавить

INSiraJMENTS

  CALL #delay ; вызов подпрограммы ; задержки skp6 ; считьшание оставшейся ёмкости ; (RemainingCapacityAlarm) CALL… PUSH #00h PUSH #00h

Библиотека Компэла

    MOV #00DFh, R7 ; вложенный цикл       ; задержки … AND #000Fh, R5 Библиотека Компэла

INSiraJMENTS

  Отобразить Отобразить

Библиотека Компэла

Реализация шины SMBus на базе микроконтроллера MSP430 *********************************…   Протокол «Быстрая команда» 1     Влияние Влияние на…

Библиотека Компэла


f& Texas

INSiraJMENTS

      PUSH PUSH PUSH PUSH PUSH PUSH PUSH… R8

Библиотека Компэла


Глава 6.


Реализация шины SMBus на базе микроконтроллера MSP430

подтверждение(acknowledge) в ? данные (data) подтверждение(acknowledge) в ? стоп (stop) из

Библиотека Компэла

старт (start) из адрес(address) из чтение/запись(R/W) из подтверждение(acknowledge) в ? данные (data) из

Библиотека Компэла


Глава 6.


Реализация шины SMBus на базе микроконтроллера MSP430

Параметры в стеке флаг ошибкиеггог_йад не используется unused

Библиотека Компэла

Влияние на регистры: нет Влияние на память: стек, максимум 40 байт

Библиотека Компэла


Глава 6.


Реализация шины SMBus на базе микроконтроллера MSP430

Описание Шаг Направление старт (start) из

Библиотека Компэла


f& Texas

INSiraJMENTS

  CMP JZ #00h, R9 error

Библиотека Компэла


Глава 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

Библиотека Компэла 2

rwp   PUSH SR       …

Библиотека Компэла

Реализация шины SMBus на базе микроконтроллера MSP430     ; записи CALL #ack … ; Протокол «Запись блока»

INSiraJMENTS

Влияние на память: стек, максимум 40 байт, блок памяти Описание Шаг Направление старт (start) из

Библиотека Компэла


Глава 6.


Реализация шины SMBus на базе микроконтроллера MSP430

стоп (stop) из Параметры в стеке                 счётчик байт byte…

Библиотека Компэла


f& Texas

INSiraJMENTS

  PUSH R13 MOV.В #00h, R15

Библиотека Компэла

  CALL #pbit ; отправить стоповую   ; посылку MOV. В #01h, 30(SP) ; возвращает «1»… Подпрограммы нижнего уровня, общие для всех протоколов… *****************************************************

INSiraJMENTS

  BIS.В #SDA, DIR BIS.В #SCL, DIR ; отправка адреса

Библиотека Компэла


Глава 6.


Реализация шины SMBus на базе микроконтроллера MSP430

busy3 busy ADD #06h, SP ADD #02h, SP   MOV. В #00h, 28 (SP) POP R13 POP R12 POP …

Библиотека Компэла


f& Texas

INSiraJMENTS

      ; арбитраж: убедиться, что на линии SDA… MOV.B IN, R10

Библиотека Компэла

Реализация шины SMBus на базе микроконтроллера MSP430   BIC.B #SDA, DIR ; выставить лог. «1» ; на линии SDA BIC.B #SCL, DIR ; выставить лог. «1» ; на линии…

INSiraJMENTS

BIC.B #SDA, DIR ; выставить лог. «1» ; на линии SDA RET ****************************************************** ; Отправка байта (используются также sendzero ; и sendone)

Библиотека Компэла


Глава 6.


Реализация шины SMBus на базе микроконтроллера MSP430

clkxtn   JZ MOV.В IN, R1C DEC R13

Библиотека Компэла

MOV #OOOFh, R11 ; счётчик на ?50 мкс swaita MOV.В IN, RIO ; проверка шины DEC Rll

Библиотека Компэла

  .byte a+b+c+d+g ; отображает "3   .byte b+c+f+g   отображает … ; Вектора прерываний Библиотека Компэла - f& Texas

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 ; сброс флага

Библиотека Компэла

; ошибки MOV.B #055h, address ; адрес = 55h MOV.В #09h, data ; данные = 09h

Библиотека Компэла


Глава 6.


Реализация шины SMBus на базе микроконтроллера MSP430

AND JNZ #DNC, Rll

Библиотека Компэла


f& Texas

INSiraJMENTS

адрес правильный, продолжаем ; чтение бита R/W (чтение/запись) rwait2

Библиотека Компэла


Глава 6.


Реализация шины SMBus на базе микроконтроллера MSP430

BIC.B #SDA, DIR ; «отпустить» линию SDA ****************************************************** ; готов принять байт… tdat MOV #008h, R13 MOV #0000h, R12 MOV.В IN, R14

Библиотека Компэла


f& Texas

INSiraJMENTS

  rwait7 rwaitS

Введение

Системы передачи данных по инфракрасному каналу связи появились в связи с необходимостью ведения обмена данными между переносными ком­пьютерами и периферийным оборудованием. IrDA стандарт является деше­вым и практическим протоколом передачи данных по инфракрасному каналу связи.

MSP430 - мощный микроконтроллер, способный выполнять различные прикладные программы, в том числе и реализовать последовательный прото­кол передачи данных IrDA. Микроконтроллер имеет 16- разрядную архитектуру и низкое потребление, что позволяет ему выполнять обмен данными на сред­них и высоких скоростях в системах с автономным питанием. В данном приме­ре применения описывается использование микроконтроллера MSP430x112 в качестве IrDA кодера-декодера, реализованного на отладочной IrDA плате.

Модуль IrDA приемопередатчика может использоваться для обмена дан­ными между компьютерами по RS232 порту. Для этого каждый компьютер должен иметь стандартный RS232 порт и некоторое обычное терминальное программное обеспечение, типа программы Hyperterminal, которая имеется в операционных системах Windows 3.11, Windows95 и WindowsNT.

Приведенная прикладная программа может использоваться и на других микроконтроллерах семейства MSP430, содержащих драйверы ЖКИ, аналого-цифровые преобразователи и аппаратные умножители.

2. Технические требования к IrDA интерфейсу на физическом
уровне

Технические требования к IrDA интерфейсу на физическом уровне пред­назначены для определения параметров полудуплексного инфракрасного кана­ла связи, позволяющего вести обмен данными на расстояния до 1 М. Полный

Библиотека Компэла

IrDA SIR кодер-декодер на MSP430C112 стандарт требует ведения обмена данными на скоростях до 4 Мбит/с. Однако, в… Последовательный инфракрасный интерфейс IrDA должен иметь мини­мальную пропускную способность 9.6 кбит/сек. Параметры…

Таблица 1. Технические требования к скорости потока и длительности

Импульса IrDA интерфейса

Минимальная длительность импульса должна быть та же самая, что и при передачи данных на скорости 115.2 кбит/сек. Причина состоит в том, что на… При передачи данных на скоростях до 115.2 кбит/сек нет никакой необхо­димости… Для скоростей передачи данных до 115.2 кбит/сек электрический сигнал к модулю кодер-декодера передается в виде…

Библиотека Компэла 263

///. Интерфейс с внешними устройствами Рис.1. IrDA и UART кадры

IrDA кодер-декодер на микроконтроллере MSP430x112

Краткий обзор модуля

На рисунке 2 приведена структурная схем IrDA модуля приемопередатчи­ка. Основой модуля является микроконтроллер MSP430x112, который выпол-

Библиотека Компэла


Глава 7.


IrDA SIR кодер-декодер на MSP430C112

Рис.2. Структурная схема IrDA модуля Модуль может быть непосредственно подключен к обычному RS232 порту через разъем типа DB9S. Вследствие того, что IrDA…

Управляющая программа ШР430x112

В следующем разделе описаны некоторые проблемы программирования и детально обсуждены вопросы использования модуля таймера TIMER_A для кодирования и декодирования последовательного потока данных.

Законченный листинг прикладной программы для управляющего микро­контроллера MSP430x112 приведен в приложении А.

Общие вопросы

Библиотека Компэла

Далее производится инициализация портов ввода-вывода и опрос состо­яния перемычек. Состояние перемычек сохраняется в переменной BAUDRATE и… По RS232 интерфейсу передается строка инициализации. Так как состо­яние… В это время разрешено только прерывание по линии порта Р1.0 и обеспе­чивается готовность принятия строки инициализации…

IrDA-SIR кодер (передатчик)

• RS232 вход (сигнале TXD) => порт Р2.5 • IrDA выход (TSLM1100) => порт Р2.4 (CCR2) Длительность полупериода бита загружена в регистр CCR0, а таймер Timer_A установлен в режим увеличения/уменьшения…

Библиотека Компэла

IrDA SIR кодер-декодер на MSP430C112 - t|rDA Pulse

Библиотека Компэла

Через шесть циклов после установки прерывания (время, необходимого на сохранения состояния микроконтроллера), MSP430 запускает ISR. Для изме­нения… Далее мы запускаем или останавливаем таймер путем установки необхо­димого… Полностью вся подпрограмма обработки прерывания выполняется за 23 + 6 циклов. Поэтому, при работе на частоте 3.6864…

IrDA-SIR декодер (приемник)

• IrDA вход (TSLM1100) => порт Р1.2 • RS232 выход (RXD) => порт Р1.1 (CCR0) Длительность битового периода загружается в регистр периода CCR0, а Timer_A устанавливается в режим увеличения…

Библиотека Компэла


Глава 7.


IrDA SIR кодер-декодер на MSP430C112

Рис.4. Использование таймера Timer_A при lrDA/RS232 преобразовании RS232 бита), он автоматически устанавливает на порту Р1.1 высокий уровень и… ; Подпрограма обработки прерывания приемника RECEIVER ; IrDA (PI.2) -» RS232 (Pl.l)

Библиотека Компэла


f& Texas

INSiraJMENTS

Каждый спадающий фронт на порту Р1.2 вызывает прерывание, и MSP430 начинает выполнять подпрограмму обработки прерывания. Выполнение подпрограммы обработки прерывания начинается через шесть циклов… ISR выполняется за 25 + 6 циклов. Поэтому при работе на частоте 3.6864 МГц (период 271.2 не) подпрограмма выполняется…

Установки

Выбор скорости передачи данных

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

Библиотека Компэла

Скорость передачи данных устанавливается тремя перемычками Л, J2 и J3 - смотри таблицу 3. Если положения перемычек изменяются при работе системы, то…

Интерфейс пользователя

Параметры настройки СОМ порта должны быть следующими: Скорость (бит в секунду): Количество информационных разрядов:

Библиотека Компэла


f& Texas

INSiraJMENTS

    г. [,. (h. LJ [—« и- Рис. 5.Сообщение об инициализации IrDA… Рис. 6. Сообщение об инициализации IrDA модуля

Описание схемы

На рисунке 7 показана принципиальная схема IrDA модуля. При использовании кварцевого резонатора с резонансной частотой выше 3 МГц, MSP430x112 требуется 5 В питание. Так как RS232 драйвер (HIN232)

Библиотека Компэла

IrDA SIR кодер-декодер на MSP430C112 Рис. 7. Принципиальная схема IrDA модуля

Глава 7.


IrDA SIR кодер-декодер на MSP430C112

1 старт бит/7 бит данных/1 стоп бит/ проверка на четность Последнее обновление: версия 2.1 / 28.05.98

Библиотека Компэла


f& Texas

INSiraJMENTS

Основная программа . sect RESET MOV MOV "ROM", OFOOOh #SPorig,SP ; инициализация

Библиотека Компэла


Глава 7.


IrDA SIR кодер-декодер на MSP430C112

init_sys SMCLK MOV.B #00h,DCOCTL BIS.В #040h,BCSCTLl

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

INSiraJMENTS

  RLA ADD MOV POP RET

Библиотека Компэла


Глава 7.


IrDA SIR кодер-декодер на MSP430C112

- RX/TX - Р1.0 - вход RS232 - количество бит содержится в регистре R6

Библиотека Компэла

call tinit_RXTX RET I init_TX CALL tinit_TATX MOV t66,R9

Библиотека Компэла


Глава 7.


IrDA SIR кодер-декодер на MSP430C112

init_TATX MOV #0200h,&TACTL CLR CCTL1

Библиотека Компэла


f& Texas

INSiraJMENTS

  BIS.В #010H,&P2SEL RET модуль порта Р2.4

Библиотека Компэла


Глава 7.


IrDA SIR кодер-декодер на MSP430C112

    TX_01 BIS XOR #04h,&TACTL R14,&TACTL XOR.B R13,&P2IES

Библиотека Компэла


f& Texas

INSiraJMENTS

  MOV BAUDRATE,R5 RRA SUB R5 #03h,R5

Библиотека Компэла


Глава 7.


IrDA SIR кодер-декодер на MSP430C112

POP POP RET R7 ; Переменные программы

Библиотека Компэла

///. Интерфейс с внешними устройствами   ;BAUD1920 .WORD #00C0h

Библиотека Компэла

IrDA SIR кодер-декодер на MSP430C112   TXT 5 С

INSiraJMENTS

; Векторы прерываний .ккккккккккккккккккккккккккккккккк*-.     . sect "Int Vect", .word RESET …

Библиотека Компэла

Ь IV. Примеры конкретных применений Использование TPS3619 совместно с микроконтроллерами MSP430 может уменьшить… Dennis Hudgins [sbvaO14a.pdf (Англ.)]

Библиотека Компэла


Глава 1.


Использование TPS3619 совместно с микроконтроллерами MSP430-

Рис. У.Типовая схема включения TPS3619 и преобразователя напряжения для питания микроконтроллеров семейства MSP430 После окончания преобразования и сохранения данных MSP430 может от­ключить… TPS3619 кроме того, что обеспечивает выбор источника питания, еще способен отслеживать снижения напряжения на входе…

Библиотека Компэла 291

Функция отслеживания разряда батарей является вспомогательной. Следует учитывать, что резистивный делитель детектора также потребляет ток. При… При использовании TPS3619 в режиме пониженного потребления можно уменьшить ток…

Библиотека Компэла

Ь IV. Примеры конкретных применений Ультразвуковое измерение дальности на MSP430 Murugavel Raju [slaa136a.pdf (Англ.)]

Теория работы

Библиотека Компэла


Глава 2. Ультразвуковое измерение дальности на MSP430

X t (дюймов). Так как звуковые волны преодолевают удвоенное расстояние между излучателем и предметом, реальное расстояние между источником и объектом будет равно 6/2.

Описание схемы

Comparator_A определяет наличие сигнала на входе и формирует сиг­нал захвата для таймера Timer_A, результат счёта при этом «защёлкивается» в…

Библиотека Компэла 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

Инициализация lnit_Device

Основной цикл Mainloop

Библиотека Компэла 299

дом регистра CCR1 в режим сравнения с числом 36. Во время этой паузы, процессор MSP430 пребывает в режиме низкого потребления LPM0. Теперь прибор готов к приёму отражённого сигнала УЗ-приёмником. Ком­паратор…

Математические вычисления Math_calc

Библиотека Компэла


Глава 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.


Ультразвуковое измерение дальности на MSP430

;Определение переменных ****************************************************** г слово по адресам ОЗУ RAM 20 Oh & 2 0 In 202h & 203h… RSEG UDATAC htXlOOjnsw: DS 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.


Ультразвуковое измерение дальности на MSP430

Добавить смещение, соот­ветствующее источнику пре­рывания к программному счётчику PC CCR1 ISR CCR0 - не обрабатывается по CCR1 вызывается обработка CCR2 - не обрабатывается… ;По reti выход из ; режима пониженного ; потребления LPMC

Библиотека Компэла


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.

Ультразвуковое измерение дальности на MSP430

Программная задержка   DL1

Библиотека Компэла


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.


Ультразвуковое измерение дальности на MSP430

; Сравнить делитель ; со старшим словом ; делимого ; Если меньше - переход ; на div2 sub.w #0 6,htX100_msw ; Вычесть б из… ; го слова

Библиотека Компэла


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

Библиотека Компэла

Ь IV. Примеры конкретных применений Декодирование ТВ ИК ДУ-сигналов используя Таймер A3 Mark Buccini/Stefan Schauer[slaa134.pdf (Англ.)]

Введение

Дополнительная возможность декодирования устройствами на основе микроконтроллеров семейства MSP430 сигналов телевизионных ИК систем дистанционного управления - наиболее дешевый способ реализации беспро­водного ИК канала связи. Способность декодировать ИК сигналы может быть добавлена в любое устройство на базе микроконтроллера MSP430x11x (1), при этом используется только один его таймер захвата/сравнения Timer_A3 и 200 байт памяти программы, плюс необходим дополнительный дешевый внешний ИК приемник. На рисунке 1 можно увидеть демонстрационную схему ИК деко­дера. Для демонстрации работы декодера поступившие на линию Р1.0 порта ввода-вывода последовательные пакеты данных передаются в персональный компьютер, а так же при принятии сигнала «увеличение канала» («channel +») зажигается светодиод.

В RC5 и SIRC протоколах передача последовательных пакетов данных осуществляется путем модуляции ИК несущей сигналом с частотой 40 кГц. Ло­гическая единица передается ИК импульсами с частотой 40 кГц, а отсутствие этих импульсов интерпретируется как передача нуля. Модуляция ИК сигнала

Библиотека Компэла


Глава 3.


Декодирование ТВ ИК ДУ-сигналов используя Таймер A3

Рис. 1. Демонстрационная схема ИК декодера частотой 40 кГц используется для обеспечения возможности фильтрации…

Библиотека Компэла


Ь IV. Примеры конкретных применений

няет прием и передачу данных аппаратно без использования вычислительного ядра и других системных ресурсов операционной системы микроконтроллера. Для передачи принятых данных в персональный компьютер на базе регистра захвата/сравнения CCR0 реализован UART, который использует в качестве вы­хода линию порта Р1.1.

Выбор рабочей частоты

Демонстрационная схема

Демонстрационная схема питается через 3.3 В стабилизатор с низким падением напряжения TPS76033 от последовательного порта персонального компьютера. Только один маломощный светодиод используется для индика­ции приема команды «увеличение канала» («channel +»). Передача данных от линии порта Р1.1 осуществляется через инвертор SN74AHC1G04 производс­тва компании TI. Если необходимо реализовать полный RS232 интерфейс, то можно использовать низкопотребляющий 3 В преобразователь уровней МАХ3221. сразу после сброса запускается 32 768 Гц автогенератор, которо-

Библиотека Компэла


Глава 3. Декодирование ТВ ИК ДУ-сигналов используя Таймер A3

му не требуются даже внешние конденсаторы сдвига фазы, так как они уже встроены в MSP430.

Программа декодирования

Вызов подпрограммы подготовки ИК деко­дера call #TXIR 2 PC Переход в режим LPM3, остановка, снижение потребления Передатчик принял… call #LED_Disp

Библиотека Компэла 317


f& Texas

INSiraJMENTS


IV. Примеры конкретных применений


В данном примере применения после того, как оканчивается прием ИК пакета при помощи фоновой подпрограммы, прерывание от CCR1 возвраща­ет вычислительное ядро в активный режим путем сброса битов активизации LPM3 режима в сохраненном значении регистра SR. Это очень удобный способ управления работой основной программы с обработкой событий по прерыва­нию. Полученный пакет ИК данных преобразуется в четыре двоичные кодовые комбинации в ASCII коде и передается в персональный компьютер по UART со скоростью 2400 бодов в формате 8N1 при помощи подпрограммы TXIR_2_PC. Четырем ASCII кодовым комбинациям предшествуют кодовые комбинации перевода корретки и перехода на новую строку. Активная стадия основной программы заканчивается вызовом подпрограммы LED_Disp. Если принята команда увеличения канала «channel +», то подпрограмма LED_Disp зажжет светодиод, подключенный к линии порта Р1.0. После этого микроконтроллер переходит в режим LPM3, ожидая следующего пакета данных.

Протокол RC5

Первый захват

С|

Мс

S1 SO С А4 A3 А2 А1 АО С5 С4 СЗ С2 С1 СО


Старт Контрольный Код адреса бит


Код команды


Рис.2. Инвертированный пакет данных стандарта RC5, поступающий на вход MSP430

Библиотека Компэла


Глава 3. Декодирование ТВ ИК ДУ-сигналов используя Таймер A3

значение логической единицы. Контрольный бит изменяет свое значение при каждом нажатии кнопки на пульте дистанционного управления. Пять адресных бит предназначены для идентификации 32 различных типов устройств. Шесть командных бит предназначены для передачи 64 команд управления. Длитель­ность бита в стандарте RC5 довольно высокая -1.78 мс, причем половину этого периода передается высокий сигнал, а другую половину- низкий сигнал. Дли­тельность всего 14 битного пакета данных равна приблизительно 25 мс.

Программа 11х1_гс5.243

Bit_50 equ 2 9 ; 8 90 мкс при частоте ACLK ; 327 68 Гц Bit_75 equ 44 ; 1348 мкс при частоте ACLK

Библиотека Компэла 319

регистра захвата/сравнения (SCCI). SCCI обеспечивает очень важную аппарат­ную роль CCR1, позволяющую запоминать принятый логический уровень на входе… RX_Cont bit.w *SCCI, *CCTL1 ; Carry = Data бит ; в SCCI rlc.w IRData ; Carry —> IRData

Протокол SIRC

Библиотека Компэла


Глава 3.


Декодирование ТВ ИК ДУ-сигналов используя Таймер A3


дача данных в протоколе SIRC ведется младшим битом вперед. Первым после стартового бита принимается бит СО.

На рисунке 3 показан инвертированный ИК приемником пакет данных SIRC протокола на входе MSP430.

Рис.3. Инвертированный пакет данных SIRC протокола на входе MSP430

Программа 11x1_SRC.s43

IR_Mid equ 4 9 IR_Start equ 75 IR_Start2 equ 82 1500 мкс при частоте ACLK 32768 Гц 2300 мкс при частоте ACLK 32768 Гц 2500 мкс… Подпрограмма IR_Ready позволяет CCR1 захватывать по спадающему фронту данные от ИК приемника. Это позволяет MSP430…

Библиотека Компэла

тового бита, модуль CCR1 осуществляет захват содержимого TAR и запраши­вает прерывание TA1JSR. Состояние TAR захватывается аппаратно, вызова… IR_ST_Test push.w &CCR1 sub.w IRlength,0(SP)

Библиотека Компэла


Глава 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.


Декодирование ТВ ИК ДУ-сигналов используя Таймер A3

StopWDT mov.w #WDTPW+WDTHOLD,&WDTCTL SetupTA mov.w #TASSELO+MC1,&TACTL SetupCO mov.w #OUT,&CCTL0

Библиотека Компэла

Декодирование ТВ ИК ДУ-сигналов используя Таймер A3                   mov.w…

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.


Декодирование ТВ ИК ДУ-сигналов используя Таймер A3

Очистка верхушки стека Переход —> не последний бит Отключение CCR1 12-битные IRData выровнены по… rrc.w IRData rrc.w IRData rrc.w IRData and.w #OFFFh,IRData ; Изолирование 12-бит-

Библиотека Компэла


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.


Декодирование ТВ ИК ДУ-сигналов используя Таймер A3

Компания Texas Instruments, Inc июль 2 001 ORG

Библиотека Компэла


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.

Декодирование ТВ ИК ДУ-сигналов используя Таймер A3

mov.w &TAR,&CCRC add.w #Bitime,&CCRC bis.w #0100h, RXTXData го стопового бита в RXTXData rla.w RXTXData mov.w… Добавление нулевого стартового бита Загрузка счетчика битов, 8 бит данных + SP

Библиотека Компэла


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.


Декодирование ТВ ИК ДУ-сигналов используя Таймер A3

push.w &CCR1 add.w #Bit_50,0(SP) pop.w &CCR2

Библиотека Компэла


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


Библиотека Компэла

Ь IV. Примеры конкретных применений Компенсация фазового сдвига и калибровка токового трансформатора Kes Тат [slaa122.pdf (Англ.)]

Введение

Для измерения тока и обеспечения развязки по постоянному току в элек­тросчетчиках обычно используются трансформаторы тока (СТ). Однако, все СТ вносят фазовый сдвиг, который изменяет величину мощности на их выходе. Индуктивные и емкостные нагрузки вызывают взвешенную ошибку измерения мощности переменного тока, которая значительно увеличивается и достигает недопустимой величины при снижении измеряемой мощности.

Традиционным решением преодоления проблемы фазового сдвига явля­ется применение аналогового RC фильтра; однако, RC фильтры не способны удовлетворить современным требованиям, из-за высокой стоимости, возник­новения проблем с устойчивостью и необходимости проведения трудоемкой ручной калибровки. Применение цифровой коррекции и автоматизированной калибровки позволяет избавиться от этих недостатков.

В этом примере применения рассматриваются два вопроса: коррекция и калибровка. Раздел по коррекции описывает разработку одиночного фильтра с нулевой конечной импульсной характеристикой (zero-FIR - нулевой КИХ). Этот фильтр имеет групповое время задержки, позволяющее компенсировать фа­зовый сдвиг токового трансформатора. К сожалению, он также изменяет ко­эффициент передачи по постоянному току, коррекция которого также должна быть произведена впоследствии.

Библиотека Компэла


Глава 4.


Компенсация фазового сдвига и калибровка токового трансформатора


В разделе по калибровке описывается расчет параметров фильтра с КИХ для различных времен задержки, затем рассматриваются вопросы эмуляции non-UPF нагрузки, определение ошибки non-UPF и локализация используемых актуальных параметров КИХ фильтров.

Цифровая коррекция фазового сдвига

Описание задачи

На рисунке 1 входной ток I опережает напряжение V на угол 0, а выход­ной ток l(out) опережает напряжение на угол ф. Реальная мощность в этом случае… Рис. 1. Фазовая характеристика СТ

Библиотека Компэла 343

E(m) 1 p 1 cose Ошибка является нелинейной функцией от фактора мощности. Для UPF…

FIR фильтр

Самый простой способ обеспечения задержки на дробное количество так­тов является использования фильтра с нулевой КИХ: у[п]=х[п]+рх[п-1] Здесь х - входной ток, у - задержка выходного тока, п - дискретная пере­менная, ар- коэффициент усиления задержки.

Библиотека Компэла


Глава 4. Компенсация фазового сдвига и калибровка токового трансформатора

А"1 = [(cosco + (З)2 + sin2 со]

Например, для электросчетчика, работающего с частотой дискретизации 995.025 Гц, измеряющего входной сигнал с частотой 50 Гц и содержащего СТ, вносящий фазовый сдвиг 1 °, (3=0.0611975, а А-1 =0.944873.

Калибровка СТ

Фактически калибровка СТ начинается с формирования внутренней задержки основного входного тока с целью эмуляции non-UPF нагрузки. Это основная…

Эмуляция non-UPF нагрузки

Использование внутренней задержки для эмуляции non-UPF нагрузки не только устраняет необходимость использования таких дорогих и больших на­грузок,… Задержка входного тока или напряжения эквивалентна изменению факто­ра… где f(m) - частота основного сигнала, f(s) - частота дискретизации, а N -количество циклов задержки.

Вычисление ошибки

Ошибка, вызванная фазовым сдвигом СТ, получается в результате нор­мализации разницы времен, необходимых обоим приборам для формирова­ния одинакового… ^(Р) = (int) ~~ (ref))''(ret) где t'(int) - приведенная длительность импульсной последовательности, равная t(int)/cos^, t(int) - измерянная…

Установка таблицы параметров КИХ

Библиотека Компэла


Глава 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)

Библиотека Компэла

Ь IV. Примеры конкретных применений Твердотельный диктофон с использованием MSP430 Murugavel Raju [slaa123.pdf (Англ.)]

Введение

Введение микроконтроллеров 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.


Твердотельный диктофон с использованием MSP430

Рис. 1. Структурная схема На рисунке 1 показана структурная схема описываемого устройства. На ней…

Аналоговая аппаратная часть

На рисунке 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.


Твердотельный диктофон с использованием MSP430

Рис.3. Последовательный ЦАП и фильтр На рисунке 3 показаны последовательный ЦАП и сглаживающий фильтр.… На рисунке 4 показан усилитель мощности звуковой частоты (УМЗЧ). Он реализован на основе усилителя мощности ТРА721…

Библиотека Компэла


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

в аналоговый сигнал, сглаживающий фильтр восстанавливает его, а УМЗЧ уси­ливает и подает его на динамик.

Программное обеспечение

Библиотека Компэла

няемого кода. Однако в данном примере применения информационная память не используется. Код прикладной программы записан в память начиная с адреса 110Оп - на­чального… Программа выполняется в двух режимах - запись и произведение. Выбор режима осуществляется нажатием кнопки управления.…

Библиотека Компэла


Глава 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.


Твердотельный диктофон с использованием MSP430

xor.w #FXKEY+WRT, &FCTL1 Play bis.b #BITO,&P10UT eint mov.w #Memstart, R14

Библиотека Компэла

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.


Твердотельный диктофон с использованием MSP430

Proceed reti Выход из подпрограммы обработки прерывания Init_Sys ; Настройка периферийных модулей StopWDT mov.w SetupBC bic.b call …

Библиотека Компэла


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.


Твердотельный диктофон с использованием MSP430

; в качестве опорного напряжения ; Одноканальный (АО) режим однократного преобразования bis . w #ADC12ON+ADC12SC+ENC,&ADC12CTL0

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 г

Запрещение прерываний &FCTL3 ; Разблокирование FLASH памяти для записи Test_Busyl bit.w #BUSY,&FCTL3 ; Проверка флага… 3 ациклив ание

Библиотека Компэла


f& Texas

INSiraJMENTS

  jnz DL1 Incd.wSP

Введение

Многие из микроконтроллеров семейства MSP430 имеют или модуль таймера Timer_A, или модули двух таймеров Timer_A и Timer_B. Эти модули содержат 16-разрядный счетчик, который может увеличиваться от различных источников синхросигнала. Они могут работать даже в режиме пониженного потребления. Также эти таймеры имеют регистры захвата/сравнения, которые могут применяться по-разному в разных приложениях. Одним из таких прило­жений является автоматическое формирование сигнала с ШИМ для управле­ния двигателем постоянного тока. В данном примере применения описывается управление при помощи модулей таймеров Timer_A и/или Timer_B одной из множества существующих схем управления двигателем постоянного тока.

Теория функционирования

Библиотека Компэла


Глава 6.


ШИМ-управление двигателем постоянного тока

Обратите внимание, что к MSP430 не подключен никакой кварцевый ре­зонатор. Частота DCO использованного микроконтроллера MSP430x11x (1) зависит от… Показанный на схеме прибор TPS77133 производства компании TI, фор­мирует…

Библиотека Компэла

3. Демонстрационная управляющая программа Демонстрационная управляющая программа для приведенной на рисун­ке 1 схемы на… Ссылки:

Библиотека Компэла



 


f& Texas

INSiraJMENTS


IV. Примеры конкретных применений


Милливольтметр сигма-дельта типа на MSP430F11x1

В данном примере применения описывается метод реализации дешево­го 12 битного сигма-дельта АЦП на основе микроконтроллера MSP430F11x1 семейства…

Введение


Рис. 1. Милливольтметр на базе MSP430F11x1

Библиотека Компэла

Используя микроконтроллер MSP430F11 х1 семейства 16-разрядных сме­шанно-сигнальных процессоров, можно легко реализовать дешевый аналого-цифровой преобразователь с высоким разрешением на основе внутреннего компаратора comparator_A микроконтроллера. Описанный аналого-цифровой преобразователь использует технологию сигма-дельта АЦП. Демонстрацион-


Глава 7. Милливольтметр сигма-дельта типа на MSP430F11x1

ная схема, приведенная на рисунке 1 имеет разрешение 1 мВ при 3.3 В одно-полярном питании. АЦП такого типа, имеющие высокое разрешение, идеаль­но подходят для измерения медленно меняющихся физических величин типа температуры, давления, интенсивности освещения и напряжения. Высокая точность получаемого АЦП и сверх малое потребление MSP430 позволяют изготавливать измерительные устройства с автономным питанием. Ключевые характеристики встроенного АЦП микроконтроллера MSP430F11x1:

• 1 мВ /12 битное разрешение

• Интегрированное решение, обеспечивающее превосходное подавление
шумов

• Не требуется калибровка компаратора

• Для реализации АЦП требуется только два внешних компонента.

Теория функционирования

Положим, что напряжение Vout установлено в предыдущем цикле преоб­разования равным напряжению Vin, а выходное сопротивление открытых тран­зисторов…

Библиотека Компэла 371


f& Texas

INSiraJMENTS


IV. Примеры конкретных применений

I I I I I I I I I I I—> Рис.2. График выходного напряжения встроенного ЦАП


Расчет номиналов элементов ФНЧ1 битного ЦАП

-— V(t) V(t) = V(1-e RC); -^ = 1- RC v '

Библиотека Компэла


Глава 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.

Требующиеся внешние компоненты

• Один резистор • Один полиэстровый пленочный конденсатор с низким током утечки Макетная схема устройства, приведенная на рисунке 1, имеет связь с персональным компьютером и питается непосредственно…

Снижение системной ошибки

Общая точность аналого-цифрового преобразователя определяется точ­ностью однобитного ЦАП. ЦАП формирует выходное напряжение в диапазо-

Библиотека Компэла 373

не от напряжения питания (VCC) до нуля (GND). Обеспечивается это тем, что выходные полевые транзисторы цифрового порта, использующегося под ЦАП,… Компаратор имеет напряжение смещения, которое вызовет ошибку. Уникальная… Замечание:Демонстрационная схема питается непосредственно от пос­ледовательного порта персонального компьютера.…

Библиотека Компэла


Глава 7.


Милливольтметр сигма-дельта типа на MSP430F11x1

Демонстрационная программа fet_intADC.s43 состоит из нескольких про­ цедур. После сброса выполняется подпрограмма InitSys, инициализирующая порты ввода-вывода и модули микроконтроллера MSP430. В основной программе ЦАП вызывается подпрограммой Meas_ADC. Под­программа Meas_ADC осуществляет выборку и…

Библиотека Компэла

#DAC_Out,&P2OUT #CAEX,&CACTL1

IV. Примеры конкретных применений

На выходе компарато­ра сигнал высокий или низкий?

Разряд конденсатора Заряд конденсатора

увеличение ADCData в двоично-десятичном коде

Уменьшение счетчика цикла слежения цикл слежения закончен?

разряд конденсатора инвертирование выво­дов компаратора Выход из подпрограммы


Затем вызывается подпрограмма ТХ_2_РС, осуществляющая передачу данных в персональный компьютер со скоростью 9600 бод. После этого опять начинает выполняться основная программа.

Программное обеспечение для основного 12 битного АЦП

Meas ADC ; Подпрограмма: измерения при помощи АЦП, результат преобразования АЦП в двоичном коде —> ADCData R15 используется в качестве рабочего… mov.b #CAON,&CACTL1 Включение компаратора

Библиотека Компэла

  clr ADCData Очистка регистра     ADCData call #Sample ADC … Sample_ADC mov #04096,R15 ; предварительный заряд… jnc Lowl

Использование стандартных процедур компании TI

Библиотека Компэла Ь IV. Примеры конкретных применений компании TI. Приведенная ниже команда копирует зарегистрированные стан­дартные процедуры в исходный код:

Заключение

Современная 16-разрядная RISC архитектура MSP430 очень хорошо под­ходит для устройств, манипулирующих с данными, имеющими большую раз­рядность. 16-разрядная архитектура MSP430 позволяет при помощи одной ко­манды манипулировать АЦП с высоким разрешением, используемым в данном примере применения.

Технология аналого-цифрового преобразования, описанная в данном примере применения очень проста, недорога и не требует больших ресурсов MSP430. Это позволяет изготавливать дешевые АЦП с высоким разрешени­ем. Эта технология интегрирующего АЦП не обеспечивает высокого быстро­действия. После того, как входное и выходное напряжения сравняются пре­образование выполняется при работе на частоте 3.578545 МГц за 13 мс. Для снижения длительности цикла преобразования можно, если преобразование прошло успешно, оставлять накопительный конденсатор заряженным или ис­пользовать более высокую рабочую частоту микроконтроллера MSP430. Мак­симальная рабочая частота MSP430F11x1намного выше чем 3.578545 МГц, использованная в данном примере применения. Быстродействия интегриру­ющих АЦП достаточно для измерения сигналов от телеметрических датчиков, систем сбора данных и других датчиков медленно меняющихся физических величин (температура, давление и т.д.).

Имеются и дополнительные преимущества использования интегрирую­щих ЦАП с коротким периодом симметричного импульса. Аналого-цифровое преобразование, выполняющееся на основе обычной ШИМ, ШИМ с одиноч­ным большим периодом или переменного цикла, требует RC цепочки с отно­сительно большим временем преобразования. Отклик на короткие импульсы, применяющиеся в данном примере применения, устанавливается быстрее, что позволяет использовать RC цепочку с меньшей постоянной времени. Поэтому интегрирующий АЦП фактически накапливает несколько однобитных прира­щений, что позволяет снизить ошибки, вызванные шумами.

Библиотека Компэла


Глава 7.


Милливольтметр сигма-дельта типа на MSP430F11x1

NAME ;FET_intADC MSP430Fllxl Demo Описание: Эта программа демонстрирует как реализо­вать на микроконтроллере… Используемые регистры вычислительного ядра #define ADCData Rll #define BitCnt R6 #define RXTXData R5 r

Библиотека Компэла

Актуальное напряжение питания (VCC) ORG OFOOOh RESET mov #300h,SP call #Init_Sys

Библиотека Компэла


Глава 7.


Милливольтметр сигма-дельта типа на MSP430F11x1

                Очистка флага повреждения автоге­нератора bis.b… SetupOsc bic.b #OFIFG,&IFG1 mov #0FFh,R15 SetupOscl bit.b #OFIFG,&IFG1

Библиотека Компэла


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.


Милливольтметр сигма-дельта типа на MSP430F11x1

mov #CR,RXTXData call #TX_Byte ; Переход к нижеследующей подпрограмме TX_Word_ASCII ; Передача слова из ADCData в виде ; четырех ASCII байт swpb ADCData ; ADCData = 3412

Библиотека Компэла

mov #TX_Count,BitCnt ; TX_Count -» Указатель ; перехода push &TAR ; Текущее значение ТА

Глава 7.


Милливольтметр сигма-дельта типа на MSP430F11x1

j с ТХ_Магк TX_Space bis #0UTM0D2,&CCTLC reti

Библиотека Компэла

1. MSP430x11x1 Data Sheet (SLAS241 С) 2. MSP430x1xx Family Users Guide (SLAU049) 3. MSP430 Application Report, Lutz Bierl (SLAA024)

Введение

В течение многих десятилетий для измерения потребления электроэнер­гии использовались механические счетчики электроэнергии (электросчетчи­ки). Новые, полностью электронные электросчетчики заменяют механические электросчетчики, но до сих пор массовое распространение электросчетчиков тормозилось из-за их высокой стоимости, что было вызвано тем, что в них ис­пользовались аналого-цифровые преобразователи (АЦП) и микропроцессор.

MSP430C11х - дешевый член семейства MSP430 микроконтроллеров производства компании Texas Instruments. Он не имеет встроенных аппарат­ных блоков типа АЦП и перемножителей, которые обычно применялись в электронных электросчетчиках. Однако, наличие у него трех регистров захва­та данных позволяет реализовать три дешевых АЦП с высоким разрешением. А его высокопроизводительное 16-разрядное вычислительное ядро с RISC архитектурой позволяет реализовать высокоточный дешевый полностью электронный электросчетчик. Вот некоторые из основных характеристик это­го электросчетчика:

• Трехканальный градиентный АЦП, использующий встроенный таймер
захвата

• Двухдиапазонный токовый вход с автоматическим управлением, обеспе­
чивающим перекрытие тока до 400 %

• Требуемая для измерителей первого класса высокая точность (ошибка
менее 1%)

• Защита от внешнего вмешательства, позволяющая предотвратить во­
ровство электроэнергии

• Простая и легкая внутренняя калибровка

• Однокристальное решение, не требующее внешнего вычислителя

• Устранение смещения по постоянному току в обоих каналах (напряжения
и тока)

• ФНЧ для мгновенных значений мощности

Библиотека Компэла


Глава 8.


Недорогой однофазный счетчик электроэнергии на MSP430C11х


Преобразование потребляемой энергии в частоту импульсной последова­тельности

Аналого-цифровое преобразование

Одно-градиентный АЦП

Рис. 1. Одно-градиентный АЦП Для аналого-цифрового преобразования используется стандартная одно-градиентная… Где V [n] - последовательность, состоящая из мгновенных значений V (n x tc). Библиотека Компэла389

INSiraJMENTS


IV. Примеры конкретных применений


Формирование пилообразного сигнала

Рис.2. Генератор пилообразного сигнала Генератор пилообразного сигнала построен на базе интегратора на основе…

Период пилообразного сигнала

Рис. 3. Период пилообразного сигнала Рассмотрим рисунок 3: если Vdrl устанавливается в ноль в момент време­ни t = 0, то на выходе операционного усилителя…

Библиотека Компэла

за период времени, равный t2, на выходе Vramp снова установится нулевое значе- тогдаС= lc/(dVc/dt), или С = ((Vbias - Vctrl) / R) / (d (Vramp - Vbias)/dt),

Практический пример

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 кОм).

Измерение временных параметров пилообразного сигнала

Рис.4. Измерение временных параметров пилообразного сигнала Из рисунка 4 получаем:

Библиотека Компэла


Глава 8.


Недорогой однофазный счетчик электроэнергии на MSP430C11х

Среднее квадратичное значение напряжения на входе изменяется в не­больших пределах. Однако среднее квадратичное значение тока на входе из­меняется в… Рис. 5. Структурная схема двухдиапазонного АЦП

Библиотека Компэла

це, однако на практике обеспечить это не удается из-за разброса параметров внешних дискретных компонентов. Для компенсации этого расхождения вво­дят… С1 и С2 компенсируют отклонение коэффициента усиления G1' и G2' от… l'[n] = Vrefx(ti/tref). Где:

Библиотека Компэла


Глава 8. Недорогой однофазный счетчик электроэнергии на MSP430C11х

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

Автоматическое переключение коэффициента усиления

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

Защита от внешнего вмешательства, предотвращающая воровство электроэнергии

Основным способом вмешательства является снижение или полное закры­тие протекание тока через датчик, установленный на фазе или нейтрале. Если ток… Библиотека Компэла395 f& Texas

INSiraJMENTS


IV. Примеры конкретных применений


Рис. 6. Примеры вмешательства в работу электросчетчиков

Потоки данных в системе

Библиотека Компэла


Глава 8.


Недорогой однофазный счетчик электроэнергии на MSP430C11х


ватель энергия-импульс, который управляет дисковым электромеханическим или другим индикатором.

Рис. 7. Структурная схема внутренних потоков данных

Детектирование кадров

Библиотека Компэла

42. Исключение постоянной составляющей Постоянная составляющая входного сигнала исключается путем вычита­ния ее из… То есть. Vdc = ZV [n] / N a Idc = ZI [п] / N

Библиотека Компэла


Глава 8.


Недорогой однофазный счетчик электроэнергии на MSP430C11х

Блок выбора канала тока

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

Регулятор усиления

Предположим, что требуется обнаружить превышение сигналом некоторого порога у. Самый простой способ состоит в детектировании максимального значе­ния… Ь IV. Примеры конкретных применений точках. Рассматривается порог у1 = sin (x), который немного ниже, чем у, при этом входные отсчеты, лежащие в интервале…

Фильтр нижних частот

Если v (t) = Vo x sin (cot) a i (t) = lo x sin (cot) то p (t) = Vo x lo x sin2 (cot) = (1/2 x Vo x lo) x (1 -cos (2cot))

Преобразователь энергия-импульс

Если на выходе оконечного высоковольтного преобразователя мы имеет Vh (t) = Kv x v (t) Hh(t) = Kixi1 (t) I2h (t) = Ki x i2 (t) а при внутренних вычислениях производится масштабирование с коэф­фициентом Ks: V(t) = Ks x v (t)

Библиотека Компэла


Глава 8.


Недорогой однофазный счетчик электроэнергии на MSP430C11х

=£ Es / 4 х Kv x Ki / (Ks2. fs), где Es = 4VA и fs = 1/tc - частота дискретиза­ции Потребляемую электроэнергию принято отображать с точностью до 0.1-кВт*ч… Тогда Ed = Е / (0.1 х 1000 х 3600) = Z Es / 5, где 5 = 0.1 х 1000 х 3600 х 4 х Ks2xfs/(KvxKi)

Калибровка

Идея метода калибровки состоит в измерении времени формирования заданного количества импульсов эталонным измерителем, подключенным па­раллельно.…

Заключение

В данном примере применения описано построение дешевого электро­счетчика на базе микроконтроллера 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

Библиотека Компэла

Ь IV. Примеры конкретных применений Цифровой термометр на базе MSP430 Brian Merritt [slaaO38.pdf (Англ.)]

Введение

В этом примере описывается разработка цифрового термометра с ис­пользованием возможностей 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.


Цифровой термометр на базе MSP430

4ef || -RrefxCxfcl0Ckxln^ V

Возможности таймера - порта Timer Port

Рис. 3. Пример применения модуля таймера-порта Библиотека Компэла Ь IV. Примеры конкретных применений

Заключение

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.


Цифровой термометр на базе MSP430

TOOL .SET 0 STACK .EQU 003DEH RAM_ORIG .EQU 002ООН

Библиотека Компэла


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

Библиотека Компэла

Цифровой термометр на базе MSP430 .SET .SET .SET .SET .SET .SET SCG1 … Счётчик 1 BASIC TIMER Счётчик 2 BASIC TIMER Регистр управления WATCHDOG Маска останова WATCHDOG Ключ доступа к…

Глава 9.


Цифровой термометр на базе MSP430

MOV.B MOV.B MOV.B

Библиотека Компэла


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

Библиотека Компэла

Цифровой термометр на базе MSP430   DIV2

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.

Цифровой термометр на базе MSP430

.**************************************************** ; ЖКИ модуля STK LCD TYPE     … Отображает "О' Отображает "1"

Библиотека Компэла


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


Библиотека Компэла

Ь IV. Примеры конкретных применений FSK модуляция и демодуляция с использованием микроконтроллера MSP430 [slaaO37.pdf (Англ.)]

Введение

Многие измерительные устройства (например, электросчетчики и счетчи­ки газа) должны иметь возможность установки связи с центральной станцией для передачи результатов измерения и получения новых тарифов. Такая связь может быть легко установлена по телефонной линии.

Передача данных при помощи сигнала с частотной манипуляцией (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].

Выбор частоты дискретизации

Управление оконечными устройствами

Демодуляция FSK

Цепочка, составленное двух частотно-зависимых элементов, является фильтром низких частот, предназначенным для подавления сигнала удвоенной частоты.… Фильтр нижних частот использует технологию цифровой фильтрации ко­лебаний. Эта… Библиотека Компэла421

Синхронизация бита

Теории модуляции

FSK сигнал = Амплитуда х cos [t x 2 х pi x (Fcarrier ± Fdelta)] Синусоидальный сигнал генерируется в соответствии с таблицей значений, которая…

Библиотека Компэла


Глава 10. FSK модуляция и демодуляция с использованием микроконтроллера...

DELTA = Fdesired / Fsampling x 65536.

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

Выбор частоты дискретизации

8-битный интервальный таймер устанавливает частоту дискретизации 19200 выборок/сек. Эта скорость кратна требуемой скорости потока данных 1200 бод. Также, это позволяет упростить построение устройства выборки-хра­нения (УВХ) АЦП.

Построение таблицы значений

Чтобы сохранять объем памяти ПЗУ в таблице закодирован только первый квадрант в формате Q7 (от 0 до 127). Это сделано путем деления первого квад­ранта (90 градусов) на 128 интервалов с шагом приблизительно 0.7 градуса. Восстановление значений трех других квадрантов выполняется путем дополни­тельных вычислений.

FSK модуляция

Затем, всю значения второго квадранта вычисляются из значений первого квадранта, содержащиеся в таблице. 8 битный результат защелкивается в порту P0.OUT. Каждые 16 прерываний, параметр DELTA обновляется в соответствии с ве­личиной частоты следующего посылаемого бита.

Преобразование данных

В этом разделе описываются необходимые аналого-цифровое и цифро-аналоговое преобразования данных.

Аналого-цифровое преобразование

Библиотека Компэла423 Ь IV. Примеры конкретных применений цифрового преобразователя микроконтроллера MSP430C325. Однако, для обеспечения динамического диапазона, необходимого…

Цифро-аналоговое преобразование

Для формирования 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:

Библиотека Компэла

FSK модуляция и демодуляция с использованием микроконтроллера... ; Выборка входного сигнала… NORMAL_DEMOD: bit

Библиотека Компэла

FSK модуляция и демодуляция с использованием микроконтроллера...   rla.b IRBT jnc L$002

I i i i i i i i i

____ Выборка 3 Опережение Отставание Новый фронт бьш обнаружен, теперь необходимо

Библиотека Компэла

FSK модуляция и демодуляция с использованием микроконтроллера...                   #CLOCK,global_status…

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


Библиотека Компэла

FSK модуляция и демодуляция с использованием микроконтроллера... .word 1108h .word 1108h … Данные с выхода фильтра сохраняются в регистре R6 Содержимое регистра R6 переводится в аналоговое значение после…

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


Подпрограмма FSK передатчика

.equ 040h .equ 08Oh .equ Oh

Библиотека Компэла


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


флаг прерывания ВТ адрес управляющего регистра таймера/ счетчика

адрес регистра пред­варительной загрузки таймера/счетчика адрес таймера/счет­чика


Библиотека Компэла

FSK модуляция и демодуляция с использованием микроконтроллера...   TPCTL RC1FG .equ 02h TPCTL… 28 Oh запуск систем­ного стека

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

Библиотека Компэла

Библиотека Компэла

Ь IV. Примеры конкретных применений Программный встроенный модем на MSP430 Wolfgang Lutsch [slaa2O4.pdf (Англ.)]

Введение

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

Данный программный модем предназначен для работы только с вхо­дящим соединением. Такое упрощение связано с тем, что ставилась задача только показать возможность создания программного модема. Кроме того, в данном примере применения описывается, как установить соединение между программным модемом на базе MSP430 и стандартным модемом персональ­ного компьютера.

2. Использование модема стандарта V.21 на телефонных сетях
общего пользования (ТФСОП)

Основная функция модема состоит в преобразовании двоичных сигналов в аналоговые сигналы, которые могут передаваться в полосе телефонного ка­нала, и наоборот - принятых аналоговых сигналов в двоичные сигналы. CCITT/ ITU определяют различные стандарты для модемов. Ниже некоторые основ­ные технические требования к модемам стандарта V.21:

• Полнодуплексное соединение «точка-точка» для передачи данных по те­
лефонной линии

• Двоичная частотная манипуляция (FSK)

• Скорость передачи данных до 300 бит/сек (бод)

Параметры модуляции стандарта V.21:
454 Библиотека Компэла


Глава 11.


Программный встроенный модем на MSP430

- Центральная частота первого канала f1 = 1080 Гц - Центральная частота второго канала f2 = 1750 Гц ■ Частоты для передачи двоичной '1' (MARK) и двоичного '0' (SPACE) в каждом канале:

Таблица 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. Описания аппаратной части

Описание схемы демонстрационной платы

Вместе с микроконтроллером задействованы следующие элементы: • 3.3 В стабилизатор напряжения • Разъем JTAG интерфейса для внутрисистемной отладки и программи­ рования

Отладочная плата LITELINK III (DM)

Так как DAA содержит высоковольтную защиту, то для формирования законченного телефонного интерфейса требуется всего несколько внешних элементов.… Так как линейная часть ИС подключена к телефонной линии, то дополни­тельное… Более полную информацию о LITELINK III можно получить из техни­ческого описания ИС «СРС5620/СРС5621 LITELINK III…

Подключение к DM

Управляющие сигналы

Программный модем на базе MSP430 использует два управляющих сигна­ла DAA, которые непосредственно подаются на порты ввода-вывода микрокон­троллера MSP430.

Первый управляющий сигнал - выходной сигнал LITELINK III - сигнал обнаружения вызова RING, который подается непосредственно на способный формировать прерывание порт Р2.5 MSP430. Выходной сигнал RING обычно удерживается в высоком состоянии, а при поступлении вызова на нем появля­ются импульсы.

Библиотека Компэла


Глава 11.


Программный встроенный модем на MSP430


Второй управляющий сигнал, сигнал занятия линии, является для DAA входным и обозначается попОН. Формируется этот сигнал на порту Р2.1. В таблице 2 приведены требуемые состояния сигнала попОН для двух режи­мов работы.

Таблица 2. Управление занятием линии

 

попОН Режим работы Описание
Высокий уровень Устройство отключено от линии DAA готов занять линию или принять вызов, схема слежения за линией активна, а при поступлении вызова на выходе RING формирует­ся сигнал.
Низкий уровень Устройство подключено к линии (занятие линии) Линейный ток протекает через линейный терминал устройства, ко­торое осуществляет ответ или вызов другого абонента.

Передающий тракт

• Максимальный допустимый уровень входного сигнала для LITEUNK III в несимметричном режиме равняется 1.1 В. Этот уровень соответствует мощности -6… • Уровень передаваемого модемом сигнала должен быть в пределах от -43 dBm до… В таблице 3 приведены уровни результирующих сигналов для частот 1650 Гц и 1850 Гц при использовании ФНЧ (см.…

Библиотека Компэла


f& Texas

INSiraJMENTS


IV. Примеры конкретных применений


Таблица 3. Уровни передаваемых сигналов

 

Частота (f) Уровень сигнала Р (Шх)
1650 Гц -24 dBm
1850 Гц -24.5 dBm

Приемный тракт

На рисунке 4 показан принятый сигнал на входе (канал 1) и выходе (ка­нал 2) компаратора. Сигнал RX+ несколько искажен за счет нелинейности…   Рис.4. Эпюры принятого сигнала на входе и выходе компаратора

Глава 11.


Программный встроенный модем на MSP430

В данной главе описывается алгоритм детектирования вызывного сигна­ла и модуль V.21. FSK модулятор/демодулятор V.21 реализован при помощи аппаратных…

Таблица 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.

Модуль детектора вызывного сигнала

Выход RING подключен к порту Р2.5. Так как входной сигнал содержит шум, то простой подсчет количества импульсов не является помехозащищен-ным…

Библиотека Компэла 461


тг Texas

INSiraJMENTS


IV. Примеры конкретных применений


Рис. 6. Блок-схема подпрограммы обработки прерывания по порту Р2.5 алгоритма детектирования вызывного сигнала

Библиотека Компэла


Глава 11.


Программный встроенный модем на MSP430


Рис. 7. Блок-схема подпрограммы обработки прерывания от WDT алгоритма детектирования вызывного сигнала

Библиотека Компэла


f& Texas

INSiraJMENTS


IV. Примеры конкретных применений


Модуль V21

Для формирования временных интервалов в алгоритмах модуляции/демо­дуляции используется встроенный в MSP430 генератор с цифровым управле­нием…

FSK модулятор

Глава 11.


Программный встроенный модем на MSP430

Этот вывод подключен непосредственно к выводу порта Р1.3. Модуль за­хвата/сравнения Timer_A.CCR2 работает в режиме сравнения и используется для… Half PeriodValue = Timer_A.CLK / (2 х SignalFreqency) … Цифровой порт ввода - вывода Р1.3 настроен на работу в режиме вхо­да, при этом для него разрешено прерывание.…

INSiraJMENTS


IV. Примеры конкретных применений


При чтении P1IES.3 ISR определяет, фронт сигнала (нарастающий или спадающий). В зависимости от этого обновляется переменная BitFreq, которая и определяет период формируемого сигнала с ШИМ. Вследствие этого период выходного сигнала зависит от потока данных UART (см. рисунок 10).

Рис. 10. Эпюры колебаний FSK модулятора

FSK демодулятор

ISR считывает из CCR1 захваченное значение и высчитывает длительность импульсов входного сигнала путем измерения интервала времени между…

Библиотека Компэла


Глава 11.


Программный встроенный модем на MSP430

  Рис. 11. Блок-схема алгоритма подпрограммы обработки прерывания от Timer_A.CCR1

Библиотека Компэла


f& Texas

INSiraJMENTS


IV. Примеры конкретных применений


Таблица 5. Значения, соответствующие длительностям сигналов

При демодуляции FSK сигнала

    Величина длительности Частота 1180 Гц … Если измеренная величина попадает в один из интервалов, то происходит увеличение соответствующего счетчика периодов. …

Библиотека Компэла


Глава 11.


Программный встроенный модем на MSP430

Для отслеживания количества принятых битов байта используется пе­ременная (BitCounter). После принятия восьми битов прерывания от Timer_ A.CCRO… Рис. 13. Взаимодействие ISR от Timer_A.CCR1 и CCR0

Библиотека Компэла


Рис. 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 мс, продолжая передавать единицы, а после этого переходят в режим передачи данных.

Работа модуля программного модема

Первый вызывной сигнал переводит модем в состояние RingDetection. После обнаружения следующего вызывного сигнала алгоритм детектирования вызывного… Окончание связи другим модемом определяется при помощи следующе­го алгоритма:…

Библиотека Компэла 471


Тг Texas

INSiraJMENTS


IV. Примеры конкретных применений


Рис. 17. Блок-схема пользовательской программы, использующей модем V.21
472 Библиотека Компэла


Глава 11.


Программный встроенный модем на MSP430


На рисунке 17 показана блок-схема алгоритма пользовательской програм­мы, использующей модем V.21.

Демонстрационное применение программного модема

Рис. 18. Тестовая схема подключения программного модема на базе MSP430 На ПК необходимо использовать программу Hyper Terminal, входящую в состав ОС Windows. Перед проведением теста…

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.


Программный встроенный модем на MSP430

3. CPC5620/CPC5621 LITELINKIII Phone Line Interface 1С (DAA) data sheet, Clare Inc., 2002 4. CPC5621-EVAL-RDL/CPC5621-EVAL-CDL LITELINK III Evaluation-Board user's… 5. MSP430 Embedded Soft-Modem Demo, АТС Presentation by Dannenberg, A., November 2003 …

Приложение А. Схема электрическая принципиальная программного модема


 
 

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 из прямо­угольных сигналов.

Спецификация сигналов DTMF

  Частота 1209 Гц 1336 Гц 1477Гц 1633Гц 697Гц А …

Библиотека Компэла


Глава 12.


Генерация и распознование DTMF-сигналов

• Отклонение частоты от номинальной - не более 1.8% в процессе набора номера • Огибающая сигнала набора номера должна соответствовать осциллог­ рамме,…

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 являются аналоговыми и состоят из двух независимых друг от друга синусоидальных сигналов. Таким образом, невозможно сгенерировать такие сигналы только цифровым способом. Циф­ровые сигналы должны быть преобразованы при помощи АЦП и/или аналого­вых фильтров в требуемую синусоидальную форму.

Генерация при помощи прямоугольных сигналов

У(1) = -f + Ца0 х cos(nco0t) + b0 x sin(nco0t)] Где ао/2 - постоянная составляющая сигнала. Элемент суммы с наимень­шей…

Библиотека Компэла


Глава 12.


Генерация и распознование DTMF-сигналов

Рис.2. Амплитудный спектр прямоугольного сигнала При использовании аналогового фильтра постоянная составляющая и вы­сшие гармоники эффективно подавляются, при этом на…

Программное обеспечение для генерации меандра

Программа генерации меандра должна удовлетворять следующим требо­ваниям:

• Иметь возможность синтеза двух независимых друг от друга прямо­
угольных сигналов.

• В целях разделения сигналов требуются два выходных вывода, обеспе­
чивающих генерацию сигналов из «верхнего» (Hi-Group) и «нижнего»
(Lo-Group) частотных диапазонов соответственно.

Библиотека Компэла

• ПО должно иметь возможность установки требуемой длительности сиг­налов в диапазоне примерно 65 мс -100 мс. Микроконтроллеры серии MSP430 имеют различные встроенные тайме­ры, способные…

Генерация прямоугольных сигналов с использованием 8-битного таймера и таймера - порта Timer Port

Частоты нижнего диапазона генерируются 8-битным таймером. Так как счётный регистр этого таймера имеет разрядность 8 бит, только каждое третье… Два выхода таймера - порта используются для формирования двух меан­дров разной… Процедура инициализации выполняется только один раз. После её за­вершения, шестнадцатеричное значение передаваемого…

Глава 12.


Генерация и распознование DTMF-сигналов

Рис.3. Блок-схема процедуры инициализации для генерации DTMF-сигналов прерываний осуществляют переключение выводов порта. Этот процесс… В задачи таймера-порта входит только фиксация лог. уровня на выходе порта и перезагрузка счётчика из ОЗУ, работа же…

Библиотека Компэла


f& Texas

INSiraJMENTS


IV. Примеры конкретных применений


Рис. 4. Блок - схема прерываний от 8-битного таймера (Lo-Group)
484 Библиотека Компэла


Глава 12.


Генерация и распознование DTMF-сигналов

Пользовательские определения FLLMPY . equ TCLK .… FLL Умножитель частоты ; на 1.048 МГц FLLMPY*327 68 ; TCLK: FLLMPY X f

Библиотека Компэла

.bss DTMF TL ; Выравнивание по чётному ; адресу .bss DTMF_TH .bss DTMF NR ; глобальная переменная в ОЗУ

Библиотека Компэла


Глава 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 ; Подготовка регистра предвари­тельной загрузки Загрузка счётчика из регистра


Библиотека Компэла

Генерация и распознование DTMF-сигналов bis.b #008h,&IEl предварительной загрузки ; подготовка таймера-порта для rla г15

Генерация прямоугольных сигналов с использованием таймера Timer_A

; Аппаратные определения FLLMPY .equ 32 .equ TCLK FLLMPY*327 68 Умножитель частоты FLL на 1.048 МГц TCLK: FLLMPY X f кварца

Библиотека Компэла


Глава 12.


Генерация и распознование DTMF-сигналов

                Режим Continuous, прерывания разрешены Подготовка…   DL .equ STACK .equ … OFOOOh

Библиотека Компэла


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.


Генерация и распознование DTMF-сигналов

Сохранение использу­емых регистров Статус нижней часто­ты DTMF FDTMFLO(R5),&CCR1 ; Добавить дли­тельность полупериода Длительность… ; Да, прекратить выдачу сигнала DTMF: запретить ; прерывания

Библиотека Компэла


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.


Генерация и распознование DTMF-сигналов

32 ; Умножитель частоты FLL TCLK . equ ; на 1.048МГц FLLMPY*327 68 ; TCLK: FLLMPY X f ; кварца .equ

Библиотека Компэла


IV. Примеры конкретных применений

f& Texas

INSiraJMENTS

Верхняя частота DTMF MOV FDTMFHI(R5),DTMFHI ; Длительность MOV.B STDTMF,R5 полупериода

Библиотека Компэла


Глава 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

; Таблицы и вектора прерываний идентичны приведенным ; в предыдущем примере

Библиотека Компэла 497

33. Аппаратная часть для генерации сигналов DTMF Как было указано выше, в диапазоне частот 200 Гц .. 4600 Гц уровень сиг­нала… Для выбора частот среза при разработке аналогового фильтра необходи­мо придерживаться следующих требований, основанных…

Библиотека Компэла


Глава 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 формируют ФВЧ

Библиотека Компэла

1-го порядка. Т.к. входное сопротивление схемы также зависит от R1, значение этого элемента не должно быть слишком маленьким; в противном случае… Функция передачи фильтров более высокого порядка не может быть полу­чена с… Таким образом, фильтр 2-го порядка должен содержать операционный усилитель. Усиление активного фильтра установлено на…

Библиотека Компэла


Глава 12.


Генерация и распознование DTMF-сигналов

Рис. 10. Принципиальная схема аналоговых фильтров с дополнительным сумматором резистору обратной связи R6 формирует ФВЧ первого порядка. Если выбрана…

Результаты исследований сигналов DTMF

Библиотека Компэла


тг Texas

INSiraJMENTS


IV. Примеры конкретных применений




Рис. 12. Амплитудный спектр символа "D": 941 и 1633 Гц

Абсолютной точности частоты генерируемых прямоугольных сигналов при использовании двух различных таймеров достичь не удастся, результат будет зависеть от комбинации двух частот и типа используемых таймеров. При-

Библиотека Компэла


Глава 12.


Генерация и распознование DTMF-сигналов

Если используются 8-битный таймер и таймер - порт Timer Port timer на системной частоте MCLK1.048 МГц, то частоты «нижней» группы генерируются с… Единственное исключение - символ DTMF "D", для которого генерируются… Без учёта этого исключения, даже самая высокая частота 1633 Гц гене­рируется с точностью лучше 0.5 %. Максимальные…

Заключение

Программное обеспечение для данного примера весьма простое и, зани­мая примерно 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.

• Благодаря наличию встроенного АЦП, подключение МК к аналоговым
системам не представляет сложностей. Необходимость во внешнем
АЦП отсутствует.

Основы цифровых фильтров

Библиотека Компэла507 Ь IV. Примеры конкретных применений непрерывны во времени. При использовании цифровой обработки сигна­лов имеется ряд преимуществ, таких, как повышенная…

Свойства цифровых фильтров-резонаторов

Некоторые сигнальные процессоры также имеют возможность работы с числами в формате «плавающая точка», в котором обрабатываемые данные представлены с… Особенностью ЦФР является пониженная чувствительность к изменени­ям…

Библиотека Компэла


Глава 12.


Генерация и распознование DTMF-сигналов

Стабильность ЦФР не нарушается при разрывах входного сигнала. Это его свойство позволяет обрабатывать запросы прерываний, после чего возвращать­ся к…

Структура используемых цифровых фильтров-резонаторов

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

Библиотека Компэла


f& Texas

INSiraJMENTS


IV. Примеры конкретных применений


частоты будут ослаблены. Коэффициент усиления резонансной частоты, либо коэффициент ослабления остальных частот определяется параметром К в виде -20 log К (дБ). Полоса пропускания фильтра определяется как полоса частот по уровню -10 log К (дБ). Превышение амплитудой на выходе фильтра определённого порога означает присутствие искомой частоты в спектре. Регу­лировка усиления производится при помощи согласующей цепи с наличием потерь. Структура этой цепи идентична для всех фильтров (см. рис. 15). Цепь с последовательным резонансом состоит из двух элементов задержки и адапте­ра. Существуют четыре различных конфигурации в зависимости от требуемой резонансной частоты (рис. 16).

Рис. 14. Амплитудно-частотная характеристика цифрового фильтра-резонатора

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

Библиотека Компэла


Глава 12.


Генерация и распознование DTMF-сигналов

Рис. 16. Четыре различные конфигурации четырёхполюсника Библиотека Компэла Ь IV. Примеры конкретных применений 4. Представление чисел и арифметика

Глава 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-битными целыми операндами, следует договориться о представлении значений сигнала. Для программной обработки операций с плавающей точкой потребуется слишком

Библиотека Компэла 513

много времени, таким образом, следует использовать арифметику с фикси­рованной точкой. Примем следующее распределение бит для алгоритма фильтрации: 1 Бит знака

Расчет 8-ми цифровых фильтров-резонаторов и оптимизация коэффициентов

• Частота выборки • Резонансная частота фильтра • Усиление (ослабление) фильтра в виде -20 log К (дБ)

Глава 12.


Генерация и распознование DTMF-сигналов

Резонансные частоты фильтров соответствуют каждой индивидуальной частоте DTMF. Такие частоты должны проходить через фильтр без ослабления.… Учитывая вышеописанные требования, коэффициенты для 8 фильтров вычислим…   Частота, Гц Цепь с поел,…

Библиотека Компэла 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.


Генерация и распознование DTMF-сигналов

Встроенный в MSP430 АЦП даёт возможность перехода от аналоговых к цифровым сигналам. Однако, для проверки характеристик фильтров, нам пот­ребуются… В отличие от микроконтроллера, осуществляющего вычисления с 16-бит­ной… f(alpha,gamma_1_n1, gamma_2, n1) :=

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.


Генерация и распознование DTMF-сигналов

Сигнал DTMF- Некорректная длительность сигнала л Разрыв сигнала

Опознана пауза

Программа вычисления 8-ми цифровых фильтров-резона­торов для определения сигналов DTMF. Входной аналоговый сигнал оцифровывается на входе А4 с частотой отсчётов 3640… Распознанные символы DTMF отображаются на ЖКИ Автор Robert Siwy, October 1997…

Библиотека Компэла


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.

Генерация и распознование DTMF-сигналов

FALSE FALSE1 DISPLAY

Библиотека Компэла


Глава 12.

Генерация и распознование DTMF-сигналов

сохранить N3 в г13 Tl=N3*gamma_2+nl*gamma_l*IN nl*gamma 1*IN in rl2

Библиотека Компэла

; окончание согласующей цепи FILTER_1633_END .endif FILTER 2 T2_1477,rl2 rl2,rl3 rl2 Tl_1477,rl2 rl2,rl4 rl2 rl2 rl2,rll rl2 rl2 …

Библиотека Компэла


Глава 12.


Генерация и распознование DTMF-сигналов

  mov rii,rij , mov IN,rl2 ; T1=N3 rra rl2 rra rl2 rra … SWAP2

Библиотека Компэла

; требуется N3 в rll ; l/nl=32, gamma_2=-l+l/32) ; nl*gamma_l=l/32 nl*gamma 1*IN в rl2 Tl в rl2 : сохранить Tl в ОЗУ 32

Библиотека Компэла


Глава 12.

Генерация и распознование DTMF-сигналов

Библиотека Компэла

FILTER_120 9_ENDE .endif .if FILTER 5 FILTER 941   mov T2 941,rl3 mov … N1=(T1-T2)*alpha

Библиотека Компэла


Глава 12.

Генерация и распознование DTMF-сигналов

Генерация и распознование DTMF-сигналов

; окончание согласующей цепи FILTER_770_ENDE .endif

Библиотека Компэла


Глава 12.

Генерация и распознование DTMF-сигналов

jge SWAPS mov OUT,MAXLO ; замена максимума mov #00,ROW ; строка = 0

Генерация и распознование DTMF-сигналов

Аппаратная часть

Преобразование аналоговых сигналов в цифровые осуществляется при по­мощи АЦП, встроенного в 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. Благодаря такому масштабированию, улучшается динамический диапазон и уменьшается шум, вносимый при округлении в процессе умножения.

Измерения и результаты

Рис.23. Длительность вычисления фильтров Как видно из рисунка, алгоритм занимает всего 55% доступного времени. Системная частота равна 3.3 МГц. Длительность…

Библиотека Компэла


Ь 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

Библиотека Компэла


Семейство микроконтроллеров MSP430

Руководитель проекта Таранков И.В. Дизайн обложки Георгадзе Е.С. Графика Писанко В. А. Верстка Торочков Е.В.

– Конец работы –

Используемые теги: Семейство, микроконтроллеров, MSP4300.038

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Семейство микроконтроллеров MSP430

Что будем делать с полученным материалом:

Если этот материал оказался полезным для Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Еще рефераты, курсовые, дипломные работы на эту тему:

Дисциплина МИКРОКОНТРОЛЛЕРЫ Методические указания 1.2 Условное графическое обозначение УГО микроконтроллера AVR ATmega8515
Федеральное государственное образовательное учреждение СПО... Нижегородский радиотехнический колледж... Дисциплина МИКРОКОНТРОЛЛЕРЫ...

Семейство операционных систем OS/2
История системы августа года IBM объявила о выпуске нового поколения персональных компьютеров IBM... Версии... OS v бета версия...

Однокристальные микроконтроллеры ОМК позволяют существенно расширить интеллектуальные возможности различного рода устройств и систем
Однокристальные микроконтроллеры ОМК позволяют существенно расширить... Подавляющее число ОМК имеют традиционную Фон Неймановскую или Принстонскую архитектуру в которой команды и данные...

Семейство протоколов TCP/IP
На сайте allrefs.net читайте: Семейство протоколов TCP/IP...

Основные характеристики различных типов PIC микроконтроллеров
Основные характеристики различных типов PIC микроконтроллеров... Таблица А Семейство микроконтроллеров PIC CXX Таблица А...

Бегония клубневая Семейство: Бегониевых (Begoniaceae).
На сайте allrefs.net читайте: "Бегония клубневая Семейство: Бегониевых (Begoniaceae)."

Создание измерительного аппаратно-программного комплекса термометра на основе микроконтроллеров семьи ATMEGA
По большому счету, тепло выделяет практически всё, так как любая работающая электронная схема рассеивает некоторую мощность.Однако есть элементы,… Уже стал привычным кулер на видеокарте, иногда он устанавливается также на… Однако повышенная температура внутри корпуса компьютера ведет не только к сокращению срока службы компонентов, но и к…

Система команд 8-разрядных RISC микроконтроллеров семейства AVR
На сайте allrefs.net читайте: "Система команд 8-разрядных RISC микроконтроллеров семейства AVR"

Описание команд для PIC микроконтроллеров
Описание команд для PIC микроконтроллеров B Описание команд PIC CXX и PIC C X ADDWF Add... BCF Bit Clear f... Сброс бита в регистре f...

На микроконтроллерах
На микроконтроллерах... Формализация проектирования... Микроконтроллер с требуемой периодичностью обновляет управ ляющие слова на своих выходных портах Некоторая часть...

0.022
Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • По категориям
  • По работам