Руководство пользователя Allwinner H616


  Описание      Система      Графика    Память    Ethernet    Видео    Аудио    Интерфейсы    Безопасность  

3. Система (System)

3.1. Отображение памяти

3.10. Контроллер термодатчика

3.11. Подключение периферийной системы PSI

3.12. Модуль управления памятью ввода-вывода IOMMU

3.13. Часы реального времени RTC

3.2. Конфигурация CPUX

  3.3. Контроллер синхрогенератора  

3.4. Загрузочное ПЗУ (BROM)

3.5. Конфигурация системы

3.6. Таймер

3.7. Таймер высокой скорости

3.8. Универсальный контроллер прерываний

3.9. Прямой доступ к памяти



Глава 3. Система - System
Раздел 3.3. Контроллер синхрогенератора - CCU Controller

3.3. CCU


3.3.1. Обзор

Блок контроллера часов (CCU) управляет конфигурацией PLL и большей частью генерации, разделения, распределения, синхронизации и стробирования тактовых импульсов. CCU входные сигналы включают в себя внешние синхронизирующие импульсы для опорной частоты (24 МГц). Выходы CCU в основном являются тактовыми сигналами для других блоков системы.

CCU включает в себя следующие функции:
  • 12 PLL (ФАПЧ)
  • Источники и разделение шин
  • Контроль выхода часов
  • Управление смещением PLL
  • Управление настройкой PLL
  • Управление шаблоном PLL
  • Настройка часов модулей
  • Выход на автобусные часы
  • Сброс программного обеспечения шины
  • Управление блокировкой PLL


    3.3.2. Операции и функциональные описания


    3.3.2.1

    Дерево системной шины

    На рис. 3-2 показана блок-схема дерева системной шины.

    Рисунок 3-2. Дерево системной шины


    3.3.2.2

    Генерация тактовой частоты шины

    Рис. 3-3 описывает генерацию тактовой частоты шины.

    Рисунок 3-3. Генерация тактовой частоты шины


    3.3.2.3

    Генерация тактовой частоты модуля

    Рис. 3-4 описывает генерацию часов модуля. В скобках указаны типичные частоты по умолчанию.

    Рисунок 3-401.

    Рисунок 3-402.

    Рисунок 3-403.

    Рис. 3-4. Генерация тактовой частоты модуля


    3.3.2.4

    Распределение PLL

    На рисунке 3-5 показана блок-схема распределения ФАПЧ.

    Рисунок 3-5. Дерево синхронизации модуля


    3.3.3. Рекомендации по программированию


    3.3.3.1

    Регулировка частоты PLL_CPUX

    Формула конфигурации частоты PLL_CPUX: PLL_CPUX = 24 МГц * N / P, где параметр N - коэффициент удвоения частоты ФАПЧ, следующая конфигурация параметра может продолжаться после повторной синхронизации ФАПЧ;
    - Параметр P представляет собой цифровое пост-частотное деление, которое можно динамически переключать в реальном времени, и он не влияет на нормальную работу системы ФАПЧ.

    ЦП PLL поддерживает динамическую настройку частоты (измените значение N). ЦП должен сначала переключиться на более низкую промежуточную частоту, а затем настроить целевую частоту при переключении частоты. Процесс выглядит следующим образом.

  • (1) Перед настройкой PLL_CPU переключите источник тактовой частоты процессора на PLL_PERI0 (1X).
  • (2) Измените параметр N, P PLL_CPU.
  • (3) Запишите бит разрешения блокировки PLL в 0, а затем запишите его в 1.
  • (4) Подождите, пока бит блокировки (бит 28) PLL_CPUX_CTRL станет 1.
  • (5) Переключите источник тактовой частоты ЦП на PLL_CPU.


    3.3.3.2

    Регулировка частоты PLL_AUDIO

    Формула конфигурации частоты PLL_AUDIO: PLL_AUDIO = 24 МГц * N / M0 / M1 / P. Изменение любого параметра N, M0, M1 и P повлияет на нормальную работу системы ФАПЧ, которую необходимо повторно синхронизировать. Поэтому динамическая настройка не поддерживается.

    Для PLL_AUDIO обычно требуются две точки частоты: 24,576 МГц и 22,5792 МГц. Обычно существуют определенные рекомендуемые факторы конфигурации для двух частот. Чтобы реализовать желаемую частотную точку PLL_AUDIO, вам необходимо использовать функцию десятичного деления частоты. Процесс выглядит следующим образом.

  • (1) Настройте коэффициент N, M1, M0, P.
  • (2) Настройте бит PLL_SDM_ENABLE в PLL_AUDIO_CTRL на 1.
  • (3) Настройте PLL_AUDIO_PAT0_CTRL для включения цифрового расширенного спектра.
  • (4) Запишите бит разрешения блокировки PLL PLL_AUDIO_CTRL в 0, а затем запишите его в 1.
  • (5) Подождите, пока бит блокировки (бит 28) PLL_AUDIO_CTRL будет равен 1.

    Примечание

    Коэффициент P PLL_AUDIO - нечетное число, тактовый выходной сигнал не имеет одинаковой нагрузки.


    3.3.3.3

    Регулировка частоты PLL_DDR

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

  • С высокой частоты на низкую: сначала переключите источник тактовой частоты, а затем установите коэффициент деления частоты;
  • С низкой частоты на высокую: сначала переключите коэффициент деления частоты, а затем измените источник синхронизации.

    Контроллер имеет 2 PLL_DDR, процесс настройки следующий.

  • (1) Если контроллер SDRAM использует PLL_DDR0, когда требуется новая регулировка частоты, сначала настройте целевую частоту PLL_DDR1 (см. Процесс настройки в разделе 3.3.3.4), дождитесь блокировки PLL_DDR1.
  • (2) Настройте 0x800 DRAM_CLK_REG, переключите источник тактовой частоты PLL_DDR0 на PLL_DDR1.


    3.3.3.4

    Регулировка частоты общей системы ФАПЧ

  • (1) В настоящее время ФАПЧ должна быть включена. Если ФАПЧ не активирована, обратитесь к процессу ФАПЧ от отключения до включения в разделе 3.3.3.5. Для ФАПЧ не рекомендуется переключаться во время использования ФАПЧ. Когда часы не нужны, рекомендуется настроить бит PLL_OUTPUT_EN в PLL_CTRL, чтобы отключить выходной вентиль PLL.
  • (2) Обычная система ФАПЧ не может использоваться в процессе частотной модуляции. Предлагается установить бит PLL_OUTPUT_EN в PLL_CTRL на 0 в процессе настройки PLL.
  • (3) Настройте коэффициент N, M1, M0. (Не рекомендуется настраивать коэффициент M1, настройте в соответствии с рекомендованной таблицей конфигурации PLL )
  • (4) Запишите бит разрешения блокировки PLL (бит 29) PLL_CTRL в 0, а затем запишите его в 1.
  • (5) Подождите, пока бит блокировки (бит 28) PLL_CTRL станет 1.
  • (6) Настройте PLL_OUTPUT_EN на 1.


    3.3.3.5

    Отключение ФАПЧ для включения ФАПЧ

  • (1) Настройте коэффициент N, M1, M0 для PLL_CTRL_REG.
  • (2) Запишите бит разрешения PLL_CTRL_REG в 1.
  • (3) Запишите бит разрешения блокировки PLL_CTRL_REG в 1.
  • (4) Подождите, пока состояние блокировки будет 1.
  • (5) Задержка 20 мкс, можно использовать ФАПЧ.


    3.3.3.6

    PLL Enable to PLL Disable

  • (1) Запишите бит разрешения ФАПЧ в 0.
  • (2) Запишите бит разрешения блокировки (бит 29) PLL_CTRL_REG в 0.

    ВНИМАНИЕ

    При нормальном использовании ФАПЧ не рекомендуется часто переключать ФАПЧ, потому что переключение ФАПЧ вызовет взаимные помехи между ФАПЧ, что повлияет на стабильность системы. Поэтому рекомендуется отключать ФАПЧ, задав для бита PLL_OUTPUT_EN PLL_CTRL значение 0, вместо того, чтобы записывать 0 в бит разрешения.


    3.3.3.7

    Конфигурация шины

    Часы шины поддерживают динамическое переключение, но процесс переключения должен соответствовать следующим двум правилам.
  • С высокой частоты на низкую: сначала переключите источник тактовой частоты, а затем установите коэффициент деления частоты;
  • С низкой частоты на высокую: сначала переключите коэффициент деления частоты, а затем переключите источник синхронизации.


    3.3.3.8

    Конфигурация модуля синхронизации

    Для регистра стробирования шины и сброса модулей сначала отменяется сброс, а затем включается стробирование CLK, чтобы гарантировать отсутствие проблем из-за того, что модуль не сбрасывается синхронно с освобождением.

    Для тактовых импульсов модуля, за исключением тактовых импульсов DDR, другие тактовые частоты сначала настраивают источник тактового сигнала и коэффициент деления частоты, а затем освобождают стробирование тактового сигнала (то есть устанавливают его на 1). Для порядка конфигурации источника синхронизации и коэффициента деления частоты выполните следующие правила:

  • При увеличении частоты источника синхронизации сначала настройте коэффициент деления частоты, затем настройте источник синхронизации;
  • При уменьшении частоты источника тактовых импульсов сначала настройте источник тактовых импульсов, а затем настройте коэффициент деления частоты.


    3.3.3.9

    Функция распространения спектра

    Конфигурация расширенного спектра выполняется следующим образом.

    Шаг 1. Настройте регистр PLL_CTRL

  • Согласно формуле частоты ФАПЧ и частоты ФАПЧ f = [(N + 1) / (M0 + 1) / (M1 + 1) + X] * 24 МГц, предположите значение делителя M0 и делителя M1, вычислите коэффициент N и десятичное значение X, и записать M0 ? M1 ? N и частоту PLL в регистр PLL_CTRL.
  • Установите для бита SDM_Enable регистра PLL_CTRL значение 1, чтобы включить функцию расширения спектра.

    Примечание

    Имея разные формулы расчета ФАПЧ для разных ФАПЧ, обратитесь к каждому регистру PLL_CTRL.

    Шаг 2: Настройте регистр PLL_PAT

  • По десятичному значению X и частоте расширенного спектра (бит [18:17] регистра PLL_PAT) вычислить

    WAVE_BOT = 217 * X1

    WAVE_STEP = 217 * (X2-X1) / (24 MHz/PREQ) * 2).

  • Настройте режим расширенного спектра (SPR_FREQ_MODE) на 2 или 3.
  • Настройте бит выбора источника тактовой частоты расширенного спектра (SDM_CLK_SEL) на 0 по умолчанию. Но если бит PLL_INPUT_DIV_M1 регистра PLL_CTRL равен 1, бит должен быть установлен в 1.
  • Запишите WAVE_BOT ? WAVE_STEP ? PREQ ? SPR_FREQ_MODE и SDM_CLK_SEL в регистр PLL_PAT и настройте SIG_DELT_PAT_EN на 1.
  • Шаг 3: Задержка 20 мксек.




  •    3.3.4. Список регистров