Pull to refresh

Ремонт реле напряжения Digitop 48A


Попало ко мне как-то сгоревшее реле напряжения Digitop 48A, в котором неисправным оказался бестрансформаторный источник питания, который потянул за собой микроконтроллер ATtiny26L-8PU.
Заменив электролитические конденсаторы новыми с подобающим рабочим напряжением, тиристор BT169 на BT131, линейный стабилизатор 78L05 на 7805 и собственно микроконтроллер — принялся за написание прошивки.

Источник питания представляет собой почти классическую «конденсаторную» схему, за исключением тиристора, который в ключевом режиме гасит части полуволн неотфильтрованного питания, таким образом уменьшая нагрев ограничивающего стабилитрона.


Первая стабильная версия ПО содержала хитрый алгоритм вычисления действующего напряжения среднеквадратическим методом, для чего в течение полупериода снималось 100 выборок. Затем выборки возводились в квадрат, суммировались и в конце полупериода из суммы, поделенной на количество выборок, извлекался квадратный корень. Алгоритм получился тяжелый (одна только операция извлечения квадратного корня на AVR чего стоит). К тому же оказалось, что форма напряжения в сети может немного меняться, в результате откалиброванный (при помощи китайского тестера, который всего лишь выпрямляет и фильтрует переменное напряжение) прибор в другом городе оказывался неточен. И разработка была заброшена на некоторое время.
Когда наступило время переделывать проводку в доме — встал вопрос о защите бытовых приборов, и тут появился повод провести аудит ПО для Digitop.
Алгоритм измерения переменного напряжения был значительно упрощен — в течение полуволны ищется максимальная выборка, которая потом умножается на калибровочный коэффициент.
Также были реализованы все функции прибора, задуманные производителем, в том числе задержка отключения при входном напряжении ниже заданного предела, но выше 120В (она оказалась реально полезна при низком сетевом напряжении в момент включения холодильника/дрели/насоса).
Реле было оттестировано при помощи ЛАТРа и в настоящее время находится на боевой обкатке.
В процессе отладки ПО пришлось много раз перепрошивать микроконтроллер, и учитывая, что питание прибора гальванически связано с сетью — сделал несложный опто-переходник для ISP программатора.

Переходник развязывает Reset, MISO, MOSI и SCK сигналы, питание для каждой из сторон свое.
Исходный код ПО Digitop прилагается.
Строка для программирования контроллера при помощи avrdude и HID-варианта stk500v2:
avrdude -p t26 -P avrdoper -c stk500v2 -B 5 -U flash:w:digitop.hex:i -U hfuse:w:0x12:m -U lfuse:w:0xe4:m
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.