Как я уже упоминал ранее, мне нравится собирать данные. Температурные датчики кажутся на первый взгляд такими простыми, но на самом деле они гораздо сложнее, чем вы могли подумать, включая огромный ассортимент типов датчиков. В этой серии мы собираемся построить ряд печатных плат, которые будут охватывать все типы температурных датчиков и схемы для их реализации. Мы также построим пару плат микроконтроллеров для сбора данных и оценки датчиков по сравнению друг с другом. Наконец, мы установим все различные типы датчиков на одной из этих плат и подвергнем все датчики различным условиям окружающей среды. Это позволит нам увидеть, как датчики сравниваются друг с другом, и сделать рекомендации относительно того, какой датчик подходит для ваших потребностей, приложений и бюджета.
Температурные датчики жизненно важны для многих отраслей. Даже на вашей печатной плате температурный датчик может быть использован для обеспечения точности данных от других датчиков, а также для защиты платы от перегрева.
Типы температурных датчиков
Все датчики, использованные в этой серии проектов, и многие другие, вы можете найти в моей открытой библиотеке Celestial Altium Library, чтобы ускорить разработку вашего датчика. Оценочные платы для этой серии доступны на GitHub, со всеми примерами схем датчиков. Каждая часть этой серии выпущена под лицензией MIT, так что вы можете свободно использовать схемы для своего проекта или использовать платы для оценки датчиков.
Выше представлен дизайн печатной платы, о котором вы будете читать в Altium 365 Viewer; бесплатный способ связи с коллегами, клиентами и друзьями с возможностью просмотра дизайна или загрузки одним кликом! Загрузите ваш дизайн за считанные секунды и получите интерактивную возможность для подробного изучения без необходимости использования громоздкого программного обеспечения или мощного компьютера.
Прежде чем мы начнем говорить о конкретных типах датчиков, давайте обсудим общие соображения по использованию датчиков температуры. Предположим, вы пытаетесь измерить внешнюю температуру. В этом случае соображения по размещению будут отличаться от тех, которые возникают, когда вы пытаетесь измерить температуру критически важного компонента или области печатной платы. Точно так же, если вы измеряете температуру вне вашей печатной платы, то возникает другой набор соображений.
Кроме того, вам также нужно будет учитывать самонагрев датчика и его тепловую массу.
Если вы пытаетесь измерить внешнюю температуру, критически важно максимально изолировать датчик от печатной платы. Самый распространенный и эффективный способ сделать это - физически изолировать датчик. Простое размещение датчика температуры на краю вашей платы недостаточно, если вы стремитесь к точному измерению температуры или к максимально возможной точности, которую может предложить ваш датчик, поскольку тепло будет передаваться через подложку в датчик. Все схемы генерируют тепло за счет резистивных потерь, некоторые печатные платы - гораздо больше других, поэтому физическая изоляция критически важна.
Размещение датчика температуры как можно дальше от любого источника тепла на вашей плате - это отличный первый шаг. Добавление фрезерованного слота вокруг вашего датчика температуры завершает вашу изоляцию. Однако убедитесь, что вы оставили достаточно печатной платы, чтобы датчик просто не отломился, как вырезанная вкладка на панели. Он должен быть достаточно прочным, чтобы его можно было обрабатывать и проходить через процесс сборки, а также учитывать требования приложения - удары, вибрации и тому подобное.
Также стоит учитывать любой корпус. Корпус должен обеспечивать хорошую циркуляцию воздуха к датчику, но не допускать потока воздуха от остальной части платы, если это возможно. Корпус также не должен передавать тепло к датчику, и поэтому не должен соприкасаться с любой частью изолированной платы, на которой находится датчик.
Когда вы начинаете работать с датчиками температуры, вы можете начать сомневаться в самой реальности. Когда вы начинаете пытаться точно измерить температуру без значительного лабораторного оборудования, у вас возникает ощущение, что это невозможно сделать. Что такое 21°C? Как мы знаем, что это на самом деле не 20,9°C или 22°C, нам это важно?
Предположим, вы хотите измерить температуру определенного участка печатной платы или конкретного компонента непосредственно с самой платы. В этом случае вам нужно будет поступить наоборот советам, описанным выше. Это означает, что необходимо обеспечить максимально возможное соединение вашего датчика с измеряемой областью. Мы поговорим о очень интересном датчике позже в этой серии, о Microchip EMC1833T, который позволяет измерять температуру диода на расстоянии. Он специально предназначен для измерения температуры на кристалле интегральных схем, поддерживающих эту функцию, включая пользовательские ASIC, которые вы могли разработать.
В случае большинства датчиков, вы захотите передать тепло в кристалл или резистивный элемент датчика с наименьшим тепловым сопротивлением. Если у устройства есть радиатор, попробуйте использовать этот радиатор совместно с вашим температурным датчиком. В противном случае разместите компонент датчика как можно ближе к устройству или к области платы с высокой температурой, и в идеале обеспечьте электрическое соединение с медным слоем, который выполняет функцию радиатора. Это электрическое соединение, потенциально питание или земляная шина, может помочь направить тепло прямо в кристалл датчика.
Когда вам нужно измерить температуру чего-то вне вашей печатной платы, например, части машины, выбор типа датчика может быть абсолютно критичным для успеха вашего проекта. Большинство типов резистивных датчиков температуры не будут идеальным выбором, поскольку сопротивление кабеля может влиять на измеренную температуру. Существуют датчики, которые можно установить вне платы и разместить через отверстие в корпусе. Это поможет обеспечить измерение температуры вдали от горячих компонентов на плате.
В целом, решения с использованием кабелей представляют значительные трудности в промышленной среде, поскольку наведенные напряжения и токи на кабеле от электромагнитных помех от оборудования и машин могут негативно сказаться на точности измерений. Для датчиков с аналоговым выходом необходимы соответствующим образом экранированные кабели. Также цифровые датчики с интерфейсом I2C могут быть нецелесообразны, если расстояние между платой и датчиком слишком велико, поскольку I2C не является хорошим выбором для длинных сигнальных путей. В зависимости от диапазона температур использование датчика, такого как термопара, может быть вашим единственным выбором и идеальным для промышленных условий.
Все компоненты на печатной плате генерируют некоторое количество тепла в процессе работы. В случае температурного датчика это может быть катастрофическим для точности измерения температуры, поскольку собственные резистивные потери устройства могут вызвать смещение температуры в измеряемом значении. Если вам необходима максимальная точность, тогда выбор устройства с очень низким потреблением тока или использование резистивного устройства при очень низком токе даст вам гораздо более точные результаты измерения температуры.
Я работал над проектами, где мы добавляли значительное количество тепловой массы к датчику, чтобы он мог точно отражать температуру, важную для проекта. Например, в коммерческом холодильнике или морозильнике добавление тепловой массы к устройству, контролирующему температуру мясных продуктов, позволяет собирать правильную температуру, несмотря на открытие и закрытие двери. Тепловая масса действует в некотором роде как тепловая емкость.
В других ситуациях любое количество тепловой массы может вызвать у вас проблемы, поскольку измеренная температура отстает от фактической. Если ваш датчик присоединен напрямую к большой печатной плате или медной зоне без изоляции, вам будет сложно обнаружить мелкие или быстрые изменения окружающей температуры. Датчику и всей плате необходимо нагреться или остыть до новой локальной температуры, прежде чем вы сможете получить точное измерение температуры. Для датчика, которому необходимо проводить измерения с высокой частотой, точно отражающие окружающую среду, минимизация тепловой массы является важным шагом.
Прежде чем приступить к добавлению датчика температуры в ваш проект или основывать ваш проект на измерении температуры, вам необходимо понять одну вещь: вы никогда не сможете измерить температуру с помощью любого интегрального схемы или компонента, монтируемого на плату. Всё, что вы можете измерить, - это приблизительную температуру, и важно, достаточно ли точно это приближение температуры для вас. Для некоторых приложений датчик, точность которого составляет 5°C, будет вполне достаточен. Если вы контролируете критическую температуру в процессе, 0,1°C может оказаться недостаточно точным. Знать точную температуру практически невозможно для нас, это вопрос того, сколько градусов точности вам нужно, чтобы ваш проект работал. Большинство датчиков на рынке не дадут вам точности более одного десятичного знака, и многие не обеспечат точность более 1°C, некоторые даже с такой точностью испытывают трудности. Более высокая точность обычно связана с более высокими затратами на реализацию, будь то сам датчик или поддерживающая схемотехника.
Помимо точности, существует также понятие допуска. У вас может быть очень точный датчик температуры с широким диапазоном допусков, или датчик с очень узким допуском, но широким диапазоном точности. Если провести аналогию со стрельбой из лука, узкий допуск, но низкая точность может означать, что все стрелы сгруппированы очень близко друг к другу, или даже каждая стрела раскалывает предыдущую - но не очень близко к центру мишени. Очень точный, но с низким допуском датчик может означать, что все ваши выстрелы сгруппированы вокруг центра мишени, но никогда не попадают точно в одно и то же место. Хотя большинство датчиков, как правило, обладают очень высокой точностью в сочетании с очень узкими допусками или очень низкой точностью с очень широкими допусками, вы найдете немало таких, которые имеют немного того и другого.
Для некоторых приложений очень узкий допуск может быть важнее абсолютной точности температуры, которую сообщает датчик. Смещение точности может быть скорректировано в программном обеспечении, если датчик был характеризован в лаборатории и известно, как он сообщает данные. Если вы возьмете 1000 образцов, они все будут практически идентичны, в пределах очень узкого допуска, даже если все показания будут отличаться на 2°C.
В других приложениях может быть важнее знать фактическую температуру. Если вы возьмете 1000 показаний датчика, они все будут немного отличаться, но в целом будут сосредоточены вокруг фактической температуры. Вы можете взять эти показания и усреднить их, чтобы лучше понять фактическую температуру; однако каждое мгновенное показание будет немного неточным.
Дешевые датчики, такие как термисторы, могут иметь плохую точность и большие допуски по сравнению с другими вариантами. Такие датчики могут быть приемлемы для приложений, где вам нужна общая идея о температуре, например, для тепловой защиты печатной платы. Возвращаясь к ранее использованной аналогии, такие датчики больше похожи на начинающего лучника, стреляющего по мишени, его выстрелы разбросаны по всей мишени, и некоторые даже могут вообще промахнуться… но по крайней мере у вас есть общее представление о зоне поражения.
Каждую неделю мы будем изучать разные типы датчиков температуры. Однако у всех них будет общий интерфейс для облегчения их тестирования. У нас будет две разные платы-хоста, одна из которых может подключаться и мониторить все различные датчики, а другая может быстро тестировать один датчик. Оба варианта будут иметь микроконтроллер с поддержкой USB для сбора данных.
Каждый датчик будет иметь мезонинный разъем сверху и снизу, чтобы их можно было складывать, а также набор контактов на конце платы, противоположном датчику. Эти контакты позволят подключить датчик к разъему для края платы на устройстве для тестирования одного датчика.
Соединения, позволяющие складывать датчики, обеспечат высокую плотность датчиков на тестере для нескольких датчиков, гарантируя, что окружающая температура вокруг всех датчиков будет одинаковой. Таким образом, мы сможем разместить много датчиков на меньшей площади, располагая их вертикально, но при этом сохранять чистый воздух вокруг датчика. Мы будем тестировать датчики за пределами их полного рабочего диапазона температур, а также изучать, насколько быстро датчик может реагировать на изменения температуры, поэтому наличие всех датчиков в чистом воздухе, но не слишком далеко друг от друга, позволит провести лучшее сравнение.
Поскольку мы собираемся создать целую серию плат датчиков, я подумал, что было бы хорошей идеей создать шаблонный проект, который уже имеет схему и плату с определенными разъемами. Это обеспечит хорошее соединение плат, а также позволит сэкономить много времени на каждой плате.
Шаблоны в Altium невероятно легко реализовать. В другом программном обеспечении (не только пакетах ECAD) создание шаблона может быть настоящей проблемой, тогда как в Altium нет особых типов файлов или требований к шаблону, просто поместите печатную плату, схему или полный проект в ваш каталог шаблонов. При следующем перезапуске он будет доступен. Одно замечание, которое я бы хотел сделать, это убедиться, что в вашем шаблоне вы используете только те библиотеки, которые установлены у вас или находятся в Altium 365, чтобы Altium всегда мог найти используемые вами посадочные места и символы. База данных библиотеки или скомпилированная интегрированная библиотека, которая была добавлена во вкладку «Установлено» ваших настроек библиотеки на основе файлов, являются отличными вариантами, если вы еще не перешли на Altium 365.
Как аналоговая, так и цифровая платы датчиков будут иметь одинаковую компоновку платы, однако электрические соединения на разъемах будут различаться. Я использую мезонинные разъемы серии Hirose DF12(3.0)-14D для стыковки плат, поскольку они являются одними из наиболее доступных и дешевых разъемов. Высота в 3 мм между платами идеально подходит для этих датчиков, позволяя создать компактную стопку, но каждый из типов датчиков все равно должен быть в состоянии поместиться между платами, не подвергаясь влиянию платы сверху или снизу.
Чтобы создать шаблон проекта, мы можем начать с создания проекта в вашей обычной директории, как и любой другой проект. Затем добавьте схему и печатную плату точно так же, как вы обычно делаете.
Продолжая тему простого создания проекта, как обычно, добавьте те части схемы, которые будут общими для всех проектов, использующих этот шаблон. Вы можете легко хранить и получать доступ к этому шаблону проекта, используя Altium 365. Сначала вам нужно будет разместить проект в вашем рабочем пространстве Altium 365, используя команду "Сделать проект доступным онлайн" из панели проектов.
Эта команда поместит проект в ваше рабочее пространство Altium 365. Вы также можете добавить проект в формальное управление версиями, так что любые изменения в этом шаблоне проекта будут автоматически отслеживаться.
После того, как вы разместили этот шаблонный проект в Altium 365, вы можете создать новые карты датчиков, клонировав текущий проект. Самый простой способ сделать это - зайти в ваше Рабочее пространство через веб-браузер и использовать команду "Клонировать". Это создаст копию проекта, которую затем можно открыть и изменить в Altium Designer. Всегда хорошая идея держать ваши шаблонные проекты отдельно от производственных проектов, используя схему именования/нумерации, где это возможно. Когда вы клонируете проект, у вас будет возможность применить изменение имени, чтобы вы могли отслеживать различия между шаблоном и вашим новым производственным проектом.
Для этого проекта я добавляю оба мезонинных разъема с одинаковой компоновкой. Когда я создавал чертежи в своей библиотеке, я убедился, что первый контакт будет соответствовать первому контакту соединенного разъема. Это решение очень упрощает создание стеков, даже если оно может не совсем соответствовать нумерации контактов производителя из их производственного чертежа.
С помощью 14-контактных разъемов я могу использовать как 3.3V, так и 5V источники питания, а также десять аналоговых каналов. Хотя я мог бы установить десять плат друг на друга, несколько топологий аналоговых датчиков, которые мы собираемся использовать, смогут использовать дифференциальные пары для вывода, а наши основные платы будут иметь входы АЦП, поддерживающие дифференциальные пары.
Как я упоминал ранее, я также хочу иметь возможность подключить одну плату к плате, которая может работать с одной картой датчика для быстрой и легкой проверки платы или тестирования датчика. Для этого я хочу иметь контакты на конце платы, чтобы ее можно было подключить к разъему краевого типа.
Поскольку мне не нужно 10 аналоговых каналов к краевому разъему платы, я использовал два резистора с нулевым сопротивлением в качестве соединителей сети, что также позволяет мне выпаять их, если я захочу изолировать аналоговые соединения к концевым площадкам. Краевой разъем будет TE 5650118-3, который предлагает 12 пинов для подключения. Тем не менее, я хочу иметь возможность подключать плату датчика в любой ориентации, не рискуя что-то повредить, поэтому соединения на нижней стороне такие же, как и на верхней - только перевернутые. Для шаблона я не предоставляю никакого входного сигнала к резистору, поскольку это будет зависеть от конкретной реализации датчика на плате и от того, какой аналоговый канал он использует. Для недифференциального соединения датчика отрицательная сторона может быть просто подключена к земле в схеме датчика.
На печатной плате я добавил монтажное отверстие диаметром 3 мм, так что конструкция не будет полностью опираться только на мезонинный разъем. Я надеюсь, что размер платы достаточно большой для каждой из топологий датчиков, которые мы собираемся использовать, при этом плата имеет ширину 25 мм и длину 50 мм за пределами краевого разъема.
Я добавил шелкографию ключ для каналов, чтобы я мог добавить зону заливки в каждый из аналоговых каналов, которые будет использовать датчик, чтобы убедиться, что при сборке стека датчиков у меня не получится подключение двух каналов к одному и тому же аналоговому порту. Я также добавил некоторый фиктивный текст, так что на каждой плате будет добавлено описание типа и топологии датчика в одно и то же место, что в итоге даст мне красивый набор согласованных датчиков.
Как я упоминал в начале этой статьи, нам необходимо обеспечить тепловую изоляцию датчика от остальной части платы. Я добавил 3-миллиметровый вырез на слой трассировки, который обеспечит тепловую изоляцию для края платы. Это позволит мне разместить усилители или другие источники тепла между монтажным отверстием и вырезом, а элемент измерения температуры – подальше от них. Важно помнить, когда вы добавляете вырезы на плату, что нужно добавить путь запрета трассировки, идентичный пути выреза. Ничто не мешает вам случайно провести трассу через вырез! К счастью, в прошлом я всегда успевал заметить свои ошибки здесь, когда проводил окончательные проверки перед отправкой файла платы в производственную компанию - но иногда это было очень на грани!
Когда я тестирую скорость реакции датчиков, я хочу иметь одинаковую площадь платы, так чтобы каждый датчик обрабатывался одинаково - я собираюсь стараться не изменять размер или положение этого выреза по мере того, как мы продолжаем создание плат датчиков.
Хотя все это выглядит красиво и обеспечивает единообразную компоновку, одной из самых мощных функций шаблона для проекта подобного рода, где мы строим целую серию почти идентичных плат, является возможность иметь все общие трассировки на месте.
На трассировку уходит не так много времени, но когда вам нужно сделать это 20 или более раз с каждой платой, будучи одинаковыми, этот шаблон сэкономит много времени!
Мы можем использовать тот же процесс для создания шаблона проекта с цифровой версией этой карты датчика температуры. Вместо использования двух источников напряжения для питания различных аналоговых датчиков температуры, мы будем использовать шины I2C и SPI на плате для взаимодействия с цифровыми датчиками температуры. Проект шаблона для этой карты датчика показан ниже. Вы также можете заметить на изображении выше, что я также включил функции панелизации в шаблон.
Я добавил неметаллизированные площадки вдоль вырезов фрезерованного слота, чтобы создать элементы, похожие на "мышиные укусы", которые образуют легко снимаемые при изготовлении дизайна вкладыши. Я хотел, чтобы края оставались аккуратно обработанными, и не хотел грубого края V-образной насечки вдоль длинных сторон платы, поэтому вкладыши с "мышиными укусами" были лучшим вариантом для поддержания относительно чистого края платы. Размещая сверления прямо над контуром платы, можно уменьшить, насколько вкладыш выступает из платы. Эти платы не будут устанавливаться в корпус с плотным прилеганием, поэтому плохая размерная точность отломанного вкладыша печатной платы не вызовет проблем с посадкой или функционированием.
Поскольку у плат датчиков высота соединения между платами составляет 3 мм, мы хотим добавить правило, чтобы нельзя было размещать компоненты, которые могли бы столкнуться с компонентом сверху. В лучшем случае, мы можем иметь одну плату на стопку с компонентом выше 3 мм, верхний компонент.
В дополнение к нашим обычным правилам проектирования, я также изменяю стандартное правило размещения/высоты, ограничивая высоту 2.9 мм. В моей Библиотеке Altium Celestial, каждый компонент имеет точную 3D модель, включая все конденсаторы, что гарантирует, что я случайно не размещу конденсатор или другой компонент, который будет чуть-чуть слишком высоким.
Вместо того, чтобы начинать с нуля для цифрового датчика температуры, я вместо этого собираюсь сделать копию аналогового шаблона проекта, показанного выше, и внести необходимые изменения в схематический лист, а затем немного перераспределить трассировку на плате.
Распиновка разъема должна быть полностью изменена для поддержки наших двух цифровых протоколов: SPI и I2C. Все дополнительные контакты предназначены для линий выбора микросхем для датчиков на основе SPI. Это означает, что плата мультисенсора будет нуждаться в прошивке, которая знает, какой датчик будет на какой линии выбора микросхемы.
Коннектор для края платы не такой элегантный, как мне бы того хотелось. Из-за того, что плата может быть установлена в разъем в обратном положении, не хватает контактов, чтобы одновременно вывести наружу и SPI, и I2C. Мне не удалось найти подходящий, недорогой двухпозиционный переключатель, который бы соответствовал ограничению по высоте в 3 мм для дизайна платы - поэтому вместо этого я использую выборочно установленные резисторы. Хотя в шаблоне есть все четыре резистора, я намерен полностью удалить неиспользуемый резистор на финальных платах.
Так же, как и в аналоговом дизайне, я использую резистор как соединение сети для линии выбора микросхемы, чтобы правильная линия выбора микросхемы была подключена к контакту на коннекторе края платы. Плата выглядит очень похоже на аналоговую плату, поскольку я только что обновил схему для неё, так что все будет согласовано, когда мы дойдем до этапа тестирования дизайна. Это важно, чтобы убедиться, что цифровые датчики не будут иметь ложных срабатываний или несрабатываний в плане производительности по сравнению с их аналоговыми аналогами из-за дизайна платы. Мы хотим чистого сравнения между датчиками, а не их методов монтажа.
Как и в случае с аналоговым проектированием, у меня есть раздел шелкографии, чтобы отметить, какие линии выбора микросхемы использует эта конкретная плата, если она использует SPI. Это позволит мне убедиться, что в стеке находятся только уникальные выборы микросхем.
Как и в случае с аналоговой платой, наличие уже выполненной трассировки соединителей для каждой платы датчика сэкономит мне много времени. Это позволит мне сосредоточиться на датчиках, а не на трассировке соединителей для каждой платы.
Еще один вариант повторного использования этих карт датчиков - создать Шаблон Проекта для каждой из них. Это не то же самое, что проект, который используется как шаблон, то есть проект, который вы клонируете, а затем модифицируете, как мы сделали здесь.
Другой способ быстро применить настройки и файлы, использованные в нашей существующей карте датчика, - использовать команду "Сохранить проект на сервере как шаблон" в меню Файл. Это создаст новый шаблон из вашего проекта в папке "Managed Content\Templates\Project Templates" в вашем рабочем пространстве Altium 365. Теперь, когда вы хотите создать новую карту датчика для аналогового или цифрового датчика, вы можете применить этот шаблон к вашему новому проекту из Altium Designer.
В рамках этой серии статей мы подробно рассмотрим использование всех основных типов датчиков. Мы создадим карточки датчиков, используя шаблоны, созданные здесь, для каждой основной топологии использования данного типа датчика, чтобы мы могли сравнить их все в реальных условиях. Хотя некоторые топологии определенно лучше других, будет интересно увидеть, насколько это важно при столкновении с реальными условиями.
Мы будем оценивать:
В конце серии мы спроектируем две основные платы, а затем получим возможность сравнить все датчики в ряде неприятных температурных экстремумов!
Вы можете построить свои датчики, используя эти шаблоны, и использовать их вместе с основными платами, которые мы создадим в конце серии. Посетите репозиторий на GitHub для загрузки шаблонов и их локального использования.
Вы также найдете все разрабатываемые нами карты датчиков в этой серии в том же репозитории GitHub, так что вы можете увидеть предварительный просмотр того, что будет дальше в серии, проверив репозиторий!
Как всегда, эти проекты являются открытыми, выпущены под лицензией MIT, что позволяет вам использовать их с очень небольшими ограничениями. Когда вы будете готовы собрать свою карту датчика температуры и процессорную плату, используйте инструменты проектирования печатных плат в Altium Designer®. Когда вы закончите свой проект, и захотите поделиться им с вашими коллегами, платформа Altium 365™ упрощает совместную работу и обмен проектами. Мы только начали раскрывать возможности использования Altium Designer на Altium 365. Вы можете ознакомиться со страницей продукта для более подробного описания функций или одним из вебинаров по запросу.