Термосенсор
Введение
Сенсор преобразует электрические величины, прямо пропорционально зависящие от температуры кристалла, в двоичное представление этой температуры.
Технические характеристики:
- точность измерения температуры ±0,1 ℃;
- погрешность измерения температуры в диапазоне [–40 °C; 125 °C] не превышает 1 %;
- наличие спящего режима с пониженным потреблением тока;
- функция подстройки для уменьшения влияния разброса техпроцесса.
- Тактовая частота 32КГц-100КГц
Состав и принцип работы сенсора
Структурная схема представлена на рисунке ниже. Сенсор состоит из блока формирования опорного тока, блока формирования двух напряжений база-эмиттер, сигма-дельта АЦП и регистра накопления результатов АЦП.
Блок сенсора основан на биполярных транзисторах, так как их технологический разброс параметров мал по сравнению с альтернативами. Для генерации данных о температуре достаточно всего двух транзисторов в диодном включении, управляемых разными токами. Напряжение база-эмиттер Vbe обратно пропорционально температуре (CTAT), а разница напряжений ΔVbe прямо пропорциональна (PTAT). Эти напряжения линейны, а линейная комбинация создает температурно-независимое постоянное напряжение Vref (рисунок и формулы далее), соответствующее ширине запрещенной зоны.
Основное преимущество такой схемы, что формируемое PTAT напряжение не зависимо от технологического процесса и вычисляется по формуле:
Эти напряжения переводятся в базис заряда и используются сигма-дельта АЦП на переключающихся конденсаторах. Плотность потока на выходе АЦП меняется от 0 до 1 в зависимости от температуры и равна согласно равенству зарядов по формуле 16. Сама температура вычисляется в градусах Цельсия по формуле 17, при A= 619,2 и В= -273,15 (константы, следующие из формул далее)
Регистры управления
Список регистров
Обозначение | Смещение | Начальное значение | Назначение | Доступ |
TSENS_CFG | 0x1C | 0x0 | Регистр настроек | RW |
TSENS_TRESHOLD | 0x20 | Регистр пороговых значений | RW | |
TSENS_IRQ | 0x24 | 0x0 | Регистр прерываний | RW |
TSENS_CLEAR_IRQ | 0x28 | 0x0 | Регистр сброса прерываний | W1C |
TSENS_VALUE | 0x2C | 0x0 | Регистр данных | RO |
TSENS_SINGLE | 0x30 | 0x0 | Регистр запуска однократного измерения | WO |
TSENS_ CONTINIUS | 0x34 | 0x0 | Регистр запуска непрерываного измерения | WO |
REF_CLB | 0x38 | 0x01 | Управление калибруемыми источниками тока и напряжения | RW |
Описание регистров
TSENS_CFG
Смещение: 0x1C - регистр настройки термодатчика. Значение после подачи сброса: 0x00000000;
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
Зарезервировано | Div | ||||||||||||||
rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw |
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Div | Clk_mux | Trim | Rn | Npd_Clk | Npd | ||||||||||
rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw |
Биты 23:14 Div - Значение делителя тактового сигнала. Частота сенсора определяется как TSENS = FIN/(Div + 1)
Биты 13:11 Clk_mux - Выбор источника тактирвоания сенсора (FIN):
- 0x0 – системная частота (sys_clk);
- 0x1 – частота шины AHB (hclk);
- 0x2 – частота внешнего осцилятора 32 МГц;
- 0x3 – частота HSI32M;
- 0x4 – частота внешнего осцилятора 32 кГц;
- 0x5 – частота LSI32K
Биты 10:3 Trim - Колибровочный коэфициент
Бит 2 Rn - Управление сбросом сенсора, активный уровень «0»
Бит 1 Npd_Clk - Управление тактированием сенсора:
- 0 – тактирование сенсора выключено;
- 1 – тактирование сенсора включено
Бит 0 Npd - Управление питанием сенсора:
- 0 – сенсор выключен;
- 1 – сенсор включен
TSENS_TRESHOLD
Смещение: 0x20 - пороговый регистр. Значение после подачи сброса: 0x00000000;
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
Зарезервировано | Low_ Threshold | ||||||||||||||
rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw |
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Low_ Threshold | Hi_ Threshold | ||||||||||||||
rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw |
Биты 19:10 Low_ Threshold - При значении выхода сенсора менее Low_Threshold будет формироваться прерывание. Значение по умолчанию соответсвует температуре 125 оС. Начальное значение 387.
Бит 9:0 Hi_ Threshold - При значении выхода сенсора больше Hi_Threshold будет формироваться прерывание. Значение по умолчанию соответсвует температуре 125 оС. Начальное значение 658.
TSENS_IRQ
Смещение: 0x24 - регистр управления прерываниями. Значение после подачи сброса: 0x00000000;
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
Зарезервировано | |||||||||||||||
rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw |
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Зарезервировано | Low_Irq | Hi_Irq | Eoc_Irq | Low_Mask | Hi_Mask | Eoc_Mask | |||||||||
rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | ro | ro | ro | rw | rw | rw |
Бит 5 Low_Irq - Статус прерывания события «выход сенсора меньше порогового значения Low_Threshold»
Бит 4 Hi_Irq - Статус прерывания событии «выход сенсора больше порогового значения Hi_Threshold»
Бит 3 Eoc_Irq - Статус прерывания по окончанию преобразования
Бит 2 Low_Mask - Маска прерывания при событии «выход сенсора меньше порогового значения Low_Threshold»
Бит 1 Hi_Mask - Маска прерывания при событии «выход сенсора больше порогового значения Hi_Threshold»
Бит 0 Eoc_Mask - Маска прерывания по окончанию преобразования
TSENS_CLEAR_IRQ
Смещение: 0x28 - регистр калибровочных данных. Значение после подачи сброса: 0x00000000;
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
Зарезервировано | |||||||||||||||
rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw |
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Зарезервировано | Low_ Clear | Hi_ Clear | Eoc_Clear | ||||||||||||
rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | W1C | W1C | W1C |
Бит 2 Low_Clear - Сброс прерывания события «выход сенсора меньше порогового значения Low_Threshold»
Бит 1 Hi_Clear - Сброс прерывания событии «выход сенсора больше порогового значения Hi_Threshold»
Бит 0 Eoc_Clear - Сброс прерывания по окончанию преобразования
TSENS_VALUE
Смещение: 0x2С - регистр данных. Значение после подачи сброса: 0x00000000;
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
Зарезервировано | |||||||||||||||
rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw |
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Зарезервировано | Eoc | Value | |||||||||||||
rw | rw | rw | rw | rw | ro | ro | ro | ro | ro | ro | ro | ro | ro | ro | ro |
Бит 10 Eoc - Текущее значение выхода окончания преобразования
Биты 9:0 Value - Последнее измереннное значение сенсором
REF_CLB
Смещение: 0x38 - регистр калибровочных данных. Значение после подачи сброса: 0x00000100;
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
Зарезервировано | |||||||||||||||
rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw |
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Зарезервировано | EN | Coef_RefIclb | Coef_RefVclb | ||||||||||||
rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | ro |
Бит 8 EN - Включение калибровки настройки опорного
Бит 7:4 Coef_RefIclb - Коэффициент настройки тока
Бит 3:0 Coef_RefVclb - Коэффициент настройки напряжения