Девайсы
Статьи
Контакты

Зарядное устройство на базе STM32

Устройство предназначено для зарядки и тестирования аккумуляторов напряжением до 12В при токе до 2А.
Функции устройства:
- режимы с ручным регулированием тока зарядки и разрядки;
- настраиваемые автоматические режимы зарядки (CC/CV) и разрядки (CC);
- настраиваемые отсечки по току, напряжению, температуре, заряду (А*ч), энергии (Вт*ч) и времени заряда/разряда;
- отображение количества заряда (А*ч) и энергии (Вт*ч) при зарядке/разрядке;
- связь с ПК по UART и мониторинг параметров (графики + лог).

Внешний вид зарядного устройства Интерфейс зарядного устройства

Рисунок 1 - внешний вид и описание интерфейса

Схема зарядного устройства

Рисунок 2 - Схема зарядного устройства

Описание схемы

Устройство питается от внешнего источника 12-15В постоянного тока. Центральным элементом управления является контроллер STM32F103C8T6 на плате "Blue pill". Цепь зарядки реализована buck-конвертером VT1-VD1-L1-C15..C18. Ключ VT1 управляется ШИМ-сигналом на частоте 34кГц от контроллера по каналу PA8. Ток регулируется в процессе зарядки/разрядки вручную кпопками Plus/Minus, либо по алгоритмам, описанным далее. Транзистор VT1 (IRF5305: Vds=-55В; Id=-31А; Rds_on=60мОм) в данной сборке при токе 2-3А работает без радиатора. Но, если без радиатора допустить выделение мощности в 1Вт, учитывая только потери проводимости (через Rds_on), то допустимый среднеквадратичный ток для VT1 ограничится до 4,1А. При зарядке также нагреваются резисторы шунта R17-R18, допустимый ток для них ограничивается их суммарной мощностью рассеивания и составляет 2,8А.
Емкости фильтров на входе и выходе набраны из нескольких электролитических конденсаторов параллельно вместо одного большого, для снижения результирующей ESR/ESL (эквивалентное последовательное сопротивление/индуктивность). Как дополнительная мера фильтрации, параллельно добавлены керамические SMD-конденсаторы.
Индуктивность дросселя рассчитана по формуле:

Формула расчета индуктивности дросселя

где Vout - выходное напряжение, В;
Vin - входное напряжение, В;
k - коэффициент допустимых пульсаций тока в дросселе;
Iout - выходной ток, А;
f - частота работы ШИМ, Гц.

С учетом того, что выходное напряжение должно регулироваться в широких пределах, ниже задаются условия и приводится расчет индуктивности (в MathCad):
Vin = 15В; Iout = 3А; k = 0,1; f = 34000Гц; Vout - переменная, от 0 до 12В.

Расчет расчета индуктивности дросселя

Для всего диапазона регулирования выходного напряжения наибольшая величина требуемой индуктивности составляет 368 мкГн. Дроссель намотан на кольце 25x15x10 из порошкового железа проводом МГТФ-0,5 количеством 57 витка, его индуктивность составляет 380 мкГн. Если использовать другой материал, с другой магнитной проницаемостью, то для получения заданной величины индуктивности может потребоваться другое число витков. Кроме того должно выполняться условие исключения насыщения:

Условие подбора сердечника по индукции насыщения

где L - индуктивность дросселя, Гн;
imax - амплитуда тока через дроссель, А;
N - число витков, шт.;
A - площадь поперечного сечения магнитопровода, м2;
Bmax - допустимая магнитная индукция, Тл. Принимается равной (0,7..0,8)*Bs, где Bs - индукция насыщения материала.

Из формулы следует, что подходят сердечники с высокой индукцией насыщения и низким соотношением L / N2 (т.е. с низкой магнитной проницаемостью или с зазором). Для данного устройства в результате экспериментов с разными сердечниками (в том числе c ферритами N87 разных размеров) из имеющихся был выбран сердечник из порошкового железа от одного из дросселей компьютерного БП. Считается, что железо имеет относительно большие удельные потери, но, на малой частоте (34кГц), при малой массе и токах это не столь критично. Есть также специализированные материалы типа Kool Mμ®, XFlux®, Amoflux® и другие. При нормальной работе преобразователя, амплитуда колебаний тока в нагрузке будет минимальна. Если же имеет место насыщение дросселя, то в нем (и в нагрузке) будут иметь место нелинейно нарастающие пики тока в фазе открытия ключа. На рисунке 3 приведены осциллограммы тока нагрузки и напряжения на измерительном витке дросселя (один виток, продетый через сердечник) в режимах без насыщения и с насыщением в одном масштабе. На рисунке 4 сравниваются модели с сердечниками на порошковом железе и на феррите N87.

Осциллограмма тока нагрузки без насыщения дросселя   Осциллограмма тока нагрузки с насыщением дросселя

Рисунок 3 - Форма напряжения на измерительном витке дросселя L1 (CH1) и тока нагрузки (CH2) в нормальном режиме (слева) и с насыщением дросселя (справа)

Сравнение моделей buck-конвертера с дросселями на сердечниках из разного материала

Рисунок 4 - Сравнение моделей buck-конвертера с дросселями на сердечниках из разного материала

Разрядная цепь включает в себя нагрузочный резистор R15+R16 и ключ VT2, который управляется ШИМ-сигналом по каналу PA9. Степень заполнения (ток) регулируется пользователем вручную. Максимальный разрядный ток ограничивается максимальным током транзистора VT2 (для IRF530 Id=16А), а также мощностью рассеяния его без радиатора. Если допустить на транзисторе без радиатора потери проводимости в 1Вт, без учета динамических потерь, то допустимый среднеквадратичный ток для VT2 с Rds_on=0,16Ом составит 2,5А. Для нагрузочных и шунтовых резисторов ток ограничивается их максимальной мощностью рассеяния и в режиме разрядки составит 2,8А.

С учетом вышесказанного, не рекомендуется превышать токи:
2,8А - для режима зарядки;
2,5А - для режима разрядки.

Алгоритм

При подаче питания отображается экран заставки, сразу после пропадания которого контроллер проверяет, нажата ли кнопка Stop/Menu, и если нажата, то происходит вход в меню настроек. В меню можно менять константы, задающие допустимые пределы напряжений, токов, температуры и другое (см. таблицу 1). Если кнопка не была нажата, то контроллер входит в режим ожидания команд пользователя. Светодиодами Charge и Discharge отображается текущий режим (постоянное свечение - выбран; мигание - запущен), смена которого производится нажатием кнопки Stop/Menu. Режим зарядки (Charge) также делится на ручной и автоматический СC/CV. При выборе ручного режима, вместе со светодиодом Charge на дисплее отображается текущее значение коэффициента заполнения, которое можно регулировать кнопками Plus и Minus как в остановленном режиме, так и в запущенном. При следующем нажатии на кнопки Stop/Menu происходит выбор режима зарядки CC/CV, при этом по прежнему горит диод Charge, но ширина заполнения уже недоступна для регулирования и отображается как "---". При следующем нажатии Stop/Menu, выбирается режим разрядки и загорается светодиод Discharge. Запуск выбранного режима осуществляется нажатием кнопки Start/Save. В зависимости от того, выбрана зарядка или разрядка, включается ШИМ-управление ключами заряда или разряда и запускаются счетчики энергии переданной или принятой от аккумулятора, а также счетчик времени с момента старта. Измерения тока и напряжения производятся АЦП сериями по 500 измерений (для усреднения), каждая из которых запускается 10 раз в секунду. Получаемые каждые 0,1с усредненные значения тока и напряжения отображаются на дисплее, сравниваются с уставками защит и предупреждений, а также используются при интегрировании по времени емкости аккумулятора при разряде и заряде (от начала процесса до текущего момента). При запущенных режимах переключение единиц отображения ёмкости (А*ч, Вт*ч) осуществляется нажатием кнопки Start/Save. Разница в единицах заключается в том, что при измерении в А*ч, происходит интегрирование по времени только тока, без учета напряжения аккумулятора и его изменения в процессе зарядки/разрядки. Так при разном уровне заряда (напряжении) отдается разная величина мощности, при одной и той же величине тока. При измерении в Вт*ч происходит интегрирование по времени произведений тока и напряжения, показывая суммарное количество энергии, переданной при заряде/разряде.

Расчет количества электрической энергии

где W - количество электрической энергии, Вт*ч;
um - мгновенное значение напряжения, В;
im - мгновенное значение тока, А;
T - время, в течение которого измерялась энергия, ч;
N - количество измерений;
Δt - период дискретизации (промежуток времени между измерениями), ч. (в данном случае Δt = 1/3600/10)

Зарядка в ручном режиме

После нажатия кнопки Start/Save зарядка продолжается до тех пор, пока не выполнится одно из трех условий: сработала отсечка по напряжению VMAX; нажатие кнопки Stop; срабатывание других защит. Во всех этих случаях незамедлительно снимается сигнал управления ключом заряда. В этом режиме отсечка по порогу напряжения VMAX не считается аварийной, поэтому начинает мигать светодиод "Warning" с частотой 1 Гц, а на дисплее отображаются последние измеренные параметры, а также поочередно отображаются переданный заряд в А*ч, количество энергии в Вт*ч и время зарядки. Напротив значения напряжения появляется символ "*", который говорит о том, что остсечка произошла по напряжению (рис. 7).

Процесс зарядки литий-ионного аккумулятора

Рисунок 5 - Процесс зарядки литий-ионного аккумулятора в ручном режиме регулирования тока

Зарядка в режиме CC/CV

В этом режиме зарядка производится в два этапа: стабилизированного тока (СС - constant current) и стабилизированного напряжения (CV - constant voltage). Алгоритм в процессе зарядки не допускает выхода далеко за пределы порогов стабилизации тока I_STAB и напряжения V_STAB. ШИМ в этом режиме работает на частоте 36кГц с разрешением 1000, текущее значение отображается в правом верхнем углу и недоступно для ручного регулирования. Пока напряжение аккумулятора ниже V_STAB, поддерживается максимальный ток I_STAB (режим CC), который при запуске плавно нарастает в течение нескольких секунд. Когда напряжение аккумулятора достигло порога V_STAB, то начинает регулироваться ток, таким образом напряжение не выходит за пределы V_STAB и остается постоянным (режим CV). Когда зарядный ток снижается и достигает нижнего порога I_END при напряжении V_STAB, аккумулятор считается заряженным, процесс безаварийно останавливается, на дисплее отображается состояние "END" (рис. 7) и начинает мигать светодиод "Warning". Если по каким-то причинам ток или напряжение выходят далеко за пределы стабилизации, сработают защитные отсечки по VMAX и I_MAX_CH, которые должны выбираться так, чтобы был некоторый запас (например, 0,05В и 0,2А) по отношению к V_STAB и I_STAB, для снижения вероятности срабатываний вблизи порогов стабилизации.

Процесс зарядки литий-ионного аккумулятора в режиме CC/CV

Рисунок 6 - Процесс зарядки литий-ионного аккумулятора в режиме CC/CV

Разрядка в ручном и стабилизированном (CC) режимах

Как и зарядка, разрядка продолжается до срабатывания одного из трех условий: разрядка закончена; нажатие кнопки Stop; срабатывание защит. Прекращение разрядки и снятие сигнала управления разрядного ключа происходит автоматически в момент достижения величины напряжения аккумулятора ниже VMIN, что говорит о его полном разряде (в заданных пределах) процесс безаварийно останавливается, на дисплее осображается состояние "END" и начинает мигать светодиод "Warning". Разрядка в режиме CC (Constant current) отличается от ручной только тем, что ток разрядки поддерживается контроллером на заданном значении CC_I_DIS.

Защита

Во всех режимах работы устройства отслеживаются параметры на выходе, напряжение, ток и температура (если подключен датчик). При зарядке и разрядке также контролируются количество переданной энергии и время процесса. Если какой либо параметр выходит за допустимые пределы, то срабатывает отсечка и снимаются сигналы управления ключами. При аварийной остановке, в правом углу дисплея отображается информация об отсечке, срабатывание которой зафиксировано:
OVP - защита по максимальному напряжению VMAX (Over Voltage Protect);
UVP - защита по минимальному напряжению VMIN (Under Voltage Protect);
OCP - защита по максимальному току I_MAX_CH или I_MAX_DISCH (Over Current Protect);
OTP - защита по максимальной температуре MAX_TEMP (Over Temperature Protect);
CQP - защита по максимальному заряду в режиме зарядки Q_CH (А*ч);
CWP - защита по максимальной энергии в режиме зарядки W_CH (Вт*ч);
CTP - защита по максимальному времени зарядки T_CH;
DQP - защита по максимальному заряду в режиме разрядки Q_DISCH (А*ч);
DWP - защита по максимальной энергии в режиме разрядки W_DISCH (Вт*ч);
DTP - защита по максимальному времени разрядки T_DISCH;
END - безаварийное окончание зарядки/разрядки.

Цикл отображения параметров при автоматической остановке

Рисунок 7 - Цикл отображения параметров при завершении зарядки/разрядки и при аварийной остановке

Состояние Hard Fault

В случае, когда в ждущем режиме (вне режимов зарядки/разрядки), а также после срабатывания отсечек, когда ключи должны быть заперты, ток на выходе продолжает сохранять значение более 0,1А, то фиксируется состояние Hard Fault, которое сбрасывается перезапуском контроллера. Такая ситуация может быть при пробое ключей или неисправности схемы управления затворами. При срабатывании включается постоянный звуковой сигнал (если разрешен настройками) и переводится в состояние "0" сигнал на PB12. Этот пин позволяет задействовать дополнительные внешние схемы отключения аккумулятора от устройства в качестве запасной защиты (рис. 8). Но, в приведенной разводке платы этот пин не используется.

Схема дополнительной защиты

Рисунок 8 - Одна из схем возможного подключения PB12 для дополнительной защиты (номиналы зависят от параметров катушки реле и транзистора)

Отображение Диапазон изменения Описание
0 - VMAX Минимальное напряжение аккумулятора.
При снижении напряжения аккумулятора ниже данного значения в режиме разрядки, процесс разрядки штатно останавливается. В остальных режимах снижение напряжения ниже данной уставки приводит к аварийной остановке.
VMIN - 99,99 Максимальное напряжение аккумулятора.
При превышении напряжения аккумулятора выше данного значения в режиме зарядки, процесс зарядки штатно останавливается. В остальных режимах превышение напряжения выше данной уставки приводит к аварийной остановке.
0 - 999 Температура предупреждения.
При превышении измеренной температуры выше данной константы происходит засвечивание светодиода "Warning" и появление символа "!" напротив измеренного значения.
0 - 999 Максимальная допустимая температура аккумулятора.
При превышении измеренной температуры выше данной константы происходит аварийная остановка.
0 - 99,99 Ток режима зарядки (предупреждающий).
При превышении тока выше данной константы происходит засвечивание светодиода "Warning" и появление символа "!" напротив измеренного значения.
0 - 99,99 Максимальный ток режима зарядки.
При превышении тока выше данной константы происходит аварийная остановка.
0 - 99,99 Ток режима разрядки (предупреждающий).
При превышении тока выше данной константы происходит засвечивание светодиода "Warning" и появление символа "!" напротив измеренного значения.
0 - 99,99 Максимальный ток режима разрядки.
При превышении тока выше данной константы происходит аварийная остановка.
00,01 - 99,99 Сопротивление измерительного шунта.
Фактическое результирующее сопротивление R17-R18. Параметр используется при расчете измеряемого тока. Диапазон изменения: от 00,01 до 99,99. При сопротивлении шунта менее 0,5 Ом, дискретность измеренных значений тока начинает превышать 0,01 А.
0 - 1 Разрешение вывода звуковых сигналов.
0 - 1 Наличие датчика температуры.
Если параметр установлен в 0, то канал измерения температуры игнорируется и не отображается на дисплее.
0 - VMAX Напряжение стабилизации в режиме CC/CV.
Напряжение, до которого разрешено заряжать аккумулятор (рис. 6).
0 - IMAX Напряжение стабилизации в режиме CC/CV.
Максимальный ток заряда аккумулятора (рис. 6).
0 - I_STAB Ток окончания зарядки в режиме CC/CV.
Ток, при снижении до которого зарядка останавливается, при условии, что достигнуто напряжение V_STAB (рис. 6).
0 - 99,999 Максимальный заряд (А*ч) в режиме зарядки
Величина отданного заряда, при достижении которой происходит отсечка CQP.
0 - 99,99 Максимальная энергия (Вт*ч) в режиме зарядки
Величина отданной энергии, при достижении которой происходит отсечка CWP.
00:00:00 - 99:59:59 Максимальное время зарядки (чч:мм:сс)
Время, по истечении которого в режиме зарядки происходит отсечка CTP.
0 - 99,999 Максимальный заряд (А*ч) в режиме разрядки
Величина принятого заряда, при достижении которой происходит отсечка DQP.
0 - 99,99 Максимальная энергия (Вт*ч) в режиме разрядки
Величина принятой энергии, при достижении которой происходит отсечка DWP.
00:00:00 - 99:59:59 Максимальное время разрядки (чч:мм:сс)
Время, по истечении которого в режиме разрядки происходит отсечка DTP.
0 - MAX_I (disch.) Заданный ток в режиме разряда CC

Таблица 1 - Описание меню настроек

Прошивка и настройка

После сборки устройства следует проверить его работоспособность сначала без нагрузки (аккумулятора). При включении с неоткалиброванными каналами измерения тока и напряжения, будут срабатывать защиты, после чего калибровка и проверка сигналов будет невозможна. Поэтому перед калибровкой контроллер программируется прошивкой, в которой защиты отключены. Это позволит проверить управляющие сигналы во всем диапазоне регулирования без подключенного аккумулятора. Если на каком-то этапе тестов без нагрузки и без подключенного программатора, с питанием от 12В устройство начнет потреблять ток более 150мА, питание необходимо отключить до устранения причин.

Последовательность действий после сборки следующия:
1. Прошить контроллер тестовой прошивкой charger_rev_1.39d_without_protect.hex.. С такой прошивкой при включении устройства на экране заставки рядом с номером версии будет отображаться "(d)". С такой прошивкой не рекомендуется включать режимы зарядки и разрядки с подключенным аккумулятором.
2. Отключить программатор и от внешнего источника питания подать на устройство постоянное напряжение 12В. В ждущем режиме, который запускается после экрана заставки, через 2с после подачи питания, потребляемый устройством установившийся ток не должен превышать 150мА (не учитывая пик заряда фильтра при включении). Если при этом не отключен программатор, потребляемый ток может быть другим. Если на дисплее нет изображения, необходимо отрегулировать контрастность резистором RP4.
3. Проверить сигналы на затворах ключей относительно GND, они должны быть закрыты: на затворе VT1 должно быть +12В; на затворе VT2 - .
4. Включив режим зарядки, проверить форму управляющих сигналов на затворе VT1. Форма сигналов в режиме зарядки при ШИМ=20% приведена на рисунке 9. На всем диапазоне регулирования заполнения, шинина импульса должна меняться плавно. При 0% импульсы пропадают и ключ закрыт, а при 100% - постоянно открыт. После проверки выключить режим зарядки нажатием кнопки Stop.
5. Включив режим разрядки, проверить форму управляющих сигналов на затворе VT2 на всем диапазоне регулирования. Форма сигналов в режиме разрядки приведена на рисунке 10. После проверки выключить режим разрядки нажатием кнопки Stop.
6. Выключить питание устройства.
7. Подключить к выходу устройства внешний источник постоянного напряжения (например, аккумулятор 3,7В) и внешний вольтметр параллельно ему.
8. Включить питание устройства.
9. Откалибровать канал измерения напряжения резистором RP1 таким образом, чтобы показание на дисплее устройства совпало с показанием образцового вольтметра. При этом будет меняться и измеренная величина тока, на это не нужно обращать внимание.
10. Откалибровать канал измерения тока резистором RP2 таким образом, чтобы показание тока стало равным 00,00А в ждущем режиме, с подключенным к выходу аккумулятором. При вращении RP2 измеренная величина напряжения меняться не должна, если меняется, значит вращается не тот резистор.
11. Прошить контроллер файлом charger_rev_1.39.hex. После перезапуска, на экране заставки рядом с версией не должно быть пометки "(d)".
12. Вызвать меню изменения констант (удержанием кнопки Stop/Menu в момент пропадания экрана заставки), проверить и при необходимости перенастроить константы. Переход от одного параметра к следующему производится нажатием кнопки Stop/Menu. Изменение значений - кнопками Plus и Minus. Сохранение настроек в память - нажатием кнопки Start/Save, при этом кратковременно высвечиватся сообщение "CONFIG SAVED". Сохраняются все параметры, независимо от того, на каком пункте меню вызвать сохранение. Выход из меню настроек осуществляется перезапуском питания устройства.
13. Устройство готово.

Осциллограмма ШИМ сигнала VT1 Осциллограмма ШИМ сигнала VT1

Рисунок 9 - Осциллограммы сигнала на затворе VT1 (CH2) и сигнала с контроллера (CH1) в режиме зарядки при задании ШИМ = 20%

Осциллограмма шим сигнала VT2 Осциллограмма шим сигнала VT2

Рисунок 10 - Осциллограммы сигнала на затворе VT2 (CH2) и сигнала с контроллера (CH1) в режиме разрядки при задании ШИМ = 20%

Связь с ПК

Связь осуществляется по интерфейсу UART и позволяет принимать на компьютере данные о текущем состоянии устройства. Для связи с контроллером создана программа ChargerMonitor, которая отображает переменные на графиках и записывает данные в файл. Для подключеня по UART задействуются 3 провода - пины контроллера PA6(Rx), PA7(Tx) и GND. Подключаться можно с помощью адаптера USB-UART(TTL). Для такого адаптера на ПК устанавливается соответствующий драйвер и в системе появляется виртуальный COM-порт. Номер этого порта указывается при подключении в ChargerMonitor, посмотреть его можно в диспетчере устройств.

Программа связи с устройством по UART

Рисунок 11 - Программа связи с устройством по UART

После успешного подключения, можно выполнить считывание констант или запустить мониторинг переменных. При нажатии кнопки СТАРТ запускается цикл отправки запросов контроллеру. В ответах контроллер передает состояние всех переменных на момент запроса. Период отправки запросов может задаваться пользователем, но, не рекомендуется снижать его ниже 300мс. Запись временного файла лога (temp.dat) начитается с начала мониторинга, а диалог его сохранения появляется при остановке мониторинга (кнопкой СТОП или после истечения таймаута очередного ответа). Если ответа не было сразу после запуска мониторинга, то сохранение лога не предлагается. Для удобства экспорта файл пишется в текстовом формате построчно с пробелами в качестве разделителей между значениями. На рисунке 11 представлены графики в режиме CC/CV, сформированные в результате экспорта данных в Excel.

Формат лог-файла

Рисунок 12 - Формат лог-файла (ChargerMonitor v0.19)

Графики в режиме CC/CV, сформированные в результате экспорта данных в Excel

Рисунок 13 - Графики в режиме CC/CV, сформированные в результате экспорта данных в Excel

Файлы к статье:
files.zip (27,5 Мб) - схема, плата, прошивки, ПО.

Видео





Комментарии




Добавление комментария
Имя:
E-mail:
Сообщение: