Глава 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.