430_3. MSP430, LaunchPad. Страница находится "в работе".
Если Вы хотите разобраться как работает MSP430Gxxx,
и у Вас есть время и желание, то это нужно деалать.
Если времени нет, то нужно выбрать другой путь.
На данный момент, есть оболочка програмир. Energia,
которая позволяет программировать быстро, используя
готовый код. Запрограммировать LCD display - 10 минут.
Сделать многоканальный вольтметр - еще 10 минут.
Вывести данные и сохранить на компьютере - еще 10.
Готовый вольтметр, который уже работает - здесь. .
Взято из «Getting started with the MSP430 LaunchPad – Initialization and GPIO.
Msp430 – достаточно «мудрая» серия микроконтроллеров. Большинство их свойств унаследовано от микроконтроллеров Техас Инструмент (TI), которые широко применяются в калькуляторах. То есть, сверх низкое потребление энергии было доступно еще 30 лет назад. Наглядное подтверждение этого можно найти и сейчас. Я держал в руках калькулятор от TI, который через 10 лет продолжал работать от «родных» батареек.
Низкое потребление энергии, кроме всего прочего, достигается переключением тактовой частоты процессора (до полной остановки тактового генератора, с выходом из этого режима по внешнему сигналу). Это простое решение добавляет некоторые сложности в программировании, так как «на борту» среднего микропроцессора MSP430 находятся три задающих генератора.
А именно:
VLO – низкочастотный внутренний генератор (~10 кГц),
LFXT1 – генератор с внешним кварцевым резонатором (как правило 32 кГц), и
DCO – высокочастотный внутренний генератор ( ~ 1МГц). Последний можно «двигать» до 16 МГц, если необходимо.
*** Из картинки справа видно, что:
- генератор с кварцевым резонатором (LFXT1) или низкочастотный внутренний генератор (VLO) работают на вспомогательный тактовый сигнал A-CLK.
- внутренний высокочастотный генератор (DCO) – на дополнительный тактовый сигнал SM-CLK.
- главный тактовый сигнал для процессора (M-CLK) может быть взят из A-CLK или SM-CLK.
Сложностей можно добавить если долго обсуждать как и какую тактовую частоту использовать. Но после "сброса", если даже ничего не конфигурировать, микропроцессор все равно начнет выполнять программу. Это позволяет «запустить» микроконтроллер сразу, не «заморачиваясь» с конфигурацией тактовых генераторов. Их можно «доконфигурировать» потом, если необходимо.
После включения питания или после сигнала «Reset» в микроконтроллере происходит следующее:
1. + После включения питания (PUS) микроконтроллер будет в состоянии “Reset” до тех пор, пока напряжение питания не поднимется выше определенного уровня.
2. + Ножка микроконтроллера «RST/NMI» будет сконфигурирована как вход «RESET».
3. + Все «Входы/Выходы» будут сконфигурированы на «Вход».
4. + Тактовый генератор (CLOCK) будет работать от внутренней частоты 1 МГц.
5. + Все внутренние модули и регистры будут сконфигурированы «по умолчанию».
6. + “WatchDog” таймер будет сконфигурирован, и будет вызывать сигнал «RESET» каждые 32768 (2**15) импульсов тактового генератора (~32 мсек. при тактовой частоте равной 1 МГц).
7. - Регистр статуса (SR) будет сброшен.
8. - В программный счетчик (PC) будет загружено число 0FFFE, где находится вектор прерывания для «RESET». Если в микроконтроллере программы не окажется, то в PC будет занесено число 0FFFF, что вызовет остановку микроконтроллера.
Если все оставить «по умолчанию», то программа начнет выполняться с тактовой частотой 1 МГц. Посмотрим, что нужно сделать программно.
1. Инициализировать указатель стока “SP” на вершину оперативной памяти. "Си" компилятор это сделает без нашего участия.
2. Программно переконфигурировать тактовый генератор, если необходима тактовая частота отличная от 1 МГц.
3. Если нас не устраивает, что “WatchDog” таймер будет сбрасывать микроконтроллер каждые 32 мсек., то его придется подсторить, приостановить или вообще отключить.
4. Сконфигурировать устройства ввода-вывода («по умолчанию» все «на вход»).
5. Заставить программу делать что-нибудь полезное.
Так или иначе, после включения питания, микроконтроллер начинает исполнение программы.
Это позволяет писать очень простые программы на языке Си, которые сразу начинают работать. Потребуется только программа CCS v5, которую можно бесплатно скачать с сайта производителя. Эта интегрированная оболочка позволяет писать программы и «сливать» их в микроконтроллер через интерфейс установленный на плате LaunchPad. Последняя работает в качестве программатора для всех микросхем серии Msp430.
#include <msp430.h>
volatile unsigned int i;
int main(void)
{ P1DIR = 0x41;
i = 100; // i = 100, 1000, 2500
do
i--;
while(i != 0);
while(1) { P1OUT = 0; P1OUT = 0x41; }
return 0; }
Цикл задержки формирует паузу в начале программы, которая хорошо видна на экране осциллографа.
Сброс происходит каждые 30,7 мсек. Если бы тактовый генератор работал с частотой 1 МГц, то это происходило бы каждые 32,768 мсек. Разница небольшая, но попробуем ее устранить. Для этого необходимо настроить задающий генератор по калибровочным значениям находящимся в памяти микроконтроллера. Процедура, взятая из книжки, выглядит так.
_
Make a free website with Yola