Программируемый источник питания

Изготовление / ремонт / переделка БП
Аватара пользователя
rhf-admin
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 3060
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
Контактная информация:

Re: Программируемый источник питания

Сообщение rhf-admin »

Так лучше, но тут есть претензии к самому операционнику. Он таки не идеальный. Я тут посмотрел доку на этот TLC - у него напряжение смещения порядка 0,5 мВ. А у тебя при резисторе 0,03 Ома и токе 100 мА будет падение между входами всего 0,3 мВ. Так нифига операционник работать не будет. От дрейфа смещения ток будет скакать больше, чем от изменения коэффициента усиления второго каскада. Для таких маленьких сигналов надо тогда прецезионный операционник или всё же увеличить номинал токоизмерительного резистора.

З.Ы. Я вот тут написал-таки чуток про операционники и расчёт схем на них.
С уважением, администрация сайта.
Аватара пользователя
Volag
инженер, читатель
инженер, читатель
Сообщения: 250
Зарегистрирован: 19 апр 2010, 03:53
Откуда: Симферополь

Re: Программируемый источник питания

Сообщение Volag »

Во как важно сопоставить напряжение смещения ОУ и падение напряжения на токоизмерительном шунте, получается полезный сигнал будет меньше чем дрейфующее напряжение, кошмар :wrongly:
Жаль. У меня этих TLC272, вернее их аналога - TS272C очень много.
Однако все-таки наверное на резисторе 0,03 Ом при токе 100 мА падение напряжения будет 3мВ, а не 0.3мВ, что немного смягчит требования к подходящему ОУ. Для TS272C в даташите дается типичное напряжение смещения 1.1мВ, а максимальное - 10мВ. Для LM358: типичное-2мВ, максимальное 7мВ. Для OP07CP: типичное -60 мкВ, максимальное 150мкВ. Для AD8552: типичное - 1мкВ, максимальное - 5мкВ. Получается последняя подходит больше всего. Хотя по входному току смещения лучше всего TS272C.
Токоизмерительный шунт больше делать не хотелось бы, такой как есть, наверное, можно было бы выполнить вообще в виде дорожки печатной платы.
Интересно, как же тогда лепят в подобные схемы LM358 и умудряются отлавливать изменения тока в нагрузке порядка 10мА? Там кстати второй каскад используется как компаратор. Это лучшее решение, чем делать второй каскад как у меня в схеме?
За ликбез по ОУ спасибо, вполне доступно изложил. Штука много где нужная и полезная.
Аватара пользователя
rhf-admin
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 3060
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
Контактная информация:

Re: Программируемый источник питания

Сообщение rhf-admin »

Блин, схема по ссылке не открывается. Насчёт компаратора я тоже думал, в TL-ке же всё равно компаратор. Тогда может даже проще будет управлять. Можно на куче резисторов тогда сделать ЦАП и задавать им опорное для этого компаратора.
С уважением, администрация сайта.
Аватара пользователя
Volag
инженер, читатель
инженер, читатель
Сообщения: 250
Зарегистрирован: 19 апр 2010, 03:53
Откуда: Симферополь

Re: Программируемый источник питания

Сообщение Volag »

Интересно, насколько стабильно и точно может получиться управление с помощью R-2R ЦАП.
Нашел еще такую схему ЦАП, может быть ее удастся использовать.
Тоже буду этот вариант проверять, но позже. Пока что решил все-таки собирать первоначальный вариант.
Практика - лучший критерий истины, как говориться :).
AD8552 пока что не удалось достать. Пригодны-ли вообще микросхемы с автоматической коррекцией нуля для задач измерения тока?
На OP07CP почему-то ничего не получилось - слишком большое выходное напряжение даже при нулевом токе на входе.
Попробовал все же на TS272CN. Резистор токоизмерительного шунта образован дорожками на плате и равен 0.054 Ом. Коэффициент усиления первого операционника равен 17, второго регулируется 2 до 44.
Напряжение смещения получилось порядка 0,00044В. Микросхема LM2576-ADJ с индексом H может работать с напряжением на входе до 55В, т.е., теоретически можно получить регулируемый блок питания от 0В до 52.5В. Пока что испытал при входных напряжениях от 5В до 30В. Работает нормально, выбранное напряжение на выходе держится стабильно.
Диапазон регулировки по току проверял при 7.5В на входе и установленной стабилизации по напряжению 5В на выходе.
Получилось регулировать ограничение тока в диапазоне от 15мА до 1.2А. От 0 до 15мА переход происходит без промежуточных значений. А от 1.2А, хотя запас хода переменного резистора еще есть, но на изменение его сопротивления реакция очень слабая. Может быть это связано с тем, что входного напряжения 7.5В не достаточно для преобразователя чтобы выдать больший ток в нагрузку? Пришлось отложить дальнейшее тестирование, т.к. без радиатора микросхема преобразователя довольно быстро разогревается градусов до 60, а может и больше. Нужно переделать макетную плату чтобы вписался радиатор.
Вложения
pip_v1.GIF
Аватара пользователя
rhf-admin
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 3060
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
Контактная информация:

Re: Программируемый источник питания

Сообщение rhf-admin »

С помощью R2-R даже звук воспроизводят, причём вполне прилично. Точность будет зависеть от точности соотношений номиналов резисторов и от стабильности питания. Зато такая матрица довольно быстрая.
Поскольку важны даже не столько сами номиналы, сколько их соотношения, то здесь наверняка уместно использовать резистивные сборки, вот такие:
СЃР±РѕСЂРєР°1.jpg
СЃР±РѕСЂРєР°1.jpg (3.43 КБ) 9647 просмотров
СЃР±РѕСЂРєР°2.jpg
СЃР±РѕСЂРєР°2.jpg (1.8 КБ) 9619 просмотров
Плюс в том, что даже если их номинал и отличается от заявленного, то между собой номиналы резисторов в такой сборке отличаются всё равно очень незначительно, как раз из-за того, что их сразу все вместе делают на одной подложке.
ЦАП по ссылке - медленнее матрицы R-2R, поскольку результат на выходе, во-первых, как раз зависит от времени и, во-вторых, нужно время на обратное преобразование АЦП и обработку результата. Но идея использовать в качестве ЦАП интегратор, выход которого проверяется через АЦП - гениально! Короче тут скорости может не хватить, но надо проверять. Кроме того, этому ЦАП-у не так важна стабильность питания.

Да, ограничение в 1,2 ампера вполне может быть связано либо с ограничением по мощности источника питания, либо со слишком маленьким входным напряжением. Надо попробовать что будет с той же нагрузкой, но при другом входном напряжении.
С уважением, администрация сайта.
Аватара пользователя
Volag
инженер, читатель
инженер, читатель
Сообщения: 250
Зарегистрирован: 19 апр 2010, 03:53
Откуда: Симферополь

Re: Программируемый источник питания

Сообщение Volag »

Заинтересовала возможность использовать R-2R ЦАП, потому что из-за разброса напряжения нулевого смещения обычных операционников сильно большое усиление делать неудобно - с одним экземпляром микросхемы находишься в диапазоне, а с другой- нет. А с ЦАП и компаратором можно усиление сделать поменьше, а разницу в смещении компенсировать программой контроллера, предварительно сравнивая с каким-то эталоном результат измерения.
Жаль, что больше приходится заниматься тем, за что платят, а не тем, что хочется изучить, остаются на творчество какие-то крупицы времени :(
Собрал R-2R ЦАП на макетке, подключил к готовому контроллеру и попробовал написать тестовую программу. Т.к. программирование МК тоже осваиваю от случая к случаю получается конечно причудливо, но все же работает :). Оказалось, что полноценный SPI для управления таким ЦАП и не нужен, подойдут любые 3 цифровых линии контроллера. Получилось плавное изменение напряжение от 0В до 4.4В, непонятно, почему не 5В? :?
Дальше прикинул схему усилителя токового шунта с компаратором, правильно-ли?
Исходил из того, что падение напряжения на токовом шунте R=0,054Ом при изменении нагрузки от 0,01А до 3А будет меняться от 0,00054В до 0,162В, усиление первого каскада равно 28.5, значит на выходе будет 0,01539В...4,617В и к этому добавить до 0,01В нулевого смещения ОУ, получится 0,3В...4.92В. Дальше это напряжение поступает на прямой вход компаратора, а на инверсный вход подается напряжение с выхода R-2R ЦАПа. Резисторы R42 и R43 должны задать гистерезис VH=R42/(R42+R43)= 1/(1+1000)=0,004995В.
В качестве языка программирования выбрал Pascal, а среды разработки - mikroPascal for AVR v.3.5.0
Тестовая программа получилась такой.

Код: Выделить всё

program R_2R_DAC;
const _THRESHOLD = 20;
var counter,c0,c1 : byte;
    c2:short;
br1:array[0..8] of byte;
procedure byte_to_bits(c2:byte);
var c3:byte;
begin
if (c2 and 128)=128 then br1[0]:=1 else br1[0]:=0;{Q7}
if (c2 and 64)=64 then br1[1]:=1 else br1[1]:=0;{Q6}
if (c2 and 32)=32 then br1[2]:=1 else br1[2]:=0;{Q5}
if (c2 and 16)=16 then br1[3]:=1 else br1[3]:=0;{Q4}
if (c2 and 8)=8 then br1[4]:=1 else br1[4]:=0;{Q3}
if (c2 and 4)=4 then br1[5]:=1 else br1[5]:=0;{Q2}
if (c2 and 2)=2 then br1[6]:=1 else br1[6]:=0;{Q1}
if (c2 and 1)=1 then br1[7]:=1 else br1[7]:=0;{Q0}
br1[8]:=1; {зачем-то нужно отправлять лишний бит}
end;
procedure clear_reg;
begin
PORTB.1:=0; {PB1 - LATCH, когда равен 1 на выходы регистра выводится то что в него записано}
for c0:=0 to 7 do begin
  PORTB.0:=0;{PB0 - SCK}
  delay_ms(1);
  PORTB.0:=1;
  delay_ms(1);
  PORTB.2:=0;{PB2- MOSI, побитно записываются данные в регистр}
  delay_ms(1);
end;
end;
procedure send_byte;
begin
clear_reg;
  for c0:=0 to 8 do begin
  PORTB.0:=0;
  delay_ms(1);
  PORTB.0:=1;
  if br1[c0]=1 then PORTB.2:=1 else PORTB.2:=0;
  delay_ms(1);
  end;
  PORTB.1:=1;
end;
procedure Timer0Overflow_ISR(); org IVT_ADDR_TIMER0_OVF ;
  begin
    if (counter >= _THRESHOLD) then
      begin
        counter := 0;            // сброс счетчика
      if c1<255 then begin {периодическое плавное нарастание и убывание напряжения}
       c1:=c1+c2;
       byte_to_bits(c1);
       end
       else begin c2:=-c2;c1:=254; end;
       send_byte;
      end
    else
      Inc(counter);              // увеличение счетчика
  end;
begin
  { Main program }
  DDRB   :=  0xFF;               // PORTB переключить на вывод
  PORTB  :=  0;                  // обнулить PORTB
  c1:=0; {счетчик цикла}
  c2:=1;
  SREG_I_bit := 1;               // Разрешить прерывания
  TOIE0_bit  := 1;               // Разрешить прерывание переполнения Timer0
  TCCR0  := 5;                   // Запустить таймер с делителем 1024 T=((8000000/1024)/256)* _THRESHOLD
  byte_to_bits(c1);{установка начального значения напряжения Vout=(5/256)*c1}
 // Бесконечный цикл основной программы контроллера
  while TRUE do
  begin
  end;
end.
Вложения
R-2R_DAC.GIF
Аватара пользователя
rhf-admin
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 3060
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
Контактная информация:

Re: Программируемый источник питания

Сообщение rhf-admin »

Для R-2R выходная напруга и не может стать равна напряжению питания, максимально она может быть на одну дольку меньше: Vout max=Vпит*(1-1/2^n), где n - разрядность ЦАП. Т.е. в твоём случае 5*(1-1/256). В принципе это всё равно не 4,4, а почти 5 должно быть. Может питание не совсем 5В + какое-то падение должно быть на внутренних ключах регистра (в доке, например, написано, что при Vcc=4.5В и токе 6 мА выход будет минимум 3,84В, типично 4,32В).
...и к этому добавить до 0,01В нулевого смещения ОУ
Нифига. Оно во-первых, может оказаться любым от 0 до 0,01В (0,01 - это максимум), во-вторых, сложится с твоим и усилится. Операционником с таким смещением нуля нельзя измерить сигнал в 540 мкВ. На входе может оказаться от 540 мкВ до 10540 мкВ, в зависимости от конкретного экземпляра. Входной сигнал должен быть на порядок больше смещения нуля, только тогда на него можно забить. Курим это до конца...
С уважением, администрация сайта.
Аватара пользователя
Volag
инженер, читатель
инженер, читатель
Сообщения: 250
Зарегистрирован: 19 апр 2010, 03:53
Откуда: Симферополь

Re: Программируемый источник питания

Сообщение Volag »

На входе может оказаться от 540 мкВ до 10540 мкВ, в зависимости от конкретного экземпляра.
Ну так я это же имел ввиду, когда говорил, что добавляем нулевое смещение, по входу, т.е. оно то же усилится во столько же раз как и полезный сигнал и на выходе получится не 0.01А*0.054Ом*28.5=0.01539В, а 0.01А*0.054Ом*28.5 +0.01В*28.5 =0.01539В=0.3В, из которых полезная составляющая будет равна 0.01539В, а постоянное смещение будет равно 0.285В.
Ведь на схеме же по-сути неинтвертирующий усилитель, значит Uo= U2(1+Roc/R1)+-Ucm(1+Roc/R1).
Входной сигнал должен быть на порядок больше смещения нуля, только тогда на него можно забить.
Ну да, если смириться с большим резистором токоизмерительного шуна. Или искать хороший операционник. А если его нет, а увеличивать сопротивление токоизмерительного шунта не хочется , то можно же и не забивать, а внести поправку в измерения, учитывая начальное смещение, главное чтобы оно не выходило за допустимый диапазон?
К примеру контроллер в начале работы отключает нагрузку, в этот момент на выходе усилителя будет напряжение равное напряжению входного смещения операционника. Это значение запоминается в переменной и когда нужно с помощью ЦАПа на компараторе сформировать к примеру 15мВ, то к ним прибавляется значение данной переменной. В итоге получится предсказуемый результат, только сузится диапазон подстройки. Но как раз усиление подобрано так, чтобы ЦАП смог перекрыть сверху это смещение даже с учетом максимального смещения усилителя. К примеру, без учета смещения должно было бы получиться напряжение при максимальной нагрузке 3А равным 4.617В, а с учетом максимального смещения получится 4.902В, но ЦАП теоретически может дать на вход компаратора напряжение 5*(1-1/256) =4.98045В.
Мы же не меняем коэффициент усиления, значит постоянная составляющая не изменится и она будет учтена. А полезная составляющая при минимальном входном токе 10мА получается равна 15мВ. ЦАП на 8 бит позволит на вход компаратора подавать напряжение с шагом 19.5мВ, а 10-битный АЦП контроллера позволит заметить разницу в 5мВ.
Я только не учел, что напряжение смещения может быть и отрицательным, как в примере. В этом случае при однополярном питании операционника полезный сигнал будет потерян до некоторого значения, при Uсм=-10мВ получится, что только начиная с 200мА нагрузки можно будет с чем-то сравнивать напряжение ЦАП на компараторе. Можно добавить цепь балансировки, но тогда, наверное ,нужно откуда-то брать еще отрицательное смещение, а это усложняет схему. :?
Аватара пользователя
rhf-admin
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 3060
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
Контактная информация:

Re: Программируемый источник питания

Сообщение rhf-admin »

...получится, что только начиная с 200мА нагрузки можно будет с чем-то сравнивать напряжение ЦАП на компараторе
Ага, так и получится. А всякие цепи балансировки на резисторах на порядок ухудшают температурную стабильность нулевой точки.
А ещё меня смущают фильтры R37, C5 и R40, C6. У них частота среза получается 500 Гц. Будет ли успевать реагировать преобразователь на такие медленные изменения тока? Мне кажется надо повыше частоту среза, сравнимую с частотой преобразователя сделать? Впрочем фиг знает.
И ещё интересно - зачем нужен R41. По-моему не нужен.
С уважением, администрация сайта.
Аватара пользователя
БАРС
модератор, спонсор, писатель, идеолог, редактор
модератор, спонсор, писатель, идеолог, редактор
Сообщения: 2019
Зарегистрирован: 16 ноя 2009, 15:25
Откуда: СССР, г. Москва

Re: Программируемый источник питания

Сообщение БАРС »

rhf-admin писал(а):частота среза
Извините, за то что влез... А что это такое?
Сотрудничаю с НАСА, Роскосмос, Газпром, РЖД, Интер РАО ЕЭС, Роснано и др. (конкретно уточняйте у самой организации) ©.
Ответить