В основе - ATtiny85, но это не важно, поэтому не стал размещать в форуме AVR.
Суть: это понижающий импульсный источник тока, обратная связь с шунта подаётся на два дифференциальных входа контроллера. Шунт 0.025Ом. На выходе разумеется ШИМ.
Задача: удержать заданный ток при изменении напряжения питания с 4.2В до 3В.
Проблемы:
1). Какой лучше применить алгоритм стабилизации? Необходимо добиться плавности регулировки, чтобы не было "рывков".
Пробовал обычный линейный. Вот:
Код: Выделить всё
if ((cur_adc < (mode_adc - HYST)) && (pwm < 255)) pwm++;
if ((cur_adc > (mode_adc + HYST)) && (pwm > 1)) pwm--;
2). При значениях тока меньше 200-100мА напряжение на шунте будет за гранью добра и зла, т.е. ловить его одним встроенным АЦП не имеет смысла. А там и поменьше режимы есть, например 10мА. Как стабилизировать? Одна мысль - измерять напряжение питания, и от него вычислять.
3). Возможно на максимальных режимах придётся отключать встроенный ОУ, иначе АЦП уйдёт в насыщение (ток 3А). Как сделать плавный переход?
4). Изменять схему драйвера нельзя!
Буду рад любым мыслям. Если что, наброски кода тут


