PIClist RUS
микроконтроллеры PIC и интерфейсы
техническая документация
статьи и разработки на русском языке

PIC24H - 8.0 Настройка генератора

« назад на главную страницу

Оригинал: PIC24H Family Data Sheet

Перевод с английского © PIClist-RUS (piclist.ru) по заказу chip-nn.ru


Примечание: в данном техническом описании собрана информация о возможностях устройств только группы PIC24H. Этот документ не является всеобъемлющим источником информации. Дополнить содержащиеся здесь сведения вы сможете, обратившись к документу "Справочное руководство по семейству dsPIC30F" ("dsPIC30F Family Reference Manual" - DS70046).


Возможности системы генератора PIC24H:

1) Возможность использования в качестве источника тактовой частоты различных внешних и внутренних генераторов.

2) Встроенная система фазовой автоподстройки частоты (ФАПЧ) (Phased-Locked Loop - PLL), предназначенная для масштабирования внутренней рабочей частоты до требуемой тактовой частоты системы.

3) С PLL также можно использовать и внутренний FRC-генератор, что позволяет обеспечить полноскоростную работу без применения внешних компонентов для генерации тактовой частоты.

4) Переключение тактового генератора между различными источниками тактирования.

5) Программируемый постделитель тактового генератора для энергосберегающего режима.

6) Диспетчер отказоустойчивости тактового генератора (Fail-Safe Clock Monitor - FSCM) обнаруживает сбои в работе тактового генератора и принимает меры по обеспечению его надёжной работы.

7) Регистр управления тактовым генератором (OSCCON).

8) Энергонезависимые биты выбора основного генератора.

Упрощённая схема системы генератора представлена на Рис. 8-1.

Схема системы генератора PIC24H. Нажмите для увеличения

Рис. 8-1. Схема системы генератора PIC24H

8.1 Система тактирования ЦПУ

В PIC24H реализовано семь вариантов тактирования системы:

1) FRC-генератор;

2) FRC-генератор с PLL;

3) Первичный генератор (XT, HS или EC);

4) Первичный генератор с PLL;

5) Вторичный генератор (LP);

6) LPRC-генератор;

7) FRC-генератор с постделителем.

8.1.1 Источники тактирования системы

Внутренний FRC-генератор (Fast RC - скоростной RC) работает на номинальной частоте 7.37 МГц. Пользовательская программа может настраивать частоту FRC, при необходимости указывая коэффициент деления тактовой частоты FRC (от 1:2 до 1:256). Этот коэффициент выбирается битами FRCDIV<2:0> (CLKDIV<10:8>).

В качестве источника тактовой частоты первичного генератора можно использовать:

1) XT (кварцевый резонатор (Crystal)) - кварцевые и керамические резонаторы в диапазоне от 3 МГц до 10 МГц. Подключаются к выводам OSC1 и OSC2.

2) HS (высокочастотный кварцевый резонатор (Hugh-Speed Crystal)) - кварцевые резонаторы в диапазоне от 10 МГц до 40 МГц. Подключаются к выводам OSC1 и OSC2.

3) EC (вешний тактовый генератор (External Clock)) - сигнал внешнего тактового генератора в диапазоне от 0.8 МГц до 64 МГц. Подаётся напрямую на вывод OSC1.

Вторичный генератор (LP) разработан для режима пониженного энергопотребления и использует кварцевый или керамический резонатор с частотой 32.768 КГц. LP-генератор использует выводы SOSCI и SOSCO.

Внутренний LPRC-генератор (Low-Power RC - RC с пониженным энергопотреблением) работает на номинальной частоте 32.768 КГц. Кроме того, он используется сторожевым таймером (Watchdog Timer - WDT) и диспетчером отказоустойчивости тактового генератора (FSCM) в качестве опорного тактового генератора.

Тактовые сигналы, генерируемые FRC и первичными генераторами, при необходимости можно подавать на встроенную систему фазовой автоподстройки частоты (PLL), чтобы получить широкий диапазон выходных частот для работы устройства. Настройка PLL описывается в Разделе 8.1.3 "Настройка PLL".

8.1.2 Выбор тактового генератора системы

С помощью конфигурационных битов можно выбрать источник генератора, который будет использоваться при сбросе по включению питания. Конфигурационные биты для настройки генератора находятся в конфигурационных регистрах, расположенных в памяти программ. (Более подробно см. Раздел 20.1 "Конфигурационные биты"). Конфигурационные биты выбора начального генератора FNOSC<2:0> (FOSCSEL<2:0>) и выбора режима первичного генератора POSCMD<1:0> (FOSC<1:0>) выбирают источник генератора, который используется по включению питания. По умолчанию (для незапрограммированного устройства), выбран FRC-генератор.

Конфигурационные биты позволяют пользователю выбирать между двенадцатью режимами тактирования, представленными в Таблице 8-1.

Таблица 8-1. Значения конфигурационных битов для выбора режима работы тактового генератора

Режим генератораИсточник генератораPOSCMD<1:0>FNOSC<2:0>Примечание
Скоростной RC-генератор (FRC)Внутренний111111, 2
ЗарезервированоВнутренний111101
RC-генератор для режима низкого энергопотребления (LPRC)Внутренний111011
Вторичный (Timer1) генератор (SOSC)Вторичный111001
Первичный генератор (HS) с PLL (HSPLL)Первичный10011 
Первичный генератор (XT) с PLL (XTPLL)Первичный01011 
Первичный генератор (EC) с PLL (ECPLL)Первичный000111
Первичный генератор (HS)Первичный10010 
Первичный генератор (XT)Первичный01010 
Первичный генератор (EC)Первичный000101
Скоростной RC-генератор с PLL (FRCPLL)Внутренний110011
ЗарезервированоВнутренний110001

Примечания:

1) Функциональное назначение вывода OSC2 определяется конфигурационным битом OSCIOFNC.

2) Режим работы генератора по умолчанию для незапрограммированного (стёртого) устройства.

Выход генератора (либо выход PLL, если включен режим PLL) FOSC делится на два для генерации командного цикла (FCY). FCY задаёт скорость работы устройства, и его можно увеличить до 40 МГц, поддерживаемых архитектурой PIC24H.

Скорость выполнения команды (рабочая частота устройства), FCY, определяется как:

Формула 8-1. Рабочая частота устройства

FCY = FOSC/2

8.1.3 Настройка PLL

Первичный генератор и внутренний FRC-генератор могут при необходимости использовать встроенную систему ФАПЧ (PLL) для получения более высокой скорости работы. PLL обеспечивает существенную гибкость в выборе рабочей скорости устройства. Блок-схема PLL представлена на Рис. 8-2.

Блок-схема PLL

Рис. 8-2. Блок-схема PLL

Выход первичного генератора, либо FRC, обозначенный в Формуле 8-2 как "FIN", перед подачей на управляемый напряжением генератор системы PLL (Voltage Controlled Oscillator - VCO) делится согласно значению предделителя ("N1") на 2, 3, ..., 33. Вход в VCO должен выбираться в диапазоне от 0.8 МГц до 8 МГц. Поскольку минимальное значение предделителя равно 2, это означает, что FIN должен выбираться в диапазоне от 1.6 МГц до 16 МГц. Значение предделителя "N1" задаётся битами PLLPRE<4:0> (CLKDIV<4:0>).

Делитель PLL с обратной связью, выбираемый битами PLLDIV<8:0> (PLLFBD<8:0>), обеспечивает коэффициент "M", на который умножается вход VCO. Этот коэффициент должен выбираться таким образом, чтобы результирующий выходная частота VCO находилась в диапазоне от 100 МГц до 200 МГц.

Выход VCO далее делится на значение постделителя "N2". Это значение задаётся битами PLLPOST<1:0> (CLKDIV<7:6>). "N2" может принимать значение 2, 4 или 8 и должен выбираться таким образом, чтобы выходная частота PLL ("FOSC") находилась в диапазоне от 12.5 МГц до 80 МГц, из которого генерируются рабочие скорости устройства 6.25·106 - 40·106 операций/с.

Для выхода первичного генератора или FRC-генератора ("FIN") соответствующий выход PLL ("FOSC") определяется по Формуле 8-2.

Формула 8-2. Вычисление FOSC

Вычисление FOSC

Например, предположим, что используется кварцевый резонатор с частотой 10 МГц, в качестве режима генератора выбран "XT с PLL". Если PLLPRE<4:0> = 0, тогда N1 = 2. Тогда на вход VCO подаётся 10/2 = 5 МГц, которые попадают в диапазон 0.8 - 8 МГц. Если PLLDIV<8:0> = 0x1E, тогда M = 32. То есть на выходе VCO получаем 5 x 32 = 160 МГц, которые попадают в диапазон 100 - 200 МГц.

Если PLLPOST<1:0> = 0, тогда N2 = 2. Это обеспечивает FOSC = 160/2 = 80 МГц. Результирующая рабочая скорость устройства составляет 80/2 = 40·106 операций/с.

Формула 8-3. Пример расчёта режима XT с PLL

Пример расчёта режима XT с PLL

8.1.4 Регистры системы тактирования

Примечание: в изображениях регистров используются следующие обозначения:

R = бит с возможностью чтения

W = бит с возможностью записи

U = нереализованный бит, читается как "0"

-n = значение при POR:

   y = значение устанавливается по конфигурационным битам при POR

   1 = бит установлен

   0 = бит сброшен

   x = значение бита неизвестно

Регистр 8-1. OSCCON - регистр управления генератором

OSCCON - регистр управления генератором

Бит 15Не реализован, читается как "0"
  
Биты 14-12COSC<2:0> - бит текущего выбранного генератора (только для чтения)
 000 = FRC-генератор
001 = FRC-генератор с PLL
010 = Первичный генератор (XT, HS, EC)
011 = Первичный генератор (XT, HS, EC) с PLL
100 = Вторичный генератор (SOSC)
101 = LPRC-генератор
110 = Зарезервировано
111 = FRC-генератор
  
Бит 11Не реализован, читается как "0"
  
Биты 10-8NOSC<2:0> - Биты выбора нового генератора
 000 = Зарезервировано
001 = FRC-генератор с PLL
010 = Первичный генератор (XT, HS, EC)
011 = Первичный генератор (XT, HS, EC) с PLL
100 = Вторичный генератор (SOSC)
101 = LPRC-генератор
110 = Зарезервировано
111 = FRC-генератор
  
Бит 7CLKLOCK - бит включения блокировки тактового генератора
 1 = Если FCKSM1 = 1, тогда настройки тактового генератора и PLL блокируются.
     Если FCKSM1 = 0, тогда настройки тактового генератора и PLL можно менять.
0 = Выбор тактового генератора и PLL не заблокирован, можно менять их настройки.
  
Бит 6Не реализован, читается как "0"
  
Бит 5LOCK - бит состояния блокировки PLL (только для чтения)
 1 = Указывает, что PLL заблокирован, либо таймер запуска PLL завершил работу
0 = Указывает, что PLL не заблокирован, либо в данный момент работает таймер запуска PLL, либо PLL отключен.
  
Бит 4Не реализован, читается как "0"
  
Бит 3CF - бит обнаружения сбоя тактового генератора (программно можно только читать и сбрасывать)
 1 = FSCM обнаружил сбой тактового генератора
0 = FSCM не обнаруживал сбоя тактового генератора
  
Бит 2Не реализован, читается как "0"
  
Бит 1LPOSCEN - бит включения вторичного (LP) генератора
 1 = Включить вторичный генератор
0 = Выключить вторичный генератор
  
Бит 0OSWEN - бит разрешения переключения генератора
 1 = Запрос на переключение генератора на источник, выбранный битами NOSC<2:0>
0 = Переключение генератора завершено

Регистр 8-2. CLKDIV - Регистр делителя тактовой частоты

CLKDIV - Регистр делителя тактовой частоты

Бит 15ROI - бит восстановления по прерыванию
 1 = Прерывания будут сбрасывать бит DOZEN и устанавливать соотношение скоростей процессора/периферии в 1:1.
0 = Прерывания не влияют на бит DOZEN
  
Бит 14-12DOZE<2:0> - бит выбора замедления частоты процессора
 000 = FCY/1 (установлено по умолчанию)
001 = FCY/2
010 = FCY/4
011 = FCY/8
100 = FCY/16
101 = FCY/32
110 = FCY/64
111 = FCY/128
  
Бит 11DOZEN - бит включения режима дозирования (1)
 1 = Поле DOZE<2:0> задаёт соотношение между тактовыми частотами периферии и процессора
0 = Тактовые частоты процессора/периферии соотносятся как 1:1
  
Биты 10-8FRCDIV<2:0> - биты постделителя внутреннего FRC-генератора
 000 = FRC делится на 2
001 = FRC делится на 4
010 = FRC делится на 8
011 = FRC делится на 16 (установлено по умолчанию)
100 = FRC делится на 32
101 = FRC делится на 64
110 = FRC делится на 128
111 = FRC делится на 256
  
Биты 7-6PLLPOST<1:0> - бит выбора выходного делителя VCO PLL (также обозначается как "N2", постделитель PLL)
 00 = Выход/2
01 = Выход/4 (установлено по умолчанию)
10 = Зарезервировано
11 = Выход/8
  
Бит 5Не реализован, читается как "0"
  
Биты 4-0PLLPRE<4:0> - биты входного делителя детектора фазы PLL (также обозначается как "N1", предделитель PLL)
 00000 = Вход/2 (установлено по умолчанию)
00001 = Вход/3
.....
11111 = Вход/33

Примечания:

1) Этот бит сбрасывается, если при установленном бите ROI возникает прерывание.

Регистр 8-3. PLLFBD - Регистр делителя PLL с обратной связью

PLLFBD - Регистр делителя PLL с обратной связью

Биты 15-9Не реализованы, читаются как "0"
  
Биты 8-0PLLDIV<8:0> - биты делителя PLL с обратной связью (также обозначается как "M", умножитель PLL)
 000000000 = 2
000000001 = 3
000000010 = 4
.........
111111111 = 513

Регистр 8-4. OSCTUN - регистр настройки FRC-генератора

OSCTUN - регистр настройки FRC-генератора

Биты 15-6Не реализованы, читаются как "0"
  
Биты 5-0TUN<5:0> - биты настройки FRC-генератора
 011111 = Центральная частота + 11.625% (8.23 МГц)
011110 = Центральная частота + 11.25% (8.20 МГц)
......
000001 = Центральная частота 0.375% (7.40 МГц)
000000 = Центральная частота (7.37 МГц - номинальная частота)
111111 = Центральная частота - 0.375% (7.345 МГц)
......
100001 = Центральная частота - 11.625% (6.52 МГц)
100000 = Центральная частота - 12% (6.49 МГц)

8.2 Операция переключения генератора

Приложения в любое время могут свободно переключаться между любым из четырёх источников тактовой частоты (первичным, LP, FRC, LPRC) под управлением программы. Чтобы ограничить возможные побочные эффекты, которые могут возникнуть в результате этой гибкости, устройства PIC24H имеют защитную блокировку, встроенную в процесс переключения.

Примечание: режим первичного генератора имеет три различных подрежима (XT, HS и EC), которые задаются конфигурационными битами POSCMD<1:0>. Хотя устройство может программно переключаться между режимами первичного генератора, переключение между различными подрежимами первичного генератора без перепрограммирования устройства невозможно.

8.2.1 Разрешение переключения тактового генератора

Чтобы разрешить переключение тактового генератора, нужно запрограммировать "0" в конфигурационный бит FCKSM1 в конфигурационном регистре. (Более подробно см. в Разделе 20.1 "Конфигурационные биты"). Если конфигурационный бит FCKSM1 не запрограммирован ("1"), то функция переключения тактового генератора и диспетчер отказоустойчивости тактового генератора будут отключены. Это - установка по умолчанию.

Управляющие биты NOSC (OSCCON<10:8>) не влияют на выбор тактового генератора, если переключение тактового генератора отключено. При этом биты COSC (OSCCON<14:12>) отражают источник тактовой частоты, выбранный конфигурационными битами FNOSC.

Управляющий бит OSWEN (OSCCON<0>) не имеет никакого эффекта, если переключение тактового генератора отключено. При этом он всегда содержит 0.

8.2.2 Последовательность переключения генератора

Для выполнения переключения требуется выполнить как минимум эту основная последовательность:

1) Если нужно, считать биты COSC (OSCCON<14:12>), чтобы определить текущий источник генератора.

2) Выполнить последовательность разблокировки, чтобы разрешить запись в старший байт регистра OSCCON.

3) Записать соответствующее значение в управляющие биты NOSC (OSCCON<10:8>) для выбора нового источника генератора.

4) Выполнить последовательность разблокировки, чтобы разрешить запись в младший байт регистра OSCCON.

5) Установить бит OSWEN, чтобы запустить переключение генератора.

Как только основная последовательность завершена, аппаратная часть системы тактового генератора автоматически отреагирует следующим образом:

1) Аппаратная часть переключения тактового генератора сравнивает биты состояния COSC с новым значением управляющих битов NOSC. Если они одинаковы, тогда переключение тактового генератора будет являться излишней операцией, в этом случае бит OSWEN автоматически сбрасывается и переключение тактового генератора прерывается.

2) Если инициировано действительное переключение тактового генератора, биты состояния LOCK (OSCCON<5>) и CF (OSCCON<3>) сбрасываются.

3) Аппаратная часть запускает новый генератор, если он ещё не запущен. Если нужно включить кварцевый генератор, аппаратная часть ждёт, пока не истечёт таймер запуска генератора (Oscillator Start-up Timer - OST). Если новый источник использует PLL, аппаратная часть ждёт, пока не будет обнаружена блокировка PLL (LOCK = 1).

4) Аппаратная часть ждёт, когда пройдут 10 тактовых циклов от нового источника, а затем выполняет переключение тактового генератора.

5) Аппаратная часть сбрасывает бит OSWEN, чтобы индицировать успешное переключение тактового генератора. Кроме того, значение битов NOSC переносится в биты состояния COSC.

6) Старый источник тактовой частоты в это время отключается, за исключением LPRC (если включен WDT или FSCM) или LP (если бит LPOSCEN остаётся установленным).

Примечание:

1) Во время выполнения последовательности переключения генератора процессор продолжает исполнение кода.

2) Прямое переключение между любым режимом первичного генератора с PLL и режимом FRCPLL не разрешается для обоих направлений переключения. В этих случаях приложение должно переключаться через режим FRC, используемый в качестве переходного между двумя режимами PLL.

8.3 Диспетчер отказоустойчивости тактового генератора (FSCM)

Диспетчер отказоустойчивости тактового генератора (Fail-Safe Clock Monitor - FSCM) позволяет устройству продолжать работу даже в случае сбоя генератора. Функция FSCM включается при программировании устройства. Если она включена, внутренний LPRC генератор работает всё время (за исключением режима "сна" (Sleep)), при этом сторожевой таймер не может им управлять.

В случае сбоя генератора FSCM генерирует исключение по сбою тактового генератора и переключает тактирование системы на FRC-генератор. После чего прикладная программа сможет попытаться перезапустить генератор, либо выполнить управляемое выключение. Исключение можно преобразовать в горячий сброс (warm Reset) с помощью простой загрузки адреса сброса (Reset) в вектор исключения по сбою генератора.

Если для масштабирования тактовой частоты системы используется умножитель PLL, внутренний FRC при сбое тактового генератора тоже будет умножен на тот же самый коэффициент, то есть устройство переключится на FRC с PLL.


© PIClist-RUS (piclist.ru), 2009 г.

PIClist RUS (piclist.ru) © 2009
все права сохранены. перепечатка статей и переводов с данного сайта запрещена.