Power Bank повышенной мощности, или ИБП на 18650
- Flash.#13
- Держит паяльник хвостом
- Сообщения: 965
- Зарегистрирован: Сб апр 12, 2014 23:46:03
- Откуда: Киев
Re: Power Bank повышенной мощности, или ИБП на 18650
Сейчас у меня батарея на 52В, 12s, 9ач, и будет расти до 80В, 20s. Все это делается для элеткро-вело(мотор 250W), основная задача контроллера ограничить заряд(балансиры), следить за напряжением, отчетность другому контроллеру всего АКБ о напряжении, и там уже ограничить разряд. Раздельные выходы и источники напряжения со стабилизацией это уже внешняя обвязка, не имеющая к самой батареи прямого отношения. Задача Battery Monitoring System только в слежении и контроле элементов АКБ, что для тяговых банок очень даже нужно. По поводу резисторов, если вы найдете SMD с рассеиванием 10Вт, то почему бы и нет. Аккумуляторы имеют примерно одинаковую емкость, рядом есть ветка с прибором определения емкости и внутреннего сопротивления почти любого АКБ, на данный момент пробег батареи около 50км, те перекосы емкости что есть успешно выравниваются балансиром.
Немного файлов по зажиганию: ФУОЗ 2.2 + программа правки таблиц 0.987, монтажка
- Реклама
Re: Power Bank повышенной мощности, или ИБП на 18650
Можете указать ток балансировки балансиров?Flash.#13 писал(а):По поводу резисторов, если вы найдете SMD с рассеиванием 10Вт, то почему бы и нет.
Прикрепил таблицу SMD, там указаны мошносты по размерам, можно применик несколько паралельлно.
Прикрепил балансир 4S который я применил в шуруповерте.
Оригинал
- Flash.#13
- Держит паяльник хвостом
- Сообщения: 965
- Зарегистрирован: Сб апр 12, 2014 23:46:03
- Откуда: Киев
Re: Power Bank повышенной мощности, или ИБП на 18650
Оригинал вашей схемы находится здесь, раньше тоже ее использовал, но у нее есть ряд недостатков, самый существенный это большое потребление, около 850мкА.
В моем случае подключено 2шт 5Вт 10Ом в параллель, получаем 10Вт 5Ом, ток рассеивания доходит до 1А, если брать СМД то понадобится 10шт. "2512", кроме того СМД намного хуже отдают тепло, ибо имеют меньшую площадь, еще могут сами отпаятся.
В моем случае подключено 2шт 5Вт 10Ом в параллель, получаем 10Вт 5Ом, ток рассеивания доходит до 1А, если брать СМД то понадобится 10шт. "2512", кроме того СМД намного хуже отдают тепло, ибо имеют меньшую площадь, еще могут сами отпаятся.
Немного файлов по зажиганию: ФУОЗ 2.2 + программа правки таблиц 0.987, монтажка
- Инженер АПГ
- Первый раз сказал Мяу!
- Сообщения: 21
- Зарегистрирован: Пн ноя 28, 2011 09:52:16
Re: Power Bank повышенной мощности, или ИБП на 18650
Добрый день. Захотелось сделать устройство на подобие Вашего. Только в качестве зарядки будет использоваться солнечная батарея. Очень важным является параметр потребление в режиме ожидания. Для экономии энергии в режиме покоя, планирую включать питание измерительной части только во время измерения, с периодичностью примерно раз в минуту. Во время зарядки/разрядки производить измерения постоянно. В принципе все примерно складывается, но непонятно как питать МК. Питать от одной банки, как то не по фин-Шую, нужен очень экономичный DC/DC step down с 16 в 5в. Это очень важно, так как, МК будет подключен постоянно. Уважаемые участники форума, подскажите схему/микросхему DC/DC, с высоким КПД, или может я как то не так все понимаю, направте на путь истинный.
- Flash.#13
- Держит паяльник хвостом
- Сообщения: 965
- Зарегистрирован: Сб апр 12, 2014 23:46:03
- Откуда: Киев
Re: Power Bank повышенной мощности, или ИБП на 18650
Инженер АПГ если вам нужен прибор для сбора данных который работает с самозарядом от солнца, и рассчитанный на долго, то первое это стоит делать все с максимальной эффективностью. Использовать МК с низким потреблением, прогу делать с частым сном, и все в таком духе. Например МК Attiny13(5ног), Attiny2313(18ног), Atmega328(23ноги) специально разрабатывались для схем, со сверхмалым потреблением, в штатном режиме они потребляют менее 0.5мА, а во сне токи практический отсутствуют. Так же существует хитрость, если на МК повесить медленный кварц, типа часового, то потребление так же понизится на число тактов. Так же МК этой серии штатно работают в диапазоне 1.8-5.5В, что позволяет использовать всего один элемент Li-ion на 3.7В, и отказатся от всяких преобразователей, которые всегда имеют потери.
Что же качается балансира для литиевого АКБ, то он практический готов:

Схема предельно простая, МК Attiny13, через делитель, замеряет напряжение батареи, если надо слить лишнее, включается пара резисторов. В схеме применен оптрон для связи с внешним миром, этот балансир относится к разряду "умной" батареи, и кроме стравливания тока отчитывается о напряжении батареи, но если это не нужно, то оптрон можно не припаивать. МК работает раз в две секунды, и все остальное время отключен, экономя в коде и используя сон удалось добиться среднего потребления в 120 мкА, включая работу оптрона. На данный момент этот балансир проходит обкатку в 20s 8Ач батарее элеткровелосипеда, позднее о всем этом будет более подробно, но файл текущей прошивки балансира все равно прикреплю.
Что же качается балансира для литиевого АКБ, то он практический готов:
Схема предельно простая, МК Attiny13, через делитель, замеряет напряжение батареи, если надо слить лишнее, включается пара резисторов. В схеме применен оптрон для связи с внешним миром, этот балансир относится к разряду "умной" батареи, и кроме стравливания тока отчитывается о напряжении батареи, но если это не нужно, то оптрон можно не припаивать. МК работает раз в две секунды, и все остальное время отключен, экономя в коде и используя сон удалось добиться среднего потребления в 120 мкА, включая работу оптрона. На данный момент этот балансир проходит обкатку в 20s 8Ач батарее элеткровелосипеда, позднее о всем этом будет более подробно, но файл текущей прошивки балансира все равно прикреплю.
- Вложения
-
- Li-Ion Balancer.rar
- Схема proteus
- (6.47 КБ) 328 скачиваний
-
- BatteryBalancer.rar
- Исходники и файл прошивки, ассемблер
- (6.74 КБ) 320 скачиваний
-
- балансир АКБ.lay
- Схема SL6
- (286.84 КБ) 374 скачивания
Немного файлов по зажиганию: ФУОЗ 2.2 + программа правки таблиц 0.987, монтажка
- Реклама
- Starichok51
- Модератор
- Сообщения: 19053
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: Power Bank повышенной мощности, или ИБП на 18650
Паша, посмотрел твой исходник.
есть у меня несогласия с твоими вычислениями.
откуда у тебя родился коэффициент 5,22?
рассуждаем.
с делителем 1/5 полный диапазон АЦП составляет 5,5 Вольта от внутренней опоры 1,1 Вольта.
1,1В соответствует 1024 единиц АЦП.
чтобы тебе преобразовать в 5500 мВ, нужно умножить на 5500 / 1024 = 5,3711. но никак не на 5,22.
примерно 5,37 можно получить, прибавив к 5,25 одну восьмую.
идем далее. внутренняя опора может иметь разброс от 1 до 1,2 Вольта. таким образом, погрешность измерения может оказаться слишком большой.
у тебя есть мой текст. чтобы не делать такие "хитрые" вычисления, проще по моим подпрограммам сделать умножение и деление на определенные числа.
по хорошему, следовало бы для каждого экземпляра Attiny13 определить свой сомножитель под его конкретную опору. и соответственно, скомпилировать индивидуальную прошивку. то есть, у тебя должно получиться 10 прошивок на 10 экземпляров.
теперь такой вопрос. чем ты измеряешь количество импульсов с оптрона?
и почему ты выводишь на оптрон именно 1/4 часть измеренной величины?
есть у меня несогласия с твоими вычислениями.
откуда у тебя родился коэффициент 5,22?
рассуждаем.
с делителем 1/5 полный диапазон АЦП составляет 5,5 Вольта от внутренней опоры 1,1 Вольта.
1,1В соответствует 1024 единиц АЦП.
чтобы тебе преобразовать в 5500 мВ, нужно умножить на 5500 / 1024 = 5,3711. но никак не на 5,22.
примерно 5,37 можно получить, прибавив к 5,25 одну восьмую.
идем далее. внутренняя опора может иметь разброс от 1 до 1,2 Вольта. таким образом, погрешность измерения может оказаться слишком большой.
у тебя есть мой текст. чтобы не делать такие "хитрые" вычисления, проще по моим подпрограммам сделать умножение и деление на определенные числа.
по хорошему, следовало бы для каждого экземпляра Attiny13 определить свой сомножитель под его конкретную опору. и соответственно, скомпилировать индивидуальную прошивку. то есть, у тебя должно получиться 10 прошивок на 10 экземпляров.
теперь такой вопрос. чем ты измеряешь количество импульсов с оптрона?
и почему ты выводишь на оптрон именно 1/4 часть измеренной величины?
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
- Flash.#13
- Держит паяльник хвостом
- Сообщения: 965
- Зарегистрирован: Сб апр 12, 2014 23:46:03
- Откуда: Киев
Re: Power Bank повышенной мощности, или ИБП на 18650
Приветствую Владимир! Несогласия, это само собой, но больше ждал ответа, о том как работает код, используется нестандартное, очень вывихнутое решение проблемы... Коэффициент это просто округление, расчет делал чтобы перевести число в нормальные милливольты, напутал, вместо 5.37 сделал 5.22, что в последствии вылезло в 4100=4180мВ 
Перед тем как делать такой балансир провел ряд замеров, и работу Attiny13 при нестабильно низком, так же опорное напряжение 1.1В, его зависимость от питания. Результаты меня приятно удивили, опора практический не чувствительна к перепадам питания, вплоть до 1.8В, ее разброс не так сильно зависит от партии чипа. Проверив с десяток МК увидел, что разброс опор, укладывается в 3-5%, все намного лучше чем у меги8.
По поводу математики с "хитрыми вычислениями", рад бы использовать блок кода с преобразованием "1023" с тестера батареек, и везде где можно его таки использую, но младшее семейство Attiny, хардварно не поддерживает умножение.
Приходится делать 10 прошивок(точнее прошивать по два раза), ибо 3% мешают, сейчас у меня 20 батарей, 10 уже с балансирами, 10 еще на подходе. Корректировка показаний делается всего один раз, чтобы откалибровать 10 батарей понадобилось около часа, топорно, но это проще чем делать обратную связь.
О оптроне, этот балансир есть частью умного БМС(Battery Monitoring Sysem), с другой стороны оптроны собираются на переключалке, и на мегу8. Такая схема позволит отдельному МК знать поячеечное напряжение, со всеми вытекающими. А вот 1/4 отсылаю из-за питания, чем меньше пачек, тем меньше расход батареи, и пересылка эта делается раз в 2 секунды. Это позволило уже достичь 150мкА, против 420мкА аналогового балансира на TL431, при этом можно отключить оптрон, и потребление будет еще ниже...
Перед тем как делать такой балансир провел ряд замеров, и работу Attiny13 при нестабильно низком, так же опорное напряжение 1.1В, его зависимость от питания. Результаты меня приятно удивили, опора практический не чувствительна к перепадам питания, вплоть до 1.8В, ее разброс не так сильно зависит от партии чипа. Проверив с десяток МК увидел, что разброс опор, укладывается в 3-5%, все намного лучше чем у меги8.
По поводу математики с "хитрыми вычислениями", рад бы использовать блок кода с преобразованием "1023" с тестера батареек, и везде где можно его таки использую, но младшее семейство Attiny, хардварно не поддерживает умножение.
О оптроне, этот балансир есть частью умного БМС(Battery Monitoring Sysem), с другой стороны оптроны собираются на переключалке, и на мегу8. Такая схема позволит отдельному МК знать поячеечное напряжение, со всеми вытекающими. А вот 1/4 отсылаю из-за питания, чем меньше пачек, тем меньше расход батареи, и пересылка эта делается раз в 2 секунды. Это позволило уже достичь 150мкА, против 420мкА аналогового балансира на TL431, при этом можно отключить оптрон, и потребление будет еще ниже...
Немного файлов по зажиганию: ФУОЗ 2.2 + программа правки таблиц 0.987, монтажка
- Starichok51
- Модератор
- Сообщения: 19053
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: Power Bank повышенной мощности, или ИБП на 18650
да, упустил я, что там нет команд умножения...
но как и при делении (сдвиги и вычитание), умножение тоже можно сделать "в лоб" - сдвиги и сложение.
преимущество подпрограмм очевидно - меняешь только один сомножитель, второй сомножитель и делитель всегда одни и те же.
может, все МК были из одной партии, поэтому разброс опоры такой небольшой.
если ты не хочешь показывать здесь, можешь мне на почту прислать, как ты сделал переключалку и подсчет импульсов с 10 оптронов.
я так и подумал, что 1/4 - это для сокращения объема передачи.
но как и при делении (сдвиги и вычитание), умножение тоже можно сделать "в лоб" - сдвиги и сложение.
преимущество подпрограмм очевидно - меняешь только один сомножитель, второй сомножитель и делитель всегда одни и те же.
может, все МК были из одной партии, поэтому разброс опоры такой небольшой.
если ты не хочешь показывать здесь, можешь мне на почту прислать, как ты сделал переключалку и подсчет импульсов с 10 оптронов.
я так и подумал, что 1/4 - это для сокращения объема передачи.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
- Flash.#13
- Держит паяльник хвостом
- Сообщения: 965
- Зарегистрирован: Сб апр 12, 2014 23:46:03
- Откуда: Киев
Re: Power Bank повышенной мощности, или ИБП на 18650
Поправочка, с 20-ти оптронов(а можно и больше), и еще не сделал, но планирую использовать мультиплексоры, например К561КП2(CD4051). Думаю опрашивать все порты по очереди, используя калибровки ОЗУ/ПЗУ хранить, и выводить информацию, так же отключать, плюс бибикать о проблемах батареи.
1/4 это минимальное значение которое еще не теряет данных, по сути можно просто отправлять данные с АЦП, хотя удобнее в десятичном виде. А вот сложные сдвиги и сложения требуют времени, а это энергия, что в данной ситуации критично...
1/4 это минимальное значение которое еще не теряет данных, по сути можно просто отправлять данные с АЦП, хотя удобнее в десятичном виде. А вот сложные сдвиги и сложения требуют времени, а это энергия, что в данной ситуации критично...
Немного файлов по зажиганию: ФУОЗ 2.2 + программа правки таблиц 0.987, монтажка
- Starichok51
- Модератор
- Сообщения: 19053
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: Power Bank повышенной мощности, или ИБП на 18650
Паша, есть такое предложение по сокращению расчетов.
если тебе необходимо выводить через оптрон 1/4 от напряжения, то можно это учесть сразу.
получаем такое выражение: (выводимый код) = 5500(мВ) / 1024 / 4 = 1375/1024 = 1 + 351/1024.
дробь 351 / 1024 можно представить цепочкой 1/4 + 1/16 + 1/32 - 1/1024.
последний член 1/1024 получить не удастся, так как всё число уйдет вправо.
итак:
1. сдвигаем результат 2 раза - получаем 1/4.
2. делаем 1 + 1/4.
3. сдвигаем результат еще 2 раза - получаем 1/16.
4. делаем (1 + 1/4) + 1/16.
5. сдвигаем еще раз - получаем 1/32.
6. и последний раз суммируем.
но опять же таки, этот код дает фиксированный коэффициент и не позволяет делать подстройку аод реальную величин опоры.
4200 мВ - это 1050 импульсов оптрона. сдвиги и сложения (вычитания) для умножения и деления займут сущие крохи по сравнению с временем вывода 1050 импульсов на оптрон.
сделал я тут по быстрому программное умножение.
если все-таки заинтересуешься произвольным коэффициентом, то вот тебе код:
start:
ldi R16, low(780) ; 780 - код с АЦП, результат измерения
ldi R17, high(780) ; тестовая загрузка
mov R9, R16
mov R8, R17 ; для теста скопируем в регистры результата число 780
ldi R16, low(5500)
ldi R17, high(5500) ; 5500 мВ = 1100 мВ (опора) * 5 (делитель)
rcall mul_16x16_32
ldi R16, low(1024)
ldi R17, high(1024) ; 1024 - код АЦП для 1100 мВ
rcall div_32_16_16_16
; имеем 780 * 5500 / 1024 = 4189 (0x105D) мВ и остаток 464 (0x01D0)
rjmp start ; тестовое кольцо
;--- умножение 16 бит в R21:R20 на 16 бит в R17:R16 ---
;----------- результат в R23:R22:R21:R20 --------------
mul_16x16_32:
ldi R18, 16 ; делаем 16 циклов сдвига
clr R20
clr R21
next_shift:
lsl R20
rol R21
rol R22
rol R23
lsl R16
rol R17
brcc no_bit
add R20, R9
adc R21, R8
adc R22, R0 ; R0 = 0
adc R23, R0
no_bit:
dec R18
brne next_shift
ret
;--- деление 32 бита в R23:R22:R21:R20 на 16 бит в R17:R16 ---
;--------- целая часть в R21:R20, остаток в R23:R22 ----------
div_32_16_16_16:
ldi R18, 16 ; делаем 16 циклов сдвига делимого/результата
div_32_16a:
lsl R20
rol R21
rol R22
rol R23
brcs div_32_16b
cp R22, R16
cpc R23, R17
brcs div_32_16c
div_32_16b: ; если меньше, то пропускаем вычитание
sub R22,R16
sbc R23,R17
sbr R20, 1
div_32_16c:
dec R18
brne div_32_16a
ret
произвольным коэффициентом будет число 5500 (опора * 5)
либо число 1375, чтобы потом не брать 1/4 часть напряжения.
весь процесс умножения и деления
ldi R16, low(5500)
ldi R17, high(5500) ; 5500 мВ = 1100 мВ (опора) * 5 (делитель)
rcall mul_16x16_32
ldi R16, low(1024)
ldi R17, high(1024) ; 1024 - код АЦП для 1100 мВ
rcall div_32_16_16_16
занимает 424 цикла (такта).
и почему ты в тексте пишешь про 1 МГц? я почитал даташит, там сказано только про 2 внутренних частоты - 4,8 и 9,6 МГц.
и для частоты 4,8 МГц 424 цикла займут менее 100 мкс - это сущие крохи по сравнению с временем сна 2 секунды.
если тебе необходимо выводить через оптрон 1/4 от напряжения, то можно это учесть сразу.
получаем такое выражение: (выводимый код) = 5500(мВ) / 1024 / 4 = 1375/1024 = 1 + 351/1024.
дробь 351 / 1024 можно представить цепочкой 1/4 + 1/16 + 1/32 - 1/1024.
последний член 1/1024 получить не удастся, так как всё число уйдет вправо.
итак:
1. сдвигаем результат 2 раза - получаем 1/4.
2. делаем 1 + 1/4.
3. сдвигаем результат еще 2 раза - получаем 1/16.
4. делаем (1 + 1/4) + 1/16.
5. сдвигаем еще раз - получаем 1/32.
6. и последний раз суммируем.
но опять же таки, этот код дает фиксированный коэффициент и не позволяет делать подстройку аод реальную величин опоры.
4200 мВ - это 1050 импульсов оптрона. сдвиги и сложения (вычитания) для умножения и деления займут сущие крохи по сравнению с временем вывода 1050 импульсов на оптрон.
сделал я тут по быстрому программное умножение.
если все-таки заинтересуешься произвольным коэффициентом, то вот тебе код:
start:
ldi R16, low(780) ; 780 - код с АЦП, результат измерения
ldi R17, high(780) ; тестовая загрузка
mov R9, R16
mov R8, R17 ; для теста скопируем в регистры результата число 780
ldi R16, low(5500)
ldi R17, high(5500) ; 5500 мВ = 1100 мВ (опора) * 5 (делитель)
rcall mul_16x16_32
ldi R16, low(1024)
ldi R17, high(1024) ; 1024 - код АЦП для 1100 мВ
rcall div_32_16_16_16
; имеем 780 * 5500 / 1024 = 4189 (0x105D) мВ и остаток 464 (0x01D0)
rjmp start ; тестовое кольцо
;--- умножение 16 бит в R21:R20 на 16 бит в R17:R16 ---
;----------- результат в R23:R22:R21:R20 --------------
mul_16x16_32:
ldi R18, 16 ; делаем 16 циклов сдвига
clr R20
clr R21
next_shift:
lsl R20
rol R21
rol R22
rol R23
lsl R16
rol R17
brcc no_bit
add R20, R9
adc R21, R8
adc R22, R0 ; R0 = 0
adc R23, R0
no_bit:
dec R18
brne next_shift
ret
;--- деление 32 бита в R23:R22:R21:R20 на 16 бит в R17:R16 ---
;--------- целая часть в R21:R20, остаток в R23:R22 ----------
div_32_16_16_16:
ldi R18, 16 ; делаем 16 циклов сдвига делимого/результата
div_32_16a:
lsl R20
rol R21
rol R22
rol R23
brcs div_32_16b
cp R22, R16
cpc R23, R17
brcs div_32_16c
div_32_16b: ; если меньше, то пропускаем вычитание
sub R22,R16
sbc R23,R17
sbr R20, 1
div_32_16c:
dec R18
brne div_32_16a
ret
произвольным коэффициентом будет число 5500 (опора * 5)
либо число 1375, чтобы потом не брать 1/4 часть напряжения.
весь процесс умножения и деления
ldi R16, low(5500)
ldi R17, high(5500) ; 5500 мВ = 1100 мВ (опора) * 5 (делитель)
rcall mul_16x16_32
ldi R16, low(1024)
ldi R17, high(1024) ; 1024 - код АЦП для 1100 мВ
rcall div_32_16_16_16
занимает 424 цикла (такта).
и почему ты в тексте пишешь про 1 МГц? я почитал даташит, там сказано только про 2 внутренних частоты - 4,8 и 9,6 МГц.
и для частоты 4,8 МГц 424 цикла займут менее 100 мкс - это сущие крохи по сравнению с временем сна 2 секунды.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
- Flash.#13
- Держит паяльник хвостом
- Сообщения: 965
- Зарегистрирован: Сб апр 12, 2014 23:46:03
- Откуда: Киев
Re: Power Bank повышенной мощности, или ИБП на 18650
Как по мне, выражения вида 1/4+1/16=1.37 вполне достаточно чтобы числа соответствовали. А вот реальная подстройка настраивается только на практике, берем вольтметр, и регулируемый генератор напряжения, считаем сдвиг, затем еще раз перешиваем значения. Это самый простой и дешевый вариант, который требует немного времени, но экономит место и детали. Нормальная корректировка понадобится только выше, на главном ЖКИ, но там уже будет штатный хардварный блок.
По поводу тактовой, у большинства чипов атмела используется программируемый внутренний генератор, с программируемым делителем частоты. У тини13 з завода стоит 9.6МГц которое делится на 8, получается около 1МГц. Эта частота используется на мене8 и тини13, может, и на других чипах. В ФЮЗАХ это легко правится, но стараюсь их не использовать, поскольку это усложняет процесс прошивки.
По поводу тактовой, у большинства чипов атмела используется программируемый внутренний генератор, с программируемым делителем частоты. У тини13 з завода стоит 9.6МГц которое делится на 8, получается около 1МГц. Эта частота используется на мене8 и тини13, может, и на других чипах. В ФЮЗАХ это легко правится, но стараюсь их не использовать, поскольку это усложняет процесс прошивки.
Немного файлов по зажиганию: ФУОЗ 2.2 + программа правки таблиц 0.987, монтажка
- Starichok51
- Модератор
- Сообщения: 19053
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: Power Bank повышенной мощности, или ИБП на 18650
интересно, как ты собираешься менять значения, если у тебя фиксированный коэффициент?Flash.#13 писал(а): считаем сдвиг, затем еще раз перешиваем значения.
да, посмотрел я дефолты, частота 9,6 и предделитель 8. таким образом, тактовая равна 1,2.
и таймер будет иметь 256 * 1024 / 1,2 = 218453 мкс = 0,218 сек., а не 1/4 сек.
а общий интервал будет около 1,75 сек., а не 2 сек.
я понимаю, что это отличие не принципиально.
посмотрел я в отладчике, вывод числа 4097 через оптрон занимает 56326 циклов. при тактовой 1,2 это составит 56326 / 1,2 = почти 47 миллисекунд!
предложенные мной 424 цикла на умножение-деление занимают менее 1% от вывода числа.
далее. чтобы принимать импульсы с оптрона АТМегой8, все равно должна быть какая-то синхронизация.
а при наличии синхронизации можно в АТтини13 сделать эмуляцию последовательной передачи для USART на АТМега8. и передавать всего два байта напряжения, даже без деления на 4. и тебе придется коммутировать оптроны на приемник USART.
для двух байт нужно передать всего 20 битов (с учетом старт-бита и одного стоп-бита).
для тактовой 1 МГц АТМега8 может работать максимально со скоростью 9600 бод. таким образом, время передачи двух байт составит 20/9600 * 1000 = 2,083 мс.
сравни 2,08 и 47 - сколько энергии ты можешь сэкономить!
а можно не активировать USART, а тоже сделать эмуляцию приема, повысив скорость.
либо активировать USART на не стандартной, но высокой скорости.
но нужно смотреть, какую скорость можно получать на АТтини13 и будет ли она попадать в скорости, получаемые на USART. а то может оказаться, что большие скорости будет вообще не реально синхронизировать. но даже на сравнительно низкой скорости можно получить большую экономию времени передачи значения напряжения.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
- Flash.#13
- Держит паяльник хвостом
- Сообщения: 965
- Зарегистрирован: Сб апр 12, 2014 23:46:03
- Откуда: Киев
Re: Power Bank повышенной мощности, или ИБП на 18650
Значения меняются легко, просто ставлю другое напряжение срабатывания балансира, показания при этом немного перекошены но резистор балансира включается нормально. Отличия в задержках абсолютно не принципиальны, и счетчик 4Гц(0.218с) срабатывает только когда включен балансир, тоесть работает стравливание тока через резистор. Интервал 2с определяет сторожевой таймер, и это его максимум. А вот то что вместо тупого моргания счетчика кода можно отправить импульсы с переменной длинной пауз, и это позволит передавать сразу НЕХ байты, об этом, сразу, как-то не подумал. И пока не думал успел зашить 10 штук
В любом случае синхронизацию вводить реально не получится, ибо обратной связи нет, внешний МК будет сам выбирать линию которую слушать, и прослушка займет немного времени, раннее планировалось около 40с на 20 ячеек...
Немного файлов по зажиганию: ФУОЗ 2.2 + программа правки таблиц 0.987, монтажка
- Starichok51
- Модератор
- Сообщения: 19053
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: Power Bank повышенной мощности, или ИБП на 18650
во-первых, обратная связь и не нужна. достаточно соблюсти одинаковое время при передаче импульсов и при приеме - это и будет синхронизацией.Flash.#13 писал(а): В любом случае синхронизацию вводить реально не получится, ибо обратной связи нет
во-вторых, ты так и не рассказал, как ты считаешь импульсы с оптрона. потому как АТМега8 должна знать, как тактировать принимаемые импульсы. а тактирование - это и есть синхронизация.
но можно сделать и без синхронизации. для этого подавать счетные импульсы либо на вход внешнего прерывания (например, INT0), либо на вход 16-битного таймера-счетчика.
но, опять же таки, к моменту проверки подсчитанных импульсов нужно быть уверенным, что прием окончился.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
- Flash.#13
- Держит паяльник хвостом
- Сообщения: 965
- Зарегистрирован: Сб апр 12, 2014 23:46:03
- Откуда: Киев
Re: Power Bank повышенной мощности, или ИБП на 18650
На линии всегда высокий уровень, любое первое низкое, и далее, до долгого высокого дает отсчет. Импульсы или НЕХ код будет передаваться с паузами в 0.2 или 2с(зависит от режима балансира), все остальное время лог "1". Вроде этого достаточно...
Немного файлов по зажиганию: ФУОЗ 2.2 + программа правки таблиц 0.987, монтажка
- Starichok51
- Модератор
- Сообщения: 19053
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: Power Bank повышенной мощности, или ИБП на 18650
на какой линии?Flash.#13 писал(а):На линии всегда высокий уровень
ведь у АТМега8 23 порта-линии...
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
- Flash.#13
- Держит паяльник хвостом
- Сообщения: 965
- Зарегистрирован: Сб апр 12, 2014 23:46:03
- Откуда: Киев
Re: Power Bank повышенной мощности, или ИБП на 18650
Мультиплексор типа К561КП2(CD4051) позволяет коммутировать кучу отдельных линий с оптронов к МК(каждый оптрон имеет свою линию к мультиплексору), например пять ног отдать на адрес порта, и получим 31 порт после мультиплексоров, и все эти порты будут по очереди включатся мегой. Слушаем каждый 2-3с, когда лог1 сменяется на низкий уровень это первый импульс, считаем все импульсы до двух высоких, и имеем число. Если шифровать НЕХ, то можно сделать как в термометре dalas ds18b20, использовать длину лог0. Но в обеих случаях имеем кучу коммутируемых индивидуальных каналов, по которых 2с висит лог1, и время от времени бегают относительно короткие пачки, которые заканчиваются длинным лог1.
Немного файлов по зажиганию: ФУОЗ 2.2 + программа правки таблиц 0.987, монтажка
- Starichok51
- Модератор
- Сообщения: 19053
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: Power Bank повышенной мощности, или ИБП на 18650
да по фую мне твои мультиплексоры. я пытался от тебя добиться рассказа, каким образом твоя АТМега8 считает эти импульсы.
но, видимо, мне не суждено получить ответ...
но, видимо, мне не суждено получить ответ...
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
- Flash.#13
- Держит паяльник хвостом
- Сообщения: 965
- Зарегистрирован: Сб апр 12, 2014 23:46:03
- Откуда: Киев
Re: Power Bank повышенной мощности, или ИБП на 18650
Ну не знаю как еще об этом счете писать, на ножку меги приходят импульсы, с выбранного оптрона, подпрограмма их суммирует, с временными задержками:
На выходе имеем R16:R17, число импульсов, так же в коде стоит ввести учет "нулей", ибо можно повиснуть в цикле, этот код наброска, и в реале еще не писался, приведен для примера. Но если делать передачу байт, то все сильно изменится, и код там будет другой.
Код: Выделить всё
count:
clr R18 ;clr error
add R17,R1 ;+1, Lowbyte
adc R16,R0 ;+перенос, HighByte
xx0:
sbis PortB,1 ;do if "0"
rjmp xx0 ;пока "0", ждем
xx1:
inc R18 ;+1, "error count"
cpi R18, 10 ;если пришло 50раз(длинна цикла 5такт.) лог"1",
brsh end ;счет окончен, выход
sbic PortB,1 ;do if "1"
rjmp xx1 ;пока "1", ждем
rjmp count
Немного файлов по зажиганию: ФУОЗ 2.2 + программа правки таблиц 0.987, монтажка
- Starichok51
- Модератор
- Сообщения: 19053
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: Power Bank повышенной мощности, или ИБП на 18650
ладно, немножко понятно.
а как же ты "калибровал" делители для уже записанных АТтини13? чем-то нужно было считать число импульсов...Flash.#13 писал(а):этот код наброска, и в реале еще не писался, приведен для примера.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.


