Статья предназначена для специалистов и продвинутых радиолюбителей. Она касается всех систем с датчиками DS18B20, а также - всех других систем с контактами и микроамперными токами, протекающими через них.
Хочу рассказать свои мысли по вопросу соединения и разводки термодатчиков.
В техподдержке Кситала мне сообщили следующее:
Все термодатчики должны быть соединены почти строго "в линию", без длинных ответвлений "в сторону" (максимум 20см). Это необходимо якобы потому, что в противном случает получается несогласованная по волновому сопротивлению линия и якобы за счет отражений система показывает в результате либо +85оС, либо прочерк вместо температуры. И добавляют, что оба этих результата могут быть также по причине плохого контакта в разъемах.
На мой вопрос " - какова тактовая частота на шине?" получил ответ "- низкая".
Я не очень понимаю такую логику "отражений" потому, что на длинах в единицы-десятки метров и низкой тактовой частоте волновое сопротивление и его согласование не имеет никакого значения. А также - из-за "странного" совпадения с причиной "плохой контакт".
Итак, я считаю, что причина периодического искажения результатов замера температуры - именно плохой контакт (исключение - Примечание 2):
Дело в том, что при микроамперных токах (а входной ток датчика DS18B20 наверняка мизерный), контакты через которые течет этот ток могут быть слегка окислены, или загрязнены и микроток банально не пробивает этот зазор, в отличие от миллиамперных и более высоких токов. Эффект этот специалистам известен. Т.е., если сигнал на шине проходит через контакты, то ему нужен "заметный" ток, причем, что очень важно - этот повышенный ток должен проходить через абсолютно все сигнальные контакты шины (через все последовательно соединенные разъемы).
Т.е., для того, чтобы контакт стал лучше нужен ток побольше, чем микроамперы - хотя бы (очень приблизительно) от 1 миллиампера. Возможно, что не случайно на схемах с использованием DS18B20 с линии данных на питание всегда нарисован резистор 4,7кОм, что как раз обеспечит ток около 1мА.
Как же правильно организовать (улучшить) бессбойный обмен информацией с такими датчиками?
Есть 4 варианта:
1. Рабоче-крестьянский (для пользователей): при проблемах промывать/чистить контакты, или заменять разъемы (тройники там обычные, их телефонные аналоги продаются во "всех" магазинах).
Остальные варианты - "профессиональные", для разработчиков Кситала (впрочем хороший радио-монтажник сможет это переделать и самостоятельно):
2. Он, правда, не идеально соответствует логике использования датчиков с разными длинами проводов: надо подводить к каждому датчику 2 провода, но обязательно оба их запаивать на ножке датчика, а не пропускать, как сейчас сделано через дополнительный тройник. И тоже обязательно на обоих концах нашей шины (на дальнем датчике и в самом Кситале должны быть установлены резисторы примерно по 10кОм (чтобы в сумме было около 4,7кОм).
3. Диапазон допустимых нагрузочных сопротивлений шины, равный 1-5,1кОм дает нам третий вариант - возможность подключить простейшим путем до 9-ти датчиков (и других устройств), зашунтировав на питание вход каждого резистором 10кОм. В блоке Кситал - тоже резистор, 10кОм.
В этом случае не нужна единая шинная линия, а можно произвольно соединять датчики через удобно расположенные разъемы. Только резисторы надо припаять прямо на датчиках.
4. Есть и четвертый вариант более корректного подключения датчиков на шину Кситала - "паразитный" способ питания по двухпроводной шине.
Если использовать "паразитный" способ питания датчика, то ток через "входные" контакты разветвителей будет складываться из входного тока в сигнальный вход и тока питания датчика, что в сумме в несколько раз больше, чем только входной ток.
Поискал в документации на датчик - ток потребления датчика может достигать 1,5мА, что вполне можно считать четвертым вариантом. Правда, при это будет несколько ограничена суммарная длина используемых проводов - до 50 метров. Хотя, я бы резисторы все равно ставил (см. Примечания).
***
Считаю оптимальным 3-ий вариант и предлагаю разработчикам Кситала его реализовать в своих последующих системах.
Примечания:
1. Вообще-то, со всех точек зрения суммарное сопротивление всех резисторов на линии (шине) лучше сделать минимально допустимым, то есть - около 1 кОма.
2. Кстати, длинные провода к датчикам являются хорошими приемными антеннами для помех. Указанные мной резисторы, кроме вышесказанного еще и снизят входное сопротивление этих антенн и, как следствие, снизят уровень помехи в системе.
Можно еще почитать: О погрешностях измерений на примере датчика DS18B20.
На всякий случай привожу раскладку разъема.
![]()
