Обсуждаем контроллеры компании Atmel.
Ответить

Подключение DS18B20 на 2-х проводах к Atmega16

Вт апр 30, 2019 20:37:03

Доброго дня всем!

Хотелось бы подключить датчик DS18B20 к Атмеге16 по двухпроводной схеме. По простому варианту не получилось. Имею ввиду соединение ножек датчика + и земля и далее одним проводом на землю устройства, а шину данных притянули к + питания резистором 4,7К. Такое у нас не прошло. Датчик выдает цифру 85 и ни на что не реагирует. При подключении этого датчика по даташиту, то есть с тремя ножками, все работает и температуру на 7 сегментном индикаторе показывает правильно. Хотелось бы избавиться от 3-го проводка на датчике. Схему с мосфетом в даташите видел. Но не хочется усложнять мосфетом схему и прошивку. В интернете вроде пишут, что можно и без мосфета такое делать если иметь библиотеку под это. В моей библиотеке такого вроде нет, да я и новичок совсем с МК. И еще проблема в том что все работают на СИ, а мы с товарищем на Паскале только умеем прошивки писать. Подскажите где можно взять библиотеку на Паскале для 2-х проводного подключения DS18B20 без мосфета. И вообще можно ли в принципе так подключить?

Re: Подключение DS18B20 на 2-х проводах к Atmega16

Ср май 01, 2019 00:16:21

Если по 3-ём проводам всё работает, то с программной частью всё в порядке. Она ничем не отличается от подключения по 2-ум проводам. Отличие только в железе.
Какое сопротивление подтяжки стоит ?

Re: Подключение DS18B20 на 2-х проводах к Atmega16

Ср май 01, 2019 07:33:25

А какова длина линии? У меня на 3 проводной при увеличении длины(до 10 - 15м) с резистором 4К7 не стал работать, пришлось уменьшить резистор до 2К.

Re: Подключение DS18B20 на 2-х проводах к Atmega16

Ср май 01, 2019 08:04:03

ясное дело, что никому не хочется усложнять схему и ставить мосфет на время конвертации температуры.
дело в том, что во время конвертации увеличивается потребление, и при 2 проводах на резисторе подтяжки образуется дополнительное падение напряжения.
я пробовал делать по 2 проводам при изменении напряжения питания.
я делал термометр с питанием от литиевого аккумулятора и тоже хотел обойтись двумя проводами.
у меня получилось,что датчик начинал врать при снижении питания ниже 3,5 Вольт, когда из-за падения на резисторе стало не хватать напряжения питания для нормальной работы датчика. пришлось, все таки, ставить третий провод.

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

Re: Подключение DS18B20 на 2-х проводах к Atmega16

Ср май 01, 2019 09:37:00

Аlex писал(а):Какое сопротивление подтяжки стоит ?

Сначала пробовали как везде написано 4,7К, потом поставили подстроечник и крутили на нем до 1,2 К. Меньше не делали. Все время показывает 85 град.
alex_ писал(а):А какова длина линии?

Длинна линии 5 метров. Питание 5 вольт.

Добавлено after 16 minutes 4 seconds:
Starichok51 писал(а):и ножку "+" датчика нужно оставлять в воздухе, а не соединять с "землей".

А такое может прокатить если питание 5 вольт от БП?

Re: Подключение DS18B20 на 2-х проводах к Atmega16

Ср май 01, 2019 10:21:39

dima1967 писал(а):крутили на нем до 1,2 К
Можно, конечно, попробовать поменьше (ОМ до 600...800) - ничего страшного не случится. Но с 1К один датчик должен работать.
Попробуйте, в качестве эксперимента, уменьшить длину линии до минимума. Заработает ли вообще что-нибудь...

Starichok51 писал(а):ножку "+" датчика нужно оставлять в воздухе, а не соединять с "землей"
Откуда такая информация ? От производителя ?
Просто первый раз слышу. Всегда соединял "+" и "-" между собой, и всё работало.

Re: Подключение DS18B20 на 2-х проводах к Atmega16

Ср май 01, 2019 13:13:25

Аlex писал(а):Всегда соединял "+" и "-" между собой, и всё работало.
Всё верно.
Из даташита:
СпойлерИзображение
Вложения
DS18B20.PNG
(160.32 KiB) Скачиваний: 1375

Re: Подключение DS18B20 на 2-х проводах к Atmega16

Ср май 01, 2019 13:27:12

Аlex писал(а):Но с 1К один датчик должен работать.
Попробуйте, в качестве эксперимента, уменьшить длину линии до минимума.

Это сегодня вечером обязательно попробую, тем более мне 5 метров и не надо, просто провод такой был и резать не стал. Надежду не теряю.... :))

Re: Подключение DS18B20 на 2-х проводах к Atmega16

Ср май 01, 2019 16:06:54

разница в соединении по двум и по трем проводам следующая:
1. раньше выпускались датчики с суффиксом PAR и без оного - первые могли работать на двупроводном интерфейсе, вторым требовался третий провод питания. позже все датчики стали поддерживать паразитное питание.
2. при двупроводном подключении (с паразитным питанием то есть) на время преобразования необходимо (!!!) соделинять DQ и VCC, т.е. подавать питание на линию данных напрямую, а не через резистор.
3. при паразитном питании вывод VCC датчика должен соединяться с выводом GND датчика

таким образом, если есть библиотека, которая работает в 3-проводном режиме, то её легко можно адаптировать к 2-проводному: достаточно после выдачи команды начала преобразования температуры как можно быстрее настроить порт DQ в режим выхода и выдать на него единичку. спустя время преобразования (примерно 800 мс для 12-битного режима) режим работы порта линии DQ восстановить, как был (для семейства AVR это режим входа без подтяжки, как правило). других изменений библиотечка не потребует.

Re: Подключение DS18B20 на 2-х проводах к Atmega16

Ср май 01, 2019 16:29:10

1) Неправда. :? Изначально все датчики работали в обоих режимах запитывания, потом появились с суффиксом "PAR" работающие исключительно в паразитном режиме питания (выв.3 у них попросту не используется - NC).
2) Необязательно, но крайне рекомендуется производителем (та самая схема с полевиком, которую не хочет собирать ТС).
3) Здесь согласен, выше привёл цитату из даташита (причём самого первого, от Dallas). Для датчиков с суффиксом "PAR" это не имеет значения.

Изображение
Вложения
DS18B20-PAR.PNG
(18.68 KiB) Скачиваний: 6965

Re: Подключение DS18B20 на 2-х проводах к Atmega16

Ср май 01, 2019 17:49:37

Переделка относительно простая.
Единственно обязательный контроль линии на КЗ перед очередным включением и в процессе работы дабы случайно выходной каскад МК не спалить.
При длине проводков до пары метров особых проблем нету. При большей - надо специальный апппаратный блочек ставить (даже и для 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 метров гарантируется.
Основные прожки предпочтительно на ассемблере делать, хотя и на СИ (если достаточная квалификация) или готовенькое из библиотек адурин.
8)

Re: Подключение DS18B20 на 2-х проводах к Atmega16

Ср май 01, 2019 17:57:46

ARV писал(а):2. при двупроводном подключении (с паразитным питанием то есть) на время преобразования необходимо (!!!) соделинять DQ и VCC, т.е. подавать питание на линию данных напрямую, а не через резистор.
3. при паразитном питании вывод VCC датчика должен соединяться с выводом GND датчика

Я немного запутался. Как все таки соединять? Ногу данных соединять с ногой питания или с ногой земли?? И без резистора вообще?
ARV писал(а): достаточно после выдачи команды начала преобразования температуры как можно быстрее настроить порт DQ в режим выхода и выдать на него единичку. спустя время преобразования (примерно 800 мс для 12-битного режима) режим работы порта линии DQ восстановить, как был

Так мы попробовали с резистором 1,2 К между ногой данных и + питания, но ничего не вышло. У меня сейчас подключено так: Ноги земли и + питания датчика спаяны вместе и идут на землю МК. А нога данных идет напрямую в порт МК и этот вход притянут резистором 1,2 К к + питания. Мы ему вообще не 800 мкс а больше 1 сек дали.
Подскажите пожалуйста четко как соединить ноги датчика и порт МК чтобы попробовать завести датчик по Вашей методе.

Re: Подключение DS18B20 на 2-х проводах к Atmega16

Ср май 01, 2019 19:28:46

Соединение согласно даташита
DS18B20.pdf
(218.99 KiB) Скачиваний: 344

Для работы на начальном этапе (если нет особых навыков по развороту линии порта с ввода на вывод и обратно) лучше использовать включенные параллельно выводы МК, один из которых настроен как выход, а второй как вход.
И почитайте таки матчасть...
IB2_AN132ru.pdf
(235.78 KiB) Скачиваний: 281

aрр148ru_p.pdf
(450.65 KiB) Скачиваний: 240

можеть чего и проясниться...
8)

Re: Подключение DS18B20 на 2-х проводах к Atmega16

Чт май 02, 2019 07:04:41

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

Re: Подключение DS18B20 на 2-х проводах к Atmega16

Чт май 02, 2019 08:22:54

У так называемого "паразита" лапка питания вообще НЕ ПОДКЛЮЧЕНА (NC).
DS18B20-PAR.pdf
(221.6 KiB) Скачиваний: 271
(пардонс за дубль даташита :oops: )
Так что вполне оправданная ошибка при наличии таковых разновидностей в лапах.
:beer:

Re: Подключение DS18B20 на 2-х проводах к Atmega16

Пт май 03, 2019 17:48:45

Непонятно только одно - почему так необходимо именно двухпроводное подключение?
Неужели так подорожали провода? При двухпроводном подключении эти датчики просто
не будут работать по настоящему хорошо. В даташите об этом говорится и практика
подтверждает.

Re: Подключение DS18B20 на 2-х проводах к Atmega16

Пт май 03, 2019 21:17:09

да много случаев, в холодтльнике например двух проводные и просто так не просунешь, все запенено

Добавлено after 16 minutes:
а если через шотти конденсатор побольше емость заряжать на vdd, дать паузу при включении для зарядки конденсатора несколько секунд? даллас же молчит изначально пока к нему не обратились

Re: Подключение DS18B20 на 2-х проводах к Atmega16

Сб май 04, 2019 08:20:41

Так и делается.
Только доки/аппноты не относительно DS18x20 который чаще всего встречается в радиолюбительских конструкциях,
а документацию на IBiutton читать надо.
Воть подборка переводного минимума в одной кучке:
app155ru.pdf
(503.19 KiB) Скачиваний: 622

aрр148ru_p.pdf
(450.65 KiB) Скачиваний: 225

IB2_AN132ru.pdf
(235.78 KiB) Скачиваний: 216

IB2_AN192ru.pdf
(257.52 KiB) Скачиваний: 225

и сам хэндбук
i_button hendbook.pdf
(1.01 MiB) Скачиваний: 356

8)

Re: Подключение DS18B20 на 2-х проводах к Atmega16

Сб май 04, 2019 09:46:57

Я предлагаю к обычному однопроводному интерфейсу резистор 2 кОма например или меньше, лижбы авр вытянула. А на стороне далласа диод шотки с выхода на питание и конденсатор побольше. При включении держим паузу чтобы емкость зарядилась. Или даже еще лучше дсдс какойто мелкий возле далласа от 1,5 вольт или меньше как в сигналках

Re: Подключение DS18B20 на 2-х проводах к Atmega16

Сб май 04, 2019 10:13:23

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