реклама на сайте
подробности

 
 
> Проблемы с Далласами, дохнут, врут...
GrayCat
сообщение Mar 6 2007, 12:29
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 263
Регистрация: 7-10-05
Из: UA
Пользователь №: 9 342



Приколы какие-то с этими Далласами, DS18S20 и DS18B20. У нас они в системе термометрии зернохранилищ, так что статистика есть по нескольким сотням штук.
  1. "Портятся". Некоторые датчики (замечено за серией DS18S20) вдруг, начиная с некоторого момента, начинают "врать": показывать температуру T°±X, где X - случайно, да еще иногда и меняется. Поначалу грешили на переполюсовку, на статику, на повышенную нагрузку (1к1 в "подтяжке" это 4мА - на пределе, по даташиту)... Но последний случай это опроверг: только что датчик показывал комнатную температуру, через 10 минут гляжу: "-3.3°" ! При этом ничего не делалось, не переключалось, коробочка лежала на столе. Загадка...
  2. Еще одна странность: некоторые DS18B20 при некоторых температурах начинают "дрожать" в пределах 2°. Т.е., например, 17° показывают стабильно, 18°, 22° и выше - стабильные показания. А в интервале 19°...21° - с каждым считыванием выдает "псевдослучайное" число из этого промежутка. При том, что все остальные датчики в этой шине ведут себя нормально.
Кто-нибудь с таким сталкивался? Это лечится?


--------------------
Gray©at
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
GrayCat
сообщение Jul 29 2007, 18:24
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 263
Регистрация: 7-10-05
Из: UA
Пользователь №: 9 342



Последним ~пяти ораторам:

Почитайте внимательно выложенный сюда документ APP247. Там более-менее подробно расписано, что и отчего. У нескольких партий датчиков выпуска 2004 года (а у нас именно они) повышена вероятность слета EEPROM в момент подачи питания. Небось, со встроенным Brown-out намутили.

В документе приводятся последовательности команд для считывания калибровочных констант, и для их записи. Даны также "усредненные" константы, которые гарантируют "некалиброванную" точность ±2°. Показано, как определить, "съехала крыша" у конкретного датчика, или нет (соответствие считанных констант неким маскам).

По результатам моих экспериментов, команды записи пишут именно в EEPROM датчика, так что после этой процедуры датчик становится "полноценным", но с гарантированной точностью ±2° вместо "калиброванных" ±0.5°. Нас это устраивает. Контроллер при старте запрашивает константы у всех датчиков, и если у какого-то сбой - перепрошивает "усредненные".

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

А что касается альтернатив - есть ли в природе другие варианты, как промерять температуру в нескольких точках (~15шт.) на некоей длине (~30м), не протягивая туда жгута из десятка проводов? Далласы это обеспечивают, хоть и не безгеморройно.


--------------------
Gray©at
Go to the top of the page
 
+Quote Post
rezident
сообщение Jul 29 2007, 20:24
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(GrayCat @ Jul 30 2007, 00:24) *
А что касается альтернатив - есть ли в природе другие варианты, как промерять температуру в нескольких точках (~15шт.) на некоей длине (~30м), не протягивая туда жгута из десятка проводов? Далласы это обеспечивают, хоть и не безгеморройно.

Дык при такой постановке задачи у вас проблема в линиях связи видимо, а не измерения. Можно ведь использовать интеллектуальные измерители температуры и другой интерфейс связи. Из двупроводных промышленных - RS485 или токовая петля, например.
Go to the top of the page
 
+Quote Post
GrayCat
сообщение Jul 30 2007, 06:54
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 263
Регистрация: 7-10-05
Из: UA
Пользователь №: 9 342



Цитата(rezident @ Jul 29 2007, 23:24) *
Дык при такой постановке задачи у вас проблема в линиях связи видимо, а не измерения. Можно ведь использовать интеллектуальные измерители температуры и другой интерфейс связи. Из двупроводных промышленных - RS485 или токовая петля, например.

Та мы ж и не против!!! 1111493779.gif Одна из самых больших проблем MicroLAN - невозможность нормальной терминации, и ТТЛ-уровни не только на передачу, но и на прием (в отличие от тех же RS232, RS-485, где приемник -- компаратор с "нулем"). Как всегда, недостатки любого технического решения - продолжение его достоинств.

Конечно, очень привлекательной альтернативой Далласам выглядит исполнение каждой "точки измерения" на МК + термистор/термопара/RTD навешенной на RS-485. Дороговато, конечно, по сравнению с DS18*20, и гарантии отсутствия кучи специфических проблем не дает.

Но дело не в этом. В нашем случае (зернохранилища) такое не пройдет: "термоподвеска" (например, полый металлический трос с гирляндой датчиков внутри) должна быть как можно тоньше, дабы трение об зерно было поменьше. Имеющиеся конструкции (трос наружным диаметром порядка 20мм) испытывают при выгрузке зерна нагрузки порядка тонны, и их узел крепления к крыше частенько не выдерживает. Если же каждая "точка" будет целой печатной платой, такую конструкцию сметет в момент!

Короче, Далласы нас почти устраивают. Да и с проблемой недержания EEPROM мы уже научились бороться. Дальше у нас по плану -- корреляционный алгоритм приема бита от датчика... 07.gif wink.gif


--------------------
Gray©at
Go to the top of the page
 
+Quote Post
Rst7
сообщение Jul 30 2007, 07:15
Сообщение #5


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата(GrayCat @ Jul 30 2007, 09:54) *
Та мы ж и не против!!! 1111493779.gif Одна из самых больших проблем MicroLAN - невозможность нормальной терминации, и ТТЛ-уровни не только на передачу, но и на прием (в отличие от тех же RS232, RS-485, где приемник -- компаратор с "нулем"). Как всегда, недостатки любого технического решения - продолжение его достоинств.


Я бы не говорил так категорично - RS485 в этом отношении с порогом 50мв имеет свои грабли - дабы в период тишины на линии не ловить начало пакета от помех надо либо делать некоторую принудительную поляризацию линии (ну допустим до уровня 0.7вольт, чтобы четко удержать лог. 1 на выходе приемника, пока нет никакой передачи), либо добавлять специальный байт 0xFF перед пакетом, причем при приеме его отбрасывать (передача такого байта обеспечит правильное определение старта для следующего байта независимо от состояния линии до начала передачи). Вообщем проблем тоже как грязи... Идеального ничего нет...

Цитата
Короче, Далласы нас почти устраивают. Да и с проблемой недержания EEPROM мы уже научились бороться. Дальше у нас по плану -- корреляционный алгоритм приема бита от датчика... 07.gif wink.gif


Можно конечно попробовать... Но не стоит забывать, что сам датчик принимает информацию именно по семплу в одной точке... Так что таким образом можно подлечить канал только наполовину wink.gif


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
GrayCat
сообщение Jul 31 2007, 20:00
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 263
Регистрация: 7-10-05
Из: UA
Пользователь №: 9 342



Цитата(Rst7 @ Jul 30 2007, 10:15) *
Я бы не говорил так категорично - RS485 в этом отношении с порогом 50мв имеет свои грабли

Вот именно, как я уже говорил про "продолжение достоинств" wink.gif
Цитата
- дабы в период тишины на линии не ловить начало пакета от помех надо либо делать некоторую принудительную поляризацию линии (ну допустим до уровня 0.7вольт, чтобы четко удержать лог. 1 на выходе приемника, пока нет никакой передачи)

Ну так эти "растяжки" -- совершенно стандартный элемент схемотехники RS-485, вплоть до включения их в состав микросхем.
Цитата
, либо добавлять специальный байт 0xFF перед пакетом, причем при приеме его отбрасывать

Не надо ничего "добавлять" и "выбрасывать". Достаточно включать передатчик на передачу лог. "1" за пару "байт" до собственно посылки информации в линию. Именно это предусмотрено, например, протоколом MODBUS RTU. Тогда низкий импеданс передатчика удавит помехи, а тот "мусор", который успел принять приемник до включения передатчика, будет отброшен алгоритмом по таймауту.
Цитата
Вообщем проблем тоже как грязи... Идеального ничего нет...


Вот именно! НО! Для того же RS-485 эти проблемы тем или иным образом решаемы. Хотя бы, в крайнем случае, понижением скорости обмена. А у 1-wire -- принципиально нерешаемы. Никак sad.gif

Цитата
Можно конечно попробовать... Но не стоит забывать, что сам датчик принимает информацию именно по семплу в одной точке... Так что таким образом можно подлечить канал только наполовину wink.gif

Вот именно это (низкая помехоустойчивость самих датчиков) я и имел в виду, когда говорил о "принципиальной нерешаемости".


--------------------
Gray©at
Go to the top of the page
 
+Quote Post
Rst7
сообщение Aug 1 2007, 07:24
Сообщение #7


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата(GrayCat @ Jul 31 2007, 23:00) *
Ну так эти "растяжки" -- совершенно стандартный элемент схемотехники RS-485, вплоть до включения их в состав микросхем.


Криво это все... И, кстати, лишнее потребление от этих растяжек (ведь надо пересилить 60ом двух терминаторов (обычно), по 10 ком в + и в - речь не идет, это только если обрыв происходит)....


Цитата
Не надо ничего "добавлять" и "выбрасывать". Достаточно включать передатчик на передачу лог. "1" за пару "байт" до собственно посылки информации в линию. Именно это предусмотрено, например, протоколом MODBUS RTU. Тогда низкий импеданс передатчика удавит помехи, а тот "мусор", который успел принять приемник до включения передатчика, будет отброшен алгоритмом по таймауту.


А вот такие вещи не работают, если делаешь репитер с автоматическим переключением направления... Точнее, работает только на сегменте от передатчика до первого репитера, а дальше уже нет, нет защитного интервала, репитер то включится только по старту...

Цитата
Вот именно! НО! Для того же RS-485 эти проблемы тем или иным образом решаемы. Хотя бы, в крайнем случае, понижением скорости обмена. А у 1-wire -- принципиально нерешаемы. Никак sad.gif
Вот именно это (низкая помехоустойчивость самих датчиков) я и имел в виду, когда говорил о "принципиальной нерешаемости".


согласен.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
GrayCat
сообщение Aug 1 2007, 16:52
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 263
Регистрация: 7-10-05
Из: UA
Пользователь №: 9 342



Цитата(Rst7 @ Aug 1 2007, 10:24) *
Криво это все...


Не более криво, чем "лог.1" по умолчанию на висящем ТТЛ-входе wink.gif :D

Цитата
И, кстати, лишнее потребление от этих растяжек (ведь надо пересилить 60ом двух терминаторов (обычно), по 10 ком в + и в - речь не идет, это только если обрыв происходит)....


Та ладно, обычно там где RS-485, лишние пара мА не проблема.

Цитата
А вот такие вещи не работают, если делаешь репитер с автоматическим переключением направления...

Наверное, да. Нам пока что репитеры без надобности. А если и понадобится -- уже есть отработанная схема "свича" RS232/422/485 <-> RS422/485, на "двухпортовом" микроконтроллере, который сам все необходимые времянки отработает.

Но, увы, Далласам это уже никак не поможет... angry.gif


--------------------
Gray©at
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- GrayCat   Проблемы с Далласами   Mar 6 2007, 12:29
- - Andy-L   Цитата(GrayCat @ Mar 6 2007, 12:29) Прико...   Mar 7 2007, 12:41
|- - GrayCat   Цитата(Andy-L @ Mar 7 2007, 11:41) Д...   Mar 7 2007, 16:16
- - GrayCat   Вот, нашел: Вкратце: в моменты подачи питания м...   Jul 18 2007, 10:44
- - zltigo   Цитата(GrayCat @ Mar 6 2007, 15:29) Прико...   Jul 18 2007, 11:22
- - Zoro   оо хорошо что наткнулся очередной раз на эту тему....   Jul 23 2007, 13:39
|- - ASZ   Цитата(Zoro @ Jul 23 2007, 16:39) оо хоро...   Jul 24 2007, 15:55
- - Georgy   Cлава богу что в своё время сей девайс не применён...   Jul 25 2007, 16:05
|- - zltigo   Цитата(Georgy @ Jul 25 2007, 19:05) Тепер...   Jul 25 2007, 16:14
|- - SALOME   Цитата(Georgy @ Jul 25 2007, 23:05) Cлава...   Jul 26 2007, 09:28
- - Zoro   а какие датчики от далоса более стабильны-живучи? ...   Jul 26 2007, 20:07
- - _Pasha   Только что, изрядно помучившись, запустил девайс с...   Oct 15 2007, 20:08
- - AnV22   Мы тоже используем DS18b20, причем длина провода д...   Oct 17 2007, 04:45
- - GrayCat   Кто-то здесь упоминал, что Далласы очень "не ...   Nov 3 2007, 23:00
- - _Pasha   Цитата(GrayCat @ Nov 4 2007, 02:00) Кто-т...   Nov 5 2007, 16:59
|- - GrayCat   Цитата(_Pasha @ Nov 5 2007, 18:59) Не мож...   Nov 7 2007, 07:43
- - pokos   Товарищ имел подобный опыт с Далласом. Дохли по-чё...   Nov 7 2007, 07:50
- - _Pasha   Цитата(GrayCat @ Nov 7 2007, 11:43) Не зн...   Nov 8 2007, 06:57


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 14:38
Рейтинг@Mail.ru


Страница сгенерированна за 0.01453 секунд с 7
ELECTRONIX ©2004-2016