Лабораторный практикум по TWR-S08LH64. Микроконтроллер MC9S08LH64. Лабораторные работы 1 и 2
Модуль TWR-S08LH64
Рис. 1
TWR-S08LH64-KIT
Freescale Tower System
Модуль TWR-S08LH64 является составной частью Freescale Tower System — модульной платформы для разработки, позволяющей быстро создавать прототипы и неоднократно использовать инструментальные средства путём изменения аппаратной конфигурации. Выведите вашу разработку на новый уровень — начните собирать свою систему Tower уже сегодня. |
Рис. 2
Джамперы (перемычки) на модуле микроконтроллера Tower установлены в положение, разрешающее запуск приложения Quick Start (Быстрый старт), записанного во флэш-память микроконтроллера MC9S08LH64.
TWR-S08LН64 — Лабораторные работы 1 и 2
Введение
MC9S08LH64 — это один из микроконтроллеров Freescale с пониженным энергопотреблением, с интегрированным драйвером ЖК-дисплея, с 16-битным АЦП, имеющим канал дифференциального входа и до 8 несимметричных входов. Модуль TWR-S08LH64 содержит встроенные аналоговые входные каналы, которые позволяют разработчикам исследовать возможности нового мощного АЦП. Кроме того, он оснащён встроенным дисплеем, благодаря чему разработчики могут анализировать создаваемое ПО с помощью интегрированного драйвера ЖК-дисплея. Данное руководство поможет вам за считанные минуты подготовиться к разработке своего следующего измерительного или ЖК-приложения на базе микроконтроллера MC9S08LH64.Примечание. Прежде чем приступить к лабораторным работам, описанным в данном руководстве, выполните все шаги руководства Quick Start Guide (Быстрый старт), полностью установите требуемое программное обеспечение и загрузите документацию.
Использование кода Quick Start, запуск CodeWarrior и открытие проекта
В данной лабораторной работе показаны возможности микроконтроллера MC9S08LH64 и приложения Quick Start (Быстрый старт).Нажимая кнопку SW2, можно выбрать одно из четырёх состояний:
- Состояние 1. Пониженное энергопотребление и отображение времени
- Состояние 2. Потенциометр и светочувствительный датчик
- Состояние 3. Демо-режим акселерометра, вывод координат X, Y и Z через порт SCI
- Состояние 4. Демо-режим АЦП — в состоянии АЦП при нажатии кнопки SW4 номер канала увеличивается на 1, конвертируется в шестнадцатеричный вид и отображается на дисплее
- Установите программное обеспечение и инструментальные средства в соответствии с указаниями руководства Quick Start Guide (Быстрый старт).
- Откройте приложение CodeWarrior для микроконтроллеров. Для этого в меню Пуск Windows выберите Programs > Freescale CodeWarrior > CW for Microcontroller 6.3 > CodeWarriorIDE.
- Нажмите кнопку Start Using CodeWarrior (Запустить CodeWarrior).
- В меню приложения CodeWarrior выберите File > Open (Файл > Открыть) и откройте файл PE_LH64 Quick_Start.mcp, который находится на диске c:/ в каталоге с распакованными проектами. Этот файл представляет собой проект Quick Start, в котором для инициализации устройства используется инструментальное средство Processor Expert программы CodeWarrior.
Знакомство с окном проекта Quick Start
На Рис. 3 показаны закладки Processor Expert и Files (Файлы).Рис. 3
В окне проекта есть четыре закладки: Files (Файлы), Link Order (Порядок подключения), Target (Целевой микроконтроллер), Processor Expert. На каждой закладке отображается содержимое проекта, соответствующее её названию. Код пользователя отображается на закладке Files (Файлы).
Установка модуля TWR-S08LH64
- Подключитесь к 10-контактному разъёму на модуле, помеченному COM PORT и J3 (см. Рис.4). В состояниях 2, 3 и 4 данные пересылаются через порт SCI микроконтроллера на консоль терминала вашего компьютера.
- Подсоедините разъём DB9 гибкого кабеля RS232 к последовательному порту компьютера.
Рис. 4
Запуск инструментального средства P&E для разработки приложений программатора/отладчика
- Откройте инструментальное средство P&E Multilink Toolkit Launch Pad и окно терминала. В меню Пуск Windows выберите Programs > P&E Embedded Multilink Toolkit > Toolkit Launchpad.
- Запустите консоль терминала и настройте параметры COM-порта компьютера: Скорость — 19200 бит/с, Биты данных — 8, Стоп-биты — 1, Чётность — нет.
- С помощью ПО CodeWarrior скомпилируйте код и перепрограммируйте микроконтроллер MC9S08LH64, записав в него приложение — для этого кликните по кнопке Debug (Отладка) или нажмите клавишу F5 на клавиатуре, запускающую программатор и отладчик BDM с открытым исходным кодом (OSBDM).
- Если микроконтроллер остановлен и находится в состоянии с низким энергопотреблением, вы можете увидеть сообщение «There is currently no communication» (Подключения отсутствуют). Нажмите OK. Восстановите подключение, нажав кнопку SW2 и выбрав пункт Component > Set Connection (Компонент > Установить соединение), укажите HCS08 и FSL open source BDM (HCS08 и FSL OSBDM). Подключение по интерфейсу BDM восстановится.
Рис. 5 - Когда появится сообщение «Loading a new application will stop execution of the current one» (Загрузка нового приложения приведёт к остановке выполняемого приложения), нажмите OK.
Рис. 6 - Когда появится сообщение «The debugger is going to mass erase the non-volatile memory of the current device, then program the application» (Отладчик полностью очистит содержимое энергонезависимой памяти текущего устройства, а затем перепрограммирует приложение), нажмите OK.
Рис. 7
Окно отладчика
Откроется новая среда отладчика. В основном меню выберите Run > Start/Continue (Запуск > Старт/Продолжение) или нажмите кнопку . Начнётся выполнение программы в режиме реального времени.Рис. 8
Отображение времени При включении питания или сбросе все сегменты на ЖК-дисплее загорятся, затем погаснут, зуммер издаст звук, далее появятся надписи 9LH64 и CL. После этого микроконтроллер перейдёт в режим пониженного энергопотребления с отображением времени/дня недели. При инициализации показаний дисплея используются значения времени, температуры и дня недели. Микроконтроллер отслеживает время с помощью модуля TOD, в котором используется часовой кварц с частотой 32.768 кГц. Температура и уровень заряда батареи измеряются с помощью 16-битного АЦП (ADC16) и отображаются на дисплее.
Рис. 9
В режиме останова и пониженного энергопотребления задействованы следующие функции с использованием ADC16: измерение показаний внутреннего датчика температуры, опорного напряжения (bandgap) и времени (TOD), а также управление модулем ЖК-дисплея. В режиме останова работает функция мигания сегментов ЖК-дисплея.
Функции отображения и управления
1) Нажмите кнопку SW2 и удерживайте её более двух секунд, чтобы переключить дисплей между режимами отображения температуры и отображения значения секунд (две верхних цифры на дисплее).2) Нажмите кнопку SW1 и удерживайте её для входа в режим установки времени и дня недели. В результате на экране временно отобразится CL, затем SE (режим установки времени) и цифра часа начнёт мигать.
Установка часов: нажатие на кнопку SW1 увеличивает значение, на кнопку SW2 — уменьшает.
Нажмите и удерживайте в течение двух секунд обе кнопки SW1 и SW2 для перехода в режим установки минут.
Установка минут: нажатие на кнопку SW1 увеличивает значение, на кнопку SW2 — уменьшает.
Нажмите и удерживайте в течение двух секунд обе кнопки SW1 и SW2 для перехода в режим установки дня недели.
Установка дня недели: нажатие на кнопку SW1 увеличивает значение, на кнопку SW2 — уменьшает.
Нажмите и удерживайте в течение двух секунд обе кнопки SW1 и SW2 для выхода из режима установки времени.
Дисплей вернется в исходное состояние с отображением времени и температуры.
Измерение тока. Чтобы измерить средний ток микроконтроллера, снимите джампер «MCU IDD» JP2 и подключите амперметр между двумя выводами JP2. Произведите сброс модуля TWR_S08LH64 нажатием кнопки Сброс. Показания должны быть ниже 3мкА.
Интервал пробуждения. Микроконтроллер возобновляет работу каждую секунду и обновляет значение программного счётчика секунд. Чтобы сократить энергопотребление, можно установить временной интервал пробуждения микроконтроллера равным 60с. Это уменьшит число переключений микроконтроллера из режима остановки в рабочий режим с обновлением показаний времени на ЖК-дисплее.
В файле LH64_Demo.c код, включающий 60-секундный интервал пробуждения, закомментирован. В функции void StopClock(void) сделайте комментарием строку, которая начинается с vfnTOD_Init, и удалите символы комментария «//» в начале следующей строки. После перезаписи нового кода микроконтроллер будет активироваться каждые 60с. Таким образом, секундный интервал отменён. Снова измерьте значение тока и сравните с предыдущим. Возможно, придётся закрыть окно отладчика, чтобы активировать режим с пониженным энергопотреблением.
Потенциометр и светочувствительный датчик
В этом состоянии для считывания показаний потенциометра и встроенного светочувствительного датчика используются два канала АЦП. Нажмите кнопку SW2, и программа перейдёт в состояние Потенциометр и светочувствительный датчик. На дисплее отобразится LI, а также показания потенциометра (большими символами в нижней части экрана) и показания светочувствительного датчика (справа вверху двумя символами меньшего размера). Третьим отображаемым символом будет <, > или =, сравнивающий показания POT (потенциометра) и светочувствительного датчика. Одновременно показания пересылаются через SCI-порт на скорости 19200 бит/с.- Запустите утилиту Serial Grapher из программы PEMICRO UTILITY LAUNCH PAD.
- Выберите COM-порт компьютера (как правило, это COM1) и установите: Скорость — 19200 бит/с, Биты данных — 8, Стоп-биты —1, Чётность — нет.
- Кликните по Open Serial Port and Start Demo (Открыть последовательный порт и запустить демо-приложение). В окне терминала должен появиться примерно такой текст:
"POT = FD Light Sensor Z1 = 56 "
"POT = FD Light Sensor Z1 = 58 "
"POT = FD Light Sensor Z1 = 65 " - Микроконтроллер измеряет показания светочувствительного датчика RZ1 через резистор цепи обратной связи в буфере операционного усилителя с выделенной парой контактов (DADP0 и DADM0) дифференциального входа. Отрегулируйте потенциометр, измените уровень освещённости светочувствительного датчика и посмотрите, как изменились показания на дисплее. Если значения POT и RZ1 совпадают, то зуммер издаст звук, а на дисплее отобразится знак =.
Графическое отображение работы акселерометра
Нажмите кнопку SW2, программа перейдёт в состояние Демо-режим акселерометра. В этом состоянии для измерения и вывода данных по трём направлениям используется трёхкоординатный акселерометр, каналы АЦП и SCI-порт. При тех же настройках, что и для Состояния 2, можно получить графическое отображение движения акселерометра при перемещении модуля. В Лабораторной работе 2 представлена более полная демонстрация возможностей акселерометра.Рис. 10
Демонстрация возможностей АЦП Нажмите кнопку SW2 ещё раз, программа перейдёт в состояние Демо-режим АЦП. На ЖК-дисплее отобразится ADC. В рамках этой демонстрации результаты 32 измерений усредняются, переводятся в шестнадцатеричный вид, после чего на дисплее тремя символами отображаются 12 младших битов 16-битного результата, а также номер канала (два верхних символа справа). При нажатии на кнопку SW4 номер канала увеличивается на 1, преобразуется в шестнадцатеричный вид и выводится на дисплей.
В этом состоянии производятся измерения и отображение данных для выбранного канала АЦП с одновременной отправкой данных на SCI-выход. При тех же установках терминала, что и в Состоянии 2, в окне терминала можно увидеть текст, аналогичный приведённому в Табл.2. В Табл.1 дано краткое описание каждой колонки текстового вывода. Более подробное описание регистров, значения которых отображаются в окне терминала, можно найти в справочном руководстве по микроконтроллеру LH64.
Таблица 1
Колонка | Обозначение | Описание |
---|---|---|
1 | CFG1 | Конфигурационный регистр 1 |
2 | PG | Посткалибровочные положительные поправки |
3 | CLPD | |
4 | CLPS | |
5 | CLP4 | |
6 | CLP3 | |
7 | CLP2 | |
8 | CLP1 | |
9 | CLP0 | |
10 | MG | Посткалибровочные отрицательные поправки |
11 | CLMD | |
12 | CLMS | |
13 | CLM4 | |
14 | CLM3 | |
15 | CLM2 | |
16 | CLM1 | |
17 | CLM0 | |
18 | Offset | Значение калибровочного смещения |
19 | CHNLA | Канал данных A |
20 | DATAA | Результат A |
21 | VREFT | Переменная VERF |
Таблица 2
Значения после СБРОСА | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
CFG1= | 7D | CFG2= | 4 | SC2= | 0 | SC3= | 7 | SC1A= | 9B | SC1B= | 0 | |||||||||
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
CFG1 | PG | CLPD | CLPS | CLP4 | CLP3 | CLP2 | CLP1 | CLP0 | MG | CLMD | CLMS | CLM4 | CLM3 | CLM2 | CLM1 | CLM0 | Offset | CHNLA | DATAA | VREFT |
7D | 8278 | 17 | 29 | 272 | 013C | 9F | 52 | 29 | 82B4 | 16 | 2A | 02BE | 015A | A9 | 53 | 2A | 3 | 0 | 448 | 40 |
7D | 8278 | 17 | 29 | 272 | 013C | 9F | 52 | 29 | 82B4 | 16 | 2A | 02BE | 015A | A9 | 53 | 2A | 3 | 0 | 597 | 41 |
7D | 8278 | 17 | 29 | 272 | 013C | 9F | 52 | 29 | 82B4 | 16 | 2A | 02BE | 015A | A9 | 53 | 2A | 3 | 0 | 644 | 42 |
7D | 8278 | 17 | 29 | 272 | 013C | 9F | 52 | 29 | 82B4 | 16 | 2A | 02BE | 015A | A9 | 53 | 2A | 3 | 0 | 06D4 | 43 |
7D | 8278 | 17 | 29 | 272 | 013C | 9F | 52 | 29 | 82B4 | 16 | 2A | 02BE | 015A | A9 | 53 | 2A | 3 | 0 | 816 | 44 |
7D | 8278 | 17 | 29 | 272 | 013C | 9F | 52 | 29 | 82B4 | 16 | 2A | 02BE | 015A | A9 | 53 | 2A | 3 | 0 | 0D76 | 45 |
7D | 8278 | 17 | 29 | 272 | 013C | 9F | 52 | 29 | 82B4 | 16 | 2A | 02BE | 015A | A9 | 53 | 2A | 3 | 0 | 1504 | 46 |
7D | 8278 | 17 | 29 | 272 | 013C | 9F | 52 | 29 | 82B4 | 16 | 2A | 02BE | 015A | A9 | 53 | 2A | 3 | 0 | 1AAF | 47 |
7D | 8278 | 17 | 29 | 272 | 013C | 9F | 52 | 29 | 82B4 | 16 | 2A | 02BE | 015A | A9 | 53 | 2A | 3 | 0 | 1E91 | 48 |
7D | 8278 | 17 | 29 | 272 | 013C | 9F | 52 | 29 | 82B4 | 16 | 2A | 02BE | 015A | A9 | 53 | 2A | 3 | 0 | 2137 | 49 |
7D | 8278 | 17 | 29 | 272 | 013C | 9F | 52 | 29 | 82B4 | 16 | 2A | 02BE | 015A | A9 | 53 | 2A | 3 | 0 | 2252 | 4A |
7D | 8278 | 17 | 29 | 272 | 013C | 9F | 52 | 29 | 82B4 | 16 | 2A | 02BE | 015A | A9 | 53 | 2A | 3 | 0 | 21AF | 4B |
7D | 8278 | 17 | 29 | 272 | 013C | 9F | 52 | 29 | 82B4 | 16 | 2A | 02BE | 015A | A9 | 53 | 2A | 3 | 0 | 2017 | 4C |
7D | 8278 | 17 | 29 | 272 | 013C | 9F | 52 | 29 | 82B4 | 16 | 2A | 02BE | 015A | A9 | 53 | 2A | 3 | 0 | 1DA9 | 4D |
7D | 8278 | 17 | 29 | 272 | 013C | 9F | 52 | 29 | 82B4 | 16 | 2A | 02BE | 015A | A9 | 53 | 2A | 3 | 0 | 1B45 | 4E |
Распределение каналов АЦП приведено в Табл.3.
Для смены канала и его просмотра на ЖК-дисплее и SCI-выходе нажмите SW4. Обратите внимание: канал VREFO (0x13) изменяется, так как циклический код постоянно меняет настройки этого опорного напряжения. Таким образом, имеется возможность установки или регулировки выходного напряжения VREF.
Таблица 3
Регистр ADCH | Канал | Вход | Управляющий вывод |
---|---|---|---|
0 | AD0 | ADP0 | ADPC0 |
1 | AD1 | Зарезервирован | ADPC1 |
10 | AD2 | Зарезервирован | ADPC2 |
11 | AD3 | Зарезервирован | ADPC3 |
100 | AD4 | PTA0/ADP4 | ADPC4 |
101 | AD5 | PTA1/ADP5 | ADPC5 |
110 | AD6 | PTA2/ADP6 | ADPC6 |
111 | AD7 | PTA3/ADP7 | ADPC7 |
1000 | AD8 | PTA4/ADP8 | — |
1001 | AD9 | PTA5/ADP9 | — |
1010 | AD10 | PTA6/ADP10 | — |
1011 | AD11 | PTA7/ADP11 | — |
1100 | AD12 | ADP12 | ADPC12 |
10000 | AD16 | Зарезервирован | — |
10001 | AD17 | Зарезервирован | — |
10010 | AD18 | Зарезервирован | — |
10011 | AD19 | VREFO | — |
10100 | AD20 | Зарезервирован | — |
10101 | AD21 | Зарезервирован | — |
10110 | AD22 | Зарезервирован | — |
10111 | AD23 | VLCD | — |
11000 | AD24 | VLL1 | — |
11001 | AD25 | Зарезервирован | — |
11010 | AD26 | Датчик температуры | — |
11011 | AD27 | Внутренний источник опорного напряжения (bandgap) | — |
11100 | AD28 | Зарезервирован | — |
11101 | VREFH | VREFH | — |
11110 | VREFL | VREFL | — |
11111 | Модуль отключён | Нет | — |
В Табл. 4 и 5 приведено распределение каналов АЦП при подключении к модулю Tower. Подпрограмма обработки прерываний пропускает зарезервированный канал и переходит к следующему.
Таблица 4
Канал (hex) | Функция |
---|---|
0 | Выделенный дифференциальный вход |
1A | Датчик температуры |
1B | Опорное напряжение (bandgap) |
1D | VREFH |
Таблица 5
Канал (hex) | Функция 1 | Функция 2 | Функция 3 |
---|---|---|---|
4 | Потенциометр | Нулевое ускорение | |
5 | Ось X | ||
6 | Ось Y | ||
7 | Ось Z | ||
8 | SW3 | J2-B27 | |
9 | Подключение отсутствует | J2-B28 | |
0A | Светочувствительный датчик RZ1 | SW1 | J1-A27 |
0b | SW2 | J1-A28 | |
0C | JP10 | J1-A29 | |
13 | VREFO | ||
17 | VLCD | ||
18 | VLL1 | ||
1A | Датчик температуры | ||
1B | Опорное напряжение | ||
1D | VREFH | ||
1E | VREFL |
Демонстрация возможностей акселерометра
В данной лабораторной работе вы познакомитесь с рабочими характеристиками микроконтроллера MC9S08LH64, а также убедитесь в простоте его сопряжения с датчиком. Кроме того, вы подробно познакомитесь с одной из множества программных утилит, включённых в комплект поставки модуля TWR-S08LH64.Приложение акселерометра считывает с трёхкоординатного акселерометра в модуле TWR-S08LH64 координаты по осям X, Y и Z с помощью 16-битного АЦП микроконтроллера. Оно выводит необработанные значения данных акселерометра на последовательный коммуникационный интерфейс микроконтроллера.
При нажатии на SW1 программа переключается в режим вывода скользящего среднего необработанных данных акселерометра.
Нажатие SW2 включает режим вывода фильтрованных значений. При нажатии на SW3 снова выводятся необработанные данные.
Открытие кода Accelerometer и программирование микроконтроллера с его помощью
- Убедитесь в том, что все джамперы находятся в положениях по умолчанию.
- В приложении CodeWarrior выберите File > Open (Файл > Открыть) и откройте файл TWR9S08LH64_Accelerometer.mcp из каталога с распакованными проектами на диске c:/.
- Скомпилируйте код и перепрограммируйте микропроцессор, нажав кнопку Debug (Отладка), запускающую отладчик.
- Когда появится сообщение «Loading a new application will stop execution of the current one» (Загрузка нового приложения приведёт к остановке выполняемого приложения), нажмите OK.
- Когда появится сообщение «The debugger is going to mass erase the non-volatile memory of the current device, then program the application» (Отладчик полностью очистит содержимое энергонезависимой памяти текущего устройства, а затем перепрограммирует приложение), нажмите OK.
- Откроется среда отладчика. В основном меню выберите Run > Start/Continue (Запуск > Старт/Продолжение). Начнётся выполнение программы в режиме реального времени.
- Запустите утилиту акселерометра из приложения PEMICRO TOOLKIT LAUNCH PAD и выберите Accelerometer (Акселерометр).
- Настройте COM-порт компьютера, установите скорость 19200 бит/с и кликните по Open Serial Port and Start Demo (Открыть последовательный порт и запустить демонстрационное приложение).
Запуск демонстрации и просмотр графиков
Обратите внимание на гистограмму со столбцами X, Y, Z и C, а также на окно границ (Scope) на графике для акселерометра. Если изменения значений слишком малы, то выделите прямоугольник вокруг графических данных и нажмите кнопку воспроизведения в окне графика.Вы получите необработанные координаты XYZ на графике с большим увеличением.
Нажмите кнопку SW2 — активируется «усреднение». Обратите внимание на столбец C (счётчик циклов) гистограммы — с увеличением числа циклов наблюдается эффект сглаживания координат XYZ при перемещениях модуля.
Рис. 11
Нажмите кнопку SW1 — начнётся исполнение алгоритма FIR-фильтрации. Значение счётчика циклов снова возрастёт, и масштаб графика изменится. Вы увидите это на графике.
При нажатии на кнопку SW3 произойдёт возврат к потоковой передаче необработанных данных с акселерометра.
Узнайте больше
Дополнительную информацию о продукции Freescale можно найти на страницах www.freescale.com/tower и www.freescale.com/LCD.Freescale, логотип Freescale и CodeWarrior являются товарными знаками компании Freescale Semiconductor, Inc., зарегистрированными в Офисе патентов и товарных знаков США. Processor Expert является товарным знаком компании Freescale Semiconductor, Inc. Названия всех остальных товаров и услуг являются собственностью их владельцев.
© 2010 Freescale Semiconductor, Inc.
Электронные компоненты Freescale >>>
О компании Freescale >>>