Необычный блок питания на микроконтроллере


Этот блок питания уже рассматривался на местном форуме, однако полного описания конструкции там не было. Теперь я решил подробно рассказать, как его настраивать и пользоваться им. От большинства блоков питания, описываемых в интернете, он отличается методом понижения напряжения и компактной формой корпуса.


На самом деле, это не полноценный блок питания, а понижающий преобразователь напряжения. В качестве DC-DC используется преобразователь на микросхеме LM2576, управляемый микроконтроллером. В блоках питания с микроконтроллерным управлением, конструкции которых обычно описываются в интернете, понижение напряжения обычно производится линейным методом — вся лишняя мощность в таких блоках питания рассеивается радиатором мощного транзистора.
Использование преобразователя DC-DC позволяет отказаться от использования большого радиатора. В случае, если нагрузка не требует высокого напряжения, то для обеспечения большого тока можно использовать слаботочный первичный блок питания, но способный выдавать более высокое напряжение (обычно я использую первичный блок питания 24 В, 0.8 А).
Так как большой радиатор в этом блоке питания не нужен, то корпус удалось сделать максимально компактным. Для того, чтобы блок питания занимал меньше места в шкафу, передняя панель сделана откидной.
Недостаток же DC-DC — относительно высокий уровень шумов по питанию (это важно при работе со слабыми сигналами).

Зачем нужно микроконтроллерное управление напряжением? Напряжение на выходе такого блока питания можно точно устанавливать энкодером, при этом регулировку напряжения можно временно заблокировать (чтобы случайно не сбить напряжение, и не сжечь устройство, зацепив ручку энкодера). Дискретность установки напряжения можно менять. Можно управлять напряжением, в зависимости от тока (для заряда аккумуляторов).

Характеристики получившегося блока питания:
Напряжение питания: 7-35 В.
Выходное напряжение: 1.3 — 30 В
Максимальный ток: 3 А
Дискретность установки напряжения: 0.1 В
Дискретность отображения тока: 0.01А (в блоке питания нет стабилизации тока)
Защита от КЗ.

Блок питания разбит на две части (силовую и цифровую), которые сделаны на отдельных платах.
Схема блока питания (силовая часть):

Обвязка LM2576 или LM2596 стандартная — из даташита. Дроссель L1 в данном блоке питания взят из блока питания принтера (там был DC-DC), маркировки на нем не было. Вообще, микросхема LM2576 нетребовательна к дросселю. Параметры дросселей для конкретных токов и напряжений даны в даташите.
Резистор R9 используется для быстрого разряда конденсатора при отключении напряжения.
Для управления напряжением с микроконтроллера используются ОУ U1. U1B повышает напряжение (3 В > 30В), U1A замыкает обратную связь DC-DC, и позволяет регулировать напряжение на выходе.
На ОУ U3 собран узел измерения тока. Стабилитрон D2 защищает микроконтроллер от скачков напряжения, вызываемых скачками тока (например, при КЗ во время разряда конденсатора).

Схема цифровой части:

Тут все довольно стандартно. Питание цифровой части (5В) обеспечивается от отдельного DC-DC — так как входное напряжение может быть большим, то обычные линейные стабилизаторы могут греться, а места под радиатор в корпусе нет. Внимание — линии VCC у цифровой и силовой части разные.
Напряжение для управления DC-DC формируется при помощи ШИМ, и фильтруется ФНЧ на R12,R13,C2,C3.
Транзистор Q1 и его обвязка служат для формирования напряжения 12 В для подсветки индикатора (повышающий преобразователь).
Резистор R9 задает ток срабатывания защиты от КЗ (используется компаратор контроллера).
Кнопки, индикатор, энкодер устанавливаются в передней панели. Для защиты от дребезга выводы энкодера соединяются через конденсаторы 0,01 мкФ с землей.

Фото готового блока питания (на форуме есть другие фотогорафии):



Прошивка для контроллера: прошивка.
Пример установки фьюзов для AVR Studo:

Разводка печатных плат (для Sprint-Layout): здесь.

Описание работы с блоком питания.
При включении блока питания, на индикаторе несколько секунд отображается величина входного напряжения и номер прошивки. После этого блок переходит в режим отображения главного меню — здесь при помощи энкодера нужно выбрать один из 6 режимов. Выбор режима производится кнопкой «Выбор» S3, возвращение в главное меню из любого выбранного режима — кнопкой «Меню» S4. При переходе в главный режим питание нагрузки отключается.
Наиболее часто используемый режим — «Точный», предлагается первым. В этом режиме дискретность установки напряжения — 0.1 В.
На самой верхней строчке отображается желаемое напряжение, которое и устанавливается энкодером. В центре экрана — потребляемый нагрузкой ток. Внизу — напряжение на выходе блока питания, измеренное АЦП (требуемое и желаемое напряжения могут немного различаться при большом токе или высоких напряжениях).
Красная кнопка слева S1 управляет подачей напряжения на нагрузку. Короткое нажатие на нее либо включает нагрузку, либо перезагружает ее (DC-DC остается отключенным до тех пор, пока конденсатор на выходе блока питания не разрядится). Длительное нажатие на кнопку отключает нагрузку.
Нажатием кнопки «Выбор» можно включить или отключить блокировку энкодера, при блокировке около значения желаемого напряжения появляются скобки.
Нажатием кнопки «Грубо» S2 можно управлять дискретностью установки напряжения (шаг установки напряжения становится равным 0.5 В).
Режим работы «Грубый» полностью аналогичен предыдущему, но в нем шаг установки напряжения всегда равен 1 В.
Режим работы, обозначенный в меню «Аккум.», предназначен для зарядки свинцовых аккумуляторов. Нажимая кнопку «Выбор», при помощи энкодера последовательно вводят значения начального напряжения, конечного напряжения, и максимального тока. После этого начинается заряд аккумулятора. Блок питания постепенно поднимает напряжение на выходе от начального до конечного. Если ток превышает установленный, то подъем напряжения прекращается.
В режиме заряда на верхней строчке отображается напряжение на выходе блока питания (измеренное АЦП), в центре — ток, внизу — напряжение, которое ожидается на выходе блока питания.
Режим работы «Конст.» аналогичен режимам грубой и точной установок, но в нем при помощи энкодера выбираются стандартные значения напряжений — 3.3; 5; 7; 9; 12 В
Режим работы, обозначенный в меню «Стат.» — отображаются константы, записанные в EEPROM. Можно просматривать суммарное время работы блока питания, и коэффициенты коррекции, используемые для расчета значения тока.
Режим работы, обозначенный в меню «Калиб.» — определение коэффициентов коррекции при измерении тока. Так как у ОУ имеется напряжение смещения, то для большей точности измерения тока приходится измерять эти коэффициенты.
Для измерения коэффициентов к блоку питания через амперметр нужно подключить нагрузку, способную выдержать ток до 1 А. Я использовал достаточно мощную автомобильную лампочку.
После нажатия кнопки «Выбор» энкодером нужно установить на выходе блока такое напряжение, при котором ток через нагрузку будет наиболее близок к 0.1 А, затем еще раз нажав «Выбор», устанавливают ток равным 1 А. После третьего нажатия на кнопку контроллер рассчитывает значения коэффициентов и сохраняет их в EEPROM, после чего происходит переход в главное меню.
Защита от КЗ — срабатывает во всех режимах по прерыванию от встроенного в контроллер компаратора, при этом подача питания на нагрузку отключается, на экран выводится сообщение. Через 0.5 сек производится проверка — на нагрузку подается напряжение 1.3В, если ток при этом превысит 3А, то защита отключается, иначе процесс повторяется.

Настройка блока питания при сборке.
Так как конструкция у меня состоит из двух частей, то и собиралась она последовательно. Сначала собирается силовая часть. После сборки резисторы R2, R10 устанавливаются в нижнее по схеме положение. Это обеспечит защиту контроллера от перенапряжения при последующем подключении. После установки перемычки J1 и подачи напряжения на вход силовой части, проверяют ее работоспособность — на выходе DC-DC должно быть напряжение не менее 1.3 В, которое должно изменятся при подаче внешнего напряжения на линию VOLT_CTRL. DC-DC должен обеспечивать нужный ток.
Затем собирается цифровая часть. Наладки она не требует (возможно, потребуется поменять выводы энкодера местами).
Сначала настраивается индикация входного напряжения (резистором R2). Для контроля правильности настройки придется включать и отключать первичный блок питания. Последующая настройка идет в точном режиме.
Далее настраивается коэффициент усиления ОУ, отвечающего за установку напряжения. Энкодером нужно установить нужное напряжение, например 10 В, подключить к выходу блока питания мультиметр, и поворачивая резистор R1, добиться совпадения напряжений на экране (желаемого) и мультиметре. После этого, поворотом резистора R10 добиваются совпадения напряжений на экране (действительного) и мультиметре.
После этого к выходу блока питания подключают нагрузку и амперметр, энкодером устанавливают такое напряжение, при котором ток в нагрузке близок, например, к 1 А, и поворотом резистора R12 устанавливают такое же значение тока на экране. После этого нужно произвести определение коэффициентов тока, как описано выше.

Резистор R9 на цифровом блоке используется для установки тока срабатывания защиты от КЗ. После подключения к блоку питания нагрузки, способной выдержать ток 3 А, и установки нужного напряжения, подстраивают резистор, добиваясь срабатывания защиты.

В случае одиночной платы при настройке прибора важно контролировать положения резисторов R2, R10, чтобы напряжения на их выходах не превышали 5 В.
  • +10
  • 23 августа 2013, 21:12
  • citizen

Комментарии (73)

RSS свернуть / развернуть
усилитель тока включен некорректно, вых.напряжение меряется тоже не там где нужно.
0
Предлагаете включать токоизмерительный резистор в плюсовую цепь, и измерять напряжение после него?
0
можно и в -, но мерять напряжение/ток после шунта
0
соединяются через резисторы 0,01 мкФ
Исправьте.
0
Спасибо за замечание, исправил.
0
Кстати, на место основного регулятора имеет смысл присмотреться к LM25576. Как минимум она позволит сильно упростить аналоговую часть (ее можно регулировать через пин SS) и поднять частоту преобразования (соответственно уменьшив индуктивность).
0
  • avatar
  • evsi
  • 24 августа 2013, 17:57
Можно сделать понижающий преобразователь вообще без использования специализированной микросхемы. Используя только микроконтроллер. Типа как здесь. Правда чтоб он был эффективный надо неслабый код написать ПИД регулирования напряжения на выходе под нагрузкой.
0
Источники питания, зарядные устройства, на микроконтроллере — дурной тон.
0
Зато тут можно прошивку ради интереса стереть=))))))))))))))
0
Только перед этим локбиты выставить
0
Обоснуй
+1
Предположим МК завис от импульсной помехи :-)
-1
Конечно он может зависнуть, но можно принять меры от зависания. Пока ты назвал один минус. Но наверное есть же и плюсы. Например есть ли чип StepDown скажем чтоб выход был на 10 А 30 вольт. Я таких не встречал. Хотя вроде некоторые можно чипы объединять для увеличения выходного тока.
0
Например есть ли чип StepDown скажем чтоб выход был на 10 А 30 вольт. Я таких не встречал.
В одном чипе конечно нет. А вот отдельно контроллер, отдельно сила — обычное дело. Да хоть 100А 300В. В предложенном тобой «решении» тоже отдельно сила отдельно контроллер, но лучше применить специально обученные микросхемы.
+1
Вот тебе атмеловский документ как сделать buck конвертор на Xmega
0
называется документ Atmel AT04204: Design a Buck Converter with XMEGA E
0
Ещё АЦП вносит свои задержки в работу преобразователя. При резких изменениях нагрузки это особенно актуально. Вобщем хрень.
-1
Можно подумать, у тупых стабилизаторов полоса пропускания ОС бесконечная.
0
т.е. ты поддерживаешь идею построения ИИП с программной ОС? ;)
0
А почему нет, собственно? В роли зарядников так и вовсе довольно часто встречаются.
0
Зарядник и (Л)БП — несколько разные по характеру нагрузки, не?
0
намекну. у зарядника нагрузка легко проглотит и совсем не подавится выбросом 300мс 15В, даже если заряжаем АА акк. А что станет с контроллером и прочими ацп от такой «иголки», а? ;)
+1
Крыша сьедет у него. Пару бит в ОЗУ попортятся, и привет пожарникам ;-)
0
поддержу. Слишком много должно слаженно работать в МК, чтобы схема работала. Де-факто MTBF у схемы с МК ниже, чем с аналоговой штучкой может на порядок даже, а может и два.
0
Хотелось бы посмотреть на реальные данные. А то вылетевшие контроллеры питания, насколько я знаю, встречаются куда чаще, чем вылетевшие МК. Хотя казалось бы, последние сложнее…
И даже на материнке с изобилием деталек сверхвысокой степени интеграции первой вылетела простая как пробка LM1117, гревшаяся куда меньше тех же мостов…
-1
P.S. Можно также вспомнить китайские БП АТХ, в которых TL494 вполне благополучно срывало крышу с выдачей удвоенного напряжения на все выходы блока (и выгоранием всего компа). Так что, ИМХО, MTBF больше зависит от того, насколько толково спроектирован девайс.
0
Так что, ИМХО, MTBF больше зависит от того, насколько толково спроектирован девайс.
Угу. И первая заповедь — никаких программных ОС! )))
0
Во всех приведенных примерах не было программной ОС. Так что вывод какой-то нерелевантный.
Так будут какие-то внятные ссылки на тему того, что программная ОС это плохо или только сонительные рассуждения «задержки большие», «надежность низкая»?
0
Внятных ссылок не будет просто потому, что это очевидно.
В качестве лабораторной работы предлагаю вооружиться матлабом и помоделировать работу любого удобного алгоритма (П, ПИ, ПИД) со звеном задержки в ОС, ну, скажем, 100мкс.
Понимаю что матлаб сильно сложно…
Мультисим, сначала запускаем в нем самый банальный стабилизатор на ОУ, компенсируем ОС. Потом делаем странное — вводим в ОС задержку, скажем, эти самые 100мкс или сколько там алгоритм будет крутиться. И опять пытаемся стабилизировать.
Прости, но доказывать что 2*2=4 мне просто скучно.
0
Очевидность — не факты. Поэтому меня интересуют фактические данные.
0
будь добр, сделай лабораторку самостоятельно. благо нынче компы считают все сильно быстрее.
и вообще… тут я пожалуй уже выступлю с твоей позиции. А покажи мне хоть один лабораторник (не поделку из интернетов и не аппноты) с программной ОС.
0
Самостоятельно искать пруфы против собственной позиции? Что-то лень. Хотя я поискал, но с полпинка не нашел.
А покажи мне хоть один лабораторник (не поделку из интернетов и не аппноты) с программной ОС.
Вот аппноты еще можно поискать, а коммерческий продукт — где я возьму инфу о том, как он устроен? Зато могу привести пример коммерческого продукта, который легко запинают даже «поделки из интернета».
0
Впрочем, результаты гуглинга в плане цифровых источников питания вполне оптимистичны. В том числе и сами специализированные контроллеры питания уже нередко устроены как ADC-DSP-PWM.
Так что нет, твоя очевидность неубедительна. Software Control Loop — вполне реально и имеет немало плюсов, хотя достаточно производительные для этой задачи МК появились сравнительно недавно. Что, в том числе, объясняет и то, что среди лабораторников таких мало или нет — эта область довольно инерционна.
Опять же, если рассматривать наколеночные поделки (мы, вообще-то, на изиэлектрониксе) — параметры аналоговых наколенных поделок тоже не из рязряда «топовый питальник по цене боинга», и такие параметры с современным МК вполне достижимы.
0
Впрочем, результаты гуглинга в плане цифровых источников питания вполне оптимистичны.
линки-пруфы в студию.
Что, в том числе, объясняет и то, что среди лабораторников таких мало или нет — эта область довольно инерционна.
хех. с точностью до наоборот. как раз именно лабораторники работают на весьма и весьма разнообразную нагрузку…
0
хех. с точностью до наоборот. как раз именно лабораторники работают на весьма и весьма разнообразную нагрузку…
Область деятельности инерционна, а не сами блоки. Один из аппнотов как раз это упоминает.
линки-пруфы в студию.
Аппнот выше. Статья (там overview и линк на статью в PDF). Целый раздел у ti. У ST есть несколько аппнотов по мощным AC-DC блокам питания с программной ОС, но к лабораторным они не относятся.
Лабораторные блоки питания я погуглил. Блоки типа таких гуглятся, но информации о том, как оно устроено — нет. Спеки, конечно, завидные, но такой скорости отклика как в даташите и большинство аналоговых схем попроще категорией не обеспечит.
0
ну то что ST пишет о том, как круто использовать наш МК в блоке питания — меня почему-то не удивляет. Тоже самое и Atmel и другие производители. Правильно здесь сказал, что MTBF сильно зависит от способа применения. Особенно это касается силовой электроники. Помнится, есть даже справочник для расчета MTBF, и там обязательная позиция рассеиваемая мощность, процент наагрузки от максимально допустимого и прочее. Если я возьму кренку 5 вольт, подам ей питалово максимальное, прицеплю нагрузку максимальную — то MTBF такого девайся будет от нескольких секунд до нескольких дней. Все зависит от теплоотвода, окружающей стреды и прочего. Это вполне понятные вещи. Однако в микроконтроллерной схеме все те же силовые элементы присутствуют + ко всему опасность, исходящая от самого МК. Я делал бегущие строки табло разные, короче прошивал процессоров большое кол-во раз. И опыт, когда одновременно пашут по всей стране устройства имеется, так вот, время от времени, прошивочка все же слетает у контроллеров. А бывает просто таймер какой заглючит. Правда с таймером всего один раз было. Так что, с этим не поспоришь. Схема имеющая несколько десятков транзисторов и схема, имеющая сотню тысяч — наверное есть разница.
0
Схема имеющая несколько десятков транзисторов и схема, имеющая сотню тысяч — наверное есть разница.
По моим наблюдениям, надежность куда больше зависит от других факторов. Я бы предположил (исходя из своего опыта и собранных по разным уголкам инета данных), что в преобразователе вероятнее выбьет ключи и/или их драйвер, чем откажет система управления даже на МК, если она правильно спроектирована.
ну то что ST пишет о том, как круто использовать наш МК в блоке питания — меня почему-то не удивляет. Тоже самое и Atmel и другие производители.
Только не надо все списывать на маркетинг. Тем более что ti и ST, чьи аппноты я читал, производят и туеву хучу контроллеров питания и врядли нуждаются в вытеснении оных микроконтроллерами.
0
а здесь и не имеется ввиду вытеснение. Говорят типа такого: «А еще на МК может вот так и эдак» Как в детсаде: «Дети, а теперь попляшем вприсядку!» Ясное дело, что это никто не будет пользовать в серьезных проектах, но возможность такая имеется, и все тут!)
0
Аппнот от ti не похож на «вот этак», он описывает преимущества (и недостатки, но с упором на преимущества) цифровой ОС. Алсо, эти же фирмы производят и специализированные контроллеры питания, у которых ОС внутри реализуется цифровыми методами. Так что «не будет пользовать в серьезных проектах» тоже не выглядит релевантным аппнотам выводом.
В целом, аппноты наводят на вывод «цифровая ОС — перспективный подход», а не «моветон».
0
«Цифровая обратная связь» — как много в этом слове.
В основном в специализированных микрухах подразумевается преобразование аналога в ШИМ в любой его форме и вариациях. Не путать с «цифровой обратной связью» в МК.
0
Нет. Под цифровой ОС подразумевается именно цепочка ADC-DSP-DAC/DPWM. Не путать с аналоговыми ШИМ-контроллерами и D-классом.
0
P.S. Заодно хорошо видно, что по ссылкам ты не ходил.
0
аппноты — да не вопрос. а схемы как правило легко гуглятся.
0
А что станет с контроллером и прочими ацп от такой «иголки», а? ;)
Ничего хорошего. Но почему вдруг программный источник такую иголку выдаст, а аппаратный — нет?

Алсо, чтобы выдать 15В импульс на нагрузке типа «аккум 1.2В» нужна нехилая мощность (внутреннее сопротивление низкое и напруга на аккуме при зарядке в основном определяется его ЭДС). Не факт, что аккум ее молча проглотит.
0
P.S. Собранный мной в кружке блок питания (чисто аналоговый) имел прелестное свойство выдавать на выход 40В на несколько секунд при определенных условиях…
0
100500 лет назад собранный по простейшей схеме с нескомпенсированной ОС? охотно верю. таким поведением грешат оочень многие (л)бп. для самообразования развернуто и простым языком можно почитать Ридико на радиокоте как он боролся со своим лабораторником.
0
Потому что скорость ОС. Программная обработка в любом случае даст задержку сильно больше банального операционника. Ну и опыт ведущих собаководов (зачеркнуто) производителей БП говорит о многом. В смысле что никто так не делает, ни на какие мысли не наводит? ;)
Не факт, что аккум ее молча проглотит.
Проглотит с бОльшим спокойствием чем типичная платка.
0
100500 лет назад собранный по простейшей схеме с нескомпенсированной ОС?
Сорт оф. Но, по крайней мере, уже показывает, что программная ОС может быть не хуже многих (а по твоим словам — оочень многих) образцов аппаратной.
Потому что скорость ОС. Программная обработка в любом случае даст задержку сильно больше банального операционника.
Я вот в этом не уверен. Во первых, задержка зависит от полосы пропускания, а она у ОС блоков питания зачастую не слишком велика. Во вторых, промышленные блоки питания демонстрируют не столь уж быструю реакцию.
В смысле что никто так не делает, ни на какие мысли не наводит? ;)
Насчет «никто» не уверен, не ковырял достаточного числа блоков для такого вывода. А насчет мыслей — наводит, да, но скорость ОС там далеко не на первом месте. evsi, например, больше жаловался на генерацию ШИМ, как на причину выбора специализированного контроллера для своего источника.
Проглотит с бОльшим спокойствием чем типичная платка.
Возможно. Но меня по прежнему интересует, откуда взят пример такого импульса и почему он привязан именно к программной ОС. Может, это косяк блока уровня «по простейшей схеме с нескомпенсированной ОС»?
для самообразования развернуто и простым языком можно почитать Ридико на радиокоте как он боролся со своим лабораторником.
Линк?
0
АЦП цифрует сигнал за некоторое время, затем программа должна посмотреть что у нас на АЦП и выдать управляющий сигнал. А это тоже время. Любой даже китайский операционник отработает изменение на несколько порядков быстрее.
0
А движки тогда как? Частотники? Там алгоритмы проскакиваю многоэтажные… как же контроллер справляется с этим ужасом?
0
задумайтесь о скорости ОС. А еще о инерционности нагруженного движка. Да даже ненагруженного тупо за счет массы ротора.
0
А ты задумайся о инерционности выходных конденсаторов источников питания. Причем достаточно оным в реальных источниках высохнуть, как на высоких частотах (выше единиц килогерц) источник напряжения превращается в источник тока.
0
Мы ведь все еще о лабораторнике?
0
А что, у лабораторника нет выходных конденсаторов или высокочастотные составляющие нагрузки отрабатываются не ими?
0
я ведь не только о ВЧ составляющих говорил.
Вообще, выходная емкость БП — та еще головная боль.
0
А на НЧ производительности и полосы пропускания МК хватит с избытком, да и ресурсы дисплейчик крутить останутся.
0
уффф…
ок. моделируем ситуацию.
задано выходное напряжение и ограничение тока.
ВНЕЗАПНО. ток превышается.
как в этом случае будет работать выходная емкость БП?
и какую роль в этом случае будет играть скорость ОС?
0
как в этом случае будет работать выходная емкость БП?
Не на пользу ситуации.
и какую роль в этом случае будет играть скорость ОС?
Никакой — покуда она не медленнее, чем кондер разряжается через нагрузку.
0
Если кто занимался ремонтом сварочных инверторов, то может попадались в руки производства Франции и Италии аппараты (в ценовой диапазоне в два три раза дороже Китая и отечественного Китая). Так там всем рулит так же контроллер, если не ощибаюсь то какая то из мег и еще специфически редкий какой-то.
З.Ы. Вскрики давай пруфы и линки бесполезны-давно их ковырял, вспомню сам прикручу сюда!
0
Китайский операционник имеет полосу пропускания меньше, чем АЦП современного МК. Так, популярный LM358 на мегагерце уже превращается в тыкву (соответсвенно, на 100кГц имеет коэффициент усиления порядка 10). А скорость реакции напрямую связана с полосой пропускания. Схемы же источников питания обычно еще и подрезаны по частоте ОС, имея полосу пропускания в районе килогерц или десятков килогерц, и скорость их реакции вообще приближается к миллисекундному диапазону. Тогда как современный МК (даже не топовый, а обычныке STM32F1x) может откликнуться в течение единиц-десятков микросекунд. Кроме того, на малом масштабе времени (менее миллисекунд) отклик источников питания вообще обеспечивается выходными конденсаторами — в общем случае, возможно и есть специальные случаи с быстродействующей ОС, но на то они и специальные.

Так что может все же кто-то приведет реальные исследования вопросов программной и аппаратной ОС, с графиками и так далее? Пока что из приличных ссылок я видел только ссылку на атмеловский аппнот, авторы которого явно считают, что программная ОС — это нормально.
0
не откликнуться, а только оцифровать.
0
Почему же? Мегасэмпловый АЦП уложится в 1мкс с оцифровкой, а время отклика будет, конечно, зависеть от алгоритма, но даже для F100 1мкс — это 24 такта, что совсем немало. Так что уложить итерацию в 10мкс — вполне реально.
Правда, такой цикл выжрет все ресурсы МК и дергать дисплейчик будет уже некогда. В результате получаем, что МК заменяет специализированный контроллер, ничего не давай взамен. Вот это уже более веская причина вынести ОС за пределы МК — она слишком много ресурсов жрет.

Впрочем, надо еще погуглить/поэкспериментировать на предмет того, реально ли нужно укладывать итерацию в 10мкс. Питальник штука довольно инерционная. Для импульсника так и вовсе нету смысла дергаться чаще периода ШИМ.
0
хехе. а поцикловое ограничение которое есть даже в старом как говно мамонта 2596? ;)
В результате получаем, что МК заменяет специализированный контроллер, ничего не давай взамен. Вот это уже более веская причина вынести ОС за пределы МК — она слишком много ресурсов жрет.
В общем-то, тут ты все и сказал. Просто раз есть контроллер, на него надо навешать плюшек. А навешать плюшек не получится, т.к. контроллер занят в полный рост тем, что может делать простой операционник…
0
В общем-то, тут ты все и сказал.
Вот только это несколько иная причина, чем те, на которые ты упирал.
0
это играет все вместе.
0
Играющее «все вместе» не позволяет выдавать категорических заявлений вида
Источники питания, зарядные устройства, на микроконтроллере — дурной тон.
или
И первая заповедь — никаких программных ОС! )))
Максимум «есть плюсы и минусы, надо отдельно разбираться в каждой конкретной ситуации».
0
хехе. а поцикловое ограничение которое есть даже в старом как говно мамонта 2596? ;)
Это которое по току ключа? Это несколько другой коленкор, его даже через АЦП проводить необязательно. Аппнот от ST, например, реализует эту часть через встроенный компаратор.
0
в том то и оно. Либо частота преобразования слишком низкая + кондеры выходные очень большие + трансформатор или катушка о-го-го, либо контроллер афуенно дорогой и шибко шустрый, но зато, Кто-то себя потешит, вот мол, я собрал блок на МК.
А есть другой способ — поставить специализированный драйвер с возможностью управления. Там и частоты и скорости и габариты и КПД — все давно сделано, посчитано, апробировано и доказана надежность массовостью, но это не путь некоторых.
0
Там и частоты и скорости и габариты и КПД — все давно сделано, посчитано, апробировано и доказана надежность массовостью, но это не путь некоторых.
Всё зависит от целей. «Путь некоторых» тем и привлекателен, что весьмма интересен и доставляющ, в отличии от использования стандартных кирпичиков.
0
Это все уже вопрос проектирования конкретной системы. В большинстве случаев специализированная деталька действительно выполнит задачу лучше, чем универсальная, но есть и специальные случаи. Так, вспоминая корень ветки я бы сказал, что зарядное на МК — это не моветон, а мейнстрим.
либо контроллер афуенно дорогой и шибко шустрый
Ситуация в этом секторе быстро меняется. Если вчера были доступны только восьмибитки со слоупочным АЦП, то сегодня какой-нибудь STM32F103, имеющий 1МС/с и 72МГц (и довольно-таки заточенное под числомолочение ядро) стоит не дороже их. А ведь есть еще и специально заточенные под такие задачи STM32F3, не знаю только, как с ценами на них.
0
Вобщем, в более-менее свежих публикациях IEEE, схемы управления для прототипов всевозможных преобразователей очень часто делаются на DSP. Если преобразователь делается для каких-то специфичных применений (типа двунаправленных преобразователей для автомобилей или преобразователей для солнечных панелей с выходом в общую сеть), то там DSP чуть менее чем полностью. И чем дальше, тем тенденция нарастает.

P.S. У TI есть несколько серий цифровых контроллеров для источников питания. неужели кто-то думает, что в такой номенклатуре можно выпускать что-то, что не пользуется устойчивым спросом?
+2
Скорее это стереотип чем обоснованный логический вывод про неприменимость МК в разных источниках напряжения/тока, все зависит от задачи, при больших токах и необходимости быстрой реакции на изменения в любом случае потребуется достаточно большая емкость на выходе, либо быстрый контроллер и широкополосная схема (и устойчивая ко всем предполагаемым видам нагрузок), но это скорее исключение и если можно обойтись без этого то победит простота и разумность решения :).
А вот как плюс решения на МК это выбор алгоритма управления — П/ПД/ПИД и т.д., возможность их переключения в зависимости от нагрузки, да хоть «на лету», да и кучу всяких режимов можно придумать — «тихие» медленные, быстрые, напряжение/ток, предсказание поведения нагрузки и т.п., и т.д. Это правда не совсем касается самой ОС, а больше управления, но не вижу тут проблемы в «цифровой» ОС абсолютно, тем более, как правильно заметил Vga, сейчас большинство контроллеров также мигрируют скорее в класс МК чем в класс «тупых» контроллеров с одним «китайским» ОУ в ОС.
В общем у обеих решений есть свои +/- и это не повод говорить про моветон :)
+1
P.S. Извиняюсь, не в ту ветку написал.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.