Время преобразования
Команда «измерить» и готовый результат разделены паузой. У DS18B20 на 12 разрядах она доходит до 750 мс, у HX711 — 100 мс между отсчётами на медленной скорости. Если прочитать данные раньше, получишь старое значение. Разбираем, от чего зависит время преобразования и как узнать, что результат готов.
Обновлено Редакция GAW
Время преобразования (conversion time, tCONV) — время от запуска измерения до момента, когда результат готов к чтению. У цифровых датчиков температуры и весовых АЦП оно доходит до сотен миллисекунд. От времени преобразования зависит, как часто можно опрашивать датчик и сколько ждать после команды.
DS18B20: время зависит от разрядности
Термометр DS18B20 запускает измерение по команде Convert T [44h]; разрядность 9–12 бит выбирают в регистре конфигурации. Чем мельче шаг, тем дольше преобразование (AC Electrical Characteristics, табл. 2):
| Разрядность | Шаг | tCONV, макс. |
|---|---|---|
| 9 бит | 0,5 °C | 93,75 мс |
| 10 бит | 0,25 °C | 187,5 мс |
| 11 бит | 0,125 °C | 375 мс |
| 12 бит (по умолчанию) | 0,0625 °C | 750 мс |
Каждый лишний бит удваивает время. Узнать, что результат готов, можно двумя способами. При внешнем питании ведущий читает тайм-слоты 1-Wire: датчик отвечает 0, пока идёт преобразование, и 1 по его окончании. При паразитном питании так нельзя: шину держит сильная подтяжка, включённая не позже 10 мкс после команды, и ведущий просто выжидает максимальное tCONV. Подробности о датчике — в карточке DS18B20.
HX711: скорость выдачи и время установления
У 24-разрядного HX711 скорость задаёт вывод RATE: 10 или 80 отсчётов в секунду от внутреннего генератора. С кварцем частота выдачи пропорциональна тактовой: fclk / 1 105 920 и fclk / 138 240, и кварц 11,0592 МГц даёт ровно 10 и 80 отсчётов/с (табл. 2, с. 4). Готовность сигнализирует сам АЦП: пока данных нет, DOUT в высоком уровне, переход в низкий означает, что можно читать.
Отдельно нормировано время установления выхода — 400 мс при RATE = 0 и 50 мс при RATE = 1 — после включения, сброса, смены канала или усиления (табл. 2, прим. 1). Отсчёты, пришедшие раньше, недостоверны, их отбрасывают. Подробнее — в карточке HX711.
Не путать
Время преобразования — не то же, что время выборки АЦП: выборка — только интервал, когда конденсатор устройства выборки-хранения заряжается от входа, а преобразование включает и выборку, и сам расчёт кода. И не то же, что время установления аналогового сигнала на входе: если вход ещё не успокоился, быстрое преобразование честно оцифрует переходный процесс.
Частые вопросы
Почему время преобразования растёт с разрядностью?
Потому что преобразование тем дольше, чем выше разрядность: 93,75 мс при 9 битах и 750 мс при 12 битах, каждый лишний бит удваивает время (DS18B20, AC Electrical Characteristics, табл. 2). Если шага 0,5 °C достаточно, 9-битный режим в восемь раз быстрее.
Как узнать, что DS18B20 закончил преобразование?
При внешнем питании — читать тайм-слоты после команды Convert T [44h]: датчик отвечает 0, пока преобразование идёт, и 1, когда оно закончено. При паразитном питании так нельзя: шину всё время преобразования держит сильная подтяжка, поэтому просто выжидают максимальное tCONV для выбранной разрядности.
HX711 выдаёт 10 отсчётов в секунду — значит, после смены усиления данные готовы через 100 мс?
Нет. После включения, сброса, смены канала или усиления HX711 нужно время установления 400 мс при RATE = 0 и 50 мс при RATE = 1 (HX711 V2.0, табл. 2). Первые отсчёты после переключения отбрасывают.
Источники
- Analog Devices (Maxim Integrated). DS18B20 Programmable Resolution 1-Wire Digital Thermometer, 19-7487, Rev 6, 7/19 — AC Electrical Characteristics: время преобразования tCONV (макс.) 93,75 мс при 9 битах, 187,5 мс при 10, 375 мс при 11, 750 мс при 12; tSPON — включить сильную подтяжку не позже 10 мкс после команды Convert T; Operation — Measuring Temperature: разрешение 9–12 бит соответствует шагу 0,5; 0,25; 0,125; 0,0625 °C, по умолчанию 12 бит; измерение запускает команда Convert T [44h]; при внешнем питании ведущий может читать тайм-слоты — датчик отвечает 0, пока идёт преобразование, и 1 по его окончании; при паразитном питании так нельзя — шину держит сильная подтяжка всё время преобразования; табл. 2: время для R1R0 — tCONV/8, /4, /2 и tCONV
- Avia Semiconductor. HX711 24-Bit Analog-to-Digital Converter (ADC) for Weigh Scales, V2.0 — табл. 2: частота выдачи данных при внутреннем генераторе 10 Гц (RATE = 0) и 80 Гц (RATE = DVDD); при кварце или внешнем тактировании fclk / 1 105 920 и fclk / 138 240; время установления выхода 400 мс (RATE = 0) и 50 мс (RATE = DVDD) — от включения, сброса, смены канала или усиления до достоверных данных; с. 4: кварц 11,0592 МГц даёт точно 10 или 80 отсчётов/с; пока данные не готовы, DOUT в высоком уровне, переход DOUT в низкий означает готовность
Нашли ошибку?
Смотрите также
- DS18B20Датчик температуры 1-Wire: выводы, точность, 9–12 бит, паразитное питание
- HX711АЦП для тензодатчиков: выводы, каналы и усиление, протокол, шум, питание
- 1-WireТайм-слоты, ROM-команды, поиск, CRC8, DS18B20, паразитное питание
- Паразитное питаниеПитание от линии данных 1-Wire: сильная подтяжка, пороги, ограничения
- Время выборки АЦПЗаряд конденсатора выборки и сопротивление источника
- Время установления (settling time)Сколько выход идёт к новому значению с заданной точностью
- Однократное преобразованиеРежим АЦП или датчика: один замер по команде, затем сон до следующей команды