Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Термодатчики DS18x20 от Dallas
Форум разработчиков электроники ELECTRONIX.ru > Поставщики компонентов для электроники > Компоненты
VadikT
Всем привет!
Если кто работал с DS18x20, давайте поговорим о глюках этого устройства.

Я столкнулся, буквально в первый раз использования этого девайса серии B7, с таким глюком: на след. день работы подал питание и обнаружил, что один из датчиков отдает мне температуру с враньем в +60 с чем-то градусов. В доке про это ничего не сказано. Проверил софт - все нормально. Начал искать.
В доке одним предложением упомянуто, что датчики калиброваны для достижения точности в +-0,5 гр. С. Размышлял так: датчик цифровой и, если калиброван, значит, где-то должны храниться калибровочные коэффициенты. Раз кристалл работает с EEPROM, значит, там и должны храниться. Но в доке про это не найдете ни слова!
Позвонил в Rainbow, рассказал о своей проблеме и свое предположение. Неохотно, но все же мне рассказали, что серию B7 особо коснулась проблема "слетания" EEPROM при подаче питания, что у меня и произошло на второй день эксплуатации датчиков! В целом, все было замечательно, но только вот это….smile.gif Мне сказали, что об этом коротко написано на www.1wire.org и пояснили, что по запросу Даллас может выслать один Application Note, где говорится об этой проблеме и даются коэффициенты (2 байта), чтобы возможно было восстановить точность до +-2 гр. С.
Зашел на www.1wire.org, прочитал о проблемке и о том, что AN247 раньше был здесь в свободном доступе, а теперь Даллас высылает его только по запросу (?!!). Написал в Даллас, прислали AN247. Там говорится о 2 калибровочных регистрах TRIM1 и TRIM2, о командах, позволяющих их читать, писать и копировать в EEPROM. Хотя в доке про эту часть – ни слова! Там же написали о естественном логическом соображении следить за EEPROM при перезагрузке и, если слетело, – перезаписывать.
Физически количество перезаписей EEPROM – весьма большое. И сам факт, что при повышенных температурах EEPROM не продержится долго, заставляет документировать пользовательский программный доступ к калибровочным коэффициентам (да и сам процесс калибровки тоже). Но нехороший момент в том, что вы, решив использовать привлекательный датчик DS18B20 в своем устройстве, можете даже не узнать, что же с ним случилось (и недоумевать о причинах последствий, к которым это может привести), т.к. на сайте Максима вы об этом нигде не прочитаете. (Переживают люди за имидж свой что ль?)
Далее написал в Даллас с вопросом о том, как можно откалибровать их датчик, чтобы получить исходную точность. Ответили, что калибруются они по одной точке (я сначала думал, что по двум, и никак не мог понять уравнения для TRIM1, TRIM2) Про уравнение - что-то короткое и мало понятное.
Пришлось самому проводить полный курс измерений, подставляя последовательные значения для TRIM1 и TRIM2 и анализировать это в EXCEL’e. Таким образом удалось восстановить исходную точность и узнать, что же все-таки нужно делать с интегральными датчиками с цифровым выходом, чтобы они были привлекательными не только на словах, но и на деле....smile.gif
VadikT
Есть еще один вопрос по DS18x20, который пока я не разрешил:
иногда после подачи питания один из датчиков начинает отдавать постоянно -19 гр.С независимо от его температуры. Лечится это переподачей питания. Но все же, хотелось бы знать, в чем причина такого зависания.
Если кто с подобной проблемой сталкивался и как-то решал ее, поделитесь, пожалуйста.
С уважением.
olegk
Privet
ti ne mog bi etu DOKU ot Dallas mne vislat. a to ja kak ras toche sobiraus s DS1820 nachinat.
Spasibo.
oleg
COMA
VadikT, не мог бы ты поделится этим любопытным документом? В данный момент заложил эти датчики в устрйоство, теперь думаю будут проблемы...

P.S. До этого использовал DS1821 - термостат. С ним проблем не возникало....
COMA
Вот стоило самому поискать... smile.gif

http://www.elin.ru/1-Wire/
здесь читаем инфу от 05.07.2004. Там все подробно описано. Дя особо нетерпеливых прямая ссылка на документ -
f t p://ftp.elin.ru/pdf/1-Wire/app247.p d f
Valery_Y
Те же грабли были и с DS1621 - там, видимо, измерительное ядро то же, только I2C шина. Так они (Dallas-Maxim) похоже, решили втихаря поменять DS1621 на DS1631 - типа, точность у новых лучше, а о проблеме ни гу-гу. Так что непонятно: пофиксили они этот баг или нет. Да и в ДИПе DS1631 выпускать не будут sad.gif .

http://www.rtcs.ru/news_detail.asp?id=837
Miron
Спасибо за информацию.
Я работаю с датчиками DS1820 уже лет 5 но пока
ни разу такого явления не наблюдал.
Зато поделюсь другим наблюдением
В одном из приборов конструктора прижали
микросхему слишком сильно и датчик начал
врать градуса на 4. Сначала ничего не мог понять
пока не попробовл сам давать механическую нагрузку
на корпус. Так что с датчиком будте понежнее
PraNkiSh
а что по дальности получается ?
тащил сквозь 6 этажей на крышу дома - глючило безбожно.
расстояние около 30-40м (по стандарту до 300 кажись)
RS-485 прошел без проблем. даже с контролем ошибок не заморачивался.
пулапы уменьшал кажись до 2к
Miron
Цитата(PraNkiSh @ Feb 26 2005, 01:45)
а что по дальности получается ?
тащил сквозь 6 этажей на крышу дома - глючило безбожно.
расстояние около 30-40м (по стандарту до 300 кажись)
RS-485 прошел без проблем. даже с контролем ошибок не заморачивался.
пулапы уменьшал кажись до 2к
*

300 метров не пробывал но делал на 180 при нагрузке до 30 датчиков
тоже столкнулся с проблемой глюков в линии.
В общем смысл такой при крутых фронтах линия начинает звенеть.
Длительность и аплитуда звона дависит от емкости самой линии и емкостей
подключенных датчиков.
У DS есть рекомендации по устранению звона в линии см. pdf смысл в том,
чтобы фронты управления в линии стали не такими крутыми как обычно бывает у контроллеров. Правда приходится забитать на линию еще одну
ногу.
Может кто знает дгугое решение я пока не встречал.
Serjio
А какой драйвер применяли ?
Мы пробовали DS2480B. Проблем небыло - там есть активная подтяжка. Пробовали еще с полевиками на выходе - тоже все работало (метров 70). Ставили еще диоды шоттки в конце линии.
Miron
Кто нибудь занимался метрологической поверкой датчиков DS18x20 ???
Знаю что сам датчик занесен в Гос реестр средств измерений под №23169-02
Но самой методики поверки у меня нет.
Меня интересует занимался ли кто метрологической поверкой прибора на основе DS18x20 в целом и как этот вопрос решался.
mpo
Спасибо огромное, а то у меня была пару раз такая фигня - пришлось новый датчики покупать. Придется сейчас код менять. Кста, не вышлешь apn?
mpo@aport.ru
FastenFast
Руские манулы на датчик есть?
sash75
Цитата(Miron @ Mar 1 2005, 16:42) *
Кто нибудь занимался метрологической поверкой датчиков DS18x20 ???
Знаю что сам датчик занесен в Гос реестр средств измерений под №23169-02
Но самой методики поверки у меня нет.
Меня интересует занимался ли кто метрологической поверкой прибора на основе DS18x20 в целом и как этот вопрос решался.


Если решилась проблема с поверкой - поделитесь опытом.
Miron
Метрологию отложили в долгий ящик.
Но пришлось возвращаться вышли документы ростехнадзора бязывающие к этому
Сейчас ведем работу по сертификации с институтом метрологии
Нам предложили сами микросхемы привозить к ним на первичную поверку
а на устройство в целом сейчас согласовываем методику поверки
как закончим раскажу о результатах.
Artem_Petrik
По поводу дальности. У меня, при использовании сетевого кабеля FTP эти датчики висели по 4 штуки на паре при дальности 350м. Однако для того, чтобы работа была устойчивой, пришлось pullup резистор шины 1Wire уменьшить с рекомендуемого 2.2k до 1.25k. Это как раз предел, исходя из того, что максимальный ток, который датчик может съесть, чтобы выдать 0 - 4ma (согласно datasheet). Еще большей дальности можно достичь, если заменить этот pullup резистор на источник тока. Естественно, нужно еще удлиннять промежутки между таймслотами, указанное минимальное расстояние в 1мкс - это только при минимальных расстояниях. На больших расстояниях эти промежутки долны быть больше, чем время необходимое, чтобы зарядить емкость кабеля, через pullup резистор, до порогового значения.
Что касается "забывчивости" датчиков, то, слава богу, пока не сталкивался. Может они в новых партиях микросхем уже зафиксили этот баг? Какая у Вас стоит дата выпуска на "забывчивых" микросхемах?
Andy-L
Цитата(sash75 @ May 19 2006, 09:42) *
Цитата(Miron @ Mar 1 2005, 16:42) *

Кто нибудь занимался метрологической поверкой датчиков DS18x20 ???
Знаю что сам датчик занесен в Гос реестр средств измерений под №23169-02
Но самой методики поверки у меня нет.
Меня интересует занимался ли кто метрологической поверкой прибора на основе DS18x20 в целом и как этот вопрос решался.


Если решилась проблема с поверкой - поделитесь опытом.


Занимались этим подробно в 2001 году.
http://www.e-as.ru/?PageName=PassiveContent&Id=41
Дело было геморойное и даже весьма - пришлось на 80 % писать ТУ в строгом соответствии гостам, но дальше его все равно ВНИИМС дорабатывал. Датчики у нас стояли в морозильных камерах закалки мороженного и в хранилищах. Температура -40. Вылетали в среднем по 2 в год - именно сами датчики. Похоже так долго их при таком минусе никто не мучил :-) Временная нестабильность у них довольно большая - за год многие поубежали на 1-2 градуса (может из-за таких низких температур). Пришлось вводить программную калибровку в нашей проге. С нестабильной работой в цеху на линиях по 70 метров (было 3 луча с ком-портов на каждом ds2480 и по 30 датчиков где-то) тоже намучались - перепробовали все что можно было (все настройки ds2480), диоды шотки, заземление компа убирали-подсоединяли и другое по рекомендациям и аппнотам. Ошибки все равно сыпались. Для надежности мы ввели сигнал что датчик неисправен, если он не отвечал лишь с 8-й попытки подряд :-) Это сильно тормозило измерения, но время было не столь кричично для нас. И то после этого, ошибки раз в день выскакивали из-за помех: в цеху производства мороженного очень много частотников. Кабель у нас был витая пара 5-й категории, неэкранированная (так в элине посоветовали чтобы емкость линии уменьшить). Хотя потом и в экране цепляли участки - та же фигня. Все таки потенциальный сигнал, причем с такими слабенькими характеристиками, не очень надежное дело для промышленного применения. Для нашего случая было бы лучше сделать маленький контроллер c RS-485 к которому на несколько входов по месту цепляются DS1820 на коротких (несколько метров) линиях.
_3m
сейчас по всему миру поступают контрафактные ds18b20. в условиях кризиса при цене оригинала $2 в крупном опте и контрафакта с али $0.5 от сотни возникает непреодолимый соблазн для "оптимизации" или "економии".
Предлагаю подумать над тремя вопросами :
(случай когда вместо Ds18b20 пустышка/транзистор не рассматриваем)

А: Чем грозит использование контрафактных ds18b20
* точность 2 градуса вместо 0,5
* разрешение 0,5 градусов вместо 0.0625 градусов
* низкая надежность (есть примеры ?)
* разовые сбои измерений (есть примеры ?)
* что еще ?

Б: как чисто программно (в прошивке) отличить оригинальную ds18b20 от контрафакта
гугление дало 2 способа (ничего не проверено) :
* в контрафакте trim всегда равно 65536, в оригинале там калибровочное значение, у всех чипов разное (у пары взятых наугад: 65378 65394)
* контрафакт больше 9 бит измерять не умеет (разрешение всегда 0.5 градусов). можно измерять в 12 битном режиме и мониторить изменения температуры. возможно у контрафакта время измерения другое.
* что еще ?

В: как визуально отличить оригинал от контрафакта
* перемаркировка из ds19s20
*
Нажмите для просмотра прикрепленного файла
(на мох оригиналах направление штамповки я не смог определить - не видно следов)
Эдди
Если кому интересно по точностям DS18, я проверял восемь штук по показаниям платиновых TRD. Правда, у меня DS18S20 (нет смысла использовать B20, т.к. по документации у них совершенно такая же точность — ±0.5°C). Есть у меня два DS18B20, понятно — выборка нерепрезентативная, чтобы как-то судить о датчиках в целом, но при сравнении с S20 никакой разницы обнаружено не было: та же точность ±0.5°C в диапазоне от -20°C до +20°C.
kinetic
У меня такой вопрос, а как убедится в актуальности считанной температуры?
Поясню, датчик на паразитном питании, линии заведомо не доверяем.
Алгоритм у меня такой:
1. Ресет датчика
2. Читаю серийник, проверяю crc
3. Даю команду конверт, подтягиваю линию
4. Сплю 0,8сек, снимаю подтяжку
5. Ресет, скип ром, читаю блокнот, проверяю crc
Если на 4ом этапе что то "случайно"(исхожу из максимально плохой ситуации) коротнет цепь, получаю ответ с корректной crc, но там будет 85'C...
В моей ситуации температура 85 считается корректной.
Как детектировать такую ситуацию? Может флаг/команда есть какая чтобы понять что 85 это дефолтное значение, а не измеренное?
jcxz
Цитата(kinetic @ Apr 1 2017, 19:42) *
Как детектировать такую ситуацию? Может флаг/команда есть какая чтобы понять что 85 это дефолтное значение, а не измеренное?

Дополнительно контролировать факт события коротыша, заведя например на прерывание по спаду или таймер с захватом.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.