Подключение DS18B20 на 2-х проводах к Atmega16
Подключение DS18B20 на 2-х проводах к Atmega16
Доброго дня всем!
Хотелось бы подключить датчик DS18B20 к Атмеге16 по двухпроводной схеме. По простому варианту не получилось. Имею ввиду соединение ножек датчика + и земля и далее одним проводом на землю устройства, а шину данных притянули к + питания резистором 4,7К. Такое у нас не прошло. Датчик выдает цифру 85 и ни на что не реагирует. При подключении этого датчика по даташиту, то есть с тремя ножками, все работает и температуру на 7 сегментном индикаторе показывает правильно. Хотелось бы избавиться от 3-го проводка на датчике. Схему с мосфетом в даташите видел. Но не хочется усложнять мосфетом схему и прошивку. В интернете вроде пишут, что можно и без мосфета такое делать если иметь библиотеку под это. В моей библиотеке такого вроде нет, да я и новичок совсем с МК. И еще проблема в том что все работают на СИ, а мы с товарищем на Паскале только умеем прошивки писать. Подскажите где можно взять библиотеку на Паскале для 2-х проводного подключения DS18B20 без мосфета. И вообще можно ли в принципе так подключить?
Хотелось бы подключить датчик DS18B20 к Атмеге16 по двухпроводной схеме. По простому варианту не получилось. Имею ввиду соединение ножек датчика + и земля и далее одним проводом на землю устройства, а шину данных притянули к + питания резистором 4,7К. Такое у нас не прошло. Датчик выдает цифру 85 и ни на что не реагирует. При подключении этого датчика по даташиту, то есть с тремя ножками, все работает и температуру на 7 сегментном индикаторе показывает правильно. Хотелось бы избавиться от 3-го проводка на датчике. Схему с мосфетом в даташите видел. Но не хочется усложнять мосфетом схему и прошивку. В интернете вроде пишут, что можно и без мосфета такое делать если иметь библиотеку под это. В моей библиотеке такого вроде нет, да я и новичок совсем с МК. И еще проблема в том что все работают на СИ, а мы с товарищем на Паскале только умеем прошивки писать. Подскажите где можно взять библиотеку на Паскале для 2-х проводного подключения DS18B20 без мосфета. И вообще можно ли в принципе так подключить?
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Подключение DS18B20 на 2-х проводах к Atmega16
Если по 3-ём проводам всё работает, то с программной частью всё в порядке. Она ничем не отличается от подключения по 2-ум проводам. Отличие только в железе.
Какое сопротивление подтяжки стоит ?
Какое сопротивление подтяжки стоит ?
Re: Подключение DS18B20 на 2-х проводах к Atmega16
А какова длина линии? У меня на 3 проводной при увеличении длины(до 10 - 15м) с резистором 4К7 не стал работать, пришлось уменьшить резистор до 2К.
- Starichok51
- Модератор
- Сообщения: 19040
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: Подключение DS18B20 на 2-х проводах к Atmega16
ясное дело, что никому не хочется усложнять схему и ставить мосфет на время конвертации температуры.
дело в том, что во время конвертации увеличивается потребление, и при 2 проводах на резисторе подтяжки образуется дополнительное падение напряжения.
я пробовал делать по 2 проводам при изменении напряжения питания.
я делал термометр с питанием от литиевого аккумулятора и тоже хотел обойтись двумя проводами.
у меня получилось,что датчик начинал врать при снижении питания ниже 3,5 Вольт, когда из-за падения на резисторе стало не хватать напряжения питания для нормальной работы датчика. пришлось, все таки, ставить третий провод.
и ножку "+" датчика нужно оставлять в воздухе, а не соединять с "землей". может, из-за этого соединения конвертация не работала вообще.
и можно еще сопротивление резистора уменьшить, чтобы снизить падение на нем во время конвертации температуры.
дело в том, что во время конвертации увеличивается потребление, и при 2 проводах на резисторе подтяжки образуется дополнительное падение напряжения.
я пробовал делать по 2 проводам при изменении напряжения питания.
я делал термометр с питанием от литиевого аккумулятора и тоже хотел обойтись двумя проводами.
у меня получилось,что датчик начинал врать при снижении питания ниже 3,5 Вольт, когда из-за падения на резисторе стало не хватать напряжения питания для нормальной работы датчика. пришлось, все таки, ставить третий провод.
и ножку "+" датчика нужно оставлять в воздухе, а не соединять с "землей". может, из-за этого соединения конвертация не работала вообще.
и можно еще сопротивление резистора уменьшить, чтобы снизить падение на нем во время конвертации температуры.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Re: Подключение DS18B20 на 2-х проводах к Atmega16
Аlex писал(а):Какое сопротивление подтяжки стоит ?
Сначала пробовали как везде написано 4,7К, потом поставили подстроечник и крутили на нем до 1,2 К. Меньше не делали. Все время показывает 85 град.
alex_ писал(а):А какова длина линии?
Длинна линии 5 метров. Питание 5 вольт.
Добавлено after 16 minutes 4 seconds:
Starichok51 писал(а):и ножку "+" датчика нужно оставлять в воздухе, а не соединять с "землей".
А такое может прокатить если питание 5 вольт от БП?
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Подключение DS18B20 на 2-х проводах к Atmega16
Можно, конечно, попробовать поменьше (ОМ до 600...800) - ничего страшного не случится. Но с 1К один датчик должен работать.dima1967 писал(а):крутили на нем до 1,2 К
Попробуйте, в качестве эксперимента, уменьшить длину линии до минимума. Заработает ли вообще что-нибудь...
Откуда такая информация ? От производителя ?Starichok51 писал(а):ножку "+" датчика нужно оставлять в воздухе, а не соединять с "землей"
Просто первый раз слышу. Всегда соединял "+" и "-" между собой, и всё работало.
Re: Подключение DS18B20 на 2-х проводах к Atmega16
Всё верно.Аlex писал(а):Всегда соединял "+" и "-" между собой, и всё работало.
Из даташита:
Спойлер
- Вложения
-
- DS18B20.PNG
- (160.32 КБ) 3236 скачиваний
Большой опыт, порой, не даёт находить/видеть нам простые и очевидные решения. 
Всегда с уважением, Александр.
Всегда с уважением, Александр.
Re: Подключение DS18B20 на 2-х проводах к Atmega16
Аlex писал(а):Но с 1К один датчик должен работать.
Попробуйте, в качестве эксперимента, уменьшить длину линии до минимума.
Это сегодня вечером обязательно попробую, тем более мне 5 метров и не надо, просто провод такой был и резать не стал. Надежду не теряю....
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Подключение DS18B20 на 2-х проводах к Atmega16
разница в соединении по двум и по трем проводам следующая:
1. раньше выпускались датчики с суффиксом PAR и без оного - первые могли работать на двупроводном интерфейсе, вторым требовался третий провод питания. позже все датчики стали поддерживать паразитное питание.
2. при двупроводном подключении (с паразитным питанием то есть) на время преобразования необходимо (!!!) соделинять DQ и VCC, т.е. подавать питание на линию данных напрямую, а не через резистор.
3. при паразитном питании вывод VCC датчика должен соединяться с выводом GND датчика
таким образом, если есть библиотека, которая работает в 3-проводном режиме, то её легко можно адаптировать к 2-проводному: достаточно после выдачи команды начала преобразования температуры как можно быстрее настроить порт DQ в режим выхода и выдать на него единичку. спустя время преобразования (примерно 800 мс для 12-битного режима) режим работы порта линии DQ восстановить, как был (для семейства AVR это режим входа без подтяжки, как правило). других изменений библиотечка не потребует.
1. раньше выпускались датчики с суффиксом PAR и без оного - первые могли работать на двупроводном интерфейсе, вторым требовался третий провод питания. позже все датчики стали поддерживать паразитное питание.
2. при двупроводном подключении (с паразитным питанием то есть) на время преобразования необходимо (!!!) соделинять DQ и VCC, т.е. подавать питание на линию данных напрямую, а не через резистор.
3. при паразитном питании вывод VCC датчика должен соединяться с выводом GND датчика
таким образом, если есть библиотека, которая работает в 3-проводном режиме, то её легко можно адаптировать к 2-проводному: достаточно после выдачи команды начала преобразования температуры как можно быстрее настроить порт DQ в режим выхода и выдать на него единичку. спустя время преобразования (примерно 800 мс для 12-битного режима) режим работы порта линии DQ восстановить, как был (для семейства AVR это режим входа без подтяжки, как правило). других изменений библиотечка не потребует.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: Подключение DS18B20 на 2-х проводах к Atmega16
1) Неправда.
Изначально все датчики работали в обоих режимах запитывания, потом появились с суффиксом "PAR" работающие исключительно в паразитном режиме питания (выв.3 у них попросту не используется - NC).
2) Необязательно, но крайне рекомендуется производителем (та самая схема с полевиком, которую не хочет собирать ТС).
3) Здесь согласен, выше привёл цитату из даташита (причём самого первого, от Dallas). Для датчиков с суффиксом "PAR" это не имеет значения.

2) Необязательно, но крайне рекомендуется производителем (та самая схема с полевиком, которую не хочет собирать ТС).
3) Здесь согласен, выше привёл цитату из даташита (причём самого первого, от Dallas). Для датчиков с суффиксом "PAR" это не имеет значения.
- Вложения
-
- DS18B20-PAR.PNG
- (18.68 КБ) 8725 скачиваний
Большой опыт, порой, не даёт находить/видеть нам простые и очевидные решения. 
Всегда с уважением, Александр.
Всегда с уважением, Александр.
Re: Подключение DS18B20 на 2-х проводах к Atmega16
Переделка относительно простая.
Единственно обязательный контроль линии на КЗ перед очередным включением и в процессе работы дабы случайно выходной каскад МК не спалить.
При длине проводков до пары метров особых проблем нету. При большей - надо специальный апппаратный блочек ставить (даже и для 3-х проводной при значительном расстоянии). Сам шлейф предпочтительно из телефонного кабла с 4мя жилками.
http://img.radiokot.ru/files/20529/i1yvpkie4.jpg датчик на шлейфе
http://img.radiokot.ru/files/20529/kc1ezblxl.JPG схемка с линейным усилитель/коммутатором
http://img.radiokot.ru/files/20529/1us0r4a0ua.GIF собственно сама схема адаптера
Без адаптера для 3-х проводной длина до 3 метров гарантируется.
Основные прожки предпочтительно на ассемблере делать, хотя и на СИ (если достаточная квалификация) или готовенькое из библиотек адурин.

Единственно обязательный контроль линии на КЗ перед очередным включением и в процессе работы дабы случайно выходной каскад МК не спалить.
При длине проводков до пары метров особых проблем нету. При большей - надо специальный апппаратный блочек ставить (даже и для 3-х проводной при значительном расстоянии). Сам шлейф предпочтительно из телефонного кабла с 4мя жилками.
http://img.radiokot.ru/files/20529/i1yvpkie4.jpg датчик на шлейфе
http://img.radiokot.ru/files/20529/kc1ezblxl.JPG схемка с линейным усилитель/коммутатором
http://img.radiokot.ru/files/20529/1us0r4a0ua.GIF собственно сама схема адаптера
Без адаптера для 3-х проводной длина до 3 метров гарантируется.
Основные прожки предпочтительно на ассемблере делать, хотя и на СИ (если достаточная квалификация) или готовенькое из библиотек адурин.
Re: Подключение DS18B20 на 2-х проводах к Atmega16
ARV писал(а):2. при двупроводном подключении (с паразитным питанием то есть) на время преобразования необходимо (!!!) соделинять DQ и VCC, т.е. подавать питание на линию данных напрямую, а не через резистор.
3. при паразитном питании вывод VCC датчика должен соединяться с выводом GND датчика
Я немного запутался. Как все таки соединять? Ногу данных соединять с ногой питания или с ногой земли?? И без резистора вообще?
ARV писал(а): достаточно после выдачи команды начала преобразования температуры как можно быстрее настроить порт DQ в режим выхода и выдать на него единичку. спустя время преобразования (примерно 800 мс для 12-битного режима) режим работы порта линии DQ восстановить, как был
Так мы попробовали с резистором 1,2 К между ногой данных и + питания, но ничего не вышло. У меня сейчас подключено так: Ноги земли и + питания датчика спаяны вместе и идут на землю МК. А нога данных идет напрямую в порт МК и этот вход притянут резистором 1,2 К к + питания. Мы ему вообще не 800 мкс а больше 1 сек дали.
Подскажите пожалуйста четко как соединить ноги датчика и порт МК чтобы попробовать завести датчик по Вашей методе.
Re: Подключение DS18B20 на 2-х проводах к Atmega16
Соединение согласно даташита
Для работы на начальном этапе (если нет особых навыков по развороту линии порта с ввода на вывод и обратно) лучше использовать включенные параллельно выводы МК, один из которых настроен как выход, а второй как вход.
И почитайте таки матчасть...
можеть чего и проясниться...

Для работы на начальном этапе (если нет особых навыков по развороту линии порта с ввода на вывод и обратно) лучше использовать включенные параллельно выводы МК, один из которых настроен как выход, а второй как вход.
И почитайте таки матчасть...
можеть чего и проясниться...
- Starichok51
- Модератор
- Сообщения: 19040
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: Подключение DS18B20 на 2-х проводах к Atmega16
извиняюсь, я был невнимателен при чтении даташита, и свои эксперименты проводил с ногой питания, висящей в воздухе.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Re: Подключение DS18B20 на 2-х проводах к Atmega16
У так называемого "паразита" лапка питания вообще НЕ ПОДКЛЮЧЕНА (NC).
(пардонс за дубль даташита
)
Так что вполне оправданная ошибка при наличии таковых разновидностей в лапах.

(пардонс за дубль даташита
Так что вполне оправданная ошибка при наличии таковых разновидностей в лапах.

-
borys
- Держит паяльник хвостом
- Сообщения: 927
- Зарегистрирован: Вт сен 07, 2010 19:27:48
- Откуда: Ташкент
Re: Подключение DS18B20 на 2-х проводах к Atmega16
Непонятно только одно - почему так необходимо именно двухпроводное подключение?
Неужели так подорожали провода? При двухпроводном подключении эти датчики просто
не будут работать по настоящему хорошо. В даташите об этом говорится и практика
подтверждает.
Неужели так подорожали провода? При двухпроводном подключении эти датчики просто
не будут работать по настоящему хорошо. В даташите об этом говорится и практика
подтверждает.
- vlasovzloy
- Друг Кота
- Сообщения: 20067
- Зарегистрирован: Чт янв 26, 2012 16:44:29
- Откуда: Таксимо
Re: Подключение DS18B20 на 2-х проводах к Atmega16
да много случаев, в холодтльнике например двух проводные и просто так не просунешь, все запенено
Добавлено after 16 minutes:
а если через шотти конденсатор побольше емость заряжать на vdd, дать паузу при включении для зарядки конденсатора несколько секунд? даллас же молчит изначально пока к нему не обратились
Добавлено after 16 minutes:
а если через шотти конденсатор побольше емость заряжать на vdd, дать паузу при включении для зарядки конденсатора несколько секунд? даллас же молчит изначально пока к нему не обратились
Мои поставщики запчастей с отличной репутацией
texnomag.ru
radioremont.com
pl-1.org
4ip.info
elitan.ru
texnomag.ru
radioremont.com
pl-1.org
4ip.info
elitan.ru
Re: Подключение DS18B20 на 2-х проводах к Atmega16
Так и делается.
Только доки/аппноты не относительно DS18x20 который чаще всего встречается в радиолюбительских конструкциях,
а документацию на IBiutton читать надо.
Воть подборка переводного минимума в одной кучке:
и сам хэндбук

Только доки/аппноты не относительно DS18x20 который чаще всего встречается в радиолюбительских конструкциях,
а документацию на IBiutton читать надо.
Воть подборка переводного минимума в одной кучке:
и сам хэндбук
- vlasovzloy
- Друг Кота
- Сообщения: 20067
- Зарегистрирован: Чт янв 26, 2012 16:44:29
- Откуда: Таксимо
Re: Подключение DS18B20 на 2-х проводах к Atmega16
Я предлагаю к обычному однопроводному интерфейсу резистор 2 кОма например или меньше, лижбы авр вытянула. А на стороне далласа диод шотки с выхода на питание и конденсатор побольше. При включении держим паузу чтобы емкость зарядилась. Или даже еще лучше дсдс какойто мелкий возле далласа от 1,5 вольт или меньше как в сигналках
Мои поставщики запчастей с отличной репутацией
texnomag.ru
radioremont.com
pl-1.org
4ip.info
elitan.ru
texnomag.ru
radioremont.com
pl-1.org
4ip.info
elitan.ru
Re: Подключение DS18B20 на 2-х проводах к Atmega16
При "двухпроводном" питание не через резистор, а через открытый ключ.
Частный случай - разворот вывода МК на выход и подача в линию уровня 1,
а при работе тот же вывод в режиме входа с внешним резистором в 2,3-3,6 килоома.
Как вариант - внешний "верхний ключ" и/или отдельный вывод МК.

Частный случай - разворот вывода МК на выход и подача в линию уровня 1,
а при работе тот же вывод в режиме входа с внешним резистором в 2,3-3,6 килоома.
Как вариант - внешний "верхний ключ" и/или отдельный вывод МК.