Всё по DS18(B/S)20.

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Всё по DS18(B/S)20.

Сообщение Gudd-Head »

free_V_V писал(а):паразитного питания не хватит в любом случае.

Хватит. А вы проверяли что не хватает?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Реклама
free_V_V
Открыл глаза
Сообщения: 65
Зарегистрирован: Пт май 28, 2010 14:40:30

Re: Всё по DS18(B/S)20.

Сообщение free_V_V »

Страница 5 из 22, предпоследний абзац:
"The use of parasite power is not recommended for temperatures above +100° C since the DS18B20 may
not be able to sustain communica tions due to the higher leakage currents that can exist at these
temperatures. For applications in which such temperat ures are likely, it is strongly recommended that the
DS18B20 be powered by an external power supply."

Краткий перевод - Паразитное питание не рекомендуется если измеряемая температура выше 100 градусов.
Реклама
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Всё по DS18(B/S)20.

Сообщение Gudd-Head »

Ну в вы-таки грели датчик с паразитным питанием? Нет? ДШ все умеют читать.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
free_V_V
Открыл глаза
Сообщения: 65
Зарегистрирован: Пт май 28, 2010 14:40:30

Re: Всё по DS18(B/S)20.

Сообщение free_V_V »

Gudd-Head писал(а):Ну в вы-таки грели датчик с паразитным питанием? Нет? ДШ все умеют читать.


Ну если даташиты для вас не указ, тогда о чем разговор? :)

ПС: применяю датчики лет 6, меряю температуру на радиаторах силовых ключей (100-300А, температура 85-100 градусов). Особые трудности в моторном отсеке автомобилей (дома развлекаюсь). Там огромные помехи от системы зажигания и температура легко может уйти за 100 градусов. Все эти проблемы мне приходилось решать самому и успешно. Уверяю вас, многие датчики после 100 градусов показывают 85 именно из-за паразитного питания.

ППС: для меня остается загадкой, почему разработчики после перезагрузки датчика оставляют температуру 85 градусов. Причем без измерений. Ну поставили бы -300 или +500 градусов и не было бы вопросов. Такую температуру полупроводниковые датчики не в состоянии измерять.
Последний раз редактировалось free_V_V Пн июл 02, 2012 13:10:14, всего редактировалось 1 раз.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Всё по DS18(B/S)20.

Сообщение Gudd-Head »

free_V_V писал(а):многие датчики

Сидящие на одной шине?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Реклама
free_V_V
Открыл глаза
Сообщения: 65
Зарегистрирован: Пт май 28, 2010 14:40:30

Re: Всё по DS18(B/S)20.

Сообщение free_V_V »

Gudd-Head писал(а):
free_V_V писал(а):многие датчики

Сидящие на одной шине?


И на одной шине 4, и по одному. Думаете только вам лень тянуть кучу проводов на каждый датчик? :))
Реклама
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7359
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Re: Всё по DS18(B/S)20.

Сообщение uldemir »

free_V_V писал(а):Уверяю вас, многие датчики после 100 градусов показывают 85 именно из-за паразитного питания.
В одной аппноте далласовской, было написано, что при высоких температурах паразитное питание применять не рекомендуется из-за повышенных утечек при нагреве кристалла.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
free_V_V
Открыл глаза
Сообщения: 65
Зарегистрирован: Пт май 28, 2010 14:40:30

Re: Всё по DS18(B/S)20.

Сообщение free_V_V »

uldemir писал(а):
free_V_V писал(а):Уверяю вас, многие датчики после 100 градусов показывают 85 именно из-за паразитного питания.
В одной аппноте далласовской, было написано, что при высоких температурах паразитное питание применять не рекомендуется из-за повышенных утечек при нагреве кристалла.


Уф. Что вы пытаетесь выяснить? Паразитное питание основано на заряде конденсатора. Он заряжается от шины данных. Его заряда хватает чтобы питать схему. Но при повышенной температуре у полупроводников увеличивается ток утечки и уменьшить его нельзя. Заряда на конденсаторе уже не хватает и датчик перезагружается до завершения команды. После перезагрузки на нем начальное значение 85 градусов. Прочитайте температуру без команды преобразования температуры. У вас будет 85 градусов. Вот точно также он ведет себя при нагреве, что бы вы ему не посылали, результат всегда будет 85 градусов, даже если пожар и надо тушить :))

ПС: или вы сомневаетесь что я вообще работаю с DS18B20 ? Фрагмент кода устроит?
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7359
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Re: Всё по DS18(B/S)20.

Сообщение uldemir »

Я уже ничего не выясняю. Просто подтверждаю, что такой эффект описан.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Всё по DS18(B/S)20.

Сообщение Gudd-Head »

Я вот только нигде не вижу, что Padavan собирался их греть до 100°.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
free_V_V
Открыл глаза
Сообщения: 65
Зарегистрирован: Пт май 28, 2010 14:40:30

Re: Всё по DS18(B/S)20.

Сообщение free_V_V »

uldemir писал(а):Я уже ничего не выясняю. Просто подтверждаю, что такой эффект описан.


А мне показалось что не верите и я уже начал выходить из себя :) Я конечно могу ошибаться и код может быть с ошибками, но пока все мои программы подтверждают такой эффект.
free_V_V
Открыл глаза
Сообщения: 65
Зарегистрирован: Пт май 28, 2010 14:40:30

Re: Всё по DS18(B/S)20.

Сообщение free_V_V »

Gudd-Head писал(а):Я вот только нигде не вижу, что Padavan собирался их греть до 100°.


Там все очень тонко. Задержки при подаче напряжений очень критичны. Легко можно 1 проспать в коде без таймера. Шаг влево, шаг вправо ...
borys
Держит паяльник хвостом
Сообщения: 927
Зарегистрирован: Вт сен 07, 2010 19:27:48
Откуда: Ташкент

Re: Всё по DS18(B/S)20.

Сообщение borys »

Также не первый день работаю с этими датчиками и подтверждаю то, что говирит free_V_V -
в режиме паразитного питания они работают ЗНАЧИТЕЛЬНО хуже.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15556
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Всё по DS18(B/S)20.

Сообщение BOB51 »

паразитка хорошо работает только с подключением питания через транзистор (или вывод мк на коротких шлейфах) :tea:
Padavan
Родился
Сообщения: 11
Зарегистрирован: Вс дек 06, 2009 23:17:40

Re: Всё по DS18(B/S)20.

Сообщение Padavan »

Хочу внести ясность. Температуру я измерял комнатную т.е. от ~27 до ~32. Схему собирал на макетке, на ней же стоял и датчик. Показывал исключительно "85". Задержку (при конвертировании) довел до 3сек., переключал ногу в 1 во время конвертирования, подкидывал даже соседнюю ногу и тоже переключал в"1"на время конвертирования - безрезультатно. Транзистора под рукой к сожалению не оказалось. Запитал датчик по терхпроводной схеме (убрал перемычку с ног питания и Vcc подкинул на "+"), в проге дописал процедуру ожидания конца конвертирования. Схема заработала.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15556
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Всё по DS18(B/S)20.

Сообщение BOB51 »

У микроконтроллеров, даже имеющих "умощненный" вывод, всегда стоит ограничитель выходного тока, а это не совсем то же самое, что и ключ подачи "паразитки" - за счет емкости и собственного сопротивления кабеля могут возникнуть проблемы...
Да и разводка(топология) монтажа не на последнем месте должна быть!
Для линии связи с датчиком удобна телефонная "лапша" или ее современные аналоги
Аватара пользователя
shads
Опытный кот
Сообщения: 882
Зарегистрирован: Ср фев 22, 2012 01:25:21

Re: Всё по DS18(B/S)20.

Сообщение shads »

Как лучше генерировать сигнал сброса устройств 1Wire?
Если обычной задержкой с запретом прерывания, то задержка ок 600 мкс, будет влиять на динамическую индикацию, и будут видны колебания яркости разрядов. Или просто с этим смириться?
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7359
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Re: Всё по DS18(B/S)20.

Сообщение uldemir »

А зачем запрещать прерывания? длительность импульса там плюс-минус две трамвайных остановки. Можно использовать таймер. Можно использовать UART. Даже по тем самым прерываниям динамической индикации можно мерить.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Аватара пользователя
zero648
Вымогатель припоя
Сообщения: 650
Зарегистрирован: Пн июн 18, 2012 12:01:04
Откуда: Челябинская область, Копейск

Re: Всё по DS18(B/S)20.

Сообщение zero648 »

shads писал(а):Как лучше генерировать сигнал сброса устройств 1Wire?
Если обычной задержкой с запретом прерывания, то задержка ок 600 мкс, будет влиять на динамическую индикацию, и будут видны колебания яркости разрядов. Или просто с этим смириться?

генерируй после прерывания, используя режим "sleep"
Аватара пользователя
Леонид Иванович
Друг Кота
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск
Контактная информация:

Re: Всё по DS18(B/S)20.

Сообщение Леонид Иванович »

Padavan писал(а):подкидывал даже соседнюю ногу и тоже переключал в"1"на время конвертирования


А зачем соседнюю? Можно ту же. Вот мне как-то попались датчики DS18B20P, они вообще имеют только паразитное питание, вывод 3 в datasheet описан как NC. Пришлось добавить в программу перевод ноги, которая является 1-Wire портом, на вывод 1.

Код: Выделить всё

//---------- Запись/чтение бита по однопроводной шине: ----------

bool TBit(bool b)
{
  char si;
  si = __save_interrupt();
  __disable_interrupt();       //запрещение прерываний
  Port_OWP_0;
  Port_OWP_OUT;                  //OWP <- 0
  Delay_us(2);                 //delay 2 uS
  if(b) Port_OWP_IN;            //bit = 1, OWP <- 1
  Delay_us(13);                //delay 13 uS
  bool owp = Pin_OWP;          //чтение порта
  Delay_us(45);                //delay 45 uS
  Port_OWP_1;                //force pullup !!!!!!!!!!!!!!!!!!!!!
  Port_OWP_OUT;
  __restore_interrupt(si);     //восстанавление прерываний
  Delay_us(2);                 //delay 2 uS
  return(owp);
}


shads писал(а):Как лучше генерировать сигнал сброса устройств 1Wire?
Если обычной задержкой с запретом прерывания, то задержка ок 600 мкс, будет влиять на динамическую индикацию


А зачем прерывания запрещать на 600 мкс? Длительность импульса сброса сверху ничем не ограничена. От прерываний нужно защищать только интервал, где мы читаем presence, а это порядка 60 мкс.

Код: Выделить всё

//---------- Генерация импульса сброса: ----------

bool TReset(void)
{
  char si;
  Port_OWP_0;
  Port_OWP_OUT;                  //OWP <- 0
  Delay_us(500);               //delay 500 uS
  si = __save_interrupt();
  __disable_interrupt();       //запрещение прерываний
  Port_OWP_IN;                  //OWP <- 1
  Delay_us(14);                //delay 14 uS
  if(Pin_OWP)                  //если OWP = 0, то ошибка
  {
    Delay_us(52);              //delay 52 uS
    if(!Pin_OWP)               //если OWP = 1, то ошибка
    {
      __restore_interrupt(si); //восстанавление прерываний
      Delay_us(250);           //delay 250 uS
      if(Pin_OWP)              //если OWP = 0, то ошибка
      {
        return(1);             //если ошибок нет, термометр присутствует
      }
    }
  }
  __restore_interrupt(si);     //восстанавление прерываний в случае ошибки
  return(0);
}
Ответить

Вернуться в «Периферия»