Страница 21 из 59
Re: Всё по DS18(B/S)20.
Добавлено: Чт фев 14, 2013 17:31:53
uk8amk
Reaper666 писал(а): как можно выловить этот глюк компилятора?
Либо сравнением как здесь, либо внимательным изучением листинга дизассемблера.
Re: Всё по DS18(B/S)20.
Добавлено: Пн фев 18, 2013 22:53:24
Gudd-Head
Как вам цена $1.2 за DS18B20?

Re: Всё по DS18(B/S)20.
Добавлено: Пн фев 18, 2013 22:58:18
Аlex
Нормальная цена

Re: Всё по DS18(B/S)20.
Добавлено: Вт фев 19, 2013 07:12:58
ibiza11
я брал по 9.3$ - 10 штук. Оптом у китайцев.
Re: Всё по DS18(B/S)20.
Добавлено: Вт фев 19, 2013 12:57:21
Аlex
Я бы тоже десяточек взял. Но с китайцами не работал никогда

Re: Всё по DS18(B/S)20.
Добавлено: Вт фев 19, 2013 13:25:51
ibiza11
Значит пора начинать) Если есть карточка VISA или MASTER CARD, то это не составит труда.
Рекомендую сначала зарегистрироваться на PayPal. (только сначала прочитайте как ПРАВИЛЬНО это сделать. В интернете есть статьи на эту тему.)
Я сам долго не мог решиться на покупки через интернет, но все же созрел - результатами я более чем доволен)
Re: Всё по DS18(B/S)20.
Добавлено: Вт фев 19, 2013 14:21:05
Аlex
Обязательно попробую. Спасибо.
Re: Всё по DS18(B/S)20.
Добавлено: Ср фев 20, 2013 22:52:17
Gerik_PP
Всем привет! Вопрос по DS18B20...
1. Подцепил DS к контроллеру (подтягивающий = 4,7к)
2. Раз в 5 сек. конвертирую температуру и читаю 9 байт байт памяти с последующей проверкой CRC
3. Обращение к этому конкретному датчику через MATCH ROM [55h]
4. На 5-ти метрах (витая пара) всё отлично работает.
Проблема: Выношу датчик на улицу, тупо цепляю его по витой паре длинной 100 метров, уменьшив при этом только подтягивающий до 1,5к. Проверка CRC проходит без ошибок, но значение температуры с каждым чтением (раз в 5 сек.) всегда отличается с разницей от 1-го до 15 градусов!!!!!
Мой вывод: Если CRC без ошибок, значит передача информации проходит корректно. Значит, DS18B20, при конвертации температуры (44h), по какой-то причине ошибочно определяет температуру, которую затем безошибочно передаёт контроллеру (BEh). Такое может быть?
Вопрос: Подскажите, пожалуйста, как можно решить эту проблему. Спасибо.
Re: Всё по DS18(B/S)20.
Добавлено: Чт фев 21, 2013 08:09:34
Аlex
Если CRC без ошибок, значит передача информации проходит корректно. Значит, DS18B20, при конвертации температуры (44h), по какой-то причине ошибочно определяет температуру, которую затем безошибочно передаёт контроллеру (BEh).
Есть ещё один вариант, который Вы упустили - неправильный расчёт CRC. Его то-же стоит проверить...
Re: Всё по DS18(B/S)20.
Добавлено: Чт фев 21, 2013 08:23:57
shads
Gerik_PP писал(а):Выношу датчик на улицу, тупо цепляю его по витой паре длинной 100 метров, уменьшив при этом только подтягивающий до 1,5к.
100м это предел по витой паре для 1wire..... и еще активная подтяжка нужна, она у вас реализована?
Попробуй еще параллельно питанию у датчика поставь кондерчик, микрофарат на 100, может питания не хватает, просадка во время преобразования....
Я вообще, когда так далеко цепляю датчики, то подаю 12в по питанию, а рядом с датчиком ставлю 78l05
Re: Всё по DS18(B/S)20.
Добавлено: Чт фев 21, 2013 09:46:09
Gudd-Head
Gerik_PP писал(а):цепляю его по витой паре длинной 100 метров, уменьшив при этом только подтягивающий до 1,5к. Проверка CRC проходит без ошибок, но значение температуры с каждым чтением (раз в 5 сек.) всегда отличается с разницей от 1-го до 15 градусов!!!!!
Вот это уже интересно. Тоже с таким сталкивались. В какую сторону температура уходит от настоящей?
Скорее всего, это помехи, от которых датчик сходит с ума.
Где у вас проложены эти 100 м? Витая пара экранирована? Может, попробовать продёрнуть кабель через ферритовое кольцо у датчика?
shads писал(а):100м это предел по витой паре для 1wire..... и еще активная подтяжка нужна, она у вас реализована?
Если дело было бы в активной подтяжке, то неправильно принимались бы биты (линия не успевала бы зарядиться до лог. "1"), и CRC вычислялся бы неправильно.
Re: Всё по DS18(B/S)20.
Добавлено: Чт фев 21, 2013 10:45:59
shads
Gudd-Head писал(а):Скорее всего, это помехи, от которых датчик сходит с ума.
А тут по вашему CRC будет вычислятся правильно?
Re: Всё по DS18(B/S)20.
Добавлено: Чт фев 21, 2013 10:49:02
Gudd-Head
shads писал(а):А тут по вашему CRC будет вычислятся правильно?
Если неправильно будет только конвертироваться темпертура (аналоговая часть датчика), то да. СRC правильно будет вычисляться с учётом неверной температуры.
Re: Всё по DS18(B/S)20.
Добавлено: Чт фев 21, 2013 11:08:41
shads
Просто вы писали о помехах...
Помехи возможны:
либо по линии данных, что неизбежно приведет к искажению сигнала и к неверной CRC
либо по питанию, тут я не знаю как будет вести себя датчик, но можно просто зашунтировать питание датчика кондером.
Кстати... витая пара уже сама по себе хорошо защищена от помех, даже не экранированная, так что помехи отпадают.
Но скорее всего на входе длинной линии, питание подается 5в, и я на 100% уверен что через 100м там будет уже не 5в (именно во время преобразования) вот тут скорее всего и возможно нештатное поведение датчика.....
Re: Всё по DS18(B/S)20.
Добавлено: Чт фев 21, 2013 11:11:37
Gudd-Head
Если не хватает питания во время преобразования, датчик обычно в ресет сваливается и выдаёт +85°С.
Re: Всё по DS18(B/S)20.
Добавлено: Чт фев 21, 2013 13:36:26
Gerik_PP
Gudd-Head писал(а):Вот это уже интересно. Тоже с таким сталкивались. В какую сторону температура уходит от настоящей?
Прыгает в разные стороны, при реальных -6, скачет от -15 до +5
Gudd-Head писал(а):Скорее всего, это помехи, от которых датчик сходит с ума.
Где у вас проложены эти 100 м? Витая пара экранирована?
Витая пара не экранирована. Примерно 30м проложены под потолком в подвальной части дома, 30 метров под землёй в пластиковой трубе и примерно метров 20 лишней длинны смотаны (временно) в кольцо на уличном столбе на котором в настоящий момент и закреплён датчик
Gudd-Head писал(а):Может, попробовать продёрнуть кабель через ферритовое кольцо у датчика?
Тоже начал думать что из-за "наведённых" помех в питании неправильно работает аналоговый генератор DS18B20 в момент определения температуры. И уже неправильно определённое значение датчик записывает себе в память (правильно расчитав CRC для этого значения). Попробую обеспечить качественные +5V. Для начала на дальнем конце поставлю 10uF электролит и 0,1uF керамику. Хочу ещё добавить два диода шоттки и два ферритовых фильтра - для большей помехоустойчивости. Схемку нарыл в инете:
shads писал(а):Я вообще, когда так далеко цепляю датчики, то подаю 12в по питанию, а рядом с датчиком ставлю 78l05
Если всё вышеперечисленное не поможет, то тоже так сделаю. Всем спасибо за участие

Re: Всё по DS18(B/S)20.
Добавлено: Чт фев 21, 2013 13:59:48
Gudd-Head
Вы уж держите нас в курсе.
От 10 мкФ думаю будет мало пользы.
У вас там антенна прям. Думаю, есть смысл наоборот поставить 10...100...1000 пФ РЧ давить.
Re: Всё по DS18(B/S)20.
Добавлено: Чт фев 21, 2013 14:02:39
Gerik_PP
Да, пожалуй... Обязательно отпишу, что и как получилось...
Re: Всё по DS18(B/S)20.
Добавлено: Чт фев 21, 2013 14:05:42
Gerik_PP
Gudd-Head писал(а):У вас там антенна прям. Думаю, есть смысл наоборот поставить 10...100...1000 пФ РЧ давить.
Так сколько поставить? 100пФ?
Re: Всё по DS18(B/S)20.
Добавлено: Чт фев 21, 2013 14:13:35
Gudd-Head
Ставьте что есть. Если поставить все, хуже не будет.