Режимы работы стабилизатора питания в Arduino Nano
- Войдите на сайт для отправки комментариев
Чт, 23/04/2020 - 19:24
Доброго времени суток!
Пост посвящен выяснению реальных номинальных и предельных режимов работы стабилизатора питания AMS1117 в платах Arduino Nano. Проведены фактические замеры электрических и тепловых параметров и необходимые расчеты по методике, рекомендуемой изготовителями микросхемы стабилизатора.
Даны рекомендации по организации питания устройств на базе плат семейства Arduino.
Не отвечайте на этот пост!
Здесь я привожу ссылки на материалы, используемые в данной теме. Здесь же, в случае необходимости, будут размещены дополнительные ссылки.
Фактические параметры для расчетов возьмём из руководства фирмы Advanced Monolithic Systems, Inc. по производимой ею микросхеме стабилизатора AMS1117. Руководство лучше скачать по ссылке непосредственно с сайта фирмы-изготовителя: http://www.advanced-monolithic.com/pdf/ds1117.pdf Надеюсь, что там самый свежий на сегодня вариант. Изложенных в документе сведений вполне достаточно для решения поставленной задачи.
Из всего семейства стабилизаторов AMS1117 нас интересует только микросхема с выходным напряжением +5 В - AMS1117-5.0. Микросхема выпускается в корпусах трёх типов. Нас интересует корпус SOT-223. Именно такая микросхема стоит в Arduino Nano.
В сети можно найти и более старые документы от Advanced Monolithic Systems, Inc.:
https://static.chipdip.ru/lib/029/DOC001029248.pdf
Принципиальной разницы нет, но часть данных в новой версии добавлена, а часть, на мой взгляд, заменена на более реалистичные. Пользоваться будем актуальной версией.
А вот, на всякий случай, ссылка на документацию китайского производителя, выпускающего аналог:
http://www.kexin.com.cn/pdf/AMS1117.pdf
Это не просто перепечатка оригинальной документации. Часть характеристик расходится с оригиналом весьма существенно, а часть не приводится вовсе. При сохранении методики расчетов особенности аналогов следует учитывать, если расчет выполняется именно для них.
Также рекомендую ознакомится с небольшим материалом в Википедии, дающем представление о том, что такое «термическое сопротивление». Это потребуется для лучшего понимания материалов настоящей работы. Там буквально страничка. https://ru.wikipedia.org/wiki/Термическое_сопротивление
Измерения температур при проведении эксперимента будут производиться с помощью термопары. О том, что это такое, как устроено и работает, можно для начала почитать здесь: https://ru.wikipedia.org/wiki/Термопара
Огромное количество участников форума, задающих вопрос: «Почему моя плата/схема/устройство не работает?», одной из первых получают рекомендацию: «Проверь питание». Рекомендация вполне обоснованная.
Во многих платах семейства Arduino питание на устройство можно подвести несколькими способами:
1. Через разъем USB, установленный на плате.
2. Через установленный на плате разъём питания 5,5х2,1.
3. Через контакты разъёма, установленного на краю платы микроконтроллера.
Нас интересует случай, когда питание платы Arduino осуществляется через встроенный линейный стабилизатор питания. Этот вариант чаще всего используется для питания Arduino в уже готовой конструкции с отлаженным программным обеспечением. Получать питание по цепи +5 В от Arduino могут и некоторые внешние устройства: экраны, датчики, исполнительные устройства.
В качестве примера рассмотрим организацию питания платы Arduino Nano. Эта плата достаточно популярна из-за своих малых габаритов, небольшой цены и возможности программирования напрямую от компьютера, минуя программатор. В этом смысле она «как большая», только маленькая. На Arduino Nano, с одной стороны, стабилизатор находится в довольно тяжелых тепловых условиях, с другой стороны — методика исследования и результат вполне переносимы и на другие платы семейства Arduino.
В зависимости от конкретного производителя состав микросхем на плате может отличаться. Я рассмотрю доступный мне образец Arduino Nano с интерфейсной микросхемой CH340G и стабилизатором питания AMS1117-5.0 (далее — просто AMS1117). Это одна из самых распространенных версий Arduino Nano 3.0.
Схемотехника организации питания на Arduino Nano максимально проста: с линии Vin напряжение подаётся на вход стабилизатора, а выход стабилизатора соединен с линией питания +5 В. Питание с разъёма USB подаётся на линию +5 В через диод Шоттки.
Для нормальной продолжительной работы линейного стабилизатора должен выполняться ряд условий:
1. Входное напряжение должно быть не выше максимально допустимого VIN < =VINMAX.
2. Выходной ток должен быть не больше максимально допустимого IOUT<=IOUTMAX.
3. Выходной ток должен быть не ниже минимально допустимого IOUT=>IOUTMIN.
4. Падение напряжения на стабилизаторе должно быть не менее максимального ( VIN – VOUT) => VDOMAX (Dropout Voltage).
5. Рассеиваемая микросхемой мощность должна быть не более максимально допустимой PD<= PDMAX.
6. Температура кристалла микросхемы должна быть не более максимально допустимой TJ <= TJMAX.
Все вышеуказанные условия должны выполняться одновременно. Посмотрим, какие условия и их сочетания выполнить легко, а какие - нет.
в п 4 поправьте максимум на минимум
Итак, начнём. Проверим реалистичность выполнения первого условия: VIN < =VINMAX.
Согласно руководства по AMS1117 VINMAX = 15 В. Для любительских конструкций наиболее распространены стабилизированные источники питания с номинальным напряжением 9 В и 12 В. Редко, но могут попасться нестабилизированные источники питания. Такие использовать нельзя. На холостом ходу и при небольшом токе потребления их выходное напряжение может быть почти в 1,5 раза выше номинального. Для источника питания с номинальным напряжением в 12 В выходное напряжение составит 18 В, что не укладывается в допуск. Подключать Arduino напрямую к бортовой сети автомобиля с фактическим напряжением от 14.2 В до 14.4 В я бы тоже не рискнул. Всё на грани.
Хочу обратить внимание, что на странице http://arduino.ru/Hardware/ArduinoBoardNano
указано значение максимального входного напряжения в 20 В. Для Arduino Nano со стабилизаторами AMS1117-5.0 это явно перебор.
Теперь посмотрим ограничения по максимальному выходному току стабилизатора: IOUT<=IOUTMAX. Руководство даёт нам значение IOUTMAX = 0,8 А для регулируемого режима. Много это или мало? По моим замерам без подключенных выходов Arduino Nano потребляет ток 22 мА, MEGA 2560 - 80 мА. Если нагрузить десяток выходов вытекающим током 10 мА, это даст прирост в 0,1 А. Сюда укладывается и максимальный суммарный ток через выходы МК в 200 мА. На мой взгляд, ограничение выходного тока в 0,8 А для питания собственно плат Arduino само по себе выполняется совершенно легко. Как дальше будет видно, не в максимальном токе дело.
Для нормальной работы линейного стабилизатора в управляемом режиме его выходной ток не должен опускаться ниже определенного значения. Согласно примечания 5 (Note 5) ток через стабилизатор не должен опускаться ниже 10 мА. Поскольку стабилизатор — встроен в плату Arduino, и микросхемы микроконтроллера подключены к его выходу постоянно, то это условие выполняется всегда, если, конечно, микроконтроллер не переведен в режим сна.
Линейные стабилизаторы хороши малым уровнем пульсаций выходного напряжения и простотой подключения, но совсем не чемпионы в части коэффициента полезного действия (КПД). Им для нормальной работы обычно требуется весьма ощутимое падение напряжения между входом и выходом. AMS1117 относится к классу стабилизаторов с малым падением напряжения - low drop out (LDO). У него с этим «всё хорошо». Производитель гарантирует нормальную работу стабилизатора, если падение напряжения на нём составит не менее 1,3 В. Прибавим сюда возможные потери в разъёмах и примем значение в 1,5 В. Т.е. минимальное входное напряжение должно быть не менее 6,5 В. Это позволяет питать Arduino от двух последовательно включенных аккумуляторов типа 18650 или от 6-и последовательно включенных NiCd аккумуляторов, или от 5-и включенных последовательно пальчиковых батареек. Это актуально для движущихся моделей и игрушек.
Перейдём к анализу параметра максимальной рассеиваемой мощности. Здесь ограничения становятся существенно более значимыми. Изготовитель гарантирует нормальную работу стабилизатора в корпусе SOT-223 (см. примечание 2 (Note 2)), если на микросхеме выделяется не более 1,2 Вт тепловой мощности. Тепло в микросхеме берётся от её нагрева проходящим током. Рассчитать его можно весьма просто:
PD = (VIN — VOUT) * IOUT , где:
PD — рассеиваемая на стабилизаторе мощность, Вт ;
VIN — напряжение на входе стабилизатора, В;
VOUT — выходное напряжение стабилизатора, В (в нашем случае — 5 В);
IOUT — выходной ток стабилизатора, А.
Давайте посмотрим, какой ток может долговременно выдать стабилизатор при максимальной рассеиваемой мощности в 1,2 Вт и входном стабильном напряжении 12 В.
IOUT = PD/(VIN — VOUT) = 1,2/(12 — 5) = 0,17 А
Как мы видим, это совсем не много, в разы меньше, чем максимальный рабочий ток в 0,8 А. Если мы захотим при таком питании по максимуму задействовать выходы МК, то нагрузить их суммарным разрешённым током в 0,2 А не получиться.
Повторим расчет для входного напряжения в 9 В.
IOUT = PD/(VIN — VOUT) = 1,2/(9 — 5) = 0,3 А
Почти в 2 раза лучше, чем в предыдущем случае. Как говорится, разница видна невооруженным глазом. Замечу, что полученное значение всё также много меньше максимального тока в 0,8 А.
А достижимо ли вообще значение выходного тока в 0,8 А? Формально, по расчету — да. При входном напряжении в 6,5 В. Но чтобы его реализовать, нужно на входе использовать стабилизированный источник с напряжением ровно 6,5 В. Чуть меньше — наш стабилизатор выйдет из управляемого режима, чуть больше — перегреется. В реальности дело обстоит ещё грустнее.
Какой физический смысл в максимально допустимой рассеиваемой мощности? По сути речь идет о максимально допустимой рабочей температуре кристалла микросхемы. Производитель определил её в 125 °С. А как связать выделяемую мощность и температуру кристалла? Следующим образом:
TJ = TA(MAX) + PD * RTJA, где:
TJ — температура кристалла, °С;
TA(MAX) — (максимальная) температура окружающей среды;
PD — рассеиваемая на стабилизаторе мощность, Вт ;
RTJA — термическое сопротивление кристалл-среда — °С/Вт (в оригинале руководства для обозначения термического сопротивления однократно применена греческая буква «?», читается как «фи» = “phi”, в остальных местах этот параметр просто пишут словами. Для облегчения набора и сокращения объёма текста я использую условные обозначения из Википедии.).
Поскольку в нашем случае тепло возникает в кристалле микросхемы, от него передается на корпус микросхемы, а с корпуса микросхемы передаётся окружающей среде, то верно выражение:
RTJA = RTJT + RTTA , где:
RTJA — термическое сопротивление кристалл-среда — °С/Вт
RTJT — термическое сопротивление кристалл-корпус, °С/Вт;
RTTA — термическое сопротивление корпус-среда, °С/Вт.
Т.е. величина допустимой рассеиваемой мощности напрямую зависит от эффективности отвода тепла от микросхемы и от температуры окружающей среды.
В указанных выше формулах нам нужно знать RTJA. Если мы можем позволить себе на плате организовать теплоотводящие полигоны (с одной или двух сторон печатной платы) размером в единицы тысяч (!) мм2, то можно воспользоваться таблицей 1 (Table 1). Ни в какой плате Arduino таких площадей нет. Для самостоятельного вычисления RTJA требуются RTJT и RTAT. Где их взять?
Термическое сопротивление кристалл-корпус (RTJT) зависит от технологии изготовления микросхемы, оно достаточно стабильно и относительно невелико. Производитель оценивает его значение в 15 °С/Вт. Тепловой переход расположен внутри корпуса микросхемы. Ни перепроверить, ни повлиять на его характеристики пользователю не представляется возможным. Остаётся довериться производителю.
Тепло, выделившееся на кристалле внутри микросхемы передаётся в окружающую среду через её корпус. Передаётся оно через все конструктивные элементы, которые так или иначе имеют механический и, как следствие, тепловой контакт с кристаллом микросхемы. Но интенсивность отвода тепла при этом существенно разная. Пластмассовый корпус плохо передает тепло из-за низкой теплопроодности пластика, а электрические выводы из-за своего малого сечения. Поэтому для полупроводниковых приборов в пластмассовом корпусе, для которых важен отвод тепла, для этой цели формируют специально металлические площадки максимально возможного сечения и площади. Внутри корпуса прибора на этих площадках размещается кристалл, а снаружи к ним крепиться внешний радиатор, многократно увеличивающий теплоотдачу в окружающую среду.
Сделано так и в корпусе SOT-223. Основной отвод тепла от кристалла осуществляется через широкий металлический «язык», расположенный на стороне корпуса, противоположной стороне с электрическими выводами. Микросхема стабилизатора предназначена для поверхностного автоматического монтажа. В качестве внешнего радиатора предусматривают полигон из медной фольги, к которому припаивается тепловой вывод микросхемы. Если тепловая нагрузка высока, то аналогичный медный полигон предусматривают и с обратной стороны монтажной платы. Эффективность теплоотвода зависит от большого количества разных параметров. Для некоторых вариантов изготовитель провел практические замеры и свел их в уже упоминавшуюся таблицу (Table 1). К сожалению, в случае с Arduino пользоваться этой таблицей можно только для качественной оценки. Площадей платы в тысячи квадратных миллиметров, которые можно отдать под теплоотвод, в семействе Arduino просто нет. Зато по таблице можно отследить, как может меняться нужное нам для расчетов термическое сопротивление кристалл-среда в зависимости от конструктивного исполнения теплоотвода.
До этого момента все наши рассуждения и расчёты можно было смело отнести к любой плате Arduino. Они касались легко измеряемых электрических параметров микросхемы стабилизатора. Эффективность отвода тепла напрямую и сильно зависит от конструкции платы, и сделанные измерения касаются только конкретного устройства. Их можно распространить на платы одного типа, считая что они производятся по одной и той же устойчивой технологии, и отличиями плат друг от друга можно пренебречь.
Согласно приводившихся выше формул, для расчёта термическое сопротивление корпус-среда (RTAT) нам нужно знать тепловую мощность и разницу температур между корпусом устройства и окружающей средой. Источник тепла у нас один. Его мощность мы уже считали как произведение выходного тока стабилизатора и падения напряжения на нём. Температуру окружающего воздуха можно замерить обычным жидкостным термометром. Если это не сувенир на холодильник, а именно комнатный жидкостной термометр, то его точности в +/- 1,0 °С в нашем случае будет совершенно достаточно.
А чем и как измерить температуру корпуса микросхемы? Сначала определимся с местом измерения. Как уже отмечалось, в микросхеме реализован специальный теплоотводящий вывод. Вот его температуру и нужно измерить. Чем это можно сделать? Скажу сразу — в промышленности такие измерения чаще всего делаются с помощью бескорпусной термопары. У меня такая оказалась в комплекте мультиметра PM18C. Собственно термопара это металлический шарик измеренным диаметром 1,1 мм на двух тонких жестких проволочках. Она отлично ложится в изгиб теплоотводящего вывода микросхемы стабилизатора. Температуру окружающего воздуха тоже буду измерять с её помощью. Поскольку нам важна не абсолютная температура, а разница температур между корпусом и воздухом, то использование одного и того же прибора уменьшит влияние возможных систематических ошибок.
Теперь о проведении эксперимента. Закрываю окна и двери, чтобы не было сквозняков. Выбираю место для Arduino Nano, где нет поддува от вентиляторов ноутбука или других приборов. Располагаю МК горизонтально «брюшком» вверх, что был свободный доступ к микросхеме стабилизатора. Подаю питание от стабилизированного адаптера 12 В на вход VIN. В Arduino Nano залита программа «в состоянии поставки» - блинк. Даю МК поработать 5 минут, чтобы выровнялся тепловой режим. Замеряю температуру воздуха в зоне эксперимента. Устанавливаю термопару на середину изгиба теплоотводящего вывода микросхемы. Дыша в сторону жду еще 5 минут, чтобы обеспечить стабильность показаний температуры. Замеряю входное и выходное напряжения, потребляемый ток. Все измерения провожу мультиметром PM18C.
Результаты замеров таковы:
VIN , В = 11,6;
VOUT , В = 5,0;
IOUT , мА = 22.
TA, °С = 22;
TT, °С = 40;
Получим значения расчетных величин:
PD = (VIN — VOUT) * IOUT = ( 11,6 — 5,0) * 0,022 = 0,145 Вт ;
RTTA = (TT – TA) / PD = (40 — 22) / 0,145 = 124 °С/Вт
RTJA = RTJT + RTTA = 15 + 124 = 139 °С/Вт
Оценим достоверность полученного результата. В документе от Advanced Monolithic Systems говорится, что RTJA для корпуса SOT-223 равна 90 °С/Вт, но при определенных условиях RTJA может превышать 90 °С/Вт. Насколько? В полтора раза — это ошибка эксперимента или те самые «некоторые условия». Обратимся к документации китайского производителя Kexin. Для своих микросхем стабилизаторов они указывают RTJA = 136 °С/Вт при отсутствии циркуляции воздуха. На мой взгляд, «вот это оно и есть». Даже удивительно, что с такой точностью. Если изначально считать микросхему китайским аналогом, то в моих расчетах следовало бы накинуть ещё 5 °С/Вт, поскольку для своих микросхем китайцы дают термическое сопротивление кристалл-корпус не 15, а 20 °С/Вт. Поскольку по маркировке микросхемы я определить производителя не могу, то оставлю всё, как есть. Как посчитал.
Какую практическую пользу можно извлечь из полученных с таким трудом данных?
Очень даже существенную. Теперь можно надёжно посчитать какую внешнюю нагрузку допустимо подключить к Arduino Nano при каком источнике питания и температуре воздуха. В данном случае я опущу промежуточные вычисления, а представлю итоговую таблицу для наиболее популярных значений параметров.
Таблица 1
Значения допустимого тока потребления внешними устройствами
для Arduino Nano, мА (TJ (мах) = 125 °С, IMCU = 22 мА)
TA, °С \ VIN , В
9
12
15
175
91
20
168
87
25
158
81
30
148
75
35
141
71
40
131
65
До настоящего момента самым жестким требованием было соблюдение максимальной рассеиваемой мощности в 1,2 Вт. По фактически полученным данным это требование придется ужесточить. Для Arduino Nano при температуре воздуха 25 °С допустимая рассеиваемая мощность будет только 0,72 Вт. И мощность эта падает с повышением температуры. При 40 °С это уже 0,61 Вт.
Таблица построена из заявленной производителем максимальной температуры кристалла микросхемв в 125 °С. Вот если честно, я бы до такого при длительной эксплуатации не доводил. В своих схемах я бы уменьшил разрешенные токи в таблице 1 процентов этак на 15… 20.
Общие выводы:
1. В микроконтроллерах семейства Arduino наибольшим ограничивающим фактором при питании по линии VIN можно считать потенциальный перегрев линейного стабилизатора.
2. Для упрощенных расчетов суммарных токов потребления для МК Arduino Nano можно рекомендовать в диапазоне температур окружающего воздуха 15 … 40 °С принять максимально допустимую рассеиваемую мощность линейного стабилизатора 0,6 Вт.
3. Сетевое питание МК Arduino по линии VIN рекомендуется вести с помощью стабилизированных блоков питания (адаптеров) с выходным напряжением 9 В и допустимым током нагрузки 0,5 … 1,0 А.
4. При питании Arduino Nano от внешнего стабилизированного источника напряжением 9 В суммарный ток по всем подключенным внешним устройствам и входам/выходам не должен превышать 130 мА в диапазоне температур 15 … 40 °С. При длительном непрерывном использовании устройства рекомендуется суммарный ток снизить до 110 мА.
Производитель для этого параметра приводит типовое и максимальное значение. Смысл максимального - если падение на стабилизаторе превышает это значение, то нормально будут работать все микросхемы этого типа.
Браво! Очень достойное исследование!
Не стыдно и в солидный журнал отправить.
Спасибо за добрые слова! :)) Теперь хоть будет самому на что сослаться, когда об этом снова речь зайдёт. А то листочки на столе имеют свойство со стола падать и теряться. :)
Спасибо за добрые слова! :)) Теперь хоть будет самому на что сослаться, когда об этом снова речь зайдёт. А то листочки на столе имеют свойство со стола падать и теряться. :)
А отправьте статейку в журнальчики ардуино, а там еще несколько публикаций - и на кандидатскую можно выходить (если нету). Рецензентом буду без проблем. Мне понравилось - солидный подход.
А что, так можно было? :)) Я о таких даже и не слыхал, и думать не думал.
Кандидат аирдуиноведения. А что, прикольно. :))
Может, хоть что-то будет без проблем. :))
"У меня не мозг медленный, у меня подход основательный (С)". :)) Вот только для "интернетов" это, скорее, минус. :((
Смешно. Возможно я по поводу Вас не правильно осознался?
Вот и славно. :))
Паяльник когда зажмёшь в руку - вот он. Вещь. Тут. Никуда не денется. А со смыслами... Их мозгом надо, а там вещество - серое... Ускользают... Не понял. :))