А по какому принципу CC/CV реализуется в железе? Я просто не совсем понимаю, а за счет чего ток ограничивается? Ваш гитхаб я заранее прошерстил, еще до того как сюда написать :D Но не совсем понимаю именно хардверную реализацию, в коде то всё понятно, я и ТАУ вроде кое-как знаю, а именно в железе увы простофиля :(
CC/CV это constant current/constant voltage, а следовательно тебе надо измерять ток и напряжение на нагрузке, то есть на выходе. У меня это сделано через датчик тока на шунте + ОУ для усиления сигнала, измерение напряжения на выходе через обычный делитель. Эти 2 сигнала тащить на АЦП микроконтроллера и измеряешь. На основе этого уже меняешь заполнение ШИМ (duty ,D), то есть меняешь напряжение.