Режимы работы стабилизатора питания в Arduino Nano

Duino A.R.
Offline
Зарегистрирован: 25.05.2015

Доброго времени суток!

Пост посвящен выяснению реальных номинальных и предельных режимов работы стабилизатора питания AMS1117 в платах Arduino Nano. Проведены фактические замеры электрических и тепловых параметров и необходимые расчеты по методике, рекомендуемой изготовителями микросхемы стабилизатора.

Даны рекомендации по организации питания устройств на базе плат семейства Arduino.

Duino A.R.
Offline
Зарегистрирован: 25.05.2015

Не отвечайте на этот пост!

Здесь я привожу ссылки на материалы, используемые в данной теме. Здесь же, в случае необходимости, будут размещены дополнительные ссылки.

Фактические параметры для расчетов возьмём из руководства фирмы 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/Термопара

 

Duino A.R.
Offline
Зарегистрирован: 25.05.2015

Огромное количество участников форума, задающих вопрос: «Почему моя плата/схема/устройство не работает?», одной из первых получают рекомендацию: «Проверь питание». Рекомендация вполне обоснованная.

Во многих платах семейства 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.

Все вышеуказанные условия должны выполняться одновременно. Посмотрим, какие условия и их сочетания выполнить легко, а какие - нет.

b707
Offline
Зарегистрирован: 26.05.2017

в п 4 поправьте максимум на минимум

Duino A.R.
Offline
Зарегистрирован: 25.05.2015

Итак, начнём. Проверим реалистичность выполнения первого условия: 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-и включенных последовательно пальчиковых батареек. Это актуально для движущихся моделей и игрушек.

 

Duino A.R.
Offline
Зарегистрирован: 25.05.2015

Перейдём к анализу параметра максимальной рассеиваемой мощности. Здесь ограничения становятся существенно более значимыми. Изготовитель гарантирует нормальную работу стабилизатора в корпусе  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 В. Чуть меньше — наш стабилизатор выйдет из управляемого режима, чуть больше — перегреется. В реальности дело обстоит ещё грустнее.

 

Duino A.R.
Offline
Зарегистрирован: 25.05.2015

Какой физический смысл в максимально допустимой рассеиваемой мощности? По сути речь идет о максимально допустимой рабочей температуре кристалла микросхемы. Производитель определил её в 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 °С/Вт. Тепловой переход расположен внутри корпуса микросхемы. Ни перепроверить, ни повлиять на его характеристики пользователю не представляется возможным. Остаётся довериться производителю.

 

Duino A.R.
Offline
Зарегистрирован: 25.05.2015

Тепло, выделившееся на кристалле внутри микросхемы передаётся в окружающую среду через её корпус. Передаётся оно через все конструктивные элементы, которые так или иначе имеют механический и, как следствие, тепловой контакт с кристаллом микросхемы. Но интенсивность отвода тепла при этом существенно разная. Пластмассовый корпус плохо передает тепло из-за низкой теплопроодности пластика, а электрические выводы из-за своего малого сечения. Поэтому для полупроводниковых приборов в пластмассовом корпусе, для которых важен отвод тепла, для этой цели формируют специально металлические площадки максимально возможного сечения и площади. Внутри корпуса прибора на этих площадках размещается кристалл, а снаружи к ним крепиться внешний радиатор, многократно увеличивающий теплоотдачу в окружающую среду.

Сделано так и в корпусе  SOT-223. Основной отвод тепла от кристалла осуществляется через широкий металлический «язык», расположенный на стороне корпуса, противоположной стороне с электрическими выводами. Микросхема стабилизатора предназначена для поверхностного автоматического монтажа. В качестве внешнего радиатора предусматривают полигон из медной фольги, к которому припаивается тепловой вывод микросхемы. Если тепловая нагрузка высока, то аналогичный медный полигон предусматривают и с обратной стороны монтажной платы. Эффективность теплоотвода зависит от большого количества разных параметров. Для некоторых вариантов изготовитель провел практические замеры и свел их в уже упоминавшуюся таблицу (Table 1). К сожалению, в случае с Arduino пользоваться этой таблицей можно только для качественной оценки. Площадей платы в тысячи квадратных миллиметров, которые можно отдать под теплоотвод, в семействе Arduino просто нет. Зато по таблице можно отследить, как может меняться нужное нам для расчетов термическое сопротивление кристалл-среда в зависимости от конструктивного исполнения теплоотвода.

До этого момента все наши рассуждения и расчёты можно было смело отнести к любой плате Arduino. Они касались легко измеряемых электрических параметров микросхемы стабилизатора. Эффективность отвода тепла напрямую и сильно зависит от конструкции платы, и сделанные измерения касаются только конкретного устройства. Их можно распространить на платы одного типа, считая что они производятся по одной и той же устойчивой технологии, и отличиями плат друг от друга можно пренебречь.

Согласно приводившихся выше формул, для расчёта термическое сопротивление корпус-среда (RTAT) нам нужно знать тепловую мощность и разницу температур между корпусом устройства и окружающей средой. Источник тепла у нас один. Его мощность мы уже считали как произведение выходного тока стабилизатора и падения напряжения на нём. Температуру окружающего воздуха можно замерить обычным жидкостным термометром. Если это не сувенир на холодильник, а именно комнатный жидкостной термометр, то его точности в +/- 1,0 °С в нашем случае будет совершенно достаточно.

А чем и как измерить температуру корпуса микросхемы? Сначала определимся с местом измерения. Как уже отмечалось, в микросхеме реализован специальный теплоотводящий вывод. Вот его температуру и нужно измерить. Чем это можно сделать? Скажу сразу — в промышленности такие измерения чаще всего делаются с помощью бескорпусной термопары. У меня такая оказалась в комплекте мультиметра PM18C. Собственно термопара это металлический шарик измеренным диаметром 1,1 мм на двух тонких жестких проволочках. Она отлично ложится в изгиб теплоотводящего вывода микросхемы стабилизатора. Температуру окружающего воздуха тоже буду измерять с её помощью. Поскольку нам важна не абсолютная температура, а разница температур между корпусом и воздухом, то использование одного и того же прибора уменьшит влияние возможных систематических ошибок.

 

Duino A.R.
Offline
Зарегистрирован: 25.05.2015

Теперь о проведении эксперимента. Закрываю окна и двери, чтобы не было сквозняков. Выбираю место для 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 °С/Вт. Поскольку по маркировке микросхемы я определить производителя не могу, то оставлю всё, как есть. Как посчитал.

 

Duino A.R.
Offline
Зарегистрирован: 25.05.2015

Какую практическую пользу можно извлечь из полученных с таким трудом данных?
Очень даже существенную. Теперь можно надёжно посчитать какую внешнюю нагрузку допустимо подключить к 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 мА.

 

Duino A.R.
Offline
Зарегистрирован: 25.05.2015

b707 пишет:
в п 4 поправьте максимум на минимум

Производитель для этого параметра приводит типовое и максимальное значение. Смысл максимального - если падение на стабилизаторе превышает это значение, то нормально будут работать все микросхемы этого типа.

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Браво! Очень достойное исследование!

Не стыдно и в солидный журнал отправить.

Duino A.R.
Offline
Зарегистрирован: 25.05.2015

mykaida пишет:
Браво! Очень достойное исследование! Не стыдно и в солидный журнал отправить.

Спасибо за добрые слова! :)) Теперь хоть будет самому на что сослаться, когда об этом снова речь зайдёт. А то листочки на столе имеют свойство со стола падать и теряться. :)

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Duino A.R. пишет:

Спасибо за добрые слова! :)) Теперь хоть будет самому на что сослаться, когда об этом снова речь зайдёт. А то листочки на столе имеют свойство со стола падать и теряться. :)

А отправьте статейку в журнальчики ардуино, а там еще несколько публикаций - и на кандидатскую можно выходить (если нету). Рецензентом буду без проблем. Мне понравилось - солидный подход.

Duino A.R.
Offline
Зарегистрирован: 25.05.2015

mykaida пишет:
А отправьте статейку в журнальчики ардуино, ...

А что, так можно было? :)) Я о таких даже и не слыхал, и думать не думал.

mykaida пишет:
... а там еще несколько публикаций - и на кандидатскую можно выходить (если нету).

Кандидат аирдуиноведения. А что, прикольно. :))

mykaida пишет:
Рецензентом буду без проблем.

Может, хоть что-то будет без проблем. :))

mykaida пишет:
Мне понравилось - солидный подход.

"У меня не мозг медленный, у меня подход основательный (С)". :)) Вот только для "интернетов" это, скорее, минус. :((

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Смешно. Возможно я по поводу Вас не правильно осознался?

Duino A.R.
Offline
Зарегистрирован: 25.05.2015

mykaida пишет:
Смешно. 

Вот и славно. :))

mykaida пишет:
Возможно я по поводу Вас не правильно осознался?

Паяльник когда зажмёшь в руку - вот он. Вещь. Тут. Никуда не денется. А со смыслами... Их мозгом надо, а там вещество - серое... Ускользают... Не понял. :))