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


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

MSP430 имеют встроенный генератор с автоподстройкой частоты Frequency Lock Loop (FLL), позволяющий осуществить это автоматически, однако, ус­тройства подсемейства MSP430x1xx такого модуля не имеют. За более под­робными сведениями о генераторе DCO и системе тактирования MSP430 об­ратитесь к разделу «Система тактирования» (Clock system) соответствующего руководства пользователя.

Ввиду того, что микроконтроллеры MSP430x1xx не имеют встроенного FLL, генератор DCO должен быть программно откалиброван для того, чтобы источник тактирования имел стабильную и известную частоту. Программное обеспечение, приведенное в этом примере, реализует стабилизатор частоты FLL для калибровки генератора DCO. Осуществляется это путём сравнения чис­ла тактов генератора DCO за один период генератора 32768Гц. Точнее говоря, в данном примере частота 32768Гц (ACLK) делится на 4, поэтому программный FLL подсчитывает количество тактов генератора DCO за 1/4 периода ACLK. Пос­ле этого, подсчитанное число сравнивается с номинальным значением и зна­чение DCO увеличивается либо уменьшается на одну ступень в зависимости от результата счёта, после чего счёт повторяется снова. Процедура повторяется до тех пор, пока не будет достигнуто требуемое количество тактов.

По выполнении этого условия частота генератора DCO является откалиб-рованной к требуемому значению.

В этом примере программный FLL выполняется только один раз, т.к. уст­ройство не подвергается атмосферному воздействию, колебаниям питающего напряжения Vcc или длительному использованию. Однако, в реальных услови­ях эксплуатации, подпрограмма FLL должна выполняться периодически для от­стройки генератора DCO от вышеперечисленных воздействий и традиционного ухода частоты генераторов RC-типа.

За дополнительной информацией по программной реализации FLL обра­щайтесь к примеру применения «Управление частотой генератора с цифровым управлением (DCO) микроконтроллеров MSP430x11x» («Controlling the DCO Frequency of the MSP430x11x» literature number SLAA074).

Альтернативой программной калибровке генератора DCO может служить использование внешних кварцевых резонаторов с требуемой для ШИМ-тай-мера частотой. Это применимо для микроконтроллеров семейств 13х и 14х благодаря наличию высокочастотного кварцевого XT-генератора. При исполь­зовании такого метода, SMCLK должна тактироваться от XT-генератора, а не от генератора DCO. См. главу 7 руководства пользователя MSP430x1xx Family User's Guide, literature number SLAU049, по вопросам использования системы тактирования микроконтроллеров семейства 1хх. Также см. документацию на конкретные устройства по вопросам максимальных рабочих частот.

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


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

Ссылки:

1.MSP430x13x/14x data sheet (SLAS272)

2. Руководство пользователя MSP430x1xx (MSP430x1xx Family User's
Guide (SLAU049))

3. MSP430x3xx Family User's Guide (SLAU012)

4. Controlling the DCO of the MSP430x11x (SLAA074)

Приложение: Листинг программы

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

Программа реализации ЦАП на базе ШИМ

Генерирует синусоиду частотой 250Гц с использованием ШИМ на базе таймера Timer_B.

Описание: программа демонстрирует использование ШИМ-таймера совместно с внешними фильтрами для реализации ЦАП. Показан способ формирования синусоиды частотой 250Гц, пилообразного сигнала частотой 125 Гц и сигнала с постоянным уровнем с использованием таймера Timer В.

Возможно аналогичное использование таймера Timer A. В таблице sine table holds the хранятся отсчёты значений синусоиды. Для формирования «пилы» используется простой инкремент значения ШИМ. Постоянный уровень формируется зарядом конденсатора RC-цепи при помощи выхода ШИМ. Значение напряжения при этом прямо пропорционально коэффициенту заполнения сигнала ШИМ. После инициализации, ЦПУ переводится в режим пониженного энергопотребления LPM0. Он остаётся в этом режиме до прихода прерывания CCIFG0 от таймера Timer В. В подпрограмме обработки прерывания таймера Timer В ISR в регистр CCR1 загружается следующее значение для синусоиды, значение «пилы» инкрементируется и загружается в регистр CCR2. По возвращении из прерывания ЦПУ снова переходит

в режим пониженного энергопотребления LPM0. ****************************************************

^include <MSP430X14x.Н> /Включить в проект файл

;со стандартными ;определениями

Delta EQU 250 /Delta = требуемая частота

/DCO/8192