Руководство пользователя 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.10. Контроллер термодатчика - Thermal Sensor Controller

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


3.10.1. Обзор

Термодатчики стали обычным элементом в широком спектре современных систем на кристалле (SoC). Термодатчики используются для постоянного контроля температуры на чипе.

Контроллер термодатчика (THS) включает четыре термодатчика, сенсор 0 расположен в графическом процессоре, сенсор 1 - в VE, сенсор 2 - в ЦП, сенсор 3 - в DDR. Термодатчик может генерировать прерывание ПО для понижения температуры через DVFS при достижении определенного теплового порога.

THS имеет следующие особенности:

  • Точность температуры: ± 3° C от 0° C до + 100° C, ± 5° C от -25° C до + 125° C
  • Напряжение питания: 1,8 В
  • Усредняющий фильтр для показаний термодатчика
  • Поддерживает прерывание защиты от перегрева и прерывание сигнала тревоги перегрева


    3.10.2. Блок-схема

    На Рис. 3-23 показана блок-схема контроллера теплового датчика.

    Рисунок 3-23. Блок-схема контроллера теплового датчика.


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


    3.10.3.1

    Источники синхронизации

    THS получает один источник синхронизации. В Табл. 3-9 описан источник синхронизации для контроллера термодатчика. Пользователи могут видеть Блок контроллера часов (CCU) для настройки часов, конфигурации и информации о стробировании.

    Таблица 3-9. Источники тактовых сигналов контроллера термодатчика

    Источники часов | Описание

  • OSC24M 24M OSC


    3.10.3.2

    Требования к времени

  • CLK_IN = 24 МГц
  • CONV_TIME (время преобразования) = 1 / (24 МГц / 14 циклов) = 0,583 (мкс)
  • TACQ > 1 / (24 МГц / 24 цикла)
  • THERMAL_PER> Частота выборки АЦП> TACQ + CONV_TIME

    Рисунок 3-24. Требуемое время для термодатчика.


    3.10.3.3

    Прерывание

    THS имеет четыре источника прерываний, таких как DATA_IRQ, SHUTDOWN_IRQ, ALARM_IRQ и ALARM_OFF_IRQ.

    На Рис. 3-25 показаны источники прерывания теплового датчика.

    Рисунок 3-25. Источник прерывания контроллера теплового датчика.

  • Когда температура выше, чем Alarm_Threshold, генерируется ALARM_IRQ.
  • Когда температура ниже, чем Alarm_Off_Thershold, генерируется ALARM_OFF_IRQ.
  • ALARM_OFF_IRQ - триггер спада.


    3.10.3.4

    Формула преобразования температуры THS

    T = (sensor_data - 3255) / (- 12.401),

  • единицей измерения T является градусы по Цельсию.
  • sensor_data: считывается из регистра данных датчика.


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

    Процесс инициализации THS выглядит следующим образом.

    Рисунок 3-26. Процесс инициализации THS

    Формула THS: y = -ax + b.

    На этапе FT THS калибруется по температуре окружающей среды, значение калибровки записывается в eFUSE. Информацию о eFUSE см. В спецификации SID.

    Перед включением THS прочтите значение eFUSE и запишите значение в THS_CDATA.

    (1) Режим запроса

  • Шаг 1: Запишите 0x1 в бит 16 THS_BGR_REG для сброса десерта.
  • Шаг 2: Запишите 0x1 в бит 0 THS_BGR_REG, чтобы открыть часы THS.
  • Шаг 3: Запишите 0x2F в бит [15: 0] THS_CTRL, чтобы установить время сбора данных АЦП.
  • Шаг 4: Запишите 0x1DF в бит [31:16] THS_CTRL, чтобы установить делитель частоты дискретизации АЦП.
  • Шаг 5: Запишите 0x3A в бит [31:12] THS_PER, чтобы установить рабочий период THS.
  • Шаг 6: Запишите 0x1 в бит 2 THS_FILTER, чтобы включить фильтр преобразования температуры.
  • Шаг 7: Запишите 0x1 в бит [1: 0] THS_FILTER, чтобы выбрать тип фильтра.
  • Шаг 8: Считайте значение THS efuse из SID, затем запишите значение efuse в THS_CDATA для калибровки THS.
  • Шаг 9: Запишите 0x1 в бит [0] 0f THS_EN, чтобы включить THS.
  • Шаг 10: Считайте бит [0] THS_DATA_INTS, если равен 1, преобразование температуры завершено.
  • Шаг 11: Считайте бит [11: 0] THS_DATA, вычислите температуру THS на основе формулы преобразования температуры THS в разделе 3.10.3.4.

    (2) Режим прерывания

  • Шаг 1: Запишите 0x1 в бит 16 THS_BGR_REG для сброса десерта.
  • Шаг 2: Запишите 0x1 в бит 0 THS_BGR_REG, чтобы открыть часы THS.
  • Шаг 3: Запишите 0x2F в бит [15: 0] THS_CTRL, чтобы установить время сбора данных АЦП.
  • Шаг 4: Запишите 0x1DF в бит [31:16] THS_CTRL, чтобы установить делитель частоты дискретизации АЦП.
  • Шаг 5: Запишите 0x3A в бит [31:12] THS_PER, чтобы установить рабочий период THS.
  • Шаг 6: Запишите 0x1 в бит 2 THS_FILTER, чтобы включить фильтр преобразования температуры.
  • Шаг 7: Запишите 0x1 в бит [1: 0] THS_FILTER, чтобы выбрать тип фильтра.
  • Шаг 8: Считайте значение THS efuse из SID, затем запишите значение efuse в THS_CDATA для калибровки THS.
  • Шаг 9: Запишите 0x1 в бит [0] THS_DATA_INTC, чтобы разрешить прерывание THS.
  • Шаг 10: Установите интерфейс GIC на основе IRQ 51, запишите бит [19] регистра 0x03021104 в 0x1.
  • Шаг 11: Поместите адрес обработчика прерывания в таблицу векторов прерываний.
  • Шаг 12: Запишите 0x1 в бит [0] 0f THS_EN, чтобы включить THS.
  • Шаг 13: Считайте бит [0] THS_DATA_INTS, если равен 1, преобразование температуры завершено.
  • Шаг 14: Считайте бит [11: 0] THS_DATA, вычислите температуру THS на основе формулы преобразования температуры THS в разделе 3.10.3.4.




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