Обсуждаем контроллеры компании Atmel.
Ответить

Стабилизация тока Attiny85 не могу понять

Сб ноя 18, 2023 22:37:42

Приветствую!

Вопрос из разряда песочницы, но видимо забыл все (или не знал)).
Хочу сделать зарядное уст. из промышленного обратноходового БП, где напряжение стабилизируется штатной ОС БП, а стабилизацию тока (точнее ограничение) хочу реализовать с помощью ШИМ+АЦП МК Attiny85.

Схема:
Изображение

Код:
Код:
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include <Wire.h>


volatile int adc_l;
volatile int adc_HL;
volatile float adc_val;

//границы переменных
int grany (int peremen, int a1, int b1) {
if (peremen<=a1) {peremen=a1;}
if (peremen>=b1) {peremen=b1;}
return peremen;
}

int OCR1A_plus () {
if (OCR1A>=253) {OCR1A=254;}
else {OCR1A++;}
return 0;
}

int OCR1A_minus () {
if (OCR1A<=2) {OCR1A=0;}
else {OCR1A--;}
return 0;
}


int main (void) {

DDRB|=1<<PB1|0<<PB4;
//~~~~~~~~~~~~~~~~~~~~~~~~ШИМ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
// |состояние выхода OC1A| вкл.PWM|  4 бита предделителя частоты|
TCCR1=0<<COM1A1|1<<COM1A0|1<<PWM1A|1<<CS10|1<<CS11|1<<CS12|0<<CS13;
OCR1A=200;//установка скважности
//~~~~~~~~~~~~~~~~~~~~~~~~АЦП~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
//       ист. опорного напр. 2.56V|  выбор канала АЦП ADC1 (PB4)  |
ADMUX|= 0<<REFS0|1<<REFS1|1<<REFS2|0<<MUX0|1<<MUX1;//|0<<MUX2|0<<MUX3;
//    вкл.АЦП|авт. режим|старт  |предделитель частоты АЦП на 128 |
ADCSRA|=1<<ADEN|1<<ADATE|1<<ADSC|0<<ADPS0|1<<ADPS1|1<<ADPS2;
while(1){
           
adc_l=ADCL; //значение входного напряжения в нижнем регистре
adc_HL=(ADCH<<8)|adc_l;//чтение верхнего регистра вместе с нижним
adc_val = int(grany(adc_HL,0,1023));
if (adc_val>400) {OCR1A_minus();} else {OCR1A_plus ();}
}
}


По сути вроде так: запускаем ШИМ, уст. начальную скважность, получаем значение АЦП в диапазоне 0-1024. Если значение АЦП выше 400 - то уменьшаем скважность до момента пока знач. АЦП станет ниже 400 и так циклично.

Но так эта ОС не работает. Почему?

Re: Стабилизация тока Attiny85 не могу понять

Сб ноя 18, 2023 22:58:38

А вариант с оптопарой, параллельной уже имеющейся в БП, не рассматривали? Кмк, гораздо проще было бы. Или нужно только на МК?

Re: Стабилизация тока Attiny85 не могу понять

Вс ноя 19, 2023 11:49:28

Да можно и DC-DC обычный вкорячить с регулировками тока и напряжения. Интересно на МК сделать.

Re: Стабилизация тока Attiny85 не могу понять

Вс ноя 19, 2023 16:45:53

dds7sdd, а чем твой ШИМ будут управлять, чтобы регулировать ток?
как я понял, ты решил создать НЕобычный DC-DC с применением МК?

Re: Стабилизация тока Attiny85 не могу понять

Вс ноя 19, 2023 18:22:22

Для 358 может понадобиться отрицательное питание для работы с такими входами.
А что происходит вообще, в чём выражается "не работает"?

Re: Стабилизация тока Attiny85 не могу понять

Вс ноя 19, 2023 19:43:28

Starichok51, Владимир, коль это зарядное устройство - то ШИМ-ом будет регулироваться ток зарядки свинцово-кислотного АКБ.

как я понял, ты решил создать НЕобычный DC-DC с применением МК?

Именно так. Есть несколько ОХ ИБП и я хочу сделать из них ЗУ c параметрами стабилизации СС\СV: 0.7-5А и 12.5-15.6V и различными алгоритмами заряда на МК. Корпуса маленькие и вкорячить туда полноценный DC-DC на честные 5А - не получится, да и излишне.
Посему решил ток ограничивать ШИМ с МК, а напряжение стабилизируется штатной ОС ИБП.
Ранее делал подобные ЗУ на ATmega328 c OLED экраном. Но уже 5 лет прошло и все с башки вылетело))
Вопрос тут банальный и скорее всего математический))

Добавлено after 11 minutes 42 seconds:
>TEHb<, LM там работает как усилитель шунта с коэффициентом 30. Зачем ему отр. пит.?
А происходит то, что ток ограничивается в процентах но не работает как полноценная ОС.

Re: Стабилизация тока Attiny85 не могу понять

Вс ноя 19, 2023 19:50:19

30? Скорее ближе к семи, судя по резистором. Отрицательное питание затем, что этот ОУ не очень хорошо работает с напряжениями на входах, близких к минусовому питанию. Ещё на выходе стоит конденсатор убрать, а затворный резистор подбавить.

Re: Стабилизация тока Attiny85 не могу понять

Вс ноя 19, 2023 19:59:33

Ну хз, значения с ADC приходят более или менее адекватные.
А конденсатор С3 как раз и нужен для адекватных значений АЦП ибо там ШИМ и без него на входе АЦП "каша".
К железу у меня в принципе вопросов нет. Все показания (ОCR1A и ADC) я выводил на OLED и они правильно считываются.
Здесь вопрос больше программный.
Последний раз редактировалось dds7sdd Вс ноя 19, 2023 20:02:17, всего редактировалось 1 раз.

Re: Стабилизация тока Attiny85 не могу понять

Вс ноя 19, 2023 20:02:06

Ну ладно, раз схема нравится, то отлаживайте программу.

Re: Стабилизация тока Attiny85 не могу понять

Ср ноя 22, 2023 14:22:38

Во-первых: Фильтр на R3C1 работать не будет, т.к. С1 моментально разрядится через шунт при запирании полевика, R3 нужно подключить к шунту, а после кондёр С1 на операционник;
Во-вторых: Кондёр на 200 мкФ на выходе операционника... без резистора... кровь из глаз... Он там нах не нужен, но если хочешь снизить пульсации, то 100н за глаза, через резистор, конечно;
В-третьих: Если после условия идёт одно действие, то скобки не нужны;
В-четвёртых: Не вижу смысла использовать все 10 бит АЦП, если ШИМ у тебя 8 бит + можно усреднить значение (старое значение + новое значение)>>1, причём усреднение можно делать прямо в прерывании по АЦП, а вообще, для более корректного измерения тока R3C1 нах и нужно искать среднеквадратичное значение, сигнал-то ШИМ, ну и на вывод AREF божественную керамику не забывай вешать о чём прямо в даташите сказано;
В-пятых: Ты не указал частоту ядра, но обрати внимание, если у тебя частота ядра, например, 1 МГц, то частота ШИМ получается 1МГц/8192/256 ~ 0,48 Гц и время, когда транзистор открыт/закрыт ~ 1 секунда;
В-шестых: Очевидно, что будут пульсации по току, я бы воткнул ещё электролит минимум микрофарад на 1000 LESR + керамика на 1 мкФ.
А вообще, для регулировки тока LM358 и полевика с резюком в истоке достаточно :))
https://vpayaem.ru/inf_curr1.html
Но полевик при таком включении будет работать в линейном режиме и греться, придётся продумать охлаждение, поскольку за Maximum Safe Operating Area можно легко улететь и словить тепловой пробой кристалла :))
P.S. Операционник с указанными номиналами резисторов в цепи ООС работает с коэффициентом усиления ~ 8, но никак не 30 :))

Re: Стабилизация тока Attiny85 не могу понять

Ср ноя 22, 2023 17:04:50

dds7sdd писал(а):коль это зарядное устройство - то ШИМ-ом будет регулироваться ток зарядки
я не спрашивал, что будет регулироваться - я спрашивал, чем твой ШИМ будут управлять, чтобы регулировать ток?

Re: Стабилизация тока Attiny85 не могу понять

Чт ноя 23, 2023 21:18:04

"то ШИМ-ом будет регулироваться ток зарядки свинцово-кислотного АКБ."

Из ШИМа надо сделать DAC, далее компаратор, далее оптопара выходом впаралель существующей.
И МК будет задавать режим, а не управлять преобразователем...
Вмешательство в схему будет минимальным, преобразователь будет работать на штатной частоте и скважности.
Я так думаю...

Re: Стабилизация тока Attiny85 не могу понять

Пт ноя 24, 2023 01:39:57

не могу понять
Я вот тоже не могу понять, зачем на очень медленную систему АЦП МК + сам МК с его программой возлагать задачу слежения за током, когда даже самый дешманский ОУ это сделает многократно лучше.
Ответить