Зарегистрирован: Чт мар 08, 2012 18:05:49 Сообщений: 99 Откуда: Пермь
Рейтинг сообщения:0
Копия топика с форума Easyelectronics.
Всем доброго времени суток! Задумал я сделать себе парочку показометров, чтобы вывесить один на балкон, а второй на стенку, и чтоб они мне температуру говорили. Заморачиваться с терморезисторами и программной реализацией 1-wire для ds18b20 было лень, поэтому взял вышеуказанную микруху. Все настроил, все работает, но есть одно "но". В комнате (судя по ртутному термометру) +24 градуса, а мой градусник показывает +29..+30. Причем если дать ему постоять выключенным, а потом включить, то он тоже сначала показывает +25, а потом плавно выползает на +30. На плате термометра греться совершенно нечему (питание от 12 вольт через DC/DC), к тому же, сам термодатчик расположен на выпиленном кусочке платы, к нему идут только дорожки питания и IIC. Попытался уводить датчик в сон, а запрашивать температуру раз в 5 секунд. Не помогло.
Сейчас запрос температуры производится раз в минуту, все остальное время датчик спит. Картина та же: при включении +27, потом плавный разогрев до +32.
Что интересно, термодатчик, встроенный в микросхему MPU6050, тоже показывает +32, причем сразу после включения.
Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.
Зарегистрирован: Чт мар 08, 2012 18:05:49 Сообщений: 99 Откуда: Пермь
Рейтинг сообщения:0
Питание от ноутбучного импульсного БП через DC/DC на MP2307DN. Висят конденсаторы - электролиты по 100 мкФ и керамика по 0,1 мкФ на входе и на выходе. На самой микросхеме по питанию висит свой конденсатор на 0,1 мкФ. Осциллографом ткнуться возможности нет, но я питал все это дело от программатора (читай - от компового USB), и результат был тот же.
На той же ИзиЭлектроникс нашел тему про завышение температуры этими датчиками. Автор пишет, что у разных производителей разные показатели саморазогрева. Так вот вопрос: неужели решение проблемы - в тупом переборе датчиков в поисках того, который меньше всего врет?
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Зарегистрирован: Чт мар 08, 2012 18:05:49 Сообщений: 99 Откуда: Пермь
Рейтинг сообщения:0
Я просто не пойму, с чего ему греться? В режиме сна он по даташиту потребляет всего 4 мкА (в реальности не замерял), что и током-то считать нельзя. При таком токе он не должен греться от слова совсем. А в режиме сна он у меня находится 80% рабочего времени.
А при переходе к рабочему режиму потребление увеличивается. Соответственно и время, необходимое для стабилизации собственной температуры перед измерением какое-то необходимо... Иногда лучше все время рабочий режим сохранять, чем ожидать ту стабилизацию при каждом измерении. Тем более, что применение LM75 предпочтительно с точки зрения терморегулятора с программируемым порогом сработки. Печалька лишь в необходимости перепрограммирования того порога при каждом включении - ежли б данные в ЕЕПРОМ хранились...
Зарегистрирован: Чт мар 08, 2012 18:05:49 Сообщений: 99 Откуда: Пермь
Рейтинг сообщения:0
Видимо, все-таки придется перелезть на DS18b20 с ее 1-Wire. Жаль, LM75 дешевле на порядок (190 рублей против 20 в Чип-Дипе). Я не думаю, что программная корректировка значения есть выход. Потому что значение температуры после саморазогрева явно есть величина нелинейная. По-хорошему тут нужна калибровка по нескольким точкам... И тут встает вопрос: а чем же оно тогда лучше тупого терморезистора?
Я бы попробовал для начала сделать 2 эксперимента. 1. Запитать датчик не от цифрового dc/dc, а от обычного транса с выпрямителем. 2. Линию данных (i2c) и питание датчика (если они идут вместе) разнести на некоторое расстояние. Т.к. если идут помехи по питанию, то появляется шум на i2c. Возможно это и дает погрешность. Источник dc/dc питания нужен с LC фильтром на выходе, дабы уменьшить пульсации. Скорее всего высокочастотный преобразователь дает помехи на линию данных.
появляется шум на i2c. Возможно это и дает погрешность
Это может "дать" хаотические результаты, но никак не систематическую погрешность. Интерфейс-то цифровой. Если датчик вынесен на проводах, то чтобы он стабильно работал, должен быть конденсатор по питанию у самых выводов датчика. Если питание в паузах снимается, то надо давать время на установление напряжения питания. Ну и не забывать делать паузу перед чтением на время преобразования.
появляется шум на i2c. Возможно это и дает погрешность
Это может "дать" хаотические результаты, но никак не систематическую погрешность. Интерфейс-то цифровой.
Интерфейс-то, да, цифровой, но и DC/DC с цифровым ШИМом Т.е. некоторая стабильность все же присутствует. Я тут недавно смотрел осциллографом что может твориться на линии питания... это просто капец, разве что нет тараканов. На i2C подтяжка стоит на 5-10к с двух сторон ? А то некоторые не ставят, забывают. Датчик температуры работает на основе измерения сопротивления материала от температуры, для чего АЦП требуется качественное опорное напряжение(собственно, оно то и дает точность измерений). Дальше данные оцифровываются встроенным АЦП и результат идет на I2C. Если предположить, что питание имеет нестабильность, скажем размах 100 mV, то и сопротивление, и результаты измерений будут отличаться от реалий. Тем более, что показания не занижают температуру, а завышают. Т.е., если следовать закону R=U/I, то при повышенном напряжении(пульсации) растет сопротивление ( как при нагревании). Собственно, это и показывают выходные данные. Если температура была бы ниже, чем должна, то наверное надо искать в другом месте проблему. Как вариант, я бы запитал датчик скажем от батарейки и посмотрел результат (коль нет возможности осцилопом глянуть). Если результат не меняется, то и копать глубже. Но я бы грешил на питание в первую очередь.
Нарисуйте на бумажке, как выглядит последовательный код с числами, скажем, 30, 31, 32... и представьте, как должна выглядеть наводка, чтобы так искажала код. Не вводите людей в заблуждение. Такой код выдаёт датчик, и наводки тут не при чём. Надо смотреть его реальную температуру, находится ли в допуске напряжение питания, не перегружен ли выход (повышенный выходной ток тоже може приводить к саморазогреву), а главное - чётко выдерживать требуемые временные интервалы при обращении к датчику.
Да, и насчёт АЦП тоже мимо. В этих датчиках нет АЦП. Там два импульсных генератора с разной температурной зависимостью и счётчики.
Зарегистрирован: Чт мар 08, 2012 18:05:49 Сообщений: 99 Откуда: Пермь
Рейтинг сообщения:0
Датчик не на проводах: он на выпиленном фрагменте платы. Конденсатор по питанию рядом датчиком присутствует. Подтягивающие резисторы есть со стороны датчика, на контроллере цифровая подтяжка входов включена. Рвать питание не пробовал, но сейчас склоняюсь именно к этому варианту, потому что больше ничего не придумывается. Питание схемы производится от сетевого адаптера от ноутбука (примерно 19 вольт), потом на самой плате стоит DC/DC. Пробовал вместо него ставить линейник - та же песня. Чип не пробовал менять, но DS18b20 дает (внезапно!) точно такой же результат: +27 и плавный разогрев до +32. Дальше показания колеблются в зависимости от окружающей температуры, но ниже +32 результат не получал. Начинаю думать, что у меня в комнате реально +32) Покупать ртутник только для того, чтобы откалибровать цифровой датчик считаю странным, но рассматриваю и такой вариант.
Да, и насчёт АЦП тоже мимо. В этих датчиках нет АЦП. Там два импульсных генератора с разной температурной зависимостью и счётчики.
Видать показалось.
x8973 писал(а):
Датчик не на проводах: он на выпиленном фрагменте платы. Конденсатор по питанию рядом датчиком присутствует. Подтягивающие резисторы есть со стороны датчика, на контроллере цифровая подтяжка входов включена.
Просто сейчас открыл даташит, там черным по белому написано - резисторы 5кОм с двух сторон. В контроллере, если не ошибусь, подтяжка 40кОм, не помню.
x8973 писал(а):
Рвать питание не пробовал, но сейчас склоняюсь именно к этому варианту, потому что больше ничего не придумывается. Питание схемы производится от сетевого адаптера от ноутбука (примерно 19 вольт), потом на самой плате стоит DC/DC. Пробовал вместо него ставить линейник - та же песня.
Для чистоты эксперимента, я бы отказался от всяких цифровых преобразователей. Может он и хороший, но тут же вопрос не лишь бы заработал, а понять почему, чтобы была повторяемость с правильным результатом. В даташите говорится о том, чтобы все выводы не висели в воздухе, а были подтянуты либо к земле, либо к питанию. Адресная шина особенно. Также почти жирным указано, пульсации искажают результат. В целом, все тоже самое, что я и говорил ранее, так же как и питание разнести с I2C, и пересечение допускается только под прямым углом. Вроде ничего нового, банальные правила. Если и это не поможет, то надо смотреть уже что именно читается из регистра, как преобразуется код и т.д. Тут уже могут быть чисто программные ошибки. Но пока надо разобраться со схемотехникой.
Так светодиодный индикатор тоже греется, причем в зависимости от количества светящихся и времени свечения температура различаться будет. Да и источником помех немалым является (ШИМ с мультиплексированием при динамической индикации).
3-й контакт (OS) через резюк 10к тоже должен быть подтянут на питание (по даташиту), а сейчас он в воздухе.
Даже переведу кусочек из даташита, т.к. этот момент очень важен:
Вывод OS является выходом с открытым стоком без внутренней подтяжки. Подключите подтягивающий резистор от вывода OS к +VS. Использование больших значений сопротивления(подтяжки) уменьшает любую температурную ошибку из-за самонагрева от тока поступающего на вывод OS.
Как я понимаю, на выводе OS висит мосфет(внутри чипа), и он служит для управления включением вентиляторов в системах охлаждения. Типа, при 85 градусах включить, при 60 градусах выключить. Собственно, этот выход, когда висит в воздухе и греется. Чтобы он не грелся, его подрубают на плюсовой выход, дабы что-то висело на нем, и шёл маааленький ток. А т.к. надо именно измерить температуру, а не использовать режим переключателя, то этот вывод через резюк 10 кОм должен быть подключен к плюсовой шине питания. Надо пробовать .
Зарегистрирован: Чт мар 08, 2012 18:05:49 Сообщений: 99 Откуда: Пермь
Рейтинг сообщения:0
Zat писал(а):
Собственно, этот выход, когда висит в воздухе и греется.
Что-то я не совсем понимаю, как транзистор, к которому не подключена нагрузка, может греться. Но раз даташит велит, то надо делать. Попробую на досуге.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 20
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения