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

AlexN

Я вот подумал, может сделать микро-сайт/страничку по новой зарядке?
Там теряться не будет ничего. Сделать несколько разделов: Схемотехника, ПО, Идеи по доработке и т.д.
Редактировать будем, добавляя новые идеи из текущей или уже новой ветки.

Psw
R2D2:

3.9 мОм были подобраны методом проб и ошибок для получения линейности с одной стороны и минимизации подтяжки с другой.<>Если и есть зависимость от температуры так мона ее исследовать и учесть в расчетах.

Если при изменении температуры напряжение смещения нуля ОУ станет больше чем 5вольт*5КОм/3.8МОм то поведение схемы станет таким же мало предсказуемым как и раньше - появицца любимый автором гистерезис в управлении. И учесть его программно - вряд ли удасться. По ентому - придётся подтягивать с запасом на возможный температурный дрейф.

R2D2:

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

Ну оценить общее процессорное время на обработку прерываний - легко.
На входе в обработчик как можно ближе к точке входа ставим команду “Отладочная Нога=1”, на выходе из обработчика как можно ближе к RetI ставим команду “Отладочная Нога=0”. Потом меряем напряжение тестером на ентой ноге. % времени на обработку прерываний=напряжение на тестовой ноге/напряжение питания.

R2D2:

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

Ну по мне так лучше проц не тормозить (особенно при ТАКОЙ разнице в быстродействии проца и АЦП - за каждый цикл 10 бит преобразования проц могет выполнить 128*14=1800 командочек. Усреднение будет и меньше быстродействия жрать, и конечный результат на мой взгляд тоже будет лучше.

может сделать микро-сайт/страничку по новой зарядке?

Без проблем создам каталог psw.ru/Charger/ к примеру. Могу туда заливать нарисованное кем-либо нечто.
По крайней мере самые свежие версии статьи/прошивки/схемы будут всегда на одном и том же месте/ссылке.
Ну или Пузрин предоставит, если сочтёт затею не постыдной для его ресурса.
Потому как на данный момент - пока ещё детский лепет, возня малышей в песочнице и профи тихо посмеиваются в усы.
А вот зачем плодить ветки - не пойму. Наоборот интереснее всё читать в одном месте.
А у кого нету навыков скорочтения - заодно начнёт их получать/тренировать.

AlexN

Еще мысли вслух:
Сравнивал два варианта, 1 - SEPIC с управлением от TL494 и 2 - Step-Up+Step-Down с управлением непосредственно от микроконтроллера.
И кажется мне, что только 1 вариант даст возможность использовать полный диапазон ШИМ-а.
Т. к. входное напряжение нам в общем случае неизвестно (известен только диапазон от 10 до 15, например), то можем ли мы спроектировать 2 вариант так, чтобы “растянуть” 1024 ступеньки ШИМ-а ровно до выходных 0 - 5 ампер?
В 1 же варианте таким “растягиванием” занимается ТЛ-ка, и с ее обратной связью по току все получится как надо.
С другой стороны, во втором варианте разрядность ШИМ-а фактически повышается вдвое, т.к. 1024 шага приходятся на понижение напряжения, и еще 1024 - на повышение.
Не забыл ли я чего в рассуждениях?

Psw:

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

Есть у меня идея: для тех, у кого трафик платный, а может и для всеобщего удобства выкладывать документацию в PDF формате.
Для сравнения, последняя выложенная Разработка.DOC:
В исходном виде - 6,13 Мб,
В архиве - 3,35 Мб.
В PDF, созданном за 5 секунд - 1,12 Мб.
OpenOffice рулит!

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

R2D2

Ок в следующий раз оппа-офисом заделаю.
Там типа сохранить в формате PDF.

Ище там немного все съезжает.

Про запас: каждый может добавить скока хочет - прошивка переживет.

AlexN
R2D2:

Ище там немного все съезжает.

Ага, в условиях закрытости форматов Microsoft Office (если я ничего не путаю) он очень неплохо открывает майкрософтовские документы.
Для собственного спокойствия рекомендуется сразу сохранять документы и работать с ними в его собственном открытом формате.

Psw
AlexN:

можем ли мы <> “растянуть” 1024 ступеньки ШИМ-а ровно до выходных 0 - 5 ампер?

Естественно НЕТ.
Однако енто и не нужно, потому как максимально цифровая схема тем и интересна, что отрицательная ОС по току/напряжению в ней должна быть ПРОГРАММНАЯ.
Соответственно, вых значение ШИМа (как минимум младший разрядик) будет постоянно колебаться (с частотой управления, вполне можно пытаться 100 или 1000 Гц делать быстродействие контура ОС по току и напряжению). Это будет так сказать второй ШИМ, и итоговая точность/нестабильность удержания вых тока/напряжения должна быть весьма достойной. Поскольку сложность цифровых алгоритмов могет быть весьма выше (вплоть до упреждающих коэфф зависимости от входа), чем просто пропорция в отрицательной ОС внутри ТЛ.

AlexN:

выкладывать документацию в PDF формате.

Ну, блин. Тогда уж сразу в наи открытейшем ХТМЛ с гипер ссылками статьи хотя бы сама на себя. А енто замороченное глубокое форматирование текста - ну а насколько оно повышает удобо читаемость, нужно ли оно ?
Надо разделять цели - либо инфу доходчиво передать, либо эстетические чуйства порадовать.

AlexN:

Профи (если они вообще есть)

Ну профи - их как ни странно всегда меньше, чем малышей в песочницах.

AlexN:

этой ветки, которая многим может дать кучу полезной информации.

Опять же - многим малышам в песочницах по соседству.
Однако учитывая, что малышей значительно больше чем профи - научно-популярная литература была, есть и будет пользоваться спросом.
P.S.
Единственное, что Тема уже переросла - это слово Зарядник.
Потому как начали от печки, а печка - енто (универсальный?) цифровой Питальник с (универсальной?) активной цифровой нагрузкой. Которые не только заряжать/разряжать смогут.
Почему я кстати и радею за 2в1 устройства - импульсный БП 220V АС->14V DC и несколько канальных 14V DC -> 0-30V DC с единым управлением/интерфейсом/радиатором. Но ето в версии 2.0 если таковая ваапще появится на свет.
P.P.S. И ещё не первый раз наблюдаю справедливость поговорки “Учись сам, уча другого”.

AlexN
Psw:

Ну, блин. Тогда уж сразу в наи открытейшем ХТМЛ с гипер ссылками статьи хотя бы сама на себя. А енто замороченное глубокое форматирование текста - ну а насколько оно повышает удобо читаемость, нужно ли оно ?
Надо разделять цели - либо инфу доходчиво передать, либо эстетические чуйства порадовать.

А я думал, что PDF - это де-факто стандарт представления технической документации в цивилизованном мире 😒
Связь между внешним форматом документа и “замороченным форматированием” внутри документа не уловил совсем.

R2D2

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

Цель: получить следующую иерархию:

Запуск осуществляется по:

  1. Названию аккума.
  2. Вид деятельности (зарядка, разр/зар, N*разр/зар)
  3. Скорость.

Аккумулятор определяется следующими параметрами:

  1. Название 10 букв баттареи акку.
  2. Тип банок батареи акку.
  3. Количество последовательных элементов в батарее акку.
  4. Емкость последовательного элемента в батарее акку (емкость акку).
  5. Зарезервировано, но не используется (Код унификатор для автоопределения батареи (типа штрихкод))
  6. Зарезервировано, но не используется (Реальные параметры старения, для анализа и предупреждений)

Типы аккумуляторов:

  1. Название типа
  2. Флаги
  3. V минимальное нулевой фазы (например для липо от 2.4 (до 3.0)), т.е. когда можно заряжать но очень медленно.
  4. V минимальное первой фазы (например для липо 3в).
  5. V макс при динамическом измерении.
  6. V макс при статическом измерении.
  7. V дельтапик.
  8. Ток медленно (зарядки и разрядки)
  9. Ток нормально (зарядки и разрядки)
  10. Ток Быстро (зарядки и разрядки)
  11. Ток нулевой фазы
  12. Ток струйной зарядки
  13. Абсолютная температура перегрева
  14. Скорость перегрева
  15. Кпд (из-за рассеивания) для определения максимального времени заряда
  16. Периоды десульфатации
  17. Периоды статического измерения
  18. Скорость линейного повышения тока

Флаги:
По умолчанию идет заряд постоянным током

  1. Разрешить нулевую фазу заряда
  2. Разрешить капельный заряд
  3. Разрешить струйный заряд
  4. Реагировать на перегрев абсолютный
  5. Реагировать на скорость перегрева
  6. Разрешить десульфатацию
  7. Остановка при I=0
  8. Динамическая стабилизация напряжения
  9. Остановка при превышении статического напряжения макс
  10. Реагировать на дельтапик динамический
  11. Реагировать на дельтапик статический
  12. Линейное повышение тока в процессе зарядки от мин к макс
R2D2

Флаги продолжение:

  1. При превышении абсолютной температуры сделать паузу и попробовать еще раз.
AlexN
  1. Заряд батареи “на хранение”.
    Зарядка стандартной литиевой батареи (не А123) до 50% ёмкости.
Psw

Про наиболее долгое хранение лития при среднем между краевыми допустимыми значениями напряжения (4.2-2.9)/2+2.9=3.55 вольт примерно на банку ну и в холоде около 0 градусов - согласен с мнением Голубева - должно быть наименее убийственно для баночек. Раньше я прямо в поле заряжал до ентого значения. А дома уже добивал до упора. А теперь лень в поле - всё дома делаю. Однако - есть другая потребность/пожелание (всё касается зарядки лития с балансиром):
Батареек у меня слегка больше чем зарядников ( зарядник один, а батареек много). В итоге - приспособился заряжать батарейки параллельно:

Но есть неудобство - в ручную определять момент присоединения очередной батарейки. Общий алгоритм таков - вначале меряю напряжение на каждой батарейке, раскладываю их в порядке возрастания, первой присоединяю самую разряженную, включаю зарядку на макс разрешённый для неё ток, жду возрастания напряжения до уровня следующей батарейки, присоединяю, жду возрастания напряжения до следующей и тд. пока не присоединю все батарейки.
Хотелось бы автоматизировать ентот умственно нелёгкий процесс:
1 этап - поочерёдное присоединение батареек к заряднику с указанием/выбором из списка серийных номеров и быть могет записью в логи данных о раз балансировке после разряда на модели (по ней можно об умирании судить).
2 этап - зарядник даёт команду на присоединение батарейки с наиболее разряженным номером, заряжает её до уровня следующей и переходит в режим стабилизации напряжения, подавая звук сигналы. Всё енто длится некоторое время ( 5 минут к примеру - это если я уснул). Если я подтвердил присоединение очередной батарейки - зарядник снова переходит в режим стабилизации тока. И так до присоединения всех заявленных батареек с музыкальными паузами на всех запомненных значениях напряжений.
У меня этот процесс занимает 10-30 минут непрерывного дежурства у зарядника с тестером наготове. А потом он окончательно заряжает сборку за парочку часов без моего участия. Я тока на лампочки балансира поглядываю.
Хотя енто быть могет никому кроме меня и не надо. Кстати, при выставлении емкости батарейки 20 а*час ГиперИон останавливает заряд на 22 А*Часе. 10% даёт на разницу емкости разряд/заряд.

SERGEY11
AlexN:
  1. Заряд батареи “на хранение”.
    Зарядка стандартной литиевой батареи (не А123) до 50% ёмкости.

Пункт4 ,определяем остаточную емкость каждой банки или батареи в целом?
Для старых аков критично.

Сергей.

AlexN
SERGEY11:

определяем остаточную емкость каждой банки или батареи в целом?
Для старых аков критично.

Если имеется в виду “зарядка на хранение”, то определение остаточной ёмкости батареи в целом, а тем более каждой банки в отдельности - крайне сложное и малопродуктивное занятие без BID чипов.
Поэтому такой режим будет, вероятнее всего, подразумевать просто зарядку батареи до фиксированного значения напряжения.

AlexN
Psw:

Про наиболее долгое хранение лития при среднем между краевыми допустимыми значениями напряжения (4.2-2.9)/2+2.9=3.55 вольт примерно на банку ну и в холоде около 0 градусов - согласен с мнением Голубева - должно быть наименее убийственно для баночек.

Есть еще идея, почерпнутая из буржуйских источников: если температура окружающего воздуха ниже нуля (экзотика для зарядки, согласен 😃 ), то заряд лития идет до напряжения всего 4,0 вольт. Что типа сильно продлевает срок службы батареи при зарядке в таких условиях.

R2D2

Возник вопрос по защите от переполюсовки.
Как ее сделать цивильно?

Вот рассуждения:

  1. Выходная схема боится перпеполюсовки (танталовые конденсаторы, измеритель напряга), значит надо делать защиту полевиком или реле, но оно жрет, значит полевик.
  2. На выходе, защищенном полевиком, обратная полярность (от -0 до -26в), как простенькой схемкой из этого сделать 0 или 1 для сигнализации процу?
Psw
R2D2:
  1. На выходе, защищенном полевиком, обратная полярность (от -0 до -26в)

Нифига.
Из-за дешевизны и простоты управления используем N канальный ключик, исток которого на минусе питальника, а сток далжен подключаться к минусу батарейки. И проц контролирует ентот вывод перед тем как замкнуть ключик. И если неправильно присоединить АКБ (переполюсовать) то выходное напряжение АКБ сложится с выходным напряжением питальника. А если правильно присоединить - то вычтется. В итоге - если хочется иметь только дискретный анализ ( 0 или 1) то высоко омного токо ограничивающего резистора (к примеру 3КОм) на логический вход проца будет достаточно ( считаем что защитные диоды 20 мА на шины питания есть внутри процика). Ну и парочка нормально запертых защитных диодов (один - между плюсовым выходом питальника и минусовым выходом питальника и второй - между стоком и истоком защитного полевика - встроен в полевик как правило) и резистор параллельно полевику примерно 5 КОм понадобится) В итоге алгоритм анализа защиты от переполюсовки могет быть таков:

  1. Прога контролирует точное аналоговое напряжение на плюсовом выходе питальника, оно близкое к нулю в покое, и напряжение на стоке защитного полевика - оно тоже логический 0.
  2. При правильном присоединении батарейки с напряжением более открывания диода в полевике (0.7 примерно вольт) напряжение на плюсовом выходе будет Uакб-Uдиода - и прога его увидит, сделает выводы, откроет защитный ключ. При етом на логическом входе будет 0. Точнее, -0.7 вольт до открывания ключа, потом - 0 вольт.
  3. При НЕ правильном присоединении батарейки напряжение на плюсовом выходе упадёт до открывания защитного диода: - 0.7 вольт, аналоговый вход его увидит как строго 0 при отсутствии смещения нуля. А вот на стоке защитного полевика будет Uакб-Uдиода=логическая 1 даже для 1 банки кадмия. При ентом в цепи АКБ/диод/резистор-шунт защитного ключа будет течь ток (Uакб-Uдиода)/R шунта, который и будет создавать те самые падения напряжений, которые прога и увидит.
  4. Хуже всего когда присоединяют разряженную до нуля банку кадмия. Или ещё хуже - когда её уже зарядило в обратную сторону при глубоком разряде разболтавшейся сборки. Тут надо предусмотреть вопрос с ответом “Я уверен в правильности полярности”.
  5. Из выше описанных зависимостей можно вообще пытаться отказаться от анализа напряжения на стоке защитного ключа (тогда можно от шунт резистора 5 КОм отказаться). Типа - есть батарейка (ненулевое аналоговое напряжение на плюсовом выходе) - буду пытаться заряжать. А если нету - то и заряжать не стану, включать защитный ключ не буду. Разве что под дулом пистолета.( но тогда для страховки нужен анализ напряжения на стоке защитного полевика). Опять же оборвусь если вдруг при осторожном включении питальника напруга сверх макс ожидаемого попрёть неужержимо - нету значить батарейки, врёт юзер. Даже если и он сам не знает, что врёт ( типа провода к батарейке гнилые).
    Ничего не перепутал ? Рисовать/фотать было лень, заодно и по рассуждал за банкой пива.
    А я думал что из-за тотального дефицита выводов в голове автора уже рождается модульный легко масштабируемый много проциковый прожект. Ну то есть голова с дисплеем/клавой, локальная сеть, по процику на канал с балансиром … Сказка. И каждый себе лепит стока каналов, скока захочет. Ну или скока у него батареек.
AlexN
Psw:

А я думал что из-за тотального дефицита выводов в голове автора уже рождается модульный легко масштабируемый много проциковый прожект. Ну то есть голова с дисплеем/клавой, локальная сеть, по процику на канал с балансиром … Сказка. И каждый себе лепит стока каналов, скока захочет. Ну или скока у него батареек.

Мы ждали Вашего совета 😃 Сейчас буду внимательно изучать.
Описываю текущее состояние второй ревизии зарядки:
Это пока по-прежнему двухканальное устройство,
каждый канал - до 6 банок лития,
второй канал вынесен на отдельную плату, пристыковывается по желанию.
Сердце зарядки - Атмега128. Внешний АЦП на ток и напряжение - ADS1112.
Аппаратная защита по току и от перенапряжения на выходе.
Защита от переполюсовки и перенапряжения по входу (пока достаточно грубая, должна вырубать БП или сжигать входной предохранитель)
USB интерфейс (FT232RL).
Силовая - пока Сепик, TL494 + IR4426S.
Термодатчики - LM35, два внешних и один внутренний.
На подходе балансир на Атмеге16, тоже как отдельное устройство.
Схему скоро выложу, как причешем номиналы и кое-какие мелочи.

AlexN

Хотя, пожалуй, Мега16 в балансире ни к чему, хватит и восьмой.

naumovich
R2D2:

Возник вопрос по защите от переполюсовки.
Как ее сделать цивильно?

Банально, диодик. и учесть падение напряжения на нем(германий кремний)

AlexN:

Аппаратная защита по току и от перенапряжения на выходе.
… или сжигать входной предохранитель)

Не успеет.

AlexN:

…USB интерфейс (FT232RL).

А я до сих пор с СОМ-вским анахронизмом, и вероятно не в гордом одиночистве.
Н.С.П.

AlexN
naumovich:

Банально, диодик. и учесть падение напряжения на нем(германий кремний)

Падение напряжения на диоде не является константой при изменяющемся токе. Не годится.

naumovich:

Не успеет.

Успеет, уже успевает 😉 Предохранитель, за ним защитный диод на землю. При переполюсовке предохранитель отправляется на небеса 😃 Если хватит мощности БП, конечно, и не сработает его защита по току.

naumovich:

А я до сих пор с СОМ-вским анахронизмом, и вероятно не в гордом одиночистве.

А сейчас реализовать СОМ-порт и USB стоит одинаковых денег и одинаковых усилий.
И там и там 1 микросхема, так зачем в создаваемом устройстве ориентироваться на отмирающий стандарт.

naumovich
AlexN:

Падение напряжения на диоде не является константой при изменяющемся токе. Не годится.
Успеет, уже успевает 😉 Предохранитель, за ним защитный диод на землю. При переполюсовке предохранитель отправляется на небеса 😃 Если хватит мощности БП, конечно, и не сработает его защита по току.
А сейчас реализовать СОМ-порт и USB стоит одинаковых денег и одинаковых усилий.
И там и там 1 микросхема, так зачем в создаваемом устройстве ориентироваться на отмирающий стандарт.

Стандарт отммирающий, но де факто!
(Успеет, уже успевает)
Не успеет!
Н.С.П.