avatar_se80

давайте скинемся на open source arduino based BMS

Автор se80, 12 Окт. 2016 в 00:04

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Depp

И тишина... Желание больше нет этим заниматься?
ТРЕБУЮТСЯ КУРЬЕРЫ НА ПОСТОЯННОЙ ОСНОВЕ С ГИБКИМ ГРАФИКОМ https://electrotransport.ru/index.php?topic=56910.new#new

Dmitry__

#19
Ого, не видел такой темы. можно попиарицо? :)
А у меня есть такой bms, и не поверите на асме написан, такшта, наверно могу себя считать суровым программером :)
А еще, мой бмс распределенный: 1 плата на одно послед. соединение. Все платы послед. соединяются шиной rs232. Самая нижняя плата выдает информацию о всех аккумах. (проводов минимум). В схеме всего одна микросхема pic12f1840, один полевик и разрядный резистор. Причем схема без внешнего стабилизатора, которые очень много жрут, диапазона пикины хватает: от2 до 5-ти вольт. Цепи измерения напряжения аккума тоже нет (измеряется внутр. ацп через ноги питания микросхемы :) ). Калибровка каждой платы сохр. в eeprom при первом подкл. платы к аккуму. Потребление одного контроллера (одно послед. соединение аккума) около 6 мкА :)
Проверял саморазряд через бмс, 6 банок по 2200мач в течении 6 мес. Разряда не увидел.
Сейчас дописываю протокол для программирования напряжения разных  аккумов и разряда до safe mode - очень нужный режим для хранения аккума.
Во всю использую в своих аккумах. Фотки в подписи.



Добавил:

Ой, обманул  :ah:, еще есть транзистор и несколько резисторов для последовательной шины. Да, главное у этого бмс нет ограничения по послед. соединению аккумов, сколько плат поставишь столько и будет. Разрядны ток =  4.2v/9.4Om =400ma.
На сложность платы не смотрите, это универсальная плата под pic12, что запаяешь то и будет, разработана примерно в 2000-м году, в данной схеме запаяно 20% деталей.
Вот более новая фотка собираемого аккума:


сварку аккумов фоткал тут:

https://electrotransport.ru/index.php?topic=26890.msg1148130#msg1148130






Garrysoon

Цитата: Dmitry__ от 27 Сен. 2017 в 03:58
Ого, не видел такой темы. можно попиарицо? :)
А у меня есть такой bms, и не поверите на асме написан, такшта, наверно могу себя считать суровым программером :)
А еще, мой бмс распределенный: 1 плата на одно послед. соединение. Все платы послед. соединяются шиной rs232. Самая нижняя плата выдает информацию о всех аккумах. (проводов минимум). В схеме всего одна микросхема pic12f1840, один полевик и разрядный резистор. Причем схема без внешнего стабилизатора, которые очень много жрут, диапазона пикины хватает: от2 до 5-ти вольт. Цепи измерения напряжения аккума тоже нет (измеряется внутр. ацп через ноги питания микросхемы :) ). Калибровка каждой платы сохр. в eeprom при первом подкл. платы к аккуму. Потребление одного контроллера (одно послед. соединение аккума) около 6 мкА :)
Проверял саморазряд через бмс, 6 банок по 2200мач в течении 6 мес. Разряда не увидел.
Сейчас дописываю протокол для программирования напряжения разных  аккумов и разряда до safe mode - очень нужный режим для хранения аккума.
Во всю использую в своих аккумах. Фотки в подписи.



Добавил:

Ой, обманул  :ah:, еще есть транзистор и несколько резисторов для последовательной шины. Да, главное у этого бмс нет ограничения по послед. соединению аккумов, сколько плат поставишь столько и будет. Разрядны ток =  4.2v/9.4Om =400ma.
На сложность платы не смотрите, это универсальная плата под pic12, что запаяешь то и будет, разработана примерно в 2000-м году, в данной схеме запаяно 20% деталей.
Вот более новая фотка собираемого аккума:


сварку аккумов фоткал тут:

https://electrotransport.ru/index.php?topic=26890.msg1148130#msg1148130

Нам бы схемку, аль чертеж. Мы б затеяли вертеж)

kor


Цитата: Garrysoon от 08 Март 2018 в 14:05Нам бы схемку, аль чертеж. Мы б затеяли вертеж)
Вот как-то так.

i

Схема простая и рабочая.
В своем проекте мне пришлось от ней отказаться, так как информация идет только в одну сторону.
Выбрал более сложный вариант связи, за то двунаправленный и гальваноразвязанный, протокол свой (родственный 1-wire).

Dmitry__

#23
Цитата: kor от 25 Июль 2018 в 15:02Вот как-то так.
Монстр, по фотке срисовал :)
Есть ошибки, uart от контроллера к контроллеру передается сверху вниз, т.е. от бОльшего напряжения к меньшему.
Вход RX след. контроллера идет через резисторный делитель (на рисунке 2 резистора по 100к) на 6-й пин микроконтроллера.
Цитата: i от 25 Июль 2018 в 15:38Выбрал более сложный вариант связи, за то двунаправленный и гальваноразвязанный
У меня тоже 2-х направленный. Самый верхний балансир принимает RX через оптопару, а потом передает данные по цепочке.. Самый нижний балансир выдает данные на usb/uart мост относительно земли, тут развязка не нужна.

i

Я целенаправленно изучал возможность построения системы связи по кольцевой схеме (иначе не получить двунаправленность). Отпугнуло то, что каждый мк должен выступать в роли ретранслятора, то есть он должен принять все пакеты от нижестоящих, буферизировать их, добавить свой (если запрашивались данные от всех), а потом отправить это все вышестоящему. Много памяти сожрет.
Еще смущает сам RS232, без кварцевой стабилизации частоты он может сильно "налажать" и не заметить.
Ну и присутствует опасность ошибочного монтажа, например соединить ячейку не со следующей, а через одну или больше - может и бахнуть. У Elition BMS, построенной по этой схеме, такое бывало.

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

Dmitry__

#25
Цитата: i от 25 Июль 2018 в 17:45Отпугнуло то, что каждый мк должен выступать в роли ретранслятора, то есть он должен принять все пакеты от нижестоящих, буферизировать их, добавить свой (если запрашивались данные от всех), а потом отправить это все вышестоящему. Много памяти сожрет.
Да, так и сделано, до 40s батареи ОЗУ хватает. Я себе слабо представляю больше послед. соединений, но можно взять пикину жирнее :)
Протокол самоорганизующийся, короткое описание из проги:

;алгоритм самоорганизующегося протокола передачи данных от всех балансиров:
;При вкл. питания балансир переходит в ведущий режим и посылает постоянно данные с 0-м Id (генерация TX пакетов).
;Если начинают приходить данные от соседнего балансира (присутствуют балансиры выше текущего), то текущий балансир переходит в режим ведомого (FlgSlaveMode).
;В режиме ведомого всегда проверяется Id балансира в принятых данных. И текущему балансиру присваивается Id на +1 больше самого старшего балансира.

Сама прога написана на асме и много памяти не жрет.
Правда я на практике не пользуюсь протоколом, даже не распаиваю провода между балансирами. Пока хватает информации по миганию светодиодов во время балансировки. Просто на каждом 10-м заряде снимаю крышку с самоката и наблюдаю балансировку в конце заряда. Если все светодиоды хаотично мигают, значит все ок. :)
По идее надо допилить ble передатчик и выводить данные на андроид. Но у меня все аккумы новые и из одной партии, никак не хотят разбегаться, поэтому пока забил на доделывание протокола  :ah:
2-х сторонний протокол тоже пока непонятно зачем. Если только для ручной калибровки балансиров. Сейчас калибровка происходит при первом включении балансира на эталонном напряжении, и записи константы в eeprom.

Цитата: i от 25 Июль 2018 в 17:45Еще смущает сам RS232, без кварцевой стабилизации частоты он может сильно "налажать" и не заметить.
Я уже давно забил на кварцы в своих поделках. Точность внутр. генераторов у пикин очень высокая. Плюс у каждой пикины есть калибровочная ячейка, в которую лазером зашивается константа калибровки.
Еще можно применить автонастройку baudrate uart-а, у microchip есть описание на эту тему. Я, пока, ни разу не ловил глюки с uart на внутр. генераторе...