Тактирование

Цепочка тактирования
Тактовый сигнал проходит через несколько ступеней обработки:
- Источник — кварцевый резонатор (2–20 МГц) или внешний генератор (подается на CLK60).
- Умножитель PLL — умножает входную частоту на коэффициент PLL_N (если включён). Результат умножения не должен превышать 60 МГц.
- Делитель PLL — делит умноженную частоту на коэффициент PLL_Q + 1.
- FINT — итоговая системная частота: FINT = f_вх × PLL_N / (PLL_Q + 1). При PLL_N = 0 умножитель выключен, FINT = f_вх.
- Делитель АЦП — FINT_divisor: Fclk_adc = FINT / (FINT_divisor + 1).
- Fclk_adc ≤ 2,5 МГц — частота тактирования АЦП не должна превышать 2,5 МГц (номинальное значение — до 20 МГц).
- FINT ≥ 2 × Fclk_adc — для корректной обработки сэмплов АЦП преобразователями HAND1 и HAND2.
- Частота выборок ≤ 150 кВыб/с — период обновления результата Tclk ≥ 6,7 мкс (Tclk = 16 / Fclk_adc при DELAY_cycles = 0).
- Результат умножения PLL ≤ 60 МГц — частота с выхода умножителя не должна превышать 60 МГц.
Выбор источника тактирования
Источник тактирования определяется схемотехнически одним из двух вариантов:
-
Встроенный генератор на кварцевом резонаторе — кварцевый резонатор подключается к выводам TP_QI(28) и TP_QO(27). Выход генератора TP_FQO(26) подключается на вход CLK60(39). Генератор поддерживает кварцевые резонаторы с частотой от 2 МГц до 20 МГц. Время выхода на режим — от нескольких миллисекунд. Для работы генератора на вывод VDDIO2(25) необходимо подать питание, равное VDDIO(45). Резистор 510 кОм, подключённый параллельно резонатору, обеспечивает стабильный запуск генерации.
-
Внешний активный генератор — сигнал подаётся непосредственно на вход CLK60(39). При этом вывод TP_QI(28) должен быть подключён к VDDD_INT(31), вывод TP_QO(27) — к GND.

Для последующего умножения с помощью PLL частота на CLK60 должна быть не более 30 МГц (при внешнем генераторе) или не более 20 МГц (при кварцевом резонаторе). Это позволяет умножить частоту на 2–3 раза до целевых 50–60 МГц FINT, не превышая предел 60 МГц на выходе PLL.
Настройка ФАПЧ (PLL)
Блок ФАПЧ состоит из двух независимых ступеней: умножителя (поле PLL_N) и делителя (поле PLL_Q).
Умножитель частоты — может быть задействован, если входная частота не более 20 МГц. Задаётся полем PLL_N в диапазоне 2...74. Частота на выходе умножителя CLK_PLL = f_вх × PLL_N не должна превышать 60 МГц. Если PLL_N = 0, умножитель выключен — тактирование производится напрямую от CLK60.
Делитель частоты — поле PLL_Q в диапазоне 0...15. Итоговая системная частота: FINT = CLK_PLL / (PLL_Q + 1). Если деление не требуется, задать PLL_Q = 0.
Контроль готовности:
- Для ускорения выхода PLL на режим — бит PLL_BOOST[7] = 1 (предзаряд петлевого фильтра); используется по необходимости.
- Для контроля захвата частоты — установите PLL_basecmp[15:14] ≠ 00. Готовность — по биту CLKCOMP_rdy.
- Для задержки запуска цифровой логики — поле CLK_delay[13:12]:
00= без задержки (по умолчанию, запуск сразу после готовности тактовой),01= 2048 тактов,10= 4096 тактов,11= 8192 тактов FINT. Задержка удерживает сброс цифровой части до стабилизации тактовой частоты.
Петлевой фильтр — состоит из внутреннего резистора 10 кОм и внешнего конденсатора на выводе PLL_CAP(40). Номинал конденсатора 0,1 мкФ является типовым. Увеличение ёмкости уменьшает пульсации, но увеличивает время установления, и наоборот. Уровень пульсаций не должен превышать 5% от периода тактовой частоты (ограничение джиттера).
Для отладки ФАПЧ на выводе DB(41) можно наблюдать внутренние сигналы через поле DB_mode регистра Mode_config. Все сигналы выводятся поделёнными на 8:
| DB_mode | Сигнал на DB |
|---|---|
| 000 | CLKMUX_OUT — мультиплексированный тактовый сигнал (значение по умолчанию) |
| 001 | DB_SIG_PLLBASE — частота с делителя PLL_BASE |
| 010 | DB_SIG_CLKREF — опорная частота CLKREF |
| 011 | CLK — результирующая частота FINT |
Для проверки итоговой частоты тактирования FINT установите DB_mode = 011 и измерьте частоту на выводе DB — она должна быть равна FINT / 8.
Настройка частоты АЦП
Fclk_adc — частота тактирования АЦП. В текущей версии микросхемы она не должна превышать 2,5 МГц; превышение приводит к некорректной работе преобразователя.
Частоты, участвующие в тактировании АЦП
| Обозначение | Что это | Как получается |
|---|---|---|
| f_CLK60 | частота на входе CLK60 | задаётся внешним генератором или кварцевым резонатором |
| FINT | системная тактовая частота цифрового блока (CPU, HAND1/HAND2 и др.) | при включённом умножителе: f_CLK60 × PLL_N / (PLL_Q + 1); при PLL_N = 0: f_CLK60 / (PLL_Q + 1) |
| f_adc_src | источник делителя АЦП | FINT либо f_CLK60 — выбирается битом SEL_muxclk (см. ниже) |
| Fclk_adc | частота тактирования АЦП | f_adc_src / (FINT_divisor + 1) |
| Fclk | частота выдачи выборок (преобразования) | Fclk_adc / 16 |
Формирование Fclk_adc
Делитель АЦП — поле FINT_divisor регистра ADC_config (4 бита, диапазон 0...15, значение по умолчанию = 3). Он делит не FINT напрямую, а частоту источника f_adc_src, выбранного битом SEL_muxclk:
| SEL_muxclk | Источник делителя f_adc_src | Что тактирует |
|---|---|---|
0 | FINT — частота цифрового блока | та же FINT, что и цифра |
1 | f_CLK60 — вход CLK60 напрямую, минуя PLL | исходная опорная частота |
Fclk_adc = f_adc_src / (FINT_divisor + 1)
Условие Fclk_adc ≤ 2,5 МГц
Поскольку FINT_divisor 4-битное (максимальный коэффициент деления 16), для получения 2,5 МГц источник делителя должен быть не выше 40 МГц: f_adc_src ≤ 40 МГц.
Дополнительно: частота тактирования цифрового блока должна быть минимум в 2 раза больше Fclk_adc — это требуется для обработки сэмплов АЦП преобразователями HAND1 и HAND2.
Выполнить f_adc_src ≤ 40 МГц можно двумя путями. Выбор зависит от того, нужна ли цифровому блоку высокая тактовая частота.
Путь A — SEL_muxclk = 0, АЦП от FINT. FINT делится полем PLL_Q, поэтому её всегда можно опустить до ≤ 40 МГц. Пример: 60 МГц на CLK60 + PLL_Q = 1 → FINT = 30 МГц → FINT_divisor = 11 → Fclk_adc = 2,5 МГц. Оборотная сторона — цифровой блок работает на той же поделенной FINT (30 МГц), а не на 60 МГц.
Путь B — SEL_muxclk = 1, АЦП от CLK60. Делитель работает от входа CLK60 напрямую, а цифровой блок умножается полем PLL_N до 50–60 МГц. Для этого на CLK60 подаётся низкая опорная частота (10–30 МГц), и FINT_divisor подбирается под неё. Это единственный способ одновременно держать цифру на 50–60 МГц и АЦП на 2,5 МГц.
- Путь B (низкая опорная на CLK60 + умножение PLL_N +
SEL_muxclk = 1) — рекомендуемый, если нужна производительная математика на CPU. - Путь A проще, но ограничивает тактовую цифры значением FINT ≤ 40 МГц.
- Подача большой частоты напрямую на CLK60 не является препятствием: она просто делится полем PLL_Q, ценой снижения тактовой частоты цифрового блока (Путь A).
Примеры конфигурации
| Сценарий | f_CLK60 | Путь | PLL_N | PLL_Q | FINT (цифра) | SEL_muxclk | FINT_divisor | Fclk_adc | Fclk |
|---|---|---|---|---|---|---|---|---|---|
| По умолчанию (кварц 10 МГц, PLL выкл) | 10 МГц | A | 0 | 0 | 10 МГц | 0 | 3 | 2,5 МГц | 156 кГц |
| Внешний 10 МГц, без PLL | 10 МГц | A | 0 | 0 | 10 МГц | 0 | 3 | 2,5 МГц | 156 кГц |
| Высокая цифра: кварц 10 МГц, PLL на 60 МГц | 10 МГц | B | 6 | 0 | 60 МГц | 1 | 3 | 2,5 МГц | 156 кГц |
| Высокая цифра: внешний 20 МГц, PLL на 60 МГц | 20 МГц | B | 3 | 0 | 60 МГц | 1 | 7 | 2,5 МГц | 156 кГц |
| Высокая частота на CLK60, с делением PLL_Q | 60 МГц | A | 0 | 1 | 30 МГц | 0 | 11 | 2,5 МГц | 156 кГц |
Подбор делителя: FINT_divisor = f_adc_src / 2,5 МГц − 1 (округлить вниз; результат должен быть в диапазоне 0...15).
Период преобразования — для одного преобразования АЦП требуется 16 тактов Fclk_adc. Период работы преобразователя:
Tclk = (16 + DELAY_cycles) × Tclk_adc
При необходимости замедлить АЦП (например, если цикл следящего контура короче времени преобразования) добавляются пустые такты полем DELAY_cycles (8 бит, 0...255).
Выключение тактирования
Для снижения энергопотребления, когда микросхема запитана, но не используется, имеется возможность выключить тактирование с цифрового блока с помощью бита OSC_DIS или подачей активного уровня 1 на вывод STNDBY. Состояние включено/выключено тактирование может быть определено по биту CLK_rdy.