Открытый проект универсального зарядника

Psw
R2D2:

точности измерения тока достаточно, но она не поможет дать точные цифры принятого заряда, т.к. акк греется (30-50% энергии излучается!)

Предлагаю не путать полученную АКБ энергию в Вт*Часах (значительная часть которой теряется в цикле заряд/разряд, иными словами, КПД АКБ весьма далёк от 100%) и полученный АКБ заряд в А*Часах. Отдача по заряду (отношение отданного при разрядке к полученному при зарядке) гораздо ближе к единице, чем отдача по энергии.
А зарядники как раз А*Часики и считают. Ну а ГРЕЮТЬ батарейку Вт*Часики, точнее, разница в Вт*Часиках при заряде/разряде.
Иными словами, переданный Заряд сам по себе греть (выделять энергию) никого не будет (как пример - вечная циркуляция заряда в кольце из сверх проводника без выделения энергии). Для выделения ЭНЕРГИИ нужна ещё разность потенциалов, приложенная к активному сопротивлению.
А какова суммарная аплитуда ВСЕХ пульсаций видимая ОСЦ на выходе фильтра ШИМа ? Скока милли вольтиков ?
Вот вес младшего разряда ШИМ задатчика тока и не имеет смысла делать меньше ентой величины.
А частота среза фильтра я думал что около 2 - 10 Гц. А никак не сотня герц. Потому как при октаве разницы активный фильтрик (второго?) порядка даст около десяти разиков подавления по напряжению. Иными словами, пульсации будут около 0.5 Вольт ? Ничего не напутал ?
Пора наверное и мне уже кровати под микро схемки в платку распаять ну и конденсаторы по питанию тоже. Хватит ей девственно голой лежать.

AlexSr
AlexN:

Немного не понял структуру входного питания модулей, поясните, если можно.

Задумка (именно задумка, не более) такая:
Имеем силовой генератор переменного напряжения на материнке, питающий первички трансов каждого модуля.
Гальванически развязывать, всё же, мне кажется, более предпочтительно именно весь модуль (к стати, балансир так же питается - откуда и идея 😃 ). Это даёт полную автономность(законченность) модуля. В теории, даже можно получить “активную нагрузку” для разряда батареи, пустив “встречный ток заряда”. Током есн-но управляет модуль.

P.S. Ещё раз повторю - я высказываю только идею, сырую, возможно нежизнеспособную 😵

AlexN
AlexSr:

Задумка (именно задумка, не более) такая:
Имеем силовой генератор переменного напряжения на материнке, питающий первички трансов каждого модуля.
Гальванически развязывать, всё же, мне кажется, более предпочтительно именно весь модуль

Успел уже подумать над этим вариантом, нашедшиеся минусы:

  1. Большое число моточных изделий.
  2. Сильно бОльшее число комплектующих ( и стоимость, соответственно) по сравнению с традиционными схемами.
  3. Необходимость организовывать гальванически развязанный двусторонний интерфейс связи между модулями и ядром.
  4. Невозможность заряжать батареи без балансирных разъемов.
  5. Невозможность заряжать Ni-Cd/MH батареи, вследствие опять-таки отсутствия у сборок балансирных разъемов.
    Поправьте, если где ошибся.
AlexSr
AlexN:

Успел уже подумать над этим вариантом, нашедшиеся минусы:

  1. Большое число моточных изделий.

Да, но на меньшие мощности, по кол-ву потребных модулей. Думаю, это существенно. Быть может, можно подобрать готовое изделие ??

  1. Сильно бОльшее число комплектующих ( и стоимость, соответственно) по сравнению с традиционными схемами.

В принципе да, но Сильно ли? Опять, от желания/модули/сложность.

  1. Необходимость организовывать гальванически развязанный двусторонний интерфейс связи между модулями и ядром.

Да. Готовые мс опто.

  1. Невозможность заряжать батареи без балансирных разъемов.

Нет. Возможно, и с значительно большей точностью. Модули коммутируются в любую удобную/потребную топологию, хоть последовательно, хоть паралельно.
Последовательно = скажем 2-а как источники опорного напряжения + 1 источник тока/заряда. Контроль напряжения (суммы банок) в такой схеме возможен с большим разрешением.

  1. Невозможность заряжать Ni-Cd/MH батареи, вследствие опять-таки отсутствия у сборок балансирных разъемов.
    Поправьте, если где ошибся.

Отсутствие балансиров для мощных Ni-Cd/MH и вызывает отсутствие разъёмов 😦 , желающие могут взять паяльник в руки, что бы реально продлить срок службы раза в 2-а.
Один Li-Po(напруга) модуль может заряжать 2-а Ni-Cd/MH последовательных эл-та.

R2D2
  1. Трансы можно использовать 1:1 такие можно найти готовые.
  2. В каждом модуле разрядный и зарядный блочек.
  3. Минимально в одну сторону опорный ток, в другую ток(можно отказаться, если исполнитель хороший) и напряжение.
    Надо делать цифровым способом и это обеспечит универсальность разъема.
  4. и 5. Без слов.

Использование такой схемы не даст экономии по питанию в народном хозяйстве и по сбережению акков лучше результат не будет.

По поводу различия заряда и энергии принимается.

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

У паука ну или у какогото насекомого, глаза умышленно трясутся и таким способом повышается четкость картинки.
Кажись этот же эффект используют в фотиках.
Да и кучность у авиацинных пушек тоже нарошно размазывают, шоб результат луче был.
Признаю что аналогиии не в пи… не в красную армию, но в этом чтото есть.

AlexN
AlexSr:

Модули коммутируются в любую удобную/потребную топологию, хоть последовательно, хоть паралельно.

Что-то меня смущает картина нескольких соединенных последовательно модулей, каждый со своим импульсным стабилизатором тока, работающих на общую нагрузку…
Никаких там резонансно-колебательных явлений не возникнет? Или “защелкивать” петли регулировки у разных модулей не будет?
Например, один модуль чуть уменьшил ток, второй в качестве компенсации тут же свой увеличил, первый на нарастание тока в общей цепи опять понизил свой и так далее, пока у первого ток не станет равным 0, а у второго - максимальным…
Не нравится пока лично мне эта идея, может теоретических знаний не хватает, чтобы оценить работоспособность.

AlexSr:

… на меньшие мощности, по кол-ву потребных модулей. Думаю, это существенно. Быть может, можно подобрать готовое изделие ??

Не проще ли подобрать одно(!) мощное “готовое изделие” под схему Psw, чем, например, 12 маломощных.

Для владельцев 6S батарей или желающих заряжать пару 3S мы предложим намотать/купить 6 трансформаторов + 6 дросселей?
Не многовато-ли?

Psw

Про влияние шумов в измерениях - все понятно.
Аднака я не с шумом пытаюсь бороцца, а за быстродействие управляющего сигнала задатчика тока радею. Просто из любви к искусству, не важно, понадобится она в конечном итоге или нет.
Хотя что-то мне подсказывает, что быстродействие лишним не будет - и выше в теме енто обсуждалось. Реализация программной защиты от превышения макс напряжения к примеру должна быть БЫСТРО действующей.
Как там дела кстати с программной обработкой смещения нуля измерителя тока, уже сделана ?

AlexN:

Для владельцев 6S батарей или желающих заряжать пару 3S мы предложим намотать/купить 6 трансформаторов + 6 дросселей?

Ну вся ента затея с центрально управляемыми побаночными питальниками - енто от любви к (не слишком) безумным идеям. Вполне можно по обсуждать/пошлифовать идейки, подумать, чего из ентого могет получиться.
А то что енто будет однозначно и дороже и сложнее и менее универсально и хуже повторяемо чем стандартный подход - наверняка.
Однако люди, которые ( быть могет) возьмутся реализовывать такую сложную штуку - будут не простые юзеры, которым достаточно обычных стандартных зарядок. А будут преследовать какие-то специфические цели, когда цена или сложность особого веса не имеют. А - просто необходима побаночная зарядка.
А про авто колебания в системе импульсных питальников - ну наверное при грамотном общем управлении енто можно обойти.
Да и тактовую импульсных преобразователей можно при желании синхронизировать. Конденсаторной развязки могет быть вполне достаточно.

AlexN
Psw:

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

Ну приехали… Если всё будет дороже, сложнее, слабо повторяемее, чем в стандартной схеме - зачем огород городить? 😵

R2D2

Програмная защита работает так:

  1. Запущено непрерывное АЦП преобразование на частоте 16000000/128=125 кГц.
  2. Непрерывное - это значит измеряются все каналы по очереди и это все зациклено.
  3. Скорость измерения одного канала (например напряжения) 125000/14тактов/8каналов=1116 раз в секунду
  4. Если канал напряжения зашкаливает (т.е. дает 1111111111), значит перекрывается подача сигнала с тл на ключ.

Коррекция подтяжки шунтового сигнала через 3.8мОм не искажает линейности
“напряжение на шунте”(читай ток) => “напряжение на 1 ноге ТЛ или на проце АЦП”.

Как и было предсказано вывод сигнала в зону нормальной работы ОУ решил все проблемы. Причем обычная ЛМ324 справлюется ОК. Ток измеренный АЦП плавает относительно китайского вольтметра ±0.01А!!!

Зарядил у себя дома все что было.
Токи менее 1А.
Сильнее всего греется ключ медленно но верно нагревается до 50 градусов.
Вторым идет дроссель.
Диод у меня без радиатора.
С обдувом все зашибись.

Завтра выложу последние прошивки и “Исправления”.
Тот гимор что я накрутил с 4 ногой тл нафиг не надо и схемную защиту по перенапряжению тудаже.

AlexN
R2D2:

Зарядил у себя дома все что было.
Токи менее 1А.
Сильнее всего греется ключ медленно но верно нагревается до 50 градусов.

При токах менее 1А уже греется ключ?
Драйвер ему надо, или пуш-пул на трех транзисторах.
При таком смешном токе ему полагается быть вообще холодным.

R2D2

Драйвер есть IR4427.
От тока нагрев ключа должен слабо зависеть в CEPICе.

Там где стоит ключ, ток всегда максимальный - все что может датьт источник, ограничено размером дросселя.
Количество переключений = константа.

Вот это и есть причина низкого КПД у СЕПИК при малых загрузках.

Да забыл сказать. Для настройки софта на поддтяжку лица, прога просит ввести два фактических китайских разных тока.
Это не удобно.

Что можно придумать? Ведь точность шунта у всех разная для расчета параметров по напряжению.

AlexN

Какие два значения тока?

Как подключен драйвер?
Схему в студию 😃

R2D2

Ввод значений тока:

  1. Крутилкой выставляем опору на тл.2 шимом, т.е ток на выходе. Как X1 фиксируем ADC0. Жмем ОК.
  2. Крутилкой вводим реальный ток замеренный по внешнему китайскому амперметру. Это Y1. Жмем ОК.
  3. Крутилкой выставляем опору на тл.2 шимом, т.е ток на выходе. Как X2 фиксируем ADC0. Жмем ОК.
  4. Крутилкой вводим реальный ток замеренный по внешнему китайскому амперметру. Это Y2. Жмем ОК.

Далее все делает прога и заносит A и K в еепром:

Y1=A+K*X1
Y2=A+K*X2

Находим A и K.
Чем больше разница X2-X1 тем больше точность.

Про драйвер сказать нечего это просто усилитель. С Ли1 на вход драйвера, а с выхода через 50 Ом на затвор.

AlexN
R2D2:

Находим A и K.

Про драйвер сказать нечего это просто усилитель. С Ли1 на вход драйвера, а с выхода через 50 Ом на затвор.

Т. е. прямая измеряемого тока идет не от нуля? Странно. Надо пожалуй на схему измерения повнимательнее поглядеть.

Драйвер питается от входного напряжения? Длина дорожки “выход драйвера - резистор - затвор” минимальная?

P.S. То что прямая не от нуля - это нормально. А если просто при нулевом токе первую точку автоматом калибровать?

R2D2

По оси Х откладываем то че мы намеряли в ADC.
По оси Y - реально измеренный ток посторонним прибором.

Потом имея то че мы намеряли и закономерность в виде уравнения Y=A+K*X имеем похожий на правду ток.

Почему не от нуля, потому что сразу после шунта и моста из сопротивлений перед входом на усилитель мы притянули сигнал через 3.8мОм к +5в. Это нам дало:

  1. Выход в зону нормальной работы ОУ со всеми вытекающими (пропали всякие глюки).
  2. Обеспечило превышение 1 ноги над 2 у ТЛ494 - это значит включение пройдет без щелчков (от нуля к требуемомо), потому как внутренний шим ТЛ будет “спать”. В обратном случае 1<2, ТЛ дает максимальный ток при включении контура (от максимума к требуемому).

Первую точку находить по нулю мона.

Драйвер приклеил с обратной стороны почти к ли1 и ножками от старых сопров сделал дорожки.
Расстояние в районе 1 см

Psw
Psw:

Протрезвел.

Однако - пиво помогает самого себя цитировать:

Psw:

на выходе датчика тока при НУЛЕВОМ токе <> 0.1-0.5 Вольтика.
Тогда ТЛка будет уверенно запираться (скважность=0%) 0.04 Вольта минимальным выходом фильтра ШИМа.

Ноль у измерителя тока сместили, прекрасно. Осталось енто в расчётах учесть:

Psw:

смещённый ноль тока придётся учитывать в расчётах и он будет менятся во времени и его придётся периодически калибровать.
<>
когда проге известно, что выходной ток должен быть нулевым (например уставка преобразователя=0 или ещё какие случаи) - она и засекает выходное значение токового преобразователя как смещение нуля.

Это про автоматическое измерение нижней точки прямой изверения тока.
А верхнюю точку - ну да, надо именно макс ток калибровать. Там же ещё и подстроечники R39&R41 есть в цепи ОС токо изверительного ОУ - именно ими макс значение и калибровать. Ну или подстроечники в схеме заменить на постоянники, и тогда уже понадобится программная калибровка макс тока/компенсация неточности изготовления резисторов.
То есть I=(U-U0)*K, где K=Iмакс/(Uмакс-U0), где:
U0=смещение нуля, измеряется периодически ( напр раз в 10 сек при замере ЭДС батарейки в отсутствии тока);
Uмакс=выходное напряжение токо измерителя при максимальном токе;
I=текущий измеренный ток;
К=итоговый коэфф усиления токо измерительного ОУ, измеряется один раз при настройке/калибровке токо измерителя.
Ничего не перепутал ?
Ну то есть вид для печати темы вполне помогает освежить всё что говорилось в памяти по быстренькому.

AlexN
Psw:

А верхнюю точку - ну да, надо именно макс ток калибровать. Там же ещё и подстроечники R39&R41 есть в цепи ОС токо изверительного ОУ - именно ими макс значение и калибровать. Ну или подстроечники в схеме заменить на постоянники, и тогда уже понадобится программная калибровка макс тока/компенсация неточности изготовления резисторов.

К=итоговый коэфф усиления токо измерительного ОУ, измеряется один раз при настройке/калибровке токо измерителя.

  1. Верхнюю точку необязательно калибровать по максимальному току, если из-за применяемых схемных решений не получится линейной зависимости - тут какой ток ни выставляй во второй точке - от нелинейности не деться никуда. В идеальном же случае хватит автокалибровки нуля и практически любого ненулевого значения, не слишком маленького.
  2. От подстроечников надо избавляться, у нас же целый микроконтроллер простаивает фактически 😃
  3. Если впасть в токоизмерительный маразм 😁 - можно поставить полевичок типа IRLML6402 с резистором образцовым в параллель выходу зарядника - и коммутируя полевик, калибровать вторую точку также автоматом. При отключенной батарее, разумеется.
AlexN
R2D2:

Драйвер приклеил с обратной стороны почти к ли1 и ножками от старых сопров сделал дорожки.
Расстояние в районе 1 см

Интересно. Собираю аналоговую часть, потестирую на нагрев.

Psw
AlexN:

Верхнюю точку необязательно калибровать по максимальному току,

По мне так желательно, заодно и проверится сама возможность измерения ентих токов. А то вот поставит хто-либо ОУ не от линии до линии выходом на измерение тока, откалибрует его по 2А, которые ЕЩЁ способны измерятся, а потом при зарядке АКБ попытается сделать уставку тока 4А к примеру, тогда как максимальный измеряемый ток при использовании обычной лм324 будет около 3.5А - и как вы думаете, что при ентом произойдёть ?

AlexN:

если из-за применяемых схемных решений не получится линейной зависимости <> от нелинейности не деться никуда.

Это с какой радости возьмётся заметная нелинейность ? Ну она конечно есть и у АЦП и ОУ, особенно если сигналы близки к линиям питания, НО - их итоговая величина (должна быть) (гораздо?) менее 1% от максимальной шкалы. Иными словами, зависимость вых напряжения от тока должна быть весьма близка к идеальной прямой. Которую разумеется можно определить по двум точкам. А вот проверка нелинейности на всяк случай могет стать вторым этапом ручной калибровки - ну то есть прога выставляет токи 1,2,3,4 ампера и проверяет их китайцем прикола ради.

AlexN:

можно поставить полевичок <> с резистором образцовым <> калибровать вторую точку также автоматом

Аха-аха. Если есть возможность достать мощный резистор с допуском 0.1% к примеру, значит есть возможность достать и парочку маломощных с тем же допуском 0.1% к примеру - в цепь ОС токоизмерительного ОУ, задающим итоговое усиление каскада. И тогда уже будет неясно, кто точнее - то ли некалиброванный токоизмеритель, то-ли китайский ампер метер.
Но доставание образцовых резисторов - лично для меня большая проблема. По ентому к сожалению обычный выход - грамотно обрамлённый постоянными резисторами с допуском 5% подстроечник с тем же допуском 5% с величиной, едва покрывающей возможные погрешности обрамляющих резисторов. Ну или те самые итоговые % неточности калибровать чисто программно.

AlexN
Psw:

По мне так желательно, заодно и проверится сама возможность измерения ентих токов. А то вот поставит хто-либо ОУ не от линии до линии выходом на измерение тока, откалибрует его по 2А, которые ЕЩЁ способны измерятся, а потом при зарядке АКБ попытается сделать уставку тока 4А к примеру, тогда как максимальный измеряемый ток при использовании обычной лм324 будет около 3.5А - и как вы думаете, что при ентом произойдёть ?

Эта “проблема” решается элементарным выбором номиналов резисторов обвязки ОУ, при которых даже максимальное падение напряжения на шунте (допустим, при 5 амперах тока) не загонит операционник за пределы его самых худших параметров. Не будем путать выбор диапазона измерения тока и калибровку 😉

Psw:

Это с какой радости возьмётся заметная нелинейность ? Ну она конечно есть и у АЦП и ОУ, особенно если сигналы близки к линиям питания, НО - их итоговая величина (должна быть) (гораздо?) менее 1% от максимальной шкалы. Иными словами, зависимость вых напряжения от тока должна быть весьма близка к идеальной прямой. Которую разумеется можно определить по двум точкам.

Предположение о нелинейности было чисто теоретическим, а раз ей неоткуда взяться, так прямая - она и в Африке прямая, проходит через 2 точки, одна из которых “в нуле тока”, а вторую выбираем как заблагорассудится. И неважно, максимальный там ток во второй точке калибровки, или 1 ампер всего.

Psw:

Аха-аха. Если есть возможность достать мощный резистор с допуском 0.1% к примеру, значит есть возможность достать и парочку маломощных с тем же допуском 0.1% к примеру - в цепь ОС токоизмерительного ОУ, задающим итоговое усиление каскада. И тогда уже будет неясно, кто точнее - то ли некалиброванный токоизмеритель, то-ли китайский ампер метер.
Но доставание образцовых резисторов - лично для меня большая проблема. По ентому к сожалению обычный выход - грамотно обрамлённый постоянными резисторами с допуском 5% подстроечник с тем же допуском 5% с величиной, едва покрывающей возможные погрешности обрамляющих резисторов. Ну или те самые итоговые % неточности калибровать чисто программно.

Маломощный резистор с допуском 0,1% элементарно подбирается из горстки обычных, по пять копеек штука 😉
Тем более, как показывает практика, в большинстве партий резисторов допуск 5% заложен с большим запасом, и в 1% укладывается бОльшая часть партии.
К тому же некалиброванный токоизмеритель всегда будет проигрывать китайскому мультиметру, ибо кроме резисторов прецизионных на работу ОУ влияют еще и некоторые другие факторы, увы.
Еще раз повторю своё ИМХО: подстроечники - долой! Даёшь программную калибровку! 😁
А резистор образцовый не обязан быть с допуском 0,1%, между прочим. Ставим вообще любой попавшийся, и вводим его известное сопротивление как константу для измерения, вот 😉

Psw
R2D2:
  1. Запущено непрерывное АЦП преобразование на частоте 16000000/128=125 кГц.

Пришлось краем глаза заглянуть в даташит Атмела, что-бы узнать/вспомнить детали:
Страница 202 из Mega32_doc2503:

the successive approximation circuitry requires an input clock frequency
between 50 kHz and 200 kHz to get maximum resolution. If a lower resolution than 10
bits is needed, the input clock frequency to the ADC can be higher than 200 kHz to get a
higher sample rate.

Так а быть могет 250 Кгц будет всё-таки лучше (точность не должна особо потеряться, зато в пару разиков быстрее) чем 125 с учётом последующего усреднения ?
Ну и для сравнения страница 257 из пик 18F4431 документ 39616b:

The A/D conversion time per bit is defined as TAD. The A/D conversion requires 12 TAD per 10-bit conversion <> For correct A/D conversions, the A/D conversion clock (TAD) must be as short as possible, but greater than the minimum TAD (approximately 0.416 µs

Иными словами, в 18 пике макс быстродействие (каждого из двух) бортовых АЦП = 2 400 000/12=200 КГц супротив 200 000/14=14 Кгц у Атмела. К нему правда прибавляется ненулевое время выборки, однако даже с его учётом преимущество в скорости весьма существенное.

R2D2:

Програмная защита работает так:
<>
4. Если канал напряжения зашкаливает (т.е. дает 1111111111), значит перекрывается подача сигнала с тл на ключ.

Когда я говорил про контроль Грубых Ошибок до усреднения, имелись в виду не только Совсем уж Грубые типа переполнения (которое кстати при равенстве опорного АЦП и питающего ОУ никогда не наступит - надо превышение макс значения глядеть, а не просто переполнение анализировать), а просто превышение напряжения над желаемым (для каждого типа батарей своё) + макс возможный % погрешности быстрых измерений (например 1/32=3% + парочка/четвёрочка младших разрядиков). Ну то есть крайности тоже нужно быстро отслеживать, но - зачем же только крайности ? И подсечку преобразователя тоже можно не только грубо делать (запрет на выходе ТЛ) а и ещё помягче (при менее грубых ошибках) - к примеру уменьшение вдвое уставки тока.

R2D2:

Причем обычная ЛМ324 справлюется ОК.

Про измерение токов выше 3.5А обычной лм324 уже сказал.

R2D2:

Сильнее всего греется ключ медленно но верно нагревается до 50 градусов.

Так а без обдува ключ в корпусе (ТО220?) (без радиатора ?) нагреется до 50 градусов медленно но верно при скольких ваттах рассеяния ? Что-то мне кажется, что около 0.5-1 Вт. Иными словами, быть могет и не о чем беспокоится (надо просто радиатор добавить), учитывая высокую частоту переключений и особенности СЕПИКа, ента мощность не слишком и возрастёт при увеличении мощности на выходе ?

Еще раз повторю своё ИМХО: подстроечники - долой! Даёшь программную калибровку!

Ну блин.
Согласен, что в фирменных дешёвых зарядках НЕТУ подстроечников. Ненадёжный и дорогой элемент. И в балансире ГиперИон кстати тоже нету. Так что - я тоже За
Войну Шелудивым Угольным Полоскам.
В законченных изделиях, которых у нас пока нету.
P.S.

прямая - она и в Африке прямая, проходит через 2 точки

Это тока в (экваториальной?) геометрии всё так просто.
А в реальной физике - вместо определяющих прямую точек - размытые пятна с диаметром возможных итоговых погрешностей. И прямая в отличие от геометрии имеет ширину гораздо поболее нуля - опять же потому что погрешности измерений на каждом шагу, и непонятно где истина на самом деле. И чем дальше пятна (калибровочных измерений) друг от друга - тем меньший разброс возможных положений итоговой прямой. А кое-кто вообще додумался до того, что абсолютно точной истины ваапще нету (это я про Принцип неопределённости). Кстати как и нету многих других абсолютов, к примеру - целых чисел. А нуля - в особенности.