Хватит. А вы проверяли что не хватает?free_V_V писал(а):паразитного питания не хватит в любом случае.
Всё по DS18(B/S)20.
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Всё по DS18(B/S)20.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- Реклама
Re: Всё по DS18(B/S)20.
Страница 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 градусов.
"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.
Ну в вы-таки грели датчик с паразитным питанием? Нет? ДШ все умеют читать.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Re: Всё по DS18(B/S)20.
Ну если даташиты для вас не указ, тогда о чем разговор?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.
Сидящие на одной шине?free_V_V писал(а):многие датчики
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- Реклама
Re: Всё по DS18(B/S)20.
И на одной шине 4, и по одному. Думаете только вам лень тянуть кучу проводов на каждый датчик?Gudd-Head писал(а):Сидящие на одной шине?free_V_V писал(а):многие датчики
Re: Всё по DS18(B/S)20.
В одной аппноте далласовской, было написано, что при высоких температурах паразитное питание применять не рекомендуется из-за повышенных утечек при нагреве кристалла.free_V_V писал(а):Уверяю вас, многие датчики после 100 градусов показывают 85 именно из-за паразитного питания.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Re: Всё по DS18(B/S)20.
Уф. Что вы пытаетесь выяснить? Паразитное питание основано на заряде конденсатора. Он заряжается от шины данных. Его заряда хватает чтобы питать схему. Но при повышенной температуре у полупроводников увеличивается ток утечки и уменьшить его нельзя. Заряда на конденсаторе уже не хватает и датчик перезагружается до завершения команды. После перезагрузки на нем начальное значение 85 градусов. Прочитайте температуру без команды преобразования температуры. У вас будет 85 градусов. Вот точно также он ведет себя при нагреве, что бы вы ему не посылали, результат всегда будет 85 градусов, даже если пожар и надо тушитьuldemir писал(а):В одной аппноте далласовской, было написано, что при высоких температурах паразитное питание применять не рекомендуется из-за повышенных утечек при нагреве кристалла.free_V_V писал(а):Уверяю вас, многие датчики после 100 градусов показывают 85 именно из-за паразитного питания.
ПС: или вы сомневаетесь что я вообще работаю с DS18B20 ? Фрагмент кода устроит?
Re: Всё по DS18(B/S)20.
Я уже ничего не выясняю. Просто подтверждаю, что такой эффект описан.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Всё по DS18(B/S)20.
Я вот только нигде не вижу, что Padavan собирался их греть до 100°.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Re: Всё по DS18(B/S)20.
А мне показалось что не верите и я уже начал выходить из себяuldemir писал(а):Я уже ничего не выясняю. Просто подтверждаю, что такой эффект описан.
Re: Всё по DS18(B/S)20.
Там все очень тонко. Задержки при подаче напряжений очень критичны. Легко можно 1 проспать в коде без таймера. Шаг влево, шаг вправо ...Gudd-Head писал(а):Я вот только нигде не вижу, что Padavan собирался их греть до 100°.
-
borys
- Держит паяльник хвостом
- Сообщения: 927
- Зарегистрирован: Вт сен 07, 2010 19:27:48
- Откуда: Ташкент
Re: Всё по DS18(B/S)20.
Также не первый день работаю с этими датчиками и подтверждаю то, что говирит free_V_V -
в режиме паразитного питания они работают ЗНАЧИТЕЛЬНО хуже.
в режиме паразитного питания они работают ЗНАЧИТЕЛЬНО хуже.
Re: Всё по DS18(B/S)20.
паразитка хорошо работает только с подключением питания через транзистор (или вывод мк на коротких шлейфах) 
Re: Всё по DS18(B/S)20.
Хочу внести ясность. Температуру я измерял комнатную т.е. от ~27 до ~32. Схему собирал на макетке, на ней же стоял и датчик. Показывал исключительно "85". Задержку (при конвертировании) довел до 3сек., переключал ногу в 1 во время конвертирования, подкидывал даже соседнюю ногу и тоже переключал в"1"на время конвертирования - безрезультатно. Транзистора под рукой к сожалению не оказалось. Запитал датчик по терхпроводной схеме (убрал перемычку с ног питания и Vcc подкинул на "+"), в проге дописал процедуру ожидания конца конвертирования. Схема заработала.
Re: Всё по DS18(B/S)20.
У микроконтроллеров, даже имеющих "умощненный" вывод, всегда стоит ограничитель выходного тока, а это не совсем то же самое, что и ключ подачи "паразитки" - за счет емкости и собственного сопротивления кабеля могут возникнуть проблемы...
Да и разводка(топология) монтажа не на последнем месте должна быть!
Для линии связи с датчиком удобна телефонная "лапша" или ее современные аналоги
Да и разводка(топология) монтажа не на последнем месте должна быть!
Для линии связи с датчиком удобна телефонная "лапша" или ее современные аналоги
Re: Всё по DS18(B/S)20.
Как лучше генерировать сигнал сброса устройств 1Wire?
Если обычной задержкой с запретом прерывания, то задержка ок 600 мкс, будет влиять на динамическую индикацию, и будут видны колебания яркости разрядов. Или просто с этим смириться?
Если обычной задержкой с запретом прерывания, то задержка ок 600 мкс, будет влиять на динамическую индикацию, и будут видны колебания яркости разрядов. Или просто с этим смириться?
Re: Всё по DS18(B/S)20.
А зачем запрещать прерывания? длительность импульса там плюс-минус две трамвайных остановки. Можно использовать таймер. Можно использовать UART. Даже по тем самым прерываниям динамической индикации можно мерить.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
- zero648
- Вымогатель припоя
- Сообщения: 650
- Зарегистрирован: Пн июн 18, 2012 12:01:04
- Откуда: Челябинская область, Копейск
Re: Всё по DS18(B/S)20.
генерируй после прерывания, используя режим "sleep"shads писал(а):Как лучше генерировать сигнал сброса устройств 1Wire?
Если обычной задержкой с запретом прерывания, то задержка ок 600 мкс, будет влиять на динамическую индикацию, и будут видны колебания яркости разрядов. Или просто с этим смириться?
- Леонид Иванович
- Друг Кота
- Сообщения: 4779
- Зарегистрирован: Сб апр 02, 2011 12:40:46
- Откуда: Минск
- Контактная информация:
Re: Всё по DS18(B/S)20.
А зачем соседнюю? Можно ту же. Вот мне как-то попались датчики DS18B20P, они вообще имеют только паразитное питание, вывод 3 в datasheet описан как NC. Пришлось добавить в программу перевод ноги, которая является 1-Wire портом, на вывод 1.Padavan писал(а):подкидывал даже соседнюю ногу и тоже переключал в"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);
}
А зачем прерывания запрещать на 600 мкс? Длительность импульса сброса сверху ничем не ограничена. От прерываний нужно защищать только интервал, где мы читаем presence, а это порядка 60 мкс.shads писал(а):Как лучше генерировать сигнал сброса устройств 1Wire?
Если обычной задержкой с запретом прерывания, то задержка ок 600 мкс, будет влиять на динамическую индикацию
Код: Выделить всё
//--------------------- Генерация импульса сброса: ---------------------------
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);
}


