________________________________________________________ 1. Общее описание ________________________________________________________ - 3-разрядный LED-дисплей напряжения V - 3-разрядный LED-дисплей тока A - светодиодная индикация режима стабилизации V/A - звуковая индикация перехода в режим стабилизации V/A - управление с помощью энкодера с кнопкой - сохранение в EEPROM текущего режима работы - быстрое включение/отключение выходного напряжения кнопкой энкодера - адаптивная скорость энкодера - индикация V/A с фиксированной или плавающей запятой - цифровая калибровка измеренного и установленного значений V/A - управление источником с помощью ЦАП на основе ШИМ - процессор - ATmega8 Эта часть постоянно корректируется в процессе отладки: Начальную версию можно найти в начале дискуссии ниже. + Имеем: 1. 3-разрядный дисплей напряжения V 2. Светодиод режима стабилизации V 3. 3-разрядный дисплей тока A 4. Светодиод режима стабилизации тока A 5. Энкодер с кнопкой 6. Beeper + Включение в сеть - чтение калибровки, напряжения, тока и состояния (включен/выключен) из EEPROM. Если было сохранено выключенное сотояние, выходное напряжение не включается, оба светодиода погашены. Если было сохранено включенное сотояние, загорается светодиод V (или A, если ограничение тока) и на выходе устанавливается заданное напряжение. + Быстрое включение/отключение выходного напряжения можно осуществить в любой момент коротким нажатием кнопки энкодера. Кнопка срабатывает по отпусканию. При выключении напряжения гаснут оба светодиода V и A. Состояние (включен/выключен) сразу сохраняется в EEPROM. Когда выходное напряжение выключено, светодиоды не горят, индицируется УСТАНОВЛЕННОЕ напряжение и нулевой ток. + Установка выходного напряжения осуществляется вращением энкодера. Если максимальное значение напряжения для данной модели источника составляет больше 9.99 В, то оно индицируется с плавающей запятой. При значениях 0.00 - 9.99 В регулировка идет с шагом 0.01. При значениях более 9.99 В - с шагом 0.1. Энкодер имеет адаптивную скорость: при быстром вращении шаг всегда равен 0.1. Спустя 5 секунд после окончания регулировки значение напряжения автоматически сохраняется в EEPROM. Для увеличения ресурса EEPROM cохранение производится в кольцевой буфер из 100 элементов, каждое новое сохранение использует следующий адрес EEPROM. При этом раздается короткий звуковой сигнал. Он нужен? + При работе в режиме стабилизации напряжения горит светодиод V, дисплей V показывает УСТАНОВЛЕННОЕ значенеи напряжения, дисплей A - ИЗМЕРЕННОЕ значение тока. Если начинается ограничение тока, раздается звуковой сигнал, гаснет светодиод V и загорается светодиод A. Дисплей V начинает показывать ИЗМЕРЕННОЕ значение напряжения (даже если в это время производится регулировка), а дисплей A - УСТАНОВЛЕННОЕ значение тока. При обратном переходе раздается короткий звуковой сигнал. + Для входа в режим установки тока ограничения необходимо удерживать кнопку энкодера до звукового сигнала. При этом дисплей A начинает мигать, на нем появится значение УСТАНОВЛЕННОГО тока, независимо от того, какой в данный момент режим стабилизации. Светодиоды и дисплей V функционируют как обычно, индикация определяется режимом стабилизации (напряжение или ток). Вращение энкодера - изменение тока ограничения. Если максимальное значение тока для данной модели источника составляет больше 9.99 А, то оно индицируется с плавающей запятой. При значениях 0.00 - 9.99 А регулировка идет с шагом 0.01. При значениях более 9.99 А - с шагом 0.1. Энкодер имеет адаптивную скорость: при быстром вращении шаг всегда составляет 0.1. Для выхода из режима установки тока ограничения служит короткое нажатие кнопки энкодера (или длинное удержание). При выходе новое значение тока сразу сохраняется в EEPROM. + Для входа в режим калибровки нужно удерживать нажатой кнопку энкодера при включении питания. При этом зажигаются оба светодиода V и A, дисплеи не горят. Если сразу отпустить кнопку, произойдет переход в обычный режим работы. Если ее продолжать удерживать до звукового сигнала, произойдет вход в режим калибровки. Калибровка состоит из 4-х шагов. Калибруется только шкала, смещение принято равным нулю и не калибруется. Шаг 1. Калибровка задания V. Мигает дисплей V, светодиоды не горят. На выходе устанавливается значение напряжения и тока, соответствующее калибровочной точке. К выходу источника нужно подключить образцовый вольтметр и вращением энкодера добиться его показаний, соответствующих напряжению калибровочной точки (например, 19.0 V). При достижении предельных значений калибровочного коэффициента раздается звуковой сигнал ошибки. Для перехода к следующему пункту калибровки необходимо нажать кнопку энкодера. При этом новое значение калибровочного коэффициента будет сохранено в EEPROM. Для того, чтобы отказаться от сохранения, нужно выждать паузу, приэтом произойдет автоматический переход в нормальный режим работы без сохранения. Шаг 2. Калибровка измерения V. Мигает светодиод V, на дисплее V индицируется измеренное выходное напряжение. На выходе устанавливается значение напряжения и тока, соответствующее калибровочной точке. К выходу источника нужно подключить образцовый вольтметр и вращением энкодера добиться показаний дисплея V, соответствующих показаниям образцового вольтметра. При достижении предельных значений калибровочного коэффициента раздается звуковой сигнал ошибки. Для перехода к следующему пункту калибровки необходимо нажать кнопку энкодера. При этом новое значение калибровочного коэффициента будет сохранено в EEPROM. Для того, чтобы отказаться от сохранения, нужно выждать паузу, приэтом произойдет автоматический переход в нормальный режим работы без сохранения. Шаг 3. Калибровка задания A. Мигает дисплей A, светодиоды не горят. На выходе устанавливается значение напряжения (?) и тока, соответствующее калибровочной точке. К выходу источника нужно подключить образцовый амперметр (через резистор?) и вращением энкодера добиться его показаний, соответствующих току калибровочной точки (например, 1.90 А). При достижении предельных значений калибровочного коэффициента раздается звуковой сигнал ошибки. Для перехода к следующему пункту калибровки необходимо нажать кнопку энкодера. При этом новое значение калибровочного коэффициента будет сохранено в EEPROM. Для того, чтобы отказаться от сохранения, нужно выждать паузу, приэтом произойдет автоматический переход в нормальный режим работы без сохранения. Шаг 4. Калибровка измерения A. Мигает светодиод A, на дисплее A индицируется измеренный выходной ток. На выходе устанавливается значение напряжения (?) и тока, соответствующее калибровочной точке. К выходу источника нужно подключить образцовый амперметр (через резистор?) и вращением энкодера добиться показаний дисплея A, соответствующих показаниям образцового амперметра. При достижении предельных значений калибровочного коэффициента раздается звуковой сигнал ошибки. Для перехода к следующему пункту калибровки необходимо нажать кнопку энкодера. При этом новое значение калибровочного коэффициента будет сохранено в EEPROM. Для того, чтобы отказаться от сохранения, нужно выждать паузу, приэтом произойдет автоматический переход в нормальный режим работы без сохранения. ________________________________________________________ 2. Внешние сигналы ________________________________________________________ Основной разъем (XP1): 1 -> VCC - питание, +10..+30 В. Ток потребления I = мА (VCC = 15 В). 2 -> GND - земля питания. 3 -> V-ADC - вход АЦП напряжения. Шкала АЦП - 2.56 В. АЦП 10 разрядов. Калибровка работает в пределах ±20%. При максимальном напряжении на выходе источника на этом входе должно быть примерно 2.0 В. 4 -> A-ADC - вход АЦП тока. Шкала АЦП - 2.56 В. АЦП 10 разрядов. Калибровка работает в пределах ±20%. При максимальном токе на выходе источника на этом входе должно быть примерно 2.0 В. 5 -> V-REG - вход логического сигнала режима стабилизации. При работе источника в режиме стабилизации напряжения на этом входе должен быть высокий логический уровень. В режиме стабилизации тока - низкий. Вход имеет подтягивающий резистор к +5 В, со стороны источника можно использовать открытый коллектор. 6 -> V-DAC - выход ЦАП напряжения. Шкала ЦАП - 5.0 В. ЦАП 14 разрядов, ШИМ. Калибровка работает в пределах ±20%. Максимальное напряжении на выходе источника должно обеспечиваться при напряжении на этом выходе примерно 4.0 В. 7 -> A-DAC - выход ЦАП тока. Шкала ЦАП - 5.0 В. ЦАП 14 разрядов, ШИМ. Калибровка работает в пределах ±20%. Максимальный ток на выходе источника должен обеспечиваться при напряжении на этом выходе примерно 4.0 В. 8 -> AGND - сигнальная земля. Дополнительный разъем (XP2): 1 -> +5V - выход питания +5 В. 2 -> TXD - выход последовательного порта / выход управления вентилятором. Вентилятор включается низким логическим уровнем. 3 -> RXD - вход последовательного порта / вход термометра DS18S20. 4 -> GND - земля. Функции дополнительного разъема программно пока не поддерживаются. ________________________________________________________ 3. Программные вопросы ________________________________________________________ ? Нужно ли при отключении источника сбрасывать ЦАП задания тока? - Порт PC с протоколом WAKE. Примерный набор команд: SET_MODE - установка режима управления местное/PC. SET_V - установка напряжения. SET_A - установка тока. SET_STATE - включение/выключение. - Поддержка термометра DS18S20 и управления вентилятором. Порог 1 - выключение вентилятора (и защиты?). Порог 2 - включение вентилятора. Порог 3 - срабатывание защиты, выключение источника. - Автоматическое включение блока при подаче питания требуется лишь в ситуациях, когда он используется, например, для зарядки аккумуляторов и оставлен без присмотра. Возможен такой алгоритм: если блок был выключен из сети в состоянии On, то по включению питания блок не включается, а на дисплее начинает мигать установленное значение напряжения. Если во время мигания нажать кнопку энкодера, мигание прекратится, а блок останется выключенным. Если ничего не трогать, через 10 - 60 сек. блок автоматически включится и мигание прекратится. ? Или не включать блок автоматически для безопасности? - Контроль максимальной мощности (POWERFLEX). Мощность задается как константа для конкретного типа источника. При увеличении выходного напряжения автоматически уменьшается порог тока (установленный порог во всех ситуациях является ограничением сверху). ? Помнить установленный порог и при уменьшении напряжения увеличивать порог до установленного? + При установке напряжения и тока с помощью энкодера не осуществляется коррекция при достижении максимальных значений. Поэтому максимальные значения напряжения и тока, задаваемые в тексте программы в виде констант с плавающей запятой, не должны иметь более одного знака после запятой. ? Режим Lock, когда вращение энкодера не меняет напряжение. Для защиты от случайной регулировки. ? Вычисление потребляемой мощности, индикация в Ваттах. Индикация мощности V x I, горят оба светодиода, режим начинается после удержания кнопки больше N длится только во время удержания кнопки. Нужны дополнительные кнопки. ? Два энкодера ток/напряжение? ? Версия с индикатором 2х16? ? Генерация пульсаций. ? Встроенный эквивалент нагрузки. + Исправил масштабирование значений АЦП (там раньше использовался коэффициент CAL_MAX вместо CAL_MIN). + Пределы калибровки задаю в процентах (константа CAL_PER). + Исправил индикацию при выключенном источнике (изменена функция Ind_Reg() в модуле Control.c). Теперь индицируется установленное напряжение и нулевой ток. ? Нужен ли звуковой сигнал при автосохранении? Отвлекает... ________________________________________________________ 4. Аппаратные вопросы ________________________________________________________ + Габариты платы и координаты основных элементов для сопряжения с передней панелью находятся в файле PSL-1212m.cdr. + Для динамической индикации нормальной яркости резисторы в анодах индикатора пришлось уменьшить до 68 ом, по крайней мере, на индикаторах E30361-L-B-O-W. + Для эффективных светодиодов резисторы пришлось увеличить до 1 Ком для получения сопоставимой яркости. - MC34063 ведет себя... ну как умеет. Немного помогло увеличение частоты до 200 КГц (частотозадающая емкость 33 пФ). Емкость на входе 47 мкФ 50 В, на выходе - 220 мкФ 16 В. Выходную лучше увеличить до 470 мкФ 10 В. - Питание стоило бы отфильтровать дополнительным LC-фильтром или применить линейный стабилизатор. Или Step-Down + LDO. Или заменить MC34063 чем-то более вменяемым, например, LM2574. ! Заменить вообще 7805! + Дроссель из цепи AVCC микроконтроллера исключен. Порт C используется для динамической индикации, с дросселем получаются большие выбросы. ! На выходе диод параллельно нагрузке для защиты от обратного напряжения. ! В цепях фильтрации ШИМ конденсаторы Film или X7R! ________________________________________________________ 5. Дискуссия о проекте ________________________________________________________ LI> Программирую плату индикации для блока питания, не LI> могу определиться с требованиями. LI> - Имеем: LI> 1. 3-разрядный дисплей напряжения V LI> 2. Светодиод режима стабилизации V LI> 3. 3-разрядный дисплей тока A LI> 4. Светодиод режима стабилизации тока A LI> 5. Энкодер с кнопкой LI> 6. Beeper LI> - Включение - чтение значения напряжения из EEPROM. LI> Сразу включать выходное напряжение? LI> Или вначале оба светодиода погашены, на выходе ноль. LI> Короткое нажатие кнопки энкодера - появляется LI> выходное напряжение и загорается LI> светодиод V (или A, если ограничение тока). По нажатию. фиг его знает, что там установлено. Да и одно лишнее движение сделать не в падлу. LI> - При работе горит светодиод V, дисплей V показывает LI> УСТАНОВЛЕННОЕ значенеи напряжения, дисплей A - LI> ИЗМЕРЕННОЕ значение тока. Вращение энкодера - LI> изменение выходного напряжения. LI> Нужно ли делать плавающую запятую для индикации LI> напряжения: 3.35 V и 12.6 V? Да! зачем терять точность. Хотя надо попробовать на практике. может слишком долго надо будет крутить. LI> Если начинается ограничение тока - звуковой сигнал, LI> гаснет светодиод V и загорается A. Дисплей V LI> начинает показывать ИЗМЕРЕННОЕ значение LI> напряжения, дисплей A - LI> УСТАНОВЛЕННОЕ значение тока. LI> Обратный переход - тоже звуковой сигнал или не надо? Наверное, да. Но другого тона. LI> - Быстрое включение/отключение выходного напряжения LI> в любой момент коротким нажатием кнопки энкодера. LI> Кнопка срабатывает по отпусканию. При выключении LI> напряжения гаснут сразу светодиоды V и A. Да. Полезная штука. LI> - Длинное нажатие кнопки энкодера - переход в режим LI> установки тока ограничения. Дисплей A начинает LI> мигать и показывает УСТАНОВЛЕНОЕ значение тока. LI> Светодиоды функционируют как обычно. LI> Вращение энкодера - изменение тока ограничения. LI> Короткое нажатие - выход из режима установки тока. Ну да. LI> - Как запоминать текущее напряжение и порог тока? LI> Удержание кнопки энкодера до звукового сигнала? LI> Или запоминание автоматическое спустя LI> 10 сек. после регулировки? 10 секунд мне нравится. LI> - Калибровка: вход - удержание кнопки при включении LI> питания. LI> -> Шаг 1. Калибровка задания V. Мигает дисплей V, LI> светодиоды работают штатно, порог по току установлен LI> какой-то (?) LI> Подключаем образцовый вольтметр и крутим энкодер до LI> получения показаний, таких, как на дисплее V (там LI> отображается калибровочная точка, например, 19.0 V). LI> При достижении предела коэффициента - звуковой сигнал LI> ошибки. По окончанию - нажатие кнопки. LI> -> Шаг 2. Калибровка измерения V. Мигает светодиод V. LI> Крутим энкодер до совпадения показаний образцового LI> вольтметра и дисплея V. На выходе по-прежнему LI> калибровочная точка. LI> -> Шаг 3. Калибровка задания A. Мигает дисплей A. LI> Подключаем образцовый амперметр (через резистор?) LI> и крутим энкодер до получения показаний, таких как на LI> дисплее A (там отображается калибровочная точка, LI> например, 1.90 A). LI> -> Шаг 4. Калибровка измерения A. Мигает светодиод A. LI> Крутим энкодер до совпадения показаний образцового LI> амперметра и дисплея A. На выходе по-прежнему LI> калибровочная точка. Нажимаем кнопку, LI> калибровка сохраняется. Не очень нравиться. Надо подумать, а лучше - попробовать. LI> Во время калибровки все время издавать LI> короткие звуковые сигналы? Не стоит. Достаточно мигать. LI> - Делать источник только регулируемый (1 канал) LI> или добавить фиксированные каналы? Этот только регулируемый! LI> Или другой источник только с фиксированными каналами LI> +3.3, +5, +12, +15, -15, -12, -5? Вот именно, другой. LI> Как сделать защиту для этих каналов? LI> Триггерную! LI> Самовосстанавливающуюся, сброс защиты генератором LI> или процессором, при К.З. - короткие "иголки". Ну там то зачем процессор? Чистый аналог. ______________________________________________________________ - Включать ли сразу напряжение - > По нажатию. фиг его знает, что там установлено. да и > одно лишнее движение сделать не в падлу. Есть только один минус. Если, скажем, передёрнуть сетевую вилку, то блок питания сам уже не включится. - Плавающая запятая - > да! зачем терять точность. хотя надо попробовать на > практике. может слишком долго надо будет крутить. На практике смотрел. Точность терять не хочется, но крутить тогда реально долго. Может это и не является недостатком, ведь редко нужно перестраивать напряжение в широких пределах. Но качнуть быстро питалку не получится. Пока в программе сделал define для выбора варианта. Думать дальше нужно. - Звук возврата в режим стабилизации напряжения - > наверное да. но другого тона. Не планировал делать сигналы разной частоты, пока звук генерится системным таймером 500 uS. Хотя таймер 0, вроде, пока свободен. Можно сделать double-beep или другой длительности. - Сохранение в EEPROM - > 10 секунд мне нравится. Если крутить 50% рабочего дня каждый день, то ресурса EEPROM хватит на год :) В реальности пойдет. Можно даже сделать 5 секунд. Нужно, наверное, обозначить момент сохранения звуковым сигналом или подмигиванием индикаторов. - Калибровка - > Не очень нравиться. Надо подумать, а лучше попробовать. Как раз эта часть вызывала у меня меньше всего сомнений. Тем более, что процесс калировки очень редкий. Но пока это не реализовано, посмотреть невозможно. - Звуки во время калибровки - > Не стоит. Достаточно мигать. В HVPS-320 делал короткие периодические звуковые сигналы на протяжении всей калибровки - было очень наглядно, неплохо по-моему. Хотя это совершенно не обязательно. Нужно смотреть на практике. - Фиксированные каналы - > Этот только регулируемый! Возможно. Тоже к этому склоняюсь. - Другой фиксированый источник - > Ну там то зачем процессор? Чистый аналог. Кто его знает. Еще не продумывал. Там тоже могут быть всякие бипы, on/off, звуковая сигнализация КЗ, управление вентилятором, ну мало ли что? Но это всё пока так. Достала MC34063, жалею, что поставил на питание платы индикации. Зараза! Анекдот. Впаял бипер, слышу, всё время немного свистит с частотой пульсаций этой сраной MC34063. Закорачиваю выводы бипера - свист исчезает. Закорачиваю база-эмиттер управляющего бипером транзистора - свист есть. Смотрю осциллом - на бипере сидит приличная переменная составляющая помех, она видна только на коллекторе транзистора, на базе и эмиттере нет! Выпаиваю транзистор - свист есть! Засовываю стальную пластинку в зазор между дросселем DC/DC и биперем - бипер замолкает, напряжение на выводе бипера тоже исчезает :) ______________________________________________________________ LI> Есть только один минус. Если, скажем, передёрнуть LI> сетевую вилку, то блок питания сам уже не включится. М да... это не хорошо. Тогда надо запоминать последнее выставленное и включать его (см. 10 сек.). Одну защиту от дурака придется убрать. У дураков просто будет меньше аппаратуры на столе - спалит этот блок питания. Оно и к лучшему. Но при предергивании питания оно пропадать конечно не должно! Может я аккумулятор поставил заряжаться на ночь. - Плавающая запятая - Анализировать скорость энкодера не думаешь? - Звук возврата в режим стабилизации напряжения - LI> Можно сделать double-beep или другой длительности. Можно и так. - Сохранение в EEPROM - LI> Если крутить 50% рабочего дня каждый LI> день, то ресурса EEPROM хватит на год :) Даешь дохлые EEPROмы!!! Хоть будет раз в десять лет лишний повод проводить микросхему в последний путь. - MC34063 - ______________________________________________________________ > М да... это не хорошо. При предергивании питания > оно пропадать конечно не должно! Можно запоминать состояние on/off, если выключали напряжение перед выключением питания, то оно автоматически не включится. - MC34063 - > Вот, вот! Давно ищу ей бюджетную замену. Разве что LM2574. Но она дороже раза в три. Пока ее не применял - нету. Добавление: L4971. ______________________________________________________________