Два onewire интерфейса, по одному датчику DS18B20 на каждый.

SVP
Offline
Зарегистрирован: 16.04.2012

Хочется подвесить два датчика. Каждый к СВОЕМУ пину.

Сделать это нужно для того, чтобы их было легко менять.

Не могу понять, как их изолировать друг от друга.

Хочу использовать паразитную схему питания. Питание подается к той-же ножке, что данные.

Схема (не пойму как добавить в сообщение) http://www.mikrocontroller.net/attachment/121200/parasitaer.PNG

Удваивая получаю, что оба пина аурдины будут соединены через питание.

Каким-то образом можно это предотвратить ?

Была идея поставить конденсатор, но он не только отгородит один пин от другого, но поди и всю шину убъет...

 

SVP
Offline
Зарегистрирован: 16.04.2012

ЗЫ. И еще один вопрос вдогонку. В доках уговаривают питать напрямую питанием во время подсчета температуры.

Опыты показали, что даже для 12бит это не нужно, работает и без подпитки дополнительной.

Это повезло с термометрами, или проблемы будут "потом" ?  Или просто в доках перестраховываются.

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

У датчиков будет общий источник питания - чего страшного? Или нужны гвальванически развязанные датчики? Через питание ничего не будет соединяться - источник питания имеет маленькое внутреннее сопротивление (но мнительные могут поставить диоды :) ). Ноги подтягивать все равно придется внешними резисторами.

SVP
Offline
Зарегистрирован: 16.04.2012

У меня питание подается на шину данных.

И на 1, и на 2. Получается что оба пина "соединены" друг с другом.

Или резистор на 4.7кОм их "отгораживает" ?

 

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Оба пина соедены (через резистор) с питанием, а не друг с другом

SVP
Offline
Зарегистрирован: 16.04.2012

Ну питание-то у них одно, получается что через резистор они соединены друг с другом (точнее через два резистора).

На практике вроде как работает, но хотелось бы понять "почему". Резисторы "давят" сигнал ниже уровня обнаружения ?

Странно то, что для одного из каналов стабильность близка к 100%, а для другого 2-5% ошибок при получении значений температуры. Причем такое чувство, что чем сильнее он греется, тем хуже  работает, при 30оС почти 100% срабатываний, при 70оС, почти 5% ошибок.

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Они могут видеть друг друга через питание только в одном случае - если птание крайне дохлое! У нормального блока питания внутреннее сопротивление близко к нулю, по крайнер мере, меньше 1 ома. А Вы ему 4,7 кОм :) Не думаю, чтобы блок питания что-то заметил :) Нарисуйте эквивалентную схему по переменному току - и все поймете. Блк питания по переменному току в эквивалентной схеме представляет собой короткое замыкание на землю.

SVP
Offline
Зарегистрирован: 16.04.2012

Чую тупой я сегодня.

Рисую. (сори ссылка на радикал, ничего лучше я не нашел).

http://s53.radikal.ru/i140/1204/4e/410db0f8d322.jpg

Показана только схема подключения центрального вывода датчика.

Сейчас подключено по верхней схеме, работает, точка "соединения проводников идущих от пинов" помечена красным.

В этом месте нет проблем за счет того, что все управляющие импульсы с пина "гасятся" резистором ?

 

Есть вариант нижней схемы, отличие в том, что соединение "+5в" происходит до резистора, а не после.

Так, вроде бы не работает, но и не должно ведь, или должно ?

 

Я всё пытаюсь понять "причем тут сам по себе источник питания".  

Верно ли то, что резистор "отрезает" один onewire от другого ?

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

По нижней схеме будет работать только если обращаться к датчику по номеру, второй пин соответственно, нужно выбросить из схемы, и нужен будет только 1 резистор, но для "горячей замены" этот вариант не подойдет.

Управляющие импульсы не гасятся резисторами, через резисторы просто подтягивается линия к питанию. "Гасят" - обозначает "уменьшают амплитуду" - бывает, когда резистор с сигнала на землю кидают, а сопротивление источника сигнала велико.

Сам по себе источник питания очень причем, потому что Вы к нему подключаетесь. Или я не прав? Или у вас "+5V" - это обозначение такое, а вовсе не питание от блока питания 5 вольт?

Если Вам все еще непонятно, почему мимо блока питания сигнал не проходит, то представте из точки "+5В" большой конденсатор на массу (который, кстати, стоит на выходе БП), который блокирует прохождение сигнала.

Больше объяснять не буду - устал. Боюсь, как бы админ не забанил за переливание из пустого в порожнее :)

leshak
Offline
Зарегистрирован: 29.09.2011

 >Нарисуйте эквивалентную схему по переменному току - и все поймете

Да вы юморист. Тут не все с законом Ома на ты, так что слова ""эквивалентную схему по переменному току" вообще в каматоз вогнать могут (меня вогнало ;)  ).

Да и "сопротивление источника питания", "большой конденсатор".... оно все правильно. Только непонятно :)

>Резисторы "давят" сигнал ниже уровня обнаружения

Если "очень грубо", то - да.

У вас есть схеме (линия1) - R1 - 5V - R2 - (линия2).

Чуть чуть упрощаяем задачу. Переформулируем вопрос так: может ли Линия1, как-то повлиять на 5V? Если не может, то что-там дальше происходит на R2-(линия2) - не важно. Линия2 об этом никогда не узнает.

Итак: может ли "линия1" влиять на 5v? Предположим что на ней логическая единица, то есть 5 вольт. Значит на обоих концах R1 - имеется 5-ть вольт, и ток через него вообще не идет. Влияния нет даже теоретически. Теперь предположим что на Линия1 у нас логический ноль. Через резистор R1 пойдет ток ~1 милиампер. Такой мизирный ток, естественно не сможет "просадить" наш источник питания, заставить его упасть хоть как-то "ощутимо". Отсюда следует, что на R2 уже никогда и никак не узнает что там делает линия1.

Если в "водопроводной терминологии". Представте себе что у вас есть водопровод с давлением 5-атмосфер (5v). И обязательством водоканала "удерживать это давление при суммарном потреблении дома до 500 литров в секунду" (водоканал - это наш источник питания). Теперь вы спрашиваете "если я приоткрою кран и буду потреблять 1 грамм воды в секунда, смогу ли я заметить момент когда сосед тоже откроет свой кран (4.7K) на 1 грамм воды в секунду". Очевидно, что глядя на свой кран, такое мизерное потребление соседа - вы заметить не сможете. Тем более что как только сосед "откроет кран", водоканал увеличит подачу воду, ровно на этот грамм, что-бы "удержать давление".  Вы друг-другу мешать "никак не будете", хотя и соеденены с ним общим стояком водопроводным.

>Причем такое чувство, что чем сильнее он греется, тем хуже работает,

А это и есть оборотная сторона медали "паразитного питания". Сейчас лень искать, но помоему где-то в даташите было что выше 100C вообще паразитное нельзя использовать. Как работает "паразитное"? Внутри есть конденсатор. Который в паузах между измерениями заряжается с линии. В момент измерения используется его энергия. Его "запас". Этот кондер, при изменении температуры, естественно может менять свои характеристики (емкость). И его "запаса" может начать не хватать.

Или "меряете слишком часто", не успевает зарядится. Или чуть хуже припаян и питание ему попадает "чуть ниже"... и т.п.

Вообщем для того и советуют "давайте питание напрямую", что-бы не ловить вот такие баги.

 

leshak
Offline
Зарегистрирован: 29.09.2011

 Ну или еще одна аналогия. Более близкая.

Представте себе, что вы с другом, через тройник подключили к одной розетке две настольные лампы. И каждый клацает выключателем своей лампы - подает сигналы. Будут лампы как-то влиять друг на друга? Очевидно нет. Мощности розетки хватит на обоих. В ней будет стабильные 220.

А вот если друг возмет, вместо лампы, сварочный аппарат, и начнет "мигать им", то либо ваша лампа начнет "пригасать" (проседает питание), либо пробки выбъет (сгорит истоник питания, либо защита сработает).

Что у вас в данный момент "слабенькая лампочка" или "сварочный аппарат" - зависит вот от этого резистора в 4.7K. Он как раз и ограничивает сколько тока потребляет ваша схема, когда линия падает в ноль. Сколько именно - считается по закону Ома.

Теоретически "просадить линию" вы можете еще одним способом. В момент зарядки этого "паразитного питания". Через транзистор когда идет ток. Но если "питание просаживает" из-за этого, то значит "источник питания работает в запредельном режиме". Не думаю что в официальном апноуте дана схема которая может приводить к такому. Скорее всего зарядка этого кондера - тоже идет не сильно большим током. Значит и эта причину как "влияющую" - можно отбросить.

SVP
Offline
Зарегистрирован: 16.04.2012

Да, пришлось дать питание напрямую и вроде бы заработало нормально.

Я исходил в своих оценках во многом из простой логики, нежели из неких [глубоких] знаний.

Очевидно, что в схеме с одним пином и датчиком всё работает, значит 5V "изолированы" достаточно для того, чтобы состояние пина влияло на ситуацию, а источник нет. 

С кранами аналогия хорошая. Единственный момент: а зачем вообще нужен этот резистор и соединение с источником питания, если через него идет столь микроскопический ток ?   Вроде бы через пин идут десятки миллиампер, зачем нужен "еще один миллиампер" ?

 

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

leshak пишет:

Да вы юморист. Тут не все с законом Ома на ты, так что слова ""эквивалентную схему по переменному току" вообще в каматоз вогнать могут (меня вогнало ;)  ).

... а Вы - Писатель :) У меня бы терпения не хватило (хотя мысль про водопровод была). Извините, если кому-то показалось заумным, просто привычка на техническом форуме писать техническим языком. Если человеку недостаточно ответа "нет", он хочет знать "почему" - то ему прямая дорога познакомится и с законом Ома, и с законами Кирхгофа (как бы страшно не звучали названия)

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

SVP пишет:

С кранами аналогия хорошая. Единственный момент: а зачем вообще нужен этот резистор и соединение с источником питания, если через него идет столь микроскопический ток ?   Вроде бы через пин идут десятки миллиампер, зачем нужен "еще один миллиампер" ?

Через пин текут десятки миллиампер тогда, когда он является выходом и к нему подцеплен потребитель (светодиод, например). Когда он "вход", то он просто "смотрит" - есть напряжение или нет напряжения (1 или 0), через него течет очень маленький ток - микроамперы какие-то. А резистор тот - подающий 1 мА - нужен датчику, чтобы он мог правильно формировать на своем выходе те самые 1 и 0.

SVP
Offline
Зарегистрирован: 16.04.2012

 Т.е. это фактически дополнительное питание для датчика... понятно...

Непонятно зачем оно нужно в ситуации, когда датчик запитан по отдельной ноге.

Вероятно такое конструктивное решение... 

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Это подтяжка. Выход датчика имеет "открытый коллектор" для безболезненного соединения датчиков в параллель ("монтажное или"). Иначе говоря, датчик не может установить высокое напряжение на выходе - это делает за него резистор подтяжки, а датчик "притягивает" резистор к 0 - устанавливает логический ноль.

leshak
Offline
Зарегистрирован: 29.09.2011

2AlexFisher:

 > Извините, если кому-то показалось заумным, просто привычка на техническом форуме писать техническим языком.

Ну что-вы. К вам никаких претензий. Люди на форуме разные. Кто-то "строгое" объяснения поймет, кто-то "туманно-ассоциативное". Ведь еще могут быть люди которые в ветке не участвуют, но читают. Или потом поиском наткнутся. А кому-то после "ассоциативного", ваше станет понятным (идеальный вариант). Так что "мои объяснения" это дополнения к вашему, а не замена.

То что на форуме есть человек который может описать техническим языком - это здорово. Это нужно. Тем более что "ассоциации" это костыль. Упрощение действительности. Могут и подвести конкретно.

Ваши объяснения, даже если и непонятны, - все равно полезны. Хотя-бы знаешь "о чем спросить гугл".

>и с законами Кирхгофа

Вот не повезло человеку с имечком :)  Сколько раз видел, что как-только говоришь "почитай про законы Кирхгофа" - сразу ужас в глазах ;) Хотя их даже законами назвать трудно... практически голый "здравый смысл".

2SVP:

>а зачем вообще нужен этот резистор и соединение с источником питания, если через него идет столь микроскопический ток

Вот для того, что-бы он был "микроскопическим" он и нужен. Или вы ходите "вообще его выкинуть"?

>Вроде бы через пин идут десятки миллиампер, зачем нужен "еще один миллиампер"

Через пин - не идут. Пин ардуины у вас включен на вход. Он как-бы только "слушает линию". Ничего в нее "не выдает". И датчик - тоже. Он умеет только "придавливать линию к нулю" (подключать ее к земле). Сам в нее он 5v - не выдает. Он просто ее "отпускает". Отключается от нее. И она болтается как "просто проводок". Ловит помехи из эфира. И на ней может быть "что угодно". Что-бы она не болталась "в воздухе", нужно гарантировать что когда ее "никто не прижимает к земле" на нем была логическая единица. 5 вольт. Вот этим и занимается этот 4.7K. Делает на ней потенциал 5v (ток не важен, вход ардуино смотрит на потенциал в линии, а не какой ток через него идет). Резистор гарантирует что когда линию "никто не подключает к нулю" на ней образуется 5v.

Этот 4.7K - обычный подтягивающий резистор (PullUp). Вот тут можете почитать про это подробней http://easyelectronics.ru/avr-uchebnyj-kurs-ustrojstvo-i-rabota-portov-vvoda-vyvoda.html  

Мужичек с именем PullUp, на картинках, это и есть ваш 4.7K

 

SVP
Offline
Зарегистрирован: 16.04.2012

Да, не скрою, хотелось бы выкинуть :).  

Впрочем всё уже запаяно.

Раз уж мы углубились в дебри, хотелось бы понять почему датчик не снабжен своим резистором на 4.7ком прямо у себя в корпусе, соединяющим линию 5V и центральную ногу" ?  

Просто "пожидились", или есть какая-то логика ?

К  примеру номиналы нужны разные для разных источников... но вроде бы ему строго 5V надо ?

Или это необходимая плата за универсальность подключения (2-3 ноги) ?

Логику того, зачем тащить это наружу пока не понял.

 

leshak
Offline
Зарегистрирован: 29.09.2011

 >хотелось бы понять почему датчик не снабжен своим резистором на 4.7ком прямо у себя в корпусе, соединяющим линию 5V и центральную ногу"

1. Во первых, потому что линии 5V у него может и не быть (на паразитном питании) - ему банально не к чему подключать этот резистор.  А иметь сильно разные схемы при подключении "на паразитном" и "нормальном" - тоже не хорошо.

2. Потому что на линии может висеть несколько датчиков (или других устройств). Если у каждого из них будет свой 4.7K, то получится что эти резисторы подключеные паралельно. Если датчиков будет десяток, то у вас получится в результате резистор 0.47K и ток пойдет в 10-ть раз больше

3. Датчики могут "отключатся/подключатся" физически. Если резистор "в датчике", то при физическом отключении датчика он тоже уйдет лесом, и на вход начнет поступать "мусор". А так "датчик отключили" и на входе остались "предсказуемые 5v".

4. Потому что есть стандарт шины. Где прописанно что линия данных должна быть подтянута к питинию. И все производители, любых датчиков, на это расчитывают.

 

>К примеру номиналы нужны разные для разных источников

Ну наверное, я не шибко понял вопрос. Слишком абстрактно. 

>но вроде бы ему строго 5V надо

Ну это на даташит смотрите. Там описанно что надо и что допустимо. Сама ардуина поймет как логическую единицу и меньше 5v. Там есть "зазор на погрешности". Насколько меньше "дозволяется" 5V - опять-таки смотрите в документации (если действительно это нужно).