Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
21
Добавлен:
05.03.2016
Размер:
1.19 Mб
Скачать

Тема 6. Модуль тактування мікроконтролерів сімейства msp430

Методичні вказівки. Модуль тактування призначений для генерування сигналів тактування ЦПП та периферійних модулів. В цій темі треба розглянути структурну схему модуля тактування.

У мікроконтролерах MSP430 є такі джерела тактових сигналів: LFXT1CLK, VLOCLK, DCOCLK, за допомогою яких генеруються наступні сигнали: ACLK, ACLK/n, SMCLK, MCLK.

Треба приділити увагу функціонуванню та конфігурації модуля. Для програмування модуля тактування використовуються наступні регістри: DCOCTL,BCSCTL1,BCSCTL2,BCSCTL3,IE1,IFG1. Для успішної роботи з модулем треба знати їх усі.

Для зниження енергоспоживання мікроконтролера можна відключати невикористовувані джерела сигналів.

Література: [2, с. 230-243].

Контрольні питання для самоперевірки:

  1. Чим відрізняються сигнали PORтаPUC?

  2. У чому основні відмінності маскованих та немаскованих переривань?

  3. Які режими зниженого енергоспоживання підтримують мікроконтролери MSP430?

Тема 7. Таймери мікроконтролерів сімейства msp430

Методичні вказівки. Сторожовий таймер присутній у кожному мікроконтролері. Його основна ціль – скидувати мікроконтролер у початковий стан у разі зависання програми. При розгляданні цієї теми треба вивчити структурну схему таймера та основні режими його роботи: режим сторожового таймера та режим інтервального таймера. Треба приділити увагу таким питанням, як переривання сторожового таймера та функціонування сторожового таймеру в режимах зниженого енергоспоживання. Для конфігурації сторожового таймера використовуються наступні регістри: WDTCTL, IE1, IFG1.

Таймер А є більш функціональним і також присутній у кожному мікроконтролері. Він може використовуватись для підрахунку часових інтервалів, як лічильних зовнішніх імпульсів, для апаратного формування ШІМ. При вивченні цієї теми треба розглянути структурну схему, функціональні можливості та режими роботи таймера (останов, прямий рахунок, безперервний рахунок, реверсивний рахунок). Окрему увагу треба приділити блокам захвату/порівняння таймера А, зокрема, функціонуванню і конфігуруванню блоків. Для управління таймером А використовуються наступні регістри: TACTL, TAR, TACCTL0, TACCR0, TACCTL1, TACCR1, TAIV.

Література: [2, с. 295-301, 307-325].

Контрольні питання для самоперевірки:

  1. Чим відрізняються режими сторожового та інтервального таймера?

  2. Як сконфігурувати таймер А для роботи в безперервному режимі з тактуванням від сигналу SMCLK?

  3. У яких конструкціях можна використати блоки захвату/порівняння таймеру А?

3 Методичні вказівки До самостійноГо виконаннЯ практичних завдань

Отримання практичних навичок студентами при вивченні дисципліни у відповідності до робочого плану полягає в виконанні лабораторних робіт, як в аудиторний час, так і самостійно.

Таким чином, студентам самостійно дуже важливо оволодіти вміннями роботи з програмною середою IAR Embedded Workbench, за допомогою якої відбувається програмування мікроконтролерів. Це вміння є базовим і необхідним для повного засвоєння матеріалу курсу.

3.1 Робота з програмоюIar Embedded Workbench. Методичні вказівки

Програмна середа IAREmbeddedWorkbenchпризначена для написання, компілювання та створення виконуваного коду для мікроконтролерів сімействаMSP430 фірмиTexasInstruments. Крім того, вона надає засоби з налагодження вже написаного коду як всередині фізичного пристрою, так і за допомогою вбудованого симулятора.

Повна версія середи розробки є платною, однак для учбових цілей надається демонстраційна версія з обмеженням по об’єму компільованого коду, дорівнюючим 4 кб, що є більш ніж достатнім для виконання усіх лабораторних робіт, що входять у практикум.

Демонстраційну версію програми, що називається IAREmbeddedWorkbenchKickstart, можна скачати безкоштовно, після чого виконати стандартну повну установку програми з усіма модулями.

Після установки на робочому столі и в меню «Пуск» з’явиться ярлик програми:.

Після запуску програми з’являється стартове вікно, що показане на рисунку 3.1.

Перш за все при створенні нової програми необхідно створити під неї проект. Для цього необхідно виконати наступні дії.

В меню «Project» треба обрати пункт «Createnewproject…» и в вікні, що з’явиться, розкрити підпункт «С», обрати надпис «main» и нажати на екранну кнопку «ОК» (рис. 3.2). Далі треба обрати шлях для зберігання проекту. Оскільки до нього входять декілька файлів, рекомендується для кожного проекту створювати окрему папку на диску. Ім’я проекту можна давати будь-яке, бажано латиницею. Після усіх виконаних дій вікно програми набуде виду, показаного на рисунку 3.3.

У левій частині вікна розташований так званий менеджер проектів, де відображається активний проект і всі файли, що входять до нього, а в правій – текстове поле, де буде писатися текст програми, в даному випадку на мові С.

Для завершення створення проекту необхідно ще зберегти робочу область (Workspace), нажавши на екранну кнопку «Зберегти все» (SaveAll). Ім’я також можна задавати будь-яке. Робоча область може включати в себе декілька проектів, однак в даному випадку, оскільки було створено всього один проект, можна зберегти файлWorkspaceв ту ж папку, де вже збережений створений раніше проект.

Рисунок 3.1 – Стартове вікно програми

Рисунок 3.2 – Створення проекту

Після створення проекту необхідно його налаштувати, оскільки настройки за умовчанням рідко задовольняють потрібним вимогам. Для цього необхідно в меню «Project» вибрати пункт «Options ...». В вікні відразу відкривається категорія «General Options», де у вкладці «Target» в полі «Device» необхідно вказати тип встановленого на платі контролера. Оскільки спочатку в платі знаходиться контролер MSP430G2001, то потрібно вибрати його у випадаючому списку (рис. 3.4). Більш нічого змінювати в цій категорії не потрібно.

Рисунок 3.3 – Головне вікно програми після створення проекту

В категорії «C/C ++ compiler» необхідно налаштувати опції компілятора. На вкладці «Language 1» вибираються опції мови програмування. Нам буде потрібна мова С з розширеннями IAR стандарту С99, тому нічого тут міняти не потрібно. У наступній вкладці «Language 2» задаються настройки типів даних, їх теж можна залишити за умовчанням, як і в наступній вкладці «Code». У вкладці «Optimization» встановлюється необхідний рівень оптимізації коду. Оптимізація може знадобитися або для прискорення роботи програми, або для зменшення розміру генерованого коду. За умовчанням вибраний низький рівень (Low), його можна встановити середнім (Medium) або високим (High), проте в останньому випадку потрібно бути обережним, оскільки генерований код може дещо не відповідати написаному тексту програми при нестрогому виконанні всіх правил написання програм. В інших вкладках цієї категорії також нічого міняти не потрібно.

Рисунок 3.4 – Вибір типа контролера

У наступних категоріях (Assembler,CustomBuild,BuildActionsиLinker) всі настройки необхідно залишити за умовчанням.

В категорії «Debugger» у вкладці «Setup» в полі «Driver» можна вибрати «Simulator», тоді написана програма буде завантажена у вбудований симулятор (цей режим зручний в домашніх умовах, коли відлагоджувальна плата відсутня). У лабораторії ж для завантаження написаної програми у фізичний мікроконтролер потрібно вибрати «FET Debugger».

Більш нічого в опціях міняти не потрібно, і можна натискати екранну кнопку «ОК».

Після настройки проекту необхідно набрати текст програми, яка буде виконуватися, або скопіювати в створений файл main.c вже готовий код. Для початку ми вчинимо саме таким чином, вибравши один із прикладів, наявних в папці з програмою.

Після написання тексту програми необхідно створити з нього виконуваний код і завантажити його або у контролер, або в симулятор, виконавши команду «Download and Debug» меню «Project», або натиснувши екранну кнопку. Після цього, якщо в програмі не було помилок, буде створений виконуваний код, який потім буде завантажений в контролер, а програмна середа перейде в режим відлагодження (рис. 3.5).

Рисунок 3.5 – Режим відлагодження

При цьому, як видно з рис. 3.5 з'являється додаткова панель відлагодження, яку розглянемо більш докладно.

Кнопка призначена для скиду контролера, тобто переведення його в початковий стан і запуску програми з початку.

Кнопка призначена для паузи в роботі програми, при цьому стають доступні для читання і зміни всі змінні і регістри процесора. Вона стає активною при запуску програми на виконання.

Кнопка призначена для покрокового виконання програми без заходу всередину функцій.

Кнопка призначена для покрокового виконання програми із заходом всередину функцій.

Кнопка призначена для виходу їх поточної функції.

Кнопка призначена для переходу до наступного виразу.

Кнопка призначена для виконання програми від початку до позиції, на якій встановлено курсор.

Кнопка призначена для виконання програми в нормальному безперервному режимі. Вона є основною для запуску програми.

Кнопка призначена для завершення режиму відлагодження і переходу програмного середовища в початковий стан. При цьому програма всередині мікроконтролера продовжує виконуватися, якщо вона не була зупинена перед виходом з режиму відлагодження.

Крім того, в режимі відлагодження доступні наступні інструменти. 1. Точки зупину (Break Point), що дозволяють зупиняти програму в певних місцях. Для їх установки/зняття необхідно здійснити подвійне натискання лівої кнопки миші на номері рядка (зліва від тексту програми), на якій необхідно зробити останов (рис. 3.6).

Після останову програми стають доступні всі регістри мікроконтролера і оголошені змінні.

2. Перегляд регістрів мікропроцесора здійснюється шляхом виклику відповідного вікна за допомогою пункту меню View => Register. При цьому в правій частині програмної середовища з'явиться вікно перегляду та зміни регістрів процесора (рис. 3.7).

Як видно з рисунку 3.7 всі регістри розбиті на 8 груп:

- CPU Registers - регістри, що відносяться до модуля центрального процесора. Найбільш важливим є статусний регістр SR, який відображає поточний стан процесора.

- Special Function - регістри дозволу переривань різних системних модулів, наприклад сторожового таймера, немаскованого переривання, переривання при несправності тактового генератора.

Рисунок 3.6 – Відлагодження з встановленою точкою останову

Рисунок 3.7 – Вікно перегляду та зміни регістрів процесора

- System clock - регістри настройки модуля тактування мікроконтролера.

- Flash - регістри настройки контролера роботи Flash-пам'яті.

- Port 1/2 - настройки портів вводу-виводу.

- Timer A2 - настройки таймера А.

- Watchdog Timer - настройки сторожового таймера.

- Calibration Data - значення калібрувальних констант для високочастотного цифрового тактового генератора.

Всі значення регістрів можна не тільки переглянути, а й змінити, натиснувши на значення регістра лівою кнопкою миші, а потім увівши нове значення.

3. Перегляд значень змінних здійснюється за допомогою пункту меню View => Watch => Watch n, де n - число від 1 до 4, можна вибрати будь-яке. Для перегляду значення змінної необхідно в новому вікні, натиснути лівою кнопкою миші в стовпчику Expression і вести ім'я змінної (рис. 3.8), тоді в стовпці Value буде відображено її поточне значення, яке також можна змінити.

Також значення змінних і регістрів можна переглянути «на льоту», просто навівши на них курсор в тексті програми (рис. 3.9).

Рисунок 3.8 – Вікно перегляду та зміни змінних

Рисунок 3.9 – Перегляд значення змінної «на льоту»