7.2.4. Модуль ICSv3

(Руководство разработчика по микроконтроллерам семейства HCS08)

Модуль тактирования ICS третьей версии в составе МК серии QE имеет некоторые усовершенствования по сравнению с рассмотренными выше алгоритмами работы модуля тактирования:

  • Расширен диапазон работы управляемого цифровым кодом генератора DCO. Теперь он может работать в трех диапазонах частот: от 16 до 20МГц, от 32 до 40МГц и от 48 до 60МГц. Выбор диапазона осуществляется битовым полем DRS в регистре ICSSC. Обратите внимание, что изменение битов DRS можно производить, только если FLL работает в активном режиме (LP = 0). Смена битов, произведенная во время работы FLL в режиме низкого потребления (LP = 1), не будет иметь эффекта.
  • Расширен диапазон коэффициентов предварительного делителя частоты RDIV (см. Табл.7.5).

Таблица7.5. Коэффициент деления RDIV

RDIVRANGE = 0RANGE = 1
0132
1264
24129
38256
416512
5321024
664Резерв
7128Резерв

  • Введены новые программируемые коэффициенты умножения FLL, которые позволяют генерировать высокую частоту на выходе FLL при низкой опорной частоте, т.е. от «часового» кварцевого резонатора 32.768кГц. Опция для работы от «часового» кварцевого резонатора выбирается битом DMX32 в регистре ICSSC (см. Табл.7.6).

Таблица7.6. Режимы работы FLL при тактировании от «часового» кварцевого резонатора

DRSDMX32Опорная частотаКоэффициент умноженияЧастота DCO
00031.25...39.0625кГц51216...20МГц
132.768кГц60819.92МГц
01031.25...39.0625кГц102432...40МГц
132.768кГц121639.85МГц
10031.25...39.0625кГц153648...60МГц
132.768кГц182459.77МГц
11Резерв

На Рис.7.10 представлена функциональная схема модуля ICSv3.

Рис.7.10. Функциональная схема модуля ICSv3.

Пример 7.3 показывает, как настроить модуль ICSv3 на работу в режиме FEI с частотой DCO, равной 48МГц, что соответствует частоте внутренней шины 24МГц. В главе 8 (Пример 8.4) также показано, как сконфигурировать модуль на работу в режимах FEI и FBE.

Пример 7.3. Инициализация модуля ICSv3 в режим FEI

//ДемонстрационнаяплатаDEMO9S08QE128,режимFEI,частотаBUSCLK=24МГц
#include/*forEnableInterruptsmacro*/
#include"derivative.h"/*includeperipheraldeclarations*/
#include"hcs08.h"/*Этонашфайлсобъявлениями!*/
#defineLED1BIT_0//PTC0
#defineLED2BIT_1//PTC1
//Простаяпрограммнаязадержка
voiddelay(unsignedintvalue)
{
for(;value;value--);
}
voidmain(void)
{
SOPT1=bBKGDPE;//ВрегистреSOPT1разрешаемфункциюдлявыводаBKGDдляотладки
ICSSC=DCO_HIGH|NVFTRIM;/*ПереписатьзначениебитаFTRIM,выбратьдляDCO
верхнийдиапазонработы*/
ICSTRM=NVICSTRM;//ПереписатьподстроечноечислоTRIM
ICSC1=ICS_FLL|bIREFS;//ВыбратьрежимFEI(ICSOUT=DCOOUT=1536*IRCLK)
ICSC2=BDIV_1;//ICSOUT=DCOOUT/1
PTCDD=0xFF;//ЛинииPTC–навывод
PTCD=0xFE;//LED1включен,LED2выключен
while(1)
{
PTCTOG=LED1;//ИзменитьсостояниеLED1(бит0портаPTC)
PTCTOG=LED2;//ИзменитьсостояниеLED2(бит1портаPTC)
delay(60000);//Большаязадержка
PTCTOG=LED1;//ИзменитьсостояниеLED1(бит0портаPTC)
PTCTOG=LED2;//ИзменитьсостояниеLED2(бит1портаPTC)
delay(60000);//Большаязадержка
}
}

Этот пример также показывает, как использовать дополнительные регистры управления портами, которые имеются в данном МК. В частности, использован регистр побитового инвертирования PTCTOG.

Электронные компоненты Freescale >>>
Подробнее о компании Freescale >>>