Термосенсор: различия между версиями
(не показано 5 промежуточных версий этого же участника) | |||
Строка 103: | Строка 103: | ||
|16 | |16 | ||
|- | |- | ||
| colspan=" | | colspan="16" |Зарезервировано | ||
|- | |- | ||
|rw | |rw | ||
Строка 141: | Строка 140: | ||
|0 | |0 | ||
|- | |- | ||
| colspan=" | | colspan="10" |Div | ||
| colspan="3" |Clk_mux | | colspan="3" |Clk_mux | ||
| | |Nreset | ||
|Npd_Clk | |Npd_Clk | ||
|Npd | |Npd | ||
Строка 164: | Строка 162: | ||
|rw | |rw | ||
|rw | |rw | ||
|}Биты | |}Биты 15:6 '''Div''' - Значение делителя тактового сигнала. Частота сенсора определяется как T<sub>SENS</sub> = F<sub>IN</sub>/(Div + 1) | ||
Биты | Биты 5:3 '''Clk_mux''' - Выбор источника тактирвоания сенсора (F<sub>IN</sub>): | ||
* 0x0 – системная частота (sys_clk); | * 0x0 – системная частота (sys_clk); | ||
Строка 175: | Строка 173: | ||
* 0x5 – частота LSI32K | * 0x5 – частота LSI32K | ||
Бит 2 '''Nreset''' - Управление сбросом сенсора, активный уровень «0» | |||
Бит 2 ''' | |||
Бит 1 '''Npd_Clk''' - Управление тактированием сенсора: | Бит 1 '''Npd_Clk''' - Управление тактированием сенсора: | ||
Строка 189: | Строка 185: | ||
* 1 – сенсор включен | * 1 – сенсор включен | ||
===== TSENS_TRESHOLD Смещение: 0x20 - пороговый регистр. Значение после подачи сброса: | ===== TSENS_TRESHOLD ===== | ||
Смещение: 0x20 - пороговый регистр. Значение после подачи сброса: 0x3865B ; | |||
{| class="wikitable" | {| class="wikitable" | ||
|31 | |31 | ||
Строка 264: | Строка 261: | ||
|rw | |rw | ||
|rw | |rw | ||
|rw | |||
|}Биты 19:10 '''Low_ Threshold''' - При значении выхода сенсора менее Low_Threshold будет формироваться прерывание. Значение по умолчанию соответсвует температуре -40 <sup>о</sup>С. Начальное значение 225. | |||
Бит 9:0 '''Hi_ Threshold''' - При значении выхода сенсора больше Hi_Threshold будет формироваться прерывание. Значение по умолчанию соответсвует температуре 125 <sup>о</sup>С. Начальное значение 603. | |||
===== TSENS_IRQ ===== | |||
Смещение: 0x24 - регистр управления прерываниями. Значение после подачи сброса: 0x00000000; | |||
{| class="wikitable" | |||
|31 | |||
|30 | |||
|29 | |||
|28 | |||
|27 | |||
|26 | |||
|25 | |||
|24 | |||
|23 | |||
|22 | |||
|21 | |||
|20 | |||
|19 | |||
|18 | |||
|17 | |||
|16 | |||
|- | |||
| colspan="16" |Зарезервировано | |||
|- | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|} | |||
{| class="wikitable" | |||
|15 | |||
|14 | |||
|13 | |||
|12 | |||
|11 | |||
|10 | |||
|9 | |||
|8 | |||
|7 | |||
|6 | |||
|5 | |||
|4 | |||
|3 | |||
|2 | |||
|1 | |||
|0 | |||
|- | |||
| colspan="10" |Зарезервировано | |||
|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 | |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; | |||
{| class="wikitable" | |||
|31 | |||
|30 | |||
|29 | |||
|28 | |||
|27 | |||
|26 | |||
|25 | |||
|24 | |||
|23 | |||
|22 | |||
|21 | |||
|20 | |||
|19 | |||
|18 | |||
|17 | |||
|16 | |||
|- | |||
| colspan="15" |Зарезервировано | |||
| | |||
|- | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|} | |||
{| class="wikitable" | |||
|15 | |||
|14 | |||
|13 | |||
|12 | |||
|11 | |||
|10 | |||
|9 | |||
|8 | |||
|7 | |||
|6 | |||
|5 | |||
|4 | |||
|3 | |||
|2 | |||
|1 | |||
|0 | |||
|- | |||
| colspan="13" |Зарезервировано | |||
|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; | |||
{| class="wikitable" | |||
|31 | |||
|30 | |||
|29 | |||
|28 | |||
|27 | |||
|26 | |||
|25 | |||
|24 | |||
|23 | |||
|22 | |||
|21 | |||
|20 | |||
|19 | |||
|18 | |||
|17 | |||
|16 | |||
|- | |||
| colspan="15" |Зарезервировано | |||
| | |||
|- | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|} | |||
{| class="wikitable" | |||
|15 | |||
|14 | |||
|13 | |||
|12 | |||
|11 | |||
|10 | |||
|9 | |||
|8 | |||
|7 | |||
|6 | |||
|5 | |||
|4 | |||
|3 | |||
|2 | |||
|1 | |||
|0 | |||
|- | |||
| colspan="5" |Зарезервировано | |||
|Eoc | |||
| colspan="10" |Value | |||
|- | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|ro | |||
|ro | |||
|ro | |||
|ro | |||
|ro | |||
|ro | |||
|ro | |||
|ro | |||
|ro | |||
|ro | |||
|ro | |||
|}Бит 10 '''Eoc''' - Текущее значение выхода окончания преобразования | |||
Биты 9:0 '''Value''' - Последнее измереннное значение сенсором | |||
===== TSENS_SINGLE ===== | |||
Смещение: 0x30 - регистр запуска однократного измерения. Значение после подачи сброса: 0x00000000; | |||
{| class="wikitable" | |||
|31 | |||
|30 | |||
|29 | |||
|28 | |||
|27 | |||
|26 | |||
|25 | |||
|24 | |||
|23 | |||
|22 | |||
|21 | |||
|20 | |||
|19 | |||
|18 | |||
|17 | |||
|16 | |||
|- | |||
| colspan="15" |Зарезервировано | |||
| | |||
|- | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|} | |||
{| class="wikitable" | |||
|15 | |||
|14 | |||
|13 | |||
|12 | |||
|11 | |||
|10 | |||
|9 | |||
|8 | |||
|7 | |||
|6 | |||
|5 | |||
|4 | |||
|3 | |||
|2 | |||
|1 | |||
|0 | |||
|- | |||
| colspan="15" |Зарезервировано | |||
|Single | |||
|- | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|}Бит 0 '''Single''' - Запуск одного измерения | |||
===== TSENS_ CONTINIUS ===== | |||
Смещение: 0x34 - регистр запуска непрерывного измерения. Значение после подачи сброса: 0x00000000; | |||
{| class="wikitable" | |||
|31 | |||
|30 | |||
|29 | |||
|28 | |||
|27 | |||
|26 | |||
|25 | |||
|24 | |||
|23 | |||
|22 | |||
|21 | |||
|20 | |||
|19 | |||
|18 | |||
|17 | |||
|16 | |||
|- | |||
| colspan="15" |Зарезервировано | |||
| | |||
|- | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|} | |||
{| class="wikitable" | |||
|15 | |||
|14 | |||
|13 | |||
|12 | |||
|11 | |||
|10 | |||
|9 | |||
|8 | |||
|7 | |||
|6 | |||
|5 | |||
|4 | |||
|3 | |||
|2 | |||
|1 | |||
|0 | |||
|- | |||
| colspan="15" |Зарезервировано | |||
|Continius | |||
|- | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|rw | |||
|}Бит 0 '''Continius''' - Управление непрерывным измерением: | |||
* 1 - запуск | |||
* 0 - остановка | |||
===== REF_CLB ===== | ===== REF_CLB ===== | ||
Смещение: 0x38 - регистр калибровочных данных. Значение после подачи сброса: 0x00000100; | Смещение: 0x38 - регистр калибровочных данных. Значение после подачи сброса: 0x00000100; |
Текущая версия от 09:49, 25 августа 2023
Введение
Сенсор преобразует электрические величины, прямо пропорционально зависящие от температуры кристалла, в двоичное представление этой температуры.
Технические характеристики:
- точность измерения температуры ±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 |
Зарезервировано | |||||||||||||||
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 | Nreset | Npd_Clk | Npd | |||||||||||
rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw |
Биты 15:6 Div - Значение делителя тактового сигнала. Частота сенсора определяется как TSENS = FIN/(Div + 1)
Биты 5:3 Clk_mux - Выбор источника тактирвоания сенсора (FIN):
- 0x0 – системная частота (sys_clk);
- 0x1 – частота шины AHB (hclk);
- 0x2 – частота внешнего осцилятора 32 МГц;
- 0x3 – частота HSI32M;
- 0x4 – частота внешнего осцилятора 32 кГц;
- 0x5 – частота LSI32K
Бит 2 Nreset - Управление сбросом сенсора, активный уровень «0»
Бит 1 Npd_Clk - Управление тактированием сенсора:
- 0 – тактирование сенсора выключено;
- 1 – тактирование сенсора включено
Бит 0 Npd - Управление питанием сенсора:
- 0 – сенсор выключен;
- 1 – сенсор включен
TSENS_TRESHOLD
Смещение: 0x20 - пороговый регистр. Значение после подачи сброса: 0x3865B ;
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 будет формироваться прерывание. Значение по умолчанию соответсвует температуре -40 оС. Начальное значение 225.
Бит 9:0 Hi_ Threshold - При значении выхода сенсора больше Hi_Threshold будет формироваться прерывание. Значение по умолчанию соответсвует температуре 125 оС. Начальное значение 603.
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 - Последнее измереннное значение сенсором
TSENS_SINGLE
Смещение: 0x30 - регистр запуска однократного измерения. Значение после подачи сброса: 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 |
Зарезервировано | Single | ||||||||||||||
rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw |
Бит 0 Single - Запуск одного измерения
TSENS_ CONTINIUS
Смещение: 0x34 - регистр запуска непрерывного измерения. Значение после подачи сброса: 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 |
Зарезервировано | Continius | ||||||||||||||
rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw |
Бит 0 Continius - Управление непрерывным измерением:
- 1 - запуск
- 0 - остановка
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 - Коэффициент настройки напряжения