|
|
![]() ![]() |
|
|
![]() ![]() ![]() ![]() |
|
Опции темы | Поиск в этой теме |
![]() ![]() |
![]() ![]() |
Ветеран Фонарёвки
Регистрация: 14.02.2010 Последняя активность: 18.11.2015 19:18
Сообщений: 7908
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
![]()
Ага.
![]() 1. В случае со специализированными микросхемами, насколько я понимаю, нам понадобятся 2 микросхемы (одна для зарядки Li-Ion, а другая - для Ni-Mh) + МК для индикации + обвес. 2. В случае с МК, скорее всего, нам хватит внутреннего АЦП для замера напряжения, а ток заряда мы будем регулировать через напряжение, получаемое от ШИМ. Его тоже надо сглаживать - соответственно, доп. обвес. Зато, получим большую универсальность - алгоритмы зарядки можно со временем изменять. А если реализовать возможность подключения к компу, то и апгрейд зарядок… |
![]() |
![]() ![]() |
![]() |
![]() ![]() |
Завсегдатай Фонарёвки
|
![]()
Естественно, с МК будет дороже. Один МК стоит столько же, сколько специальная микросхема. Так к нему ещё и обвесу требуется.
Да и надёжнее всё-таки будет специальную юзать. Что касается алгоритмов зарядок - эта вещь, которую я бы не пожелал отлаживать... Если на реальном аккумуляторе отлаживать - это ж следить весь процесс заряда. А потом где-то разряжать, чтобы опять начать ![]() |
![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
|||||
Ветеран Фонарёвки
Регистрация: 14.02.2010 Последняя активность: 18.11.2015 19:18
Сообщений: 7908
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
![]() Цитата:
![]() Цитата:
Цитата:
Цитата:
![]() Цитата:
|
|||||
![]() |
![]() ![]() |
![]() |
![]() ![]() |
|
Завсегдатай Фонарёвки
|
![]() Цитата:
Proteus вообще со многими вещами не дружит в МК... А многие воспроизводит с точностью до наоборот ![]() |
|
![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
Ветеран Фонарёвки
Регистрация: 14.02.2010 Последняя активность: 18.11.2015 19:18
Сообщений: 7908
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
![]() |
![]() |
![]() ![]() |
![]() |
![]() ![]() |
Завсегдатай Фонарёвки
|
![]()
Всмысле, что их самому задавать придётся.
Вобщем, для задач, которые должны работать в реальном времени, не годится совсем... |
![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
|
Ветеран Фонарёвки
Регистрация: 14.02.2010 Последняя активность: 18.11.2015 19:18
Сообщений: 7908
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
![]()
Вот и я тоже, не наблюдал, чтобы она что-то сбрасывала...
![]() Цитата:
![]() Ты же не будешь весь процесс отслеживать... А просто проверишь работу алгоритма на нескольких ключевых точках, которые заранее сам рассчитаешь... |
|
![]() |
![]() ![]() |
![]() |
![]() ![]() |
|
Завсегдатай Фонарёвки
|
![]()
Проверять ШИМ - вообще занятие неблагодарное, в AVR Studio даже представить тяжело
![]() Всякими симуляторами будет ещё медленнее. Цитата:
![]() |
|
![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
|||
Ветеран Фонарёвки
Регистрация: 14.02.2010 Последняя активность: 18.11.2015 19:18
Сообщений: 7908
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
![]() Цитата:
![]() Цитата:
![]() Цитата:
PS: Я вчера весь вечер в аське провел. ![]() |
|||
![]() |
![]() ![]() |
![]() |
![]() ![]() |
Завсегдатай Фонарёвки
|
![]()
Уже выкладывал, но повторюсь
![]() |
![]() |
![]() ![]() |
![]() |
![]() ![]() |
Завсегдатай Фонарёвки
Регистрация: 17.02.2010 Последняя активность: 30.01.2016 13:11
Сообщений: 787
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
![]()
У 10-и разрядного АЦП при диапазоне входного напряжения 5 вольт, дискретность будет менее 0.005 вольт. Так что хватит
![]() PS: меня тоже посетила идея сделать зарядку на МК после того, как я получил с DX зарядку, которая перезаряжает аккумуляторы. |
![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
||
Ветеран Фонарёвки
Регистрация: 14.02.2010 Последняя активность: 18.11.2015 19:18
Сообщений: 7908
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
![]() Цитата:
![]() Цитата:
PS: Пошел я нормы Минздрава изучать, может сегодня еще время и на зарядку останется... |
||
![]() |
![]() ![]() |
![]() |
![]() ![]() |
|
Увлеченный
Регистрация: 12.02.2010 Последняя активность: 15.02.2011 20:41
Сообщений: 266
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
![]() Цитата:
"Алгоритм зарядки аккумулятора" & "сложная программа" - лол, именно поэтому я асм даже не смотрел. Код:
void volt_chk(void) { ADMUX = (1<<REFS1)|(1<<REFS0)|(1<<ADLAR)|(0<<MUX3)|(0<<MUX1)|(1<<MUX0); // Input select ADCSRA = (1<<ADEN)|(0<<ADIE)|(1<<ADPS2)|(1<<ADPS1); volt=ADC_result(); } void batt_current_chk(void) { ADMUX = (1<<REFS1)|(1<<REFS0)|(1<<ADLAR)|(1<<MUX3)|(1<<MUX1)|(1<<MUX0); // Input select ADCSRA = (1<<ADEN)|(0<<ADIE)|(1<<ADPS2)|(1<<ADPS1); batt_current=AMP_ADC_result(); } unsigned int ADC_result (void) // 256 ADC measurements { unsigned int result = 0; int count = 0; while (count<=255) { ADCSRA|=(1<<ADSC); while(bit_is_clear(ADCSRA,ADIF)); result += ADCH; count++; } result >>= 8; return result; } unsigned int AMP_ADC_result (void) // 256 amplified ADC measurements { unsigned int result = 0; int count = 0; while (count<=255) { sbi(ADCSRB,ADASCR); while (bit_is_clear(ADCSRA,ADIF)); result += ADCH; count++; } result >>= 8; if (result>127) return 0; else return result; // discarding negative values } void Chg_on(void) { chgd=0; chg=1; CHG_PWM=CHG_PWM_MIN; sbi (PSOC0, POEN0B); } void Chg_off(void) { chg=0; cbi (PSOC0, POEN0B); } void Chg_set(void) { batt_current_chk(); volt_chk(); if ((volt<V_LOW) & (batt_current>BATT_CURRENT_LOW)) // first stage, low current control { if (CHG_PWM>CHG_PWM_MIN) CHG_PWM--; } else if (batt_current>BATT_CURRENT_MAX) // second stage, high current control { if (CHG_PWM>CHG_PWM_MIN) CHG_PWM--; } else if ((volt>=V_MAX)&(batt_current>BATT_CURRENT_OFF)) // third stage, voltage control { if (CHG_PWM>CHG_PWM_MIN) CHG_PWM--; } else if (volt<V_MAX) // rising current, if not enough { if (CHG_PWM<CHG_PWM_MAX) CHG_PWM++; } else { chgd=1; Chg_off(); // Charge is over } } BATT_CURRENT_MAX, V_MAX и прочее - можно померить при помощи простенькой проги, которая мигает светодиодиком по уровню сигнала на АЦП, задать через #define. CHG_PWM - регистр таймера ШИМ, посмотреть по даташиту для своего МК. регистры ADMUX, ADCSRA и соответствующие биты - уточнить по даташиту для своего типа МК А, и переменные ещё нужно объявить. И проинициализировать таймеры и прерывания, см даташит. Chg_set() вызывать в бесконечном цикле или по таймеру. Ну или вообще откуда угодно, но периодически и обязательно. ---------------- Апдейт - опубликовано на условиях GNU GPL v2 или v3. ![]() |
|
![]() |
![]() ![]() |
![]() |
![]() ![]() |
|
Завсегдатай Фонарёвки
|
![]() Цитата:
![]() ![]() |
|
![]() |
![]() ![]() |
![]() |
![]() ![]() |
Увлеченный
Регистрация: 12.02.2010 Последняя активность: 15.02.2011 20:41
Сообщений: 266
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
![]()
Как говорят в таких случаях линуксоиды - сообщество допишет.
![]() Температура - copy&paste batt_current_chk() или volt_chk() c другими комбинациями битов. Впрочем, для Li-Ion она не нужна, есть стандартрные токи заряда. Для NiMH тоже не нужна, зарядка там останавливается по падению напряжения в процессе заряда (но я этого не писал, знаю только в теории). Автоопределение типа - элементарный if по диапазону напряжений на аккумуляторе (или что имеется ввиду?). Измерение ёмкости не нужно. Её надо при разряде мерить. |
![]() |
![]() ![]() |
![]() |
![]() ![]() |
|
Завсегдатай Фонарёвки
|
![]()
Отлично, теперь у нас есть кодер, который нам всё сделает
![]() ЗЫ. А я МК совсем недавно изучаю, буквально неделю в сумме им занимался... Конечно многое для меня сложно... Цитата:
![]() |
|
![]() |
![]() ![]() |
![]() |
![]() ![]() |
Увлеченный
Регистрация: 12.02.2010 Последняя активность: 15.02.2011 20:41
Сообщений: 266
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
![]() |
![]() |
![]() ![]() |
![]() |
![]() ![]() |
|
Ветеран Фонарёвки
Регистрация: 15.02.2010 Последняя активность: 05.09.2022 18:18
Сообщений: 1034
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
![]() Цитата:
Алгоритм зарядки лития 3.7В простой: ток до 1С, при напряжении выше 4.20В заряд отключается, упало ниже 4.20В - опять включается. Греются только плохинькие аккум. при зарядке предельными токами, из-за большого внутреннего сопротивления. |
|
![]() |
![]() ![]() |
![]() |
![]() ![]() |
|
Завсегдатай Фонарёвки
Регистрация: 17.02.2010 Последняя активность: 30.01.2016 13:11
Сообщений: 787
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
![]() Цитата:
![]() |
|
![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
|
Ветеран Фонарёвки
Регистрация: 14.02.2010 Последняя активность: 18.11.2015 19:18
Сообщений: 7908
Сказал(а) спасибо: 0
Поблагодарили: 0 раз(а) в 0 сообщениях
|
![]()
У тебя прошивки буду раз в 10 работать медленней.
![]() Добавлено через 2 минуты Цитата:
Добавлено через 52 секунды На подходе... ![]() |
|
![]() |
![]() ![]() |