Хватит. А вы проверяли что не хватает?free_V_V писал(а):паразитного питания не хватит в любом случае.
Всё по DS18(B/S)20.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- Реклама
- Сообщения: 65
- Зарегистрирован: Пт май 28, 2010 14:40:30
Страница 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 градусов.
Ну в вы-таки грели датчик с паразитным питанием? Нет? ДШ все умеют читать.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- Сообщения: 65
- Зарегистрирован: Пт май 28, 2010 14:40:30
Ну если даташиты для вас не указ, тогда о чем разговор?Gudd-Head писал(а):Ну в вы-таки грели датчик с паразитным питанием? Нет? ДШ все умеют читать.
ПС: применяю датчики лет 6, меряю температуру на радиаторах силовых ключей (100-300А, температура 85-100 градусов). Особые трудности в моторном отсеке автомобилей (дома развлекаюсь). Там огромные помехи от системы зажигания и температура легко может уйти за 100 градусов. Все эти проблемы мне приходилось решать самому и успешно. Уверяю вас, многие датчики после 100 градусов показывают 85 именно из-за паразитного питания.
ППС: для меня остается загадкой, почему разработчики после перезагрузки датчика оставляют температуру 85 градусов. Причем без измерений. Ну поставили бы -300 или +500 градусов и не было бы вопросов. Такую температуру полупроводниковые датчики не в состоянии измерять.
Последний раз редактировалось free_V_V Пн июл 02, 2012 13:10:14, всего редактировалось 1 раз.
Сидящие на одной шине?free_V_V писал(а):многие датчики
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- Реклама
- Сообщения: 65
- Зарегистрирован: Пт май 28, 2010 14:40:30
И на одной шине 4, и по одному. Думаете только вам лень тянуть кучу проводов на каждый датчик?Gudd-Head писал(а):Сидящие на одной шине?free_V_V писал(а):многие датчики
В одной аппноте далласовской, было написано, что при высоких температурах паразитное питание применять не рекомендуется из-за повышенных утечек при нагреве кристалла.free_V_V писал(а):Уверяю вас, многие датчики после 100 градусов показывают 85 именно из-за паразитного питания.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
- Сообщения: 65
- Зарегистрирован: Пт май 28, 2010 14:40:30
Уф. Что вы пытаетесь выяснить? Паразитное питание основано на заряде конденсатора. Он заряжается от шины данных. Его заряда хватает чтобы питать схему. Но при повышенной температуре у полупроводников увеличивается ток утечки и уменьшить его нельзя. Заряда на конденсаторе уже не хватает и датчик перезагружается до завершения команды. После перезагрузки на нем начальное значение 85 градусов. Прочитайте температуру без команды преобразования температуры. У вас будет 85 градусов. Вот точно также он ведет себя при нагреве, что бы вы ему не посылали, результат всегда будет 85 градусов, даже если пожар и надо тушитьuldemir писал(а):В одной аппноте далласовской, было написано, что при высоких температурах паразитное питание применять не рекомендуется из-за повышенных утечек при нагреве кристалла.free_V_V писал(а):Уверяю вас, многие датчики после 100 градусов показывают 85 именно из-за паразитного питания.
ПС: или вы сомневаетесь что я вообще работаю с DS18B20 ? Фрагмент кода устроит?
Я уже ничего не выясняю. Просто подтверждаю, что такой эффект описан.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Я вот только нигде не вижу, что Padavan собирался их греть до 100°.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- Сообщения: 65
- Зарегистрирован: Пт май 28, 2010 14:40:30
А мне показалось что не верите и я уже начал выходить из себяuldemir писал(а):Я уже ничего не выясняю. Просто подтверждаю, что такой эффект описан.
- Сообщения: 65
- Зарегистрирован: Пт май 28, 2010 14:40:30
Там все очень тонко. Задержки при подаче напряжений очень критичны. Легко можно 1 проспать в коде без таймера. Шаг влево, шаг вправо ...Gudd-Head писал(а):Я вот только нигде не вижу, что Padavan собирался их греть до 100°.
Также не первый день работаю с этими датчиками и подтверждаю то, что говирит free_V_V -
в режиме паразитного питания они работают ЗНАЧИТЕЛЬНО хуже.
в режиме паразитного питания они работают ЗНАЧИТЕЛЬНО хуже.
паразитка хорошо работает только с подключением питания через транзистор (или вывод мк на коротких шлейфах) 
- Сообщения: 11
- Зарегистрирован: Вс дек 06, 2009 23:17:40
Хочу внести ясность. Температуру я измерял комнатную т.е. от ~27 до ~32. Схему собирал на макетке, на ней же стоял и датчик. Показывал исключительно "85". Задержку (при конвертировании) довел до 3сек., переключал ногу в 1 во время конвертирования, подкидывал даже соседнюю ногу и тоже переключал в"1"на время конвертирования - безрезультатно. Транзистора под рукой к сожалению не оказалось. Запитал датчик по терхпроводной схеме (убрал перемычку с ног питания и Vcc подкинул на "+"), в проге дописал процедуру ожидания конца конвертирования. Схема заработала.
У микроконтроллеров, даже имеющих "умощненный" вывод, всегда стоит ограничитель выходного тока, а это не совсем то же самое, что и ключ подачи "паразитки" - за счет емкости и собственного сопротивления кабеля могут возникнуть проблемы...
Да и разводка(топология) монтажа не на последнем месте должна быть!
Для линии связи с датчиком удобна телефонная "лапша" или ее современные аналоги
Да и разводка(топология) монтажа не на последнем месте должна быть!
Для линии связи с датчиком удобна телефонная "лапша" или ее современные аналоги
- Сообщения: 882
- Зарегистрирован: Ср фев 22, 2012 01:25:21
Как лучше генерировать сигнал сброса устройств 1Wire?
Если обычной задержкой с запретом прерывания, то задержка ок 600 мкс, будет влиять на динамическую индикацию, и будут видны колебания яркости разрядов. Или просто с этим смириться?
Если обычной задержкой с запретом прерывания, то задержка ок 600 мкс, будет влиять на динамическую индикацию, и будут видны колебания яркости разрядов. Или просто с этим смириться?
А зачем запрещать прерывания? длительность импульса там плюс-минус две трамвайных остановки. Можно использовать таймер. Можно использовать UART. Даже по тем самым прерываниям динамической индикации можно мерить.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
генерируй после прерывания, используя режим "sleep"shads писал(а):Как лучше генерировать сигнал сброса устройств 1Wire?
Если обычной задержкой с запретом прерывания, то задержка ок 600 мкс, будет влиять на динамическую индикацию, и будут видны колебания яркости разрядов. Или просто с этим смириться?
А зачем соседнюю? Можно ту же. Вот мне как-то попались датчики 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);
}


