|
Забавное поведение датчика BS18B20 |
|
|
|
Dec 1 2011, 06:16
|

Познающий...
     
Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125

|
Здравствуйте! Датчик DS18B20 подключен к AVR'ке проводом длиной 50 см. Система находится на улице и подключена к компьютеру через интерфейс RS485. При чтении температуры иногда появляются ошибки. На улице -15, термометр показывает -3. Иногда появляются ошибки в контрольной сумме, но значение температуры верные, но это бывает очень редко (ошибка КС). Поскольку КС можно сказать, что сходится всегда, возникает вопрос, почему датчик выдает ошибочную отрицательную температуру? С положительной все ОК. Преобразование из дополнительного кода проводится правильно, т.к. иногда отрицательная температура читает правильно. Не могу уловить зависимость между правильными и неправильными показаниями. Что еще интересно, по умолчанию при включении питания датчик настроен на 12-ти разрядный результат, что определяется конфигурационным регистром в "скратчпаде" (он равен после сброса питания 7F). Спустя некоторое время его значение становится 5F, хотя я не использую команду записи в "скратчпад". Далее в документации на датчик написано, что байты 5 - 7 (считаем от нуля) имеют вполне определенные значения: FF, 0C, 10. Так вот, 5 и 7 читаются как надо, всегда причем, а 6 - изредко 0C, а так 04, 08.... Меняется иногда вместе с изменением температуры.
Да, как бы есть едва угадываемая закономерность: чем меньше температура (ближе к -14, -15), тем вероятнее ошибка. Но у нас на улице сейчас -8, так что пока все ОК, и нет возможности проверить гипотезу.
Теряюсь в догадках, думал датчик другой стоит (DS1820, DS18S20), но нет, проверил, все ок.
Заранее благодарен за любые советы!
--------------------
Выбор.
|
|
|
|
|
 |
Ответов
|
Mar 27 2013, 21:58
|
Местный
  
Группа: Участник
Сообщений: 235
Регистрация: 20-11-10
Пользователь №: 61 032

|
ds18b20 (ds18b20+ ?) никаких паразитов, никаких стометровых лапшей по промзонам, всеми тремя ногами воткнуто напрямую в клеммы на плате, столе и в обычной жилой комнате
а). инициализация:
reset pulse 0xCC = "Skip ROM"
0x4E ... ""Write (to) Scratchpad" 0b01111101 ... "T low" 0b11001001 ..."T high" 0b01111111 ... 12 бит, т.е. разрешение 0.0625 градуса
reset pulse 0xCC ... "Skip ROM"
0x48 ... "Copy (from) Scratchpad (to EEPROM)"
б). раз в секунду:
reset pulse 0xCC ... "Skip ROM" 0xBE ... "Read Scratchpad", контрольная сумма сходится (или криво посчитана, но даже если - интерес не в ней, а далее по тексту)
reset pulse 0xCC ... "Skip ROM" 0x44 ... "Convert T"
в). дунул феном на датчик, убрал фен, датчик медленно остывает, внимательно смотрю на данные с него около 32 градусов:
10 0000 0000 = 32.0 С
01 1111 1111 = 31.9 С ___ 10 1111 1111 = 47.9 С ... старший байт так и остался
01 1111 1110 = 31.8 С ___ 10 1111 1110 = 47.8 С ... старший байт так и остался
01 1111 1101 = 31.7 С ___ 10 1111 1101 = 47.7 С ... старший байт так и остался 01 1111 1100 = 31.6 С ... старший байт просра актуализировался на конец и далее остывает уже без вопросов
Так артефакт замечен при охлаждении конкретно на отметке 32.0 градуса ("сырые" с датчика двоичные данные соответственно и внимательно): старший байт обновляется с опозданием относительно младшего байта. Стабильно и повторяемо происходит. В обратную сторону (при нагреве от 31 до 32+ градусов) всё выглядит прилично... но при быстром нагреве артефакт получается тоже. Но менее удобным для рассмотрения и осознавания.
На физический смысл артефакта имело бы смысл взмедитнуть через разъяснение интерфейса протокола библиотеки для принципа действия датчика внутри. Где-то раньше попадалось мне такое разъяснение, но потерял его я - и осталось в в гугле моём по теме только про интерфейсы с библиотеками теперь. И всё это го оно разное одинаковое уныло, даже с пересказами на русский язык.
Сообщение отредактировал нечитатель - Mar 27 2013, 23:22
|
|
|
|
|
Mar 28 2013, 05:54
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
Цитата(нечитатель @ Mar 28 2013, 01:58)  ds18b20 (ds18b20+ ?) никаких паразитов, никаких стометровых лапшей по промзонам, всеми тремя ногами воткнуто напрямую в клеммы на плате, столе и в обычной жилой комнате ... 0b01111111 ... 12 бит, т.е. разрешение 0.0625 градуса ... раз в секунду: Преобразование при такой разрядности занимает время порядка секунды (750мс). Вполне можно нарваться на пограничное значение, что преобразование еще не закончилось, а результат уже считывается. Попробуйте увеличить задержку до 10 секунд - опрашивать этот датчик все равно часто не нужно, поскольку будет саморазогрев. Ну, и тайминги слотов проверить - может не правильно различаются "0" и "1". Кстати, CRC совпадает?
|
|
|
|
Сообщений в этой теме
haker_fox Забавное поведение датчика BS18B20 Dec 1 2011, 06:16 kolobok0 Цитата(haker_fox @ Dec 1 2011, 10:16) ...... Dec 1 2011, 08:04 haker_fox QUOTE (kolobok0 @ Dec 1 2011, 16:04) не ф... Dec 1 2011, 08:27  xemul Цитата(haker_fox @ Dec 1 2011, 12:27) Как... Dec 1 2011, 13:54   haker_fox QUOTE (xemul @ Dec 1 2011, 21:54) имхо, у... Dec 1 2011, 13:59 haker_fox Вот сейчас на улице -14. С датчика приходит это
CO... Dec 1 2011, 13:24 ILYAUL На этот срочно шубу .
Вы же говорили , что есть... Dec 1 2011, 13:28 haker_fox QUOTE (ILYAUL @ Dec 1 2011, 21:28) На это... Dec 1 2011, 13:53 xemul Упс-с, уже забыл. Глянул в ДШ:
ЦитатаBytes 5, 6, a... Dec 1 2011, 14:16 haker_fox QUOTE (xemul @ Dec 1 2011, 22:16) Упс-с, ... Dec 1 2011, 14:43 -SANYCH- 1) Не правельное измерение температуры может проис... Dec 2 2011, 07:50 haker_fox QUOTE (-SANYCH- @ Dec 2 2011, 15... Dec 2 2011, 08:50  xemul Цитата(haker_fox @ Dec 2 2011, 12:50) Гм.... Dec 2 2011, 09:42 haker_fox Похоже датчику придется принести извинения, т.к. е... Dec 2 2011, 09:54 ILYAUL Цитата(haker_fox @ Dec 2 2011, 13:54) Пох... Dec 2 2011, 16:26  haker_fox QUOTE (ILYAUL @ Dec 3 2011, 00:26) Так мо... Dec 3 2011, 00:50 adnega Была ситуация очень напоминающая Вашу, только датч... Dec 3 2011, 06:07 314 А то что у Вас АВР на улицу вынесен, случаем не с ... Dec 3 2011, 08:20 haker_fox QUOTE (314 @ Dec 3 2011, 16:20) А то что ... Dec 3 2011, 09:14 haker_fox Полагаю, что проблема решена. 1,5 суток ни одного ... Dec 5 2011, 02:05 haker_fox И все таки оно плавает.... Столкнулся с этим вот с... Jan 1 2013, 07:09 RabidRabbit Либо стека всё же не хватает, либо неверна процеду... Jan 1 2013, 07:30 haker_fox QUOTE (RabidRabbit @ Jan 1 2013, 16:30) Л... Jan 1 2013, 07:44  adnega Цитата(haker_fox @ Jan 1 2013, 11:44) Две... Jan 1 2013, 09:31 ILYAUL Ну EEPROM они победили и даже аппноут убрали с сай... Jan 1 2013, 17:32 haker_fox QUOTE (ILYAUL @ Jan 2 2013, 02:32) ни раз... Jan 2 2013, 01:47 haker_fox Еще и времянки в драйвере 1wire были "замечат... Jan 2 2013, 08:21 kolobok0 Цитата(haker_fox @ Jan 2 2013, 12:21) ..у... Jan 2 2013, 17:08 ILYAUL ЦитатаМожет быть у Вас тоже дело в софте?
Да скор... Jan 2 2013, 12:26 ILYAUL Тоже самое и с полевиками, фронты - мама не горюй ... Jan 2 2013, 23:48 _Артём_ Цитата(ILYAUL @ Jan 3 2013, 01:48) Ну ее ... Jan 3 2013, 00:39 haker_fox Всю ночь мой датчик проработал на улице. CRC совпа... Jan 3 2013, 02:52 ILYAUL ЦитатаCRC совпадает
C какой точностью работаешь?
... Jan 3 2013, 10:08 haker_fox QUOTE (ILYAUL @ Jan 3 2013, 19:08) C како... Jan 3 2013, 11:26  kolobok0 Цитата(haker_fox @ Jan 3 2013, 15:26) ...... Jan 3 2013, 17:58   haker_fox QUOTE (kolobok0 @ Jan 4 2013, 02:58) типа... Jan 4 2013, 08:08    kolobok0 Цитата(haker_fox @ Jan 4 2013, 12:08) ..Ж... Jan 5 2013, 20:35 ILYAUL Цитата1. Команда на конвертацию. + (~)750ms (обычн... Jan 3 2013, 12:10 haker_fox QUOTE (ILYAUL @ Jan 3 2013, 21:10) + (~)7... Jan 3 2013, 13:35  ILYAUL Цитата(haker_fox @ Jan 3 2013, 17:35) Так... Jan 4 2013, 21:08 ILYAUL Празник, не дадут посидеть нормально. Jan 3 2013, 16:41 ILYAUL ЦитатаЖаль в "ходовых" мегах один USART ... Jan 4 2013, 15:21 haker_fox QUOTE (ILYAUL @ Jan 5 2013, 00:21) И чему... Jan 5 2013, 01:45  ILYAUL Цитата(haker_fox @ Jan 5 2013, 05:45) Да ... Jan 5 2013, 11:06 haker_fox Стейт-машина - я понял Вашу идею!!! Сп... Jan 6 2013, 05:13 SM Цитата(haker_fox @ Jan 6 2013, 09:13) В о... Jan 6 2013, 06:09 ILYAUL Цитата(haker_fox @ Jan 6 2013, 09:13) З.Ы... Jan 6 2013, 09:19 kolobok0 Цитата(haker_fox @ Jan 6 2013, 09:13) ...... Jan 7 2013, 17:51 haker_fox Мама моя женщина) Как все сложно/просто)
Кажится ... Jan 6 2013, 11:36 Rst7 QUOTE Да и не могут два цифровика ошибаться. У них... Jan 6 2013, 18:27 haker_fox QUOTE (Rst7 @ Jan 7 2013, 03:27) Когда я ... Jan 7 2013, 02:41 Rst7 QUOTE Понятно, значит постоянные времени (для темп... Jan 7 2013, 08:41 Herz Цитата(Rst7 @ Jan 7 2013, 10:41) Да у сам... Jan 7 2013, 09:04  ARV Цитата(Herz @ Jan 7 2013, 13:04) Ну, на с... Jan 7 2013, 17:19 Rst7 QUOTE Ну, на столе, при расстоянии порядка полумет... Jan 7 2013, 09:14 ILYAUL Вот так стоят датчики, удобно работать. Вот их тем... Jan 7 2013, 10:04 haker_fox QUOTE (ILYAUL @ Jan 7 2013, 18:04) Кто ви... Jan 7 2013, 16:06 SM А если их местами поменять? Благо в колодках? Не г... Jan 7 2013, 12:38 ILYAUL Спасибо , тебе дружище!!! И тебя с Рож... Jan 7 2013, 16:14 ILYAUL Цитата2. датчики ОЧЕНЬ ЧУВСТВИТЕЛЬНЫЕ Вот!... Jan 7 2013, 18:35 haker_fox QUOTE (ARV @ Jan 8 2013, 02:19) если кому... Jan 8 2013, 03:30 haker_fox А интерфейс-то у Вас правильно реализован? Я имею ... Mar 28 2013, 03:04
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|