Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить

Цифровой термометр LM75

Вс янв 08, 2017 09:23:40

Копия топика с форума Easyelectronics.

Всем доброго времени суток!
Задумал я сделать себе парочку показометров, чтобы вывесить один на балкон, а второй на стенку, и чтоб они мне температуру говорили. Заморачиваться с терморезисторами и программной реализацией 1-wire для ds18b20 было лень, поэтому взял вышеуказанную микруху. Все настроил, все работает, но есть одно "но". В комнате (судя по ртутному термометру) +24 градуса, а мой градусник показывает +29..+30. Причем если дать ему постоять выключенным, а потом включить, то он тоже сначала показывает +25, а потом плавно выползает на +30.
На плате термометра греться совершенно нечему (питание от 12 вольт через DC/DC), к тому же, сам термодатчик расположен на выпиленном кусочке платы, к нему идут только дорожки питания и IIC.
Попытался уводить датчик в сон, а запрашивать температуру раз в 5 секунд. Не помогло.

Сейчас запрос температуры производится раз в минуту, все остальное время датчик спит. Картина та же: при включении +27, потом плавный разогрев до +32.

Что интересно, термодатчик, встроенный в микросхему MPU6050, тоже показывает +32, причем сразу после включения.

Кто что может посоветовать?

Re: Цифровой термометр LM75

Вс янв 08, 2017 09:47:14

А датчик в том же корпусе расположен? На 5-6 градусов может подогреваться воздух внутри прибора

Re: Цифровой термометр LM75

Вс янв 08, 2017 10:09:53

Мурато Мяуконни писал(а):На 5-6 градусов может подогреваться воздух внутри прибора


Да, я это уже заметил. С корпусом оно греется чуть ли не до 40 градусов. Сейчас плата висит на стене без корпуса.

UPD. Сейчас ради эксперимента прижал к микрухе радиатор от компьютерного чипсета. Температура сначала упала до +27, а сейчас снова ползет вверх.

Re: Цифровой термометр LM75

Вс янв 08, 2017 15:09:40

А питание то в норме? Фильтрация питания, выбросы, в том числе и отрицательные?

Re: Цифровой термометр LM75

Пн янв 09, 2017 10:10:15

Питание от ноутбучного импульсного БП через DC/DC на MP2307DN. Висят конденсаторы - электролиты по 100 мкФ и керамика по 0,1 мкФ на входе и на выходе. На самой микросхеме по питанию висит свой конденсатор на 0,1 мкФ. Осциллографом ткнуться возможности нет, но я питал все это дело от программатора (читай - от компового USB), и результат был тот же.

На той же ИзиЭлектроникс нашел тему про завышение температуры этими датчиками. Автор пишет, что у разных производителей разные показатели саморазогрева. Так вот вопрос: неужели решение проблемы - в тупом переборе датчиков в поисках того, который меньше всего врет?

Re: Цифровой термометр LM75

Пн янв 09, 2017 11:08:43

Саморазогрев при работе вполне возможен - просто в таком случае вносите поправку для конкретного кристалла.
:roll:

Re: Цифровой термометр LM75

Пн янв 09, 2017 11:27:59

Я просто не пойму, с чего ему греться? В режиме сна он по даташиту потребляет всего 4 мкА (в реальности не замерял), что и током-то считать нельзя. При таком токе он не должен греться от слова совсем. А в режиме сна он у меня находится 80% рабочего времени.

Re: Цифровой термометр LM75

Пн янв 09, 2017 12:07:44

А при переходе к рабочему режиму потребление увеличивается.
Соответственно и время, необходимое для стабилизации собственной температуры перед измерением какое-то необходимо...
Иногда лучше все время рабочий режим сохранять, чем ожидать ту стабилизацию при каждом измерении.
Тем более, что применение LM75 предпочтительно с точки зрения терморегулятора с программируемым порогом сработки.
Печалька лишь в необходимости перепрограммирования того порога при каждом включении - ежли б данные в ЕЕПРОМ хранились...
:roll:

Re: Цифровой термометр LM75

Пн янв 09, 2017 13:10:44

Видимо, все-таки придется перелезть на DS18b20 с ее 1-Wire. Жаль, LM75 дешевле на порядок (190 рублей против 20 в Чип-Дипе).
Я не думаю, что программная корректировка значения есть выход. Потому что значение температуры после саморазогрева явно есть величина нелинейная. По-хорошему тут нужна калибровка по нескольким точкам... И тут встает вопрос: а чем же оно тогда лучше тупого терморезистора?

Re: Цифровой термометр LM75

Пн янв 09, 2017 18:10:28

Может просто с чипом не повезло? Пробовали заменить?

Re: Цифровой термометр LM75

Чт фев 09, 2017 03:57:52

Я бы попробовал для начала сделать 2 эксперимента.
1. Запитать датчик не от цифрового dc/dc, а от обычного транса с выпрямителем.
2. Линию данных (i2c) и питание датчика (если они идут вместе) разнести на некоторое расстояние. Т.к. если идут помехи по питанию, то появляется шум на i2c. Возможно это и дает погрешность.
Источник dc/dc питания нужен с LC фильтром на выходе, дабы уменьшить пульсации. Скорее всего высокочастотный преобразователь дает помехи на линию данных.

Re: Цифровой термометр LM75

Чт фев 09, 2017 04:18:09

Zat писал(а):появляется шум на i2c. Возможно это и дает погрешность
Это может "дать" хаотические результаты, но никак не систематическую погрешность. Интерфейс-то цифровой.
Если датчик вынесен на проводах, то чтобы он стабильно работал, должен быть конденсатор по питанию у самых выводов датчика. Если питание в паузах снимается, то надо давать время на установление напряжения питания. Ну и не забывать делать паузу перед чтением на время преобразования.

Re: Цифровой термометр LM75

Чт фев 09, 2017 15:18:16

Lexter писал(а):
Zat писал(а):появляется шум на i2c. Возможно это и дает погрешность
Это может "дать" хаотические результаты, но никак не систематическую погрешность. Интерфейс-то цифровой.

Интерфейс-то, да, цифровой, но и DC/DC с цифровым ШИМом :) Т.е. некоторая стабильность все же присутствует.
Я тут недавно смотрел осциллографом что может твориться на линии питания... это просто капец, разве что нет тараканов.
На i2C подтяжка стоит на 5-10к с двух сторон ? А то некоторые не ставят, забывают.
Датчик температуры работает на основе измерения сопротивления материала от температуры, для чего АЦП требуется качественное опорное напряжение(собственно, оно то и дает точность измерений). Дальше данные оцифровываются встроенным АЦП и результат идет на I2C. Если предположить, что питание имеет нестабильность, скажем размах 100 mV, то и сопротивление, и результаты измерений будут отличаться от реалий. Тем более, что показания не занижают температуру, а завышают. Т.е., если следовать закону R=U/I, то при повышенном напряжении(пульсации) растет сопротивление ( как при нагревании). Собственно, это и показывают выходные данные. Если температура была бы ниже, чем должна, то наверное надо искать в другом месте проблему.
Как вариант, я бы запитал датчик скажем от батарейки и посмотрел результат (коль нет возможности осцилопом глянуть). Если результат не меняется, то и копать глубже. Но я бы грешил на питание в первую очередь.

Re: Цифровой термометр LM75

Чт фев 09, 2017 18:00:59

Zat писал(а):...Интерфейс-то, да, цифровой, но и DC/DC с ...
Нарисуйте на бумажке, как выглядит последовательный код с числами, скажем, 30, 31, 32... и представьте, как должна выглядеть наводка, чтобы так искажала код. Не вводите людей в заблуждение. Такой код выдаёт датчик, и наводки тут не при чём. Надо смотреть его реальную температуру, находится ли в допуске напряжение питания, не перегружен ли выход (повышенный выходной ток тоже може приводить к саморазогреву), а главное - чётко выдерживать требуемые временные интервалы при обращении к датчику.

Да, и насчёт АЦП тоже мимо. В этих датчиках нет АЦП. Там два импульсных генератора с разной температурной зависимостью и счётчики.

Re: Цифровой термометр LM75

Чт фев 09, 2017 18:57:19

Датчик не на проводах: он на выпиленном фрагменте платы. Конденсатор по питанию рядом датчиком присутствует. Подтягивающие резисторы есть со стороны датчика, на контроллере цифровая подтяжка входов включена.
Рвать питание не пробовал, но сейчас склоняюсь именно к этому варианту, потому что больше ничего не придумывается.
Питание схемы производится от сетевого адаптера от ноутбука (примерно 19 вольт), потом на самой плате стоит DC/DC. Пробовал вместо него ставить линейник - та же песня.
Чип не пробовал менять, но DS18b20 дает (внезапно!) точно такой же результат: +27 и плавный разогрев до +32. Дальше показания колеблются в зависимости от окружающей температуры, но ниже +32 результат не получал. Начинаю думать, что у меня в комнате реально +32) Покупать ртутник только для того, чтобы откалибровать цифровой датчик считаю странным, но рассматриваю и такой вариант.

Re: Цифровой термометр LM75

Чт фев 09, 2017 20:19:35

Lexter писал(а):
Zat писал(а):Да, и насчёт АЦП тоже мимо. В этих датчиках нет АЦП. Там два импульсных генератора с разной температурной зависимостью и счётчики.

Видать показалось.
Изображение

x8973 писал(а):Датчик не на проводах: он на выпиленном фрагменте платы. Конденсатор по питанию рядом датчиком присутствует. Подтягивающие резисторы есть со стороны датчика, на контроллере цифровая подтяжка входов включена.

Просто сейчас открыл даташит, там черным по белому написано - резисторы 5кОм с двух сторон. В контроллере, если не ошибусь, подтяжка 40кОм, не помню.
x8973 писал(а): Рвать питание не пробовал, но сейчас склоняюсь именно к этому варианту, потому что больше ничего не придумывается.
Питание схемы производится от сетевого адаптера от ноутбука (примерно 19 вольт), потом на самой плате стоит DC/DC. Пробовал вместо него ставить линейник - та же песня.

Для чистоты эксперимента, я бы отказался от всяких цифровых преобразователей. Может он и хороший, но тут же вопрос не лишь бы заработал, а понять почему, чтобы была повторяемость с правильным результатом.
В даташите говорится о том, чтобы все выводы не висели в воздухе, а были подтянуты либо к земле, либо к питанию. Адресная шина особенно.
Также почти жирным указано, пульсации искажают результат. В целом, все тоже самое, что я и говорил ранее, так же как и питание разнести с I2C, и пересечение допускается только под прямым углом. Вроде ничего нового, банальные правила. Если и это не поможет, то надо смотреть уже что именно читается из регистра, как преобразуется код и т.д. Тут уже могут быть чисто программные ошибки. Но пока надо разобраться со схемотехникой.

Re: Цифровой термометр LM75

Чт фев 09, 2017 20:58:11

Вот дизайн платы. Датчик в самом верху. В центре - семисегментник, слева - DC/DC.
Изображение

Re: Цифровой термометр LM75

Пт фев 10, 2017 05:09:52

Так светодиодный индикатор тоже греется, причем в зависимости от количества светящихся и времени свечения температура различаться будет. Да и источником помех немалым является (ШИМ с мультиплексированием при динамической индикации).
:roll:

Re: Цифровой термометр LM75

Пт фев 10, 2017 10:47:00

3-й контакт (OS) через резюк 10к тоже должен быть подтянут на питание (по даташиту), а сейчас он в воздухе.
Изображение

Даже переведу кусочек из даташита, т.к. этот момент очень важен:

Вывод OS является выходом с открытым стоком без внутренней
подтяжки. Подключите подтягивающий резистор от вывода OS к +VS.
Использование больших значений сопротивления(подтяжки) уменьшает любую температурную
ошибку из-за самонагрева от тока поступающего на вывод OS
.

Как я понимаю, на выводе OS висит мосфет(внутри чипа), и он служит для управления включением вентиляторов в системах охлаждения. Типа, при 85 градусах включить, при 60 градусах выключить. Собственно, этот выход, когда висит в воздухе и греется. Чтобы он не грелся,
его подрубают на плюсовой выход, дабы что-то висело на нем, и шёл маааленький ток. А т.к. надо именно измерить температуру, а не использовать режим переключателя, то этот вывод через резюк 10 кОм должен быть подключен к плюсовой шине питания.
Надо пробовать :).

Re: Цифровой термометр LM75

Пт фев 10, 2017 12:14:31

Zat писал(а):Собственно, этот выход, когда висит в воздухе и греется.


Что-то я не совсем понимаю, как транзистор, к которому не подключена нагрузка, может греться. Но раз даташит велит, то надо делать. Попробую на досуге.
Ответить