Исследование и устранение импульсных помех по шине питания контроллера APM 2.5.2
Часто на форумах приходилось читать про необъяснимые проблемы с работой контроллера APM 2.5, которые в полёте приводили к авариям, анализ логов показывал, что в момент аварии происходило зависание контроллера или сбои в работе датчиков. После аварии контроллер продолжал исправно работать, локализовать проблему не удавалось. Такого рода аварии, как правило, связаны с импульсными помехами по шинам питания и радиопомехами. В связи с этим и возникла идея посмотреть, как обстоят дела с качеством питания в контроллере APM 2.5.2.
Как известно, разводка питания в контроллере APM 2.5 выполнена следующим образом:
Шина Outputs и разъём питания (PM) отделены от внутренней шины защитным диодом и предохранителем. При подаче питания с ESC или разъёма питания на диоде и предохранителе создаётся постоянное падение напряжения порядка 0.3-0.4В. Именно поэтому, при подаче питания через разъём PM, напряжение на модуле UBEC должно быть 5,3-5,4В. Как вариант, можно подавать питание на контроллер с отдельного UBEC 5.0В, непосредственно на внутреннюю шину, то есть подключить его к выводам питания шин Inputs или Analog, но прошу заметить, я вам этого не советовал.
Исследуем классический вариант подачи питания контроллера, через разъем PM. Вообще в радиоэлектронике считается “плохим тоном” в сильноточные шины и шины с большими пульсациями тока, ставить последовательно диоды, но разработчики контроллера решили именно так, и это действительно оправдано в данном случае, так как иначе пользователи жгли бы UBEC или порты USB при их одновременном включении, к тому же это хоть и «кривая», но защита от переполюсовки источника питания.
Измерения проводились на полностью собранном квадрокоптере с полётным контроллером HexTronik HKPilot Mega V2.5 и подключенным к нему нижеследующим оборудованием:
- Система телеметрии 433МГц на UART0
- Сонар HRLV-MaxSonar-EZ на А0
- GPS-модуль UBLOX LEA-6H
- Конвертер Mavlink-to-FrSky на UART2
- Приёмник FrSky D4R-II с телеметрией в режиме CPPM
- Регуляторы Afro ESC 30А
- Плата питания с ключом на BTS555 и малошумящим UBEC на TPS5430
- Маломощные светодиоды на А6 и А7
В качестве измерительного прибора использовался осциллограф RIGOL DS1052E, щуп подключался на шины Outputs и Analog. Во время измерений запускался MissionPlanner с подключением к контроллеру через модемы телеметрии.
Вот вид сверху собранного квадрокоптера, с подключением щупа осциллографа на шину Analog:
Плата питания установлена внутри рамы и выглядит так:
Приступим к измерениям. Сначала была снята осциллограмма на шине Outputs:
Уровень пульсаций составил 35 милливольт, что в общем, достаточно хороший результат. Например, спецификация ATX допускает уровень пульсаций 50 мВ на выходе компьютерного блока питания по шине 5В при максимальной нагрузке, то есть не более 1% от величины напряжения питания.
Затем произведён замер на внутренней шине Analog:
Уровень пульсаций доходил до 320 мВ, что превышало уровень входных пульсаций с платы питания в 9 раз, и составляло 6% от уровня входного напряжения. Это очень много, хотя при этом коптеры на APM летают, без крупных сбоев, в основном … Впрочем основные датчики сидят на шине 3.3В, иначе им было бы «очень плохо», но нет уверенности в том, что такой уровень пульсаций в сочетании с какими либо электромагнитными помехами, не могут «повесить» контроллер или привести к его сбоям.
Путём отключения и подключения оборудования, выяснилось, что наибольшую долю пульсаций вносит модем телеметрии. В общем, это ожидаемо, так как в момент отправки данных, при выходной мощности 100 мВт, модем создаёт большие пульсации тока, а когда шина питания контроллера, развязана диодом, то большой ток на внутренней шине контроллера, просто просаживает напряжение до текущего прямого напряжения диода на данном токе. После того, как ток в цепи питания уменьшится, напряжение опять подтягивается до большего значения.
Вот график зависимости прямого напряжения от тока, диода MBR120, который установлен в контроллере. На контроллере без периферии у меня на нём падало по постоянке 0,26В с периферией 0,4В:
Установка фильтров питания на периферии (модем в частности), почти ничего не даёт, так как у него длинные пакеты, и сгладить пульсации тока на нём проблематично. Мне видится единственное решение сгладить пульсации на шине 5В контроллера, которая развязана от источника питания диодом - шунтирование её ёмкостью. То есть смысл в том, чтобы ток на шине перед диодом не пульсировал, чтобы обеспечивать всегда одно и то же значение прямого напряжения последовательно включенного диода.
Из осциллограммы видно, что большие просадки по напряжению низкочастотные, длительностью до 20 мс и более, компенсировать которые можно установкой конденсаторов большой ёмкости, поэтому в шину Inputs был установлен конденсатор 3300 мкФ, 6.3В:
Уровень пульсаций при этом упал почти в два раза, однако всё ещё, имел довольно большое значение:
Также высокочастотная составляющая шума имела большую амплитуду, поэтому было решено, продолжить борьбу с пульсациями. Для этого, с обратной стороны платы между всеми контактами + и - шин питания, были установлены керамические SMD конденсаторы типоразмера 1206 на 10 мкФ 16В, вот такие:
Такое решение позволило набрать приличную ёмкость, без какого либо увеличения габаритов. Согласен, решение не стандартное, может даже дорогое и не оправданное, но применительно к данному случаю, мне оно понравилось. Конденсаторы пришлось ставить на ребро, так как по-другому, красиво впаять их не получалось:
Также с лицевой стороны платы был установлен электролитический конденсатор 220 мкФ 10В диаметром 5 мм, к сожалению большего номинала и размера установить не удалось, иначе корпус не закрывался:
Суммарная ёмкость конденсаторов составила 470 мкФ. Хотя 8 из них висят в шине Outputs, в моём случае они там были не особо нужны.
После этого контроллер был установлен на место, всё подключено как было, кроме внешнего конденсатора. После включения и запуска обмена по телеметрии, результат был такой:
Порадовало то, что конденсаторы на контроллере значительно лучше гасят пульсации, чем внешний конденсатор большой ёмкости, так как кроме низкочастотной составляющей, хорошо справляются и с высокочастотной, за счёт применения керамических конденсаторов и расположения их непосредственно на контактах шины питания.
С подключенным внешним конденсатором, результат стал лишь немного лучше:
В итоге, удалось добиться уровня пульсаций не более 90 мВ, что в 3.5 раза меньше, чем было.
Стоить отметить, что с запущенными на 50% газа двигателями (с пропеллерами), уровень пульсаций не увеличивался, при этом потребляемый ток составлял 14-15А. Это значит, что силовая часть платы питания и регуляторы, не оказывают существенного влияния на UBEC и контроллер.
Выводы:
- При питании контроллера APM 2.5 через разъём PM, установка конденсатора большой ёмкости на внутреннюю шину 5В контроллера, это самый быстрый и мало затратный способ, существенно уменьшить уровень пульсаций напряжения на шине питания и как следствие, увеличить надёжность и отказоустойчивость контроллера.
- Модем телеметрии вносит наибольший вклад в уровень пульсаций по шине питания, при его использовании, необходимы дополнительные меры по фильтрации питающего напряжения на внутренней шине 5В контроллера.
- Керамические конденсаторы на шинах питания контроллера и небольшой электролитический конденсатор, установленный непосредственно на плату контроллера, лучше справляются с импульсными помехами, чем внешний электролитический конденсатор большой ёмкости.
И на последок: Я вам не советую выполнять описанные модификации контролера APM, это лишь повод для размышления, если вы что-то предпримите, то на свой страх и риск.