7.2.6. Регистры модуля ICS
(Руководство разработчика по микроконтроллерам семейства HCS08)Для настройки модуля ICS используются 4 регистра специальных функций:
- ICSC1 — первый регистр управления модуля ICS;
- ICSC2 — второй регистр управления модуля ICS;
- ICSSC — регистр состояния модуля ICS;
- ICSTRM — регистр подстройки модуля ICS.
7.2.6.1. Регистр управления ICSC1
Для МК серии QD
Регистр | Режим | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|---|---|
ICSC1 | Чтение | CLKS | 0 | 0 | 0 | 1 | 1 | IREFSTEN | |
Запись | — | — | — | — | — | ||||
Сброс | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 |
Для МК серий EL, QA, QE, QG, SG, SL
Регистр | Режим | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|---|---|
ICSC1 | Чтение | CLKS | RDIV | IREFS | IRCLKEN | IREFSTEN | |||
Запись | |||||||||
Сброс | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
Описание битов:
Имя бита | Описание | Символ в языке С |
---|---|---|
CLKS | Биты выбора источника для сигнала BUSCLK: 00 — сигнал с выхода умножителя частоты FLL; 01 — внутренний генератор; 10 — внешний генератор; 11 — резерв. | ICS_FLL ICS_FBI ICS_FBE |
RDIV | Биты выбора коэффициента предварительного делителя: 000 — коэффициент деления равен 1; 001 — коэффициент деления равен 2; 010 — коэффициент деления равен 4; 011 — коэффициент деления равен 8; 100 — коэффициент деления равен 16; 101 — коэффициент деления равен 32; 110 — коэффициент деления равен 64; 111 — коэффициент деления равен 128. | RDIV_1 RDIV_2 RDIV_4 RDIV_8 RDIV_16 RDIV_32 RDIV_64 RDIV_128 |
IREFS | Бит выбора первичного генератора: 0 — внешний генератор; 1 — внутренний генератор. | bIREFS |
IRCLKEN | Бит разрешения выдачи сигнала ICSIRCLK: 0 — ICSIRCLK запрещен; 1 — ICSIRCLK разрешен. | bIRCLKEN |
IREFSTEN | Бит разрешения работы встроенного генератора в режиме Stop: 0 — работа генератора в режиме Stop запрещена; 1 — работа генератора в режиме Stop разрешена, если до входа в режим Stop был установлен бит IRCLKEN. | bIREFSTEN |
7.2.6.2. Регистр управления ICSC2
Для МК серии QD
Регистр | Режим | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|---|---|
ICSC2 | Чтение | BDIV | 0 | 0 | LP | 0 | 0 | 0 | |
Запись | — | — | — | — | — | ||||
Сброс | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
Для МК серий EL, QA, QE, QG, SG, SL
Регистр | Режим | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|---|---|
ICSC2 | Чтение | BDIV | RANGE | HGO | LP | EREFS | ERCLKEN | EREFSTEN | |
Запись | |||||||||
Сброс | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
Описание битов:
Имя бита | Описание | Символ в языке С |
---|---|---|
BDIV | Биты выбора коэффициента делителя на выходе модуля ICS: 00 — коэффициент деления равен 1; 01 — коэффициент деления равен 2; 10 — коэффициент деления равен 4; 11 — коэффициент деления равен 8. | BDIV_1 BDIV_2 BDIV_4 BDIV_8 |
RANGE | Бит выбора диапазона частот внешнего генератора: 0 — низкая частота до 40кГц; 1 — высокая частота от 1 до 16МГц. | bICS_RANGE |
HGO | Бит выбора коэффициента усиления схемы с положительной обратной связью, к которой подключается кварцевый резонатор: 0 — низкий коэффициент (низкое потребление); 1 — высокий коэффициент (высокое потреблеиие). | bICS_HGO |
LP | Бит выбора режима работы умножителя частоты FLL: 0 — FLL остается в активном режиме, когда не используется; 1 — FLL не работает, когда не используется. Этим достигается снижение потребления энергии. | bICS_LP |
EREFS | Бит выбора типа внешнего генератора: 0 — внешний тактовый сигнал, поступающий на вход EXTAL; 1 — кварцевый/керамический резонатор, подключенный ко входам XTAL и EXTAL. | bEREFS |
ERCLKEN | Бит разрешения выдачи сигнала ICSERCLK: 0 — ICSERCLK запрещен; 1 — ICSERCLK разрешен. | bERCLKEN |
EREFSTEN | Бит разрешения работы внешнего генератора в режиме Stop: 0 — работа генератора в режиме Stop запрещена; 1 — работа генератора в режиме Stop разрешена, если до входа в режим Stop был установлен бит ERCLKEN или ICS работает в режиме FEE. | bEREFSTEN |
Опция с внешним генератором не может быть реализована в МК с 8-выводными корпусами!
7.2.6.3. Регистр состояния ICSSC
Для МК серии QD
Регистр | Режим | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|---|---|
ICSSC | Чтение | 0 | 0 | 0 | 0 | 0 | CLKST | 0 | FTRIM |
Запись | — | — | — | — | — | — | — | ||
Сброс | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Для МК серии QD
Регистр | Режим | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|---|---|
ICSSC | Чтение | 0 | 0 | 0 | 0 | CLKST | OSCINIT | FTRIM | |
Запись | — | — | — | — | — | — | — | ||
Сброс | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Для МК серии EL, SG, SL
Регистр | Режим | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|---|---|
ICSSC | Чтение | 0 | 0 | 0 | IREFST | CLKST | OSCINIT | FTRIM | |
Запись | — | — | — | — | — | — | — | ||
Сброс | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Для МК серий QA, QE
Регистр | Режим | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|---|---|
ICSSC | Чтение | DRST | DMX32 | IREFST | CLKST | OSCINIT | FTRIM | ||
Запись | DRS | — | — | — | — | ||||
Сброс | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Описание битов:
Имя бита | Описание | Символ в языке С |
---|---|---|
DRST | Биты, которые показывают, в каком диапазоне частот работает DCO: 00 — низкий диапазон; 01 — средний диапазон; 10 — высокий диапазон; 11 — резерв. Эти биты не могут немедленно измениться после записи битов DRS, требуется некоторое время для установления новой частоты. | — — — |
DRS | Биты выбора диапазона частот на выходе DCO: 00 — низкий диапазон; 01 — средний диапазон; 10 — высокий диапазон; 11 — резерв. Эти биты не могут быть изменены при LP = 1. | DCO_LOW DCO_MID DCO_HIGH |
DMX32 | Бит выбора режима при тактировании от 32.768кГц: 0 — DCO работает в обычном режиме; 1 — DCO генерирует повышенную частоту. См. Табл.7.6. | bDMX32 |
IREFST | Бит, который информирует, каким генератором тактируется ICS: 0 — внешний генератор; 1 — внутренний генератор. | bIREFST |
CLKST | Биты, которые информируют, какой источник используется для формирования BUSCLK: 00 — сигнал с выхода умножителя частоты FLL; 01 — внутренний генератор; 10 — внешний генератор; 11 — резерв. | — — — — |
OSCINIT | Бит разрешения работы внешнего опорного генератора XOSC: 0 — XOSC запрещен; 1 — XOSC разрешен. | bOSCINIT |
FTRIM | Бит точной подстройки внутренного генератора: 0 — точная подстройка не реализуется; 1 — точная подстройка включена, погрешность внутреннего генератора составляет 0.1%. | bFTRIM |
7.2.6.4. Регистр подстройки ICSTRM
Для всех МК с модулем ICS
Регистр | Режим | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|---|---|
ICSTRM | Чтение | TRIM | |||||||
Запись | |||||||||
Сброс | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
В этом регистре хранится число, которое позволяет изменять частоту встроенного генератора, подстраивая ее к объявленному в техническом описании МК эталонному значению fREF = 31.25кГц. Число, которое следует записать в этот регистр, измеряет производитель во время тестирования МК на заводе-изготовителе и записывает в ячейку энергонезависимой памяти с адресом 0xFFAF (см. подраздел 7.2.2.).
7.3. Модуль ICG
Модуль ICG — это еще одна разновидность модуля тактирования со встроенным генератором, который не требует для своей работы внешних времязадающих элементов. Модуль ICG имеется в составе МК серий AC, AW, GB, GT и LC.
Модуль ICG унаследовал структуру и основные технические решения модуля ICS, однако по сравнению с ним обладает расширенными функциональными возможностями. В составе модуля ICG (Рис.7.11) два встроенных генератора с частотой 243кГц и 8МГц, модуль внешнего генератора XOSC, умножитель частоты FLL с управляемым цифровым кодом генератором DCO. Выходной сигнал модуля ICGOUT используется для тактирования ЦП и периферийных модулей МК.
Рис.7.11. Функциональная схема модуля ICG.
Основные отличия умножителя частоты в составе модуля ICG:
- Схема управления FLL фиксирует, когда закончился переходной процесс изменения его выходной частоты после программного задания коэффициента умножения, а также что значение этой частоты находится в пределах полосы точного установления.
- Встроенные аппаратные средства модуля контролируют нахождение выходной частоты FLL в полосе точного удержания и генерируют запрос на прерывание или внутренний сброс МК, если частота вышла за пределы этой полосы.
Для того чтобы понять работу модуля ICG, сначала запомним, что его режим определяется тремя программно настраиваемыми коэффициентами: P и N — это коэффициенты умножения, и R — коэффициент деления.
Коэффициент N задается битовым полем MFD в регистре ICGC2 и может принимать значения 4, 6, 8, 10, 12, 14, 16, 18.
Коэффициент P может принимать значения от 1 до 64 и, к тому же, зависит от выбора источника опорной частоты. Если в качестве последнего используется встроенный генератор (ICGIRCLK), то коэффициент P всегда равен 64. Если в качестве источника опорной частоты используется внешний генератор (ICGERCLK), то P принимает значение 64 при RANGE = 0 и P = 1 при RANGE = 1. Бит RANGE в регистре ICGC1 определяет допустимый диапазон частот внешнего генератора.
Коэффициент R — это коэффициент программируемого делителя частоты с выхода умножителя, может принимать значения от 1 до 128 и определяется битовым полем RFD в регистре ICGC2.
Изучая работу модуля ICG, следует понять, что генератор DCO в составе умножителя FLL не может мгновенно установить на выходе желаемую высокую частоту. Состояние DCO, при котором его выходная частота не соответствует расчетной, называют несинхронизированным. И, наоборот, если частота DCO близка к расчетному значению, говорят, что DCO синхронизирован.
Модуль ICG может работать в одном из 4 режимов (Табл.7.8), который назначается битовым полем CLKS в регистре управления ICGC1. В некоторые из перечисленных режимов можно перейти автоматически при возникновении специальных условий, которые будут рассмотрены далее.
Таблица7.8. Режимы работы модуля ICG
CLKS | Название режима | Описание режима |
---|---|---|
00 | SCM Self-Clocked Mode (внутренний генератор без умножителя частоты) | Сигнал ICGOUT формируется схемой генератора DCO, ICGOUT используется для тактирования межмодульных магистралей. Но выходная частота DCO не контролируется FLL. Частотой DCO можно управлять из программы посредством настроек фильтра FLT в составе FLL. |
01 | FEI FLL Engaged Internal (внутренний генератор с умножителем частоты) | Сигнал ICGOUT формируется схемой генератора DCO, ICGOUT используется для тактирования межмодульных магистралей. Частота DCO автоматически контролируется FLL. В качестве опорной частоты FLL использует встроенный генератор 243кГц. |
10 | FBE FLL Bypassed External (внешний генератор без умножителя частоты) | Сигнал ICGOUT формируется из частоты внешнего генератора (ICGERCLK), деленной на R. Умножитель FLL не работает. ICGOUT используется для тактирования межмодульных магистралей. |
11 | FEE FLL Engaged External (внешний генератор с умножителем частоты) | Сигнал ICGOUT формируется схемой генератора DCO, Частота DCO автоматически контролируется FLL. В качестве опорной частоты FLL использует внешний генератор (ICGERCLK). |
В режиме SCM управляемый цифровым кодом блока фильтра FLT генератор DCO формирует импульсную последовательность на выходе ICGOUT модуля ICG. Но цепь обратной связи FLL не используется для установления частоты DCO. Поэтому частота DCO может назначаться программно посредством записи кода в двухбайтный регистр фильтра FLT. Имя регистра ICGFLT, ICGFLTH и ICGFLTL — старший и младший байты этого регистра. Минимальная величина частоты DCO в данном режиме составляет 8МГц, максимальная — 40МГц.
После сброса МК по умолчанию устанавливается именно режим SCM, поскольку CLKS= 00. Тогда частота ICGDCLK с выхода DCO будет составлять примерно 8МГц, что соответствует BUSCLK=4МГц. При этом следует обратить внимание на то, что программа должна переписать подстроечное число из энергонезависимой памяти в регистр ICGTRM.
В режиме FEI частота встроенного генератора 243кГц без внешних времязадающих элементов используется в качестве опорной частоты для умножителя FLL. Частота ICGOUT на выходе модуля ICG может быть больше или меньше частоты встроенного генератора, все определяется численными значениями коэффициентов N и R:
.
Обратите внимание, что в обоих режимах SCM и FEI никаких внешних элементов для тактирования МК не требуется, и при этом с помощью двух данных режимов может быть создан чрезвычайно широкий диапазон частот тактирования МК!
В режиме FBE умножитель частоты не используется, и выходная последовательность ICGOUT получается из частоты внешнего генератора, деленной на коэффициент R:
.
В режиме FEE в качестве опорной частоты для умножителя FLL используется частота внешнего генератора. При этом выходная частота ICGOUT определяется коэффициентами P, N и R:
.
При этом стоит заметить, что сразу после программирования коэффициентов P, N и R в несинхронизированном режиме работы выходная частота будет составлять:
.
Программа управления в процессе работы может определить текущий режим модуля ICG посредством следующих битов состояния:
- REFST — указывает, какой источник сигнала формирует опорную частоту для FLL (0 — кварцевый или керамический резонатор, 1 — внешний импульсный генератор);
- LOCK — указывает на то, что частота FLL находится в полосе точного установления (1 — частота синхронизирована, 0 — частота не синхронизирована);
- LOLS — указывает на то, что частота FLL вышла из полосы точного установления;
- LOCS — указывает на то, что ICG «потерял» опорную частоту. В некоторых МК HCS08 эта функция может быть отключена установкой бита ICGC1:LOCD;
- ERCS — указывает на то, что «потеряна» внешняя опорная частота;
- DCOS — указывает на то, что генератор DCO находится в стабильном состоянии. Для определения этого состояния используется специальная внутренняя схема. Она распознает стабильное состояние, если изменение между двумя соседними выборками кода управления DCO не превышает 4*N единиц. Обычно этот бит используется для определения времени установления частоты при ручном управлении в режиме SCM.
Если посредством программных установок был изменен режим работы ICG или коэффициенты FLL, то новое значение частоты устанавливается не сразу. Проходит некоторое время между изменением битов управления ICGC1:CLKS и соответствующим изменением битов состояния ICGS1:CLKST. В течение времени установления FLL (около 5мс) частота на выходе DCO будет отличаться от расчетной. Определить, что частота синхронизировалась, т.е. стала равна расчетной с учетом допустимой погрешности, можно, контролируя установку в 1 бита ICGS1:LOCK (если работает FLL) или бита ICGS2:DCOS (если DCO в режиме ручного управления).
Электронные компоненты Freescale >>>
Подробнее о компании Freescale >>>