Содержание

Программирование ПЛИС. Изучение явления «дребезг контактов» и метод избавления от него

Мы продолжаем изучение

ПЛИС

и языка

VHDL

. В данной статье, ориентированной на новичков, мы изучим явление «дребезг контактов» и рассмотрим способ избавления от него.

Итак, цель работы: Изучить явление «дребезг контактов», создать проект в Xilinx ISE Project Navigator: При нажатии на кнопку значение регистра увеличивается на 1.

Часть 1. Что такое «дребезг контактов»?

«Дре́безг — явление, возникающее в электрических и электронных переключателях, при котором они вместо некоторого стабильного сигнала выдают на выходе случайные высокочастотные колебания»

(с) Википедия.

Говоря проще, при нажатии и отпускании кнопки она переходит в нужное состояние не сразу. Какое-то время контакты кнопки «дребезжат» между собой, что будет воспринято микроконтроллером как многократные импульсы. Количество этих импульсов может превышать тысячи. Наглядно дребезг можно увидеть на осциллограмме, на которой показан момент отпускания кнопки:

Часть 2.
Создание проекта.

В

моей предыдущей статье

было подробно описано создание нового проекта для Spartan-3E Starter Kit в Xilinx ISE Project Navigator v12.3. Создадим проект еще раз, назовем его, например, drebezg_habr и внесем в него некоторые изменения:

1. Нам потребуется одна кнопка и восемь светодиодов. Добавим входной сигнал btn и 8 выходных сигналов led в порты:

entity drebezg_habr is
    Port ( clk : in  STD_LOGIC;
           btn : in STD_LOGIC;
           led : out  STD_LOGIC_VECTOR(7 downto 0));
end drebezg_habr;

2. В файле pin.ucf напишем имена ножек, соответствующие кнопке и каждому светодиоду:


NET “clk” LOC = “C9”;
NET “led<0>” LOC = “F12”;
NET “led<1>” LOC = “E12”;
NET “led<2>” LOC = “E11”;
NET “led<3>” LOC = “F11”;
NET “led<4>” LOC = “C11”;
NET “led<5>” LOC = “D11”;
NET “led<6>” LOC = “E9”;
NET “led<7>” LOC = “F9”;
NET “btn” LOC = “K17”;
NET “btn” PULLUP;

Ножка K17 соответствует нижней кнопке из имеющихся:


Слово PULLUP подключает кнопку по следующей схеме (прямо внутри ПЛИС):


Часть 3.
Программирование.

Переходим в файл drebezg_habr.vhd. Создадим 8-битный регистр-счетчик, который мы будем пытаться прибавлять на единицу при однократном нажатии кнопки: между architecture и begin пишем


signal count_led: std_logic_vector(7 downto 0);

И сразу же, после слова begin, направляем этот счетчик на наши светодиоды:


led <= count_led;

Теперь наша задача прибавить единицу к счетчику count_led при нажатии кнопки. Сразу же напрашивается решение сделать переменную, которая бы хранила предыдущее состояние кнопки и сравнивалась с ее текущим состоянием. Давайте так и сделаем:


architecture Behavioral of drebezg_habr is
 
signal count_led: std_logic_vector(7 downto 0);
signal old_btn: std_logic;
 
begin
 
process(clk)
begin
  if rising_edge(clk) then
    old_btn <= btn;
    if old_btn = ‘0’ and btn = ‘1’ then
      count_led <= count_led + 1;
    end if;
  end if;
end process;
 
led <= count_led;
 
end Behavioral;

Транслируем, зашиваем, тестируем. Уверен, что результат вас совершенно не устроит, ибо диоды будут просто совершенно неупорядоченно мигать. Это связано с тем, что событий if old_btn = ‘0’ and btn = ‘1’ then во время нажатия и отпускания кнопки очень много как раз из-за дребезга контактов. Чтобы избавиться от этого явления нам необходимо дождаться четко установившегося значения логической единицы. Для этого мы заведем счетчик, который увеличивается на 1, пока кнопка имеет значение логической единицы. Счетчик обнуляется, если кнопка приняла значение логического нуля. Таким образом, сколько бы не было импульсов во время нажатия кнопки из-за дребезга, настанет момент, когда значение btn четко установится в логическую единицу, счетчик достигнет определенного значения, и мы сможем судить о том, что действительно было совершено нажатие кнопки. Теперь нам не потребуется переменная old_btn.


architecture Behavioral of drebezg_habr is
 
signal count_led: std_logic_vector(7 downto 0);
constant clk_freq : integer := 50_000_000; — частота кварца
constant btn_wait : integer := clk_freq/4; — будем ждать 0. 25 секунды установления единицы
signal count : integer range 0 to btn_wait := 0;
 
begin
 
process(clk)
begin
  if rising_edge(clk) then
    if btn = ‘1’ then
      count <= count + 1;
      if count = btn_wait then
        count_led <= count_led + 1;
        count <= 0;
      end if;
    else
      count <= 0;
    end if;    
  end if;
end process;
 
led <= count_led;
 
end Behavioral;

Значение btn_wait было выбрано 0.25 секунды для того, чтобы значение count_led не прибавлялось слишком часто, пока кнопка находится в зажатом состоянии.

Еще один вариант антидребезга (даже более надежный) — прибавление count на 1 когда btn является логической единицей, и вычитание из count 1 когда btn является нулем. При этом если значение count опускается до 0 значит кнопка не нажата, либо был дребезг. Ну а если count досчитал до заветного btn_wait значит произошло нажатие =)

В качестве домашнего задания могу посоветовать дописать проект: сделайте прибавление count_led после того, как кнопка была нажата и отпущена.

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

Исходники проекта здесь. Желаю всем успехов в освоении ПЛИС!

Подавляем дребезг контактов в ПЛИС. Debouncer на Verilog

Шауэрман Александр А. shamrel@yandex.ru

В учебном стенде LESO2 для ввода данных используются кнопка и тумблеры. Если тумблеры, как правило, используются для задания статического уровня, то кнопка используется в качестве генератора импульсов синхронизации. В этом случае схема должна реагировать не на статический уровень, а на факт нажатия, то есть на переход сигнала из одного логического состояния на ножке ПЛИС в другое. При использовании механических коммутаторов (кнопки, тумблеры и прочие ключи) возникает такое неприятное явление, как дребезг контактов. В лабораторных работах по цифровой схемотехнике, при изучении триггеров, счетчиков, мы рекомендовали использовать простейшую схему подавления нежелательных импульсов (Подавление дребезга контактов). Схема выполнена в редакторе

Block Diagram/Schematic и проста для повторения, однако обладает рядом недостатков, не позволяющих применять ее в проектах, серьезнее лабораторной работы.

Во-первых, нажатие кнопки происходит в произвольный момент времени, и потому, относительно остальной схемы внутри ПЛИС, является событием асинхронным.  Смена логического состояния на входной ножке ПЛИС может совпасть с моментом переключения принимающего триггера, и есть вероятность, что триггер окажется в неопределенном (“нецифровом”) метастабильном состоянии. Это может привести к непредсказуемым результатам. Во-вторых, в зависимости от продолжительности удержания кнопки, генерируется несколько событий, что не всегда удобно. Желательно однозначно фиксировать факт нажатия – генерировать только один импульс.

Создадим универсальный модуль на Verilog для обработки сигнала с механических переключателей. В иностранной литературе аналогичное устройство или блок называется

Debouncer. Определимся с портами. Очевидно, что для ввода сигнала непосредственно с ножки ПЛИС нужен входной порт, назовем его sw_i (в статье Пишем “демку” для LESO2 на Verilog я приводил некоторые рассуждения по именованию входных/выходных портов, в этой и последующих работах я буду придерживаться такого стиля). Нужен вход для системных тактовых импульсов, с которыми синхронно работает вся остальная схема – clk_i. Добавим вход для асинхронного сброса всей схемы – rst_i. Сделаем универсальный модуль: предусмотрим два раздельных выхода для события “нажал кнопку” и события “отпустил кнопку” – sw_down_o и sw_up_o. Для того, чтобы не потерять информацию о длительности нажатия (а вдруг пригодится), создадим выход sw_state_o, на котором будет отражаться состояние кнопки, естественно, после устранения эффекта дребезга.
Ниже показан листинг “заготовки” для нашего модуля.

module button_debouncer
(
    input clk_i,
	input rst_i,
    input sw_i,  
 
    output reg sw_state_o,  
    output reg sw_down_o,  
    output reg sw_up_o 
);
 
endmodule

Избежать проблему метастабильных состояний можно классическим методом переноса сигнала из одного частотного домена в другой – с помощью двух последовательных D-триггеров.

reg	 [1:0] sw_r;
always @ (posedge rst_i or posedge clk_i)
	sw_r    <= {sw_r[0], ~sw_i};

Два триггера входят в состав регистра sw_r. С каждым тактом на линии clk_i уровень с линии sw_i защелкивается в триггер sw_r[0] (с инверсией), а предыдущее содержимое sw_r[0] попадает в sw_r[1]. Выход триггера sw_r[1] можно считать синхронным относительно

clk_i и использовать в схеме. Ниже на рисунке показана временная диаграмма работы цепочки триггеров.

Теперь разберемся, как бороться с дребезгом и ложными срабатываниями. Будем считать состояние на линии устоявшимся, если в течении некоторого времени оно неизменно. Алгоритмически это можно описать так: как только состояние на линии sw_i сменилось (вернее, теперь корректнее анализировать не sw_i, а выход регистра sw_r[1]) запускаем таймер, если в течении определенного времени состояние не изменилось, то такое состояние считаем устойчивым. Введем триггер sw_state_r , в нем будем хранить последнее стабильное состояние кнопки. Флаг sw_change_f устанавливается в единицу, когда текущее стабильное состояние отличается от того, что установлено на входе sw_i:

wire sw_change_f = (sw_state_o != sw_r[1]);

Флаг sw_change_f может равняться единице в двух случаях: либо это нажатие кнопки, либо ложное срабатывание. Для того, чтобы выяснить с чем мы имеем дело, запускаем счетчик, и если за время работы счетчика (успеет досчитать до своего максимального значения) состояние вновь не смениться, то текущее состояние признаем стабильным: запишем его в sw_state_r. Иначе сбросим счетчик и оставим sw_state_r без изменений.

always @(posedge clk_i)	// Каждый положительный фрон сигнала clk_i
if(sw_change_f)		// проверяем, состояние на входе sw_i
begin			// и если оно по прежнему отличается от предыдущего стабильного,
	sw_count <= sw_count + 'd1;  // то счетчик инкрементируется.
	if(sw_cnt_max)               // Счетчик достиг максимального значения.
		sw_state_o <= ~sw_state_o;	// Фиксируем смену состояний.
end
else  			// А вот если, состояние опять равно зафиксированному стабильному, 
	sw_count <= 0;  // то обнуляем счет. Было ложное срабатывание. 

В общем случае максимальное значение счета можно задать по разному, один из самых простых методов, прекратить счет, когда в регистре sw_count будут все единицы:

wire sw_cnt_max = (sw_count == 16'hFFFF);

Или записать тоже самое более универсальным способом, не зависимым от разрядности счетчика:

wire sw_cnt_max = &sw_count;

Ниже приведена диаграмма работы, при действительной смене логического уровня. После того, как счетчик закончил счет, sw_state_r сменил свое значение:

А на этой диаграмме ложное срабатывание. Значение sw_state_o осталось первоначальным:

Осталось добавить в блоки always асинхронный сброс для всех элементов с памятью и защелкнуть сигналы на выходные триггеры:

always @(posedge clk_i)
begin
	sw_down_o <= sw_change_f & sw_cnt_max & ~sw_state_o;
	sw_up_o <= sw_change_f & sw_cnt_max &  sw_state_o;
end

Временная диаграмма работы модуля:

Проверим работоспособность нового модуля. За основу возьмем демонстрационный проект для leso2.4 из статьи “Пишем “демку” для LESO2 на Verilog”. Скачиваем архив проекта и распаковываем в любое удобное место на локальном диске. В корневом каталоге проекта создаем текстовый файл для модуля button_debouncer и копируем туда исходный код. Файл должен иметь расширение .v, я его назвал debouncer. v Запускаем Quartus II, открываем проект. Для того, чтобы можно использовать модуль button_debouncer , мы должны включить файл debouncer.v в проект. Для этого заходим Assigment -> Settings … На вкладке Files добавляем файл с модулем (указываем путь, жмем “add”, затем “Apply”, только потом “OK” ).

Из всей периферии стенда нам понадобится тактовая кнопка и сегментные индикаторы. Для проверки модуля будем подсчитывать количество импульсов, генерируемых при нажатии кнопки. Создадим простейший 8-ми битный счетчик, пусть он будет срабатывать по заднему фронту (negedge sw_i ) сигнала с кнопки (мы же помним, что кнопка работает с инверсией: в нажатом состоянии генерируется логический ноль), результат счета выведем на семисегментные индикаторы (используем модуль seven):

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

Отлично. Обработаем сигнал с кнопки с помощью модуля:

Компилируем, прошиваем. Теперь однократное нажатие кнопки приводит к увеличению значения счетчика строго на единицу.

В текущем примере не важно, сработает счетчик при нажатии или отпускании кнопки, потому вместо вывода sw_down_o (событие – “кнопка нажата”), может быть использованы выхода sw_state_o (статическое состояние кнопки), sw_up_o (событие – “кнопка отпущена”). При объявлении экземпляра модуля, для сокращения записи, неиспользуемые выводы можно опустить:

 button_debouncer  debouncer 
(.clk_i(clk_50MHz_i), .sw_i(sw_i), .sw_down_o(sw_down));

Ниже на листинге исходный код модуля верхнего уровня:

Алгоритм борьбы с дребезгом.

— Информатика, информационные технологии

Лабораторная 3 Кнопка

Схема подключения.

Кнопка обычно может находиться в одном из двух состояний: нажата и отжата. При этом, в зависимости от подключения, на ней могу быть разные потенциалы. Например, если кнопка подключена, так как изображено на рис 3.1, на отжатой кнопке в точке Input будет высокий потенциал, а при нажатой низкий. Если же кнопка подключена, как показано на рис 3.2, то, наоборот, при отжатом состоянии на кнопке будет ноль, а при нажатом, напряжение питания (логическая единица).

Рис 3.1

Рис 3.2

Дребезг контактов.

При моделировании кнопка считается идеальной и её модель выглядит, как показано на рис 3.3.

Рис 3.3

Фронты при нажатии считаются идеальными. В реальности обычно при изменении состояния кнопки появляется эффект дребезга контактов. Этот эффект заключается в том, что пластины соприкоснувшись друг с другом (при нажатии) не остаются в таком состоянии, а какое-то время болтаются и сигнал на кнопке принимает вид, как показано на рис. 3.4.

Рис 3.4

Длительность этого переходного процесса обычно составляет от сотых долей до единиц миллисекунд в зависимости от кнопки. Сам по себе дребезг представляет собой случайный процесс.

Дребезг не является проблемой, если необходимо просто отличать состояния нажатой и отжатой кнопок. Например, при решении задачи включения светодиода при зажатой кнопке.

Но он сильно усложняет задачу обнаружения момента нажатия на кнопку. Если просто отлавливать момент изменения уровня сигнала, то, как видно из рисунка, мы получим за одно нажатие хаотическое многократное нажатие и отжатие кнопки.

Алгоритм борьбы с дребезгом.

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

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

Этот алгоритм обычно применяют при использовании внешних прерываний.

Другой алгоритм подразумевает накапливание информации об изменении состояния кнопки. Т.е. решение об изменении состояния принимается, если N раз подряд было получено ожидаемое значение. Например, если ожидается нажатие на кнопку, при котором на вывод микроконтроллера будет подан логический ноль, мы увеличиваем значение переменной на единицу, когда на выводе, к которому подключена кнопка, появляется ноль. Если на выводе единица, то счёт сбрасывается. Этот алгоритм позволяет отфильтровать дребезг и принять решение только при наличии на входе МК стабильного сигнала.

К недостаткам этого метода можно отнести более сложную реализацию и задержку при принятии решения, что может быть критично при жестких требованиях к скорости реакции системы.

Алгоритм поиска момента нажатия на кнопку

Момент нажатия на кнопку можно определить, если сохранять предыдущее состояние кнопки. В этом случае, если текущее и предыдущее состояния не поменялись, то нажатия не было. Если же текущее и предыдущее состояния не совпадают (Как на рис 3.5 предыдущее состояние N_old не равно текущему состоянию N), то значит состояние кнопки изменилось. Она была или нажата, или отпущена.

Рис 3.5

Что бы отличить момент нажатия от момента отпускания кнопки можно проверять текущее состояние кнопки. Например, для случая, как на рис 3.5 мы получим следующий код:

if (N_Old != N)

{//Состояние кнопки изменилось

if (N == 0)

{

//Кнопка нажата

} else {

//Кнопка отпущена

}

N_Old = N;

}

После обработки изменения состояния кнопки нужно некоторое время подождать, чтобы прошел дребезг. Самое простое – добавить после того, что должно происходить при изменении состояния кнопки небольшую задержку в несколько миллисекунд.

Статьи к прочтению:

КАК УСТРАНИТЬ ДРЕБЕЗГ КОНТАКТОВ [Уроки Arduino #8]


Похожие статьи:

ПРИБОР КОНТРОЛЯ ВЫСОКОВОЛЬТНЫХ ВЫКЛЮЧАТЕЛЕЙ ПКВ/М6Н

ООО «К-С» предлагает Вашему вниманию прибор контроля высоковольтных выключателей ПКВ/М6Н
Прибор ПКВ/М6Н предназначен для безразборного контроля масляных, вакуумных и элегазовых выключателей всех типов и классов напряжений, имеющих от одного до трех разрывов на полюс. 

Прибор ПКВ/М6Н:

  • контролирует характеристики в простых операциях и во всех сложных циклах;
  • автоматически распознает вид сложного цикла и измеряет характеристики как цикла в целом, так и составляющих его простых операций;
  • в простых операциях определяет длительность командных импульсов, что позволяет проверять 
  • правильность работы блокировочных контактов выключателя.

Временные характеристики контролируются либо одновременно по всем трем полюсам, имеющим по одному разрыву, либо поочередно по каждому полюсу, но с тремя разрывами на полюс. Характеристики хода и скоростные характеристики контролируются с помощью датчиков углового (ДП21) или линейного (ДП12)  перемещений, закрепляемых, соответственно, на валу или держателе траверсы выключателя.

Измеряются следующие характеристики:

  • временные (собственное время включения/отключения каждого полюса, полное время движения траверсы, разновременность срабатывания между полюсами, время дребезга контактов). Погрешность измерения ±0,1мс;
  • скоростные (скорость в момент включения/отключения, максимальная скорость) в диапазоне 0,002÷20 м/с для масляных и элегазовых выключателей. Максимальная погрешность измерения скорости не превышает ± 2 %;
  • характеристики хода (полный ход, ход до моментов включения/отключения, вжим, разновременность срабатывания по ходу, ход дребезга контактов, отскок, перелет) в диапазоне 0 – 900 мм с разрешением 0,5 мм для масляных и элегазовых выключателей.

Перейти в каталог, купить

Скачать:

Контакт «Отказ» | Переключатели | Учебник по электронике

Когда выключатель срабатывает и контакты соприкасаются друг с другом под действием силы срабатывания, предполагается, что они обеспечивают непрерывность в один четкий момент.

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

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

Однако, если переключатель используется для подачи сигнала на электронный усилитель или какую-либо другую схему с малым временем отклика, дребезг контактов может привести к очень заметным и нежелательным эффектам:

 

 

Более пристальный взгляд на дисплей осциллографа показывает довольно уродливый набор замыканий и разрывов при однократном нажатии переключателя:

 

 

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

Поскольку механические переключатели часто взаимодействуют с цифровыми электронными схемами в современных системах, дребезг контактов переключателя часто рассматривается при проектировании. Каким-то образом «дребезжание», создаваемое дребезжащими контактами, должно быть устранено, чтобы приемная схема увидела чистый, четкий переход «вкл./выкл.»:

 

 

Устранение дребезга контактов переключателя

Контакты переключателя могут быть подавлены дребезгом несколькими различными способами. Наиболее прямым способом является устранение проблемы в ее источнике: самом коммутаторе.Вот несколько предложений по разработке механизмов переключения для минимального дребезга:

 

  • Уменьшить кинетическую энергию подвижного контакта. Это уменьшит силу удара, когда он остановится на неподвижном контакте, что сведет к минимуму отскок.
  • Используйте «амортизирующие пружины» на неподвижных контактах, чтобы они могли свободно отступать и мягко поглощать силу удара от подвижного контакта.
  • Разработайте переключатель для «протирания» или «скользящего» контакта, а не для прямого удара.В конструкции переключателя «нож» используются скользящие контакты.
  • Амортизируйте движение механизма переключения с помощью воздушного или масляного «амортизатора».
  • Используйте наборы контактов, установленных параллельно друг другу, каждый из которых немного отличается по массе или контактному зазору, так что, когда один из них отскакивает от неподвижного контакта, по крайней мере один из других все еще находится в прочном контакте.
  • «Смочить» контакты жидкой ртутью в закрытом помещении. После первоначального контакта поверхностное натяжение ртути будет поддерживать непрерывность цепи, даже если подвижный контакт может несколько раз отскакивать от неподвижного контакта.

 

Каждое из этих предложений жертвует некоторым аспектом производительности переключателя ради ограниченного дребезга контактов, поэтому нецелесообразно проектировать все переключатели с учетом ограниченного дребезга контактов.

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

Скользящие контакты, хотя и не дребезжат, по-прежнему производят «шум» (неравномерный ток, вызванный неравномерным контактным сопротивлением при движении) и подвержены большему механическому износу, чем обычные контакты.

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

Кроме того, смачиваемые ртутью контакты обычно ограничены в монтажном положении, так как сила тяжести может привести к случайному замыканию контактов, если они неправильно ориентированы.

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

Схема фильтра нижних частот, подключенная, например, к выходу переключателя, уменьшит колебания напряжения/тока, вызванные дребезгом контактов:

 

 

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

Эти гистерезисные схемы, называемые мультивибраторами , подробно обсуждаются в следующей главе.

 

СВЯЗАННЫЕ РАБОЧИЕ ЛИСТЫ:

Схема

устраняет дребезг контактов реле | Максим Интегрированный

Аннотация: Добавление p-канального полевого МОП-транзистора и микросхемы контроллера с горячей заменой к механическому реле устраняет дребезг контактов реле и снижает пусковой ток.

Похожая версия этой статьи появилась как дизайнерская идея в выпуске журнала EDN от 27 ноября 2003 года.

Достижения в области полупроводниковых технологий позволили ИС заменить многие механические реле, но реле по-прежнему доминируют в сильноточных цепях, которые должны выдерживать высокое напряжение произвольной полярности.Однако дребезг контактов в этих реле может создать проблемы для последующих цепей.

Одно из решений проблемы дребезга контактов состоит в сочетании реле с контроллером с горячей заменой. Такие контроллеры становятся все более популярными как средство переключения компонентов системы без отключения питания системы. В Рисунок 1 контакт реле заменил контакт механического разъема.


Рис. 1. ИС контроллера с горячей заменой и внешний МОП-транзистор устраняют дребезг контактов реле К1.

Система (схема управления) замыкает реле, и это замыкание реле соединяет вход схемы горячей замены с источником питания (в данном случае 28 В). Контроллер горячей замены (U1) удерживает р-канальный полевой МОП-транзистор (Q1) в выключенном состоянии как минимум в течение 150 мс после того, как входное питание достигает допустимого уровня. Эта задержка дает достаточно времени для уменьшения дребезга контактов в реле. После задержки 150 мс U1 управляет затвором MOSFET так, что выходное напряжение изменяется со скоростью 9 В/мс. Эта управляемая скорость линейного изменения сводит к минимуму пусковой ток, тем самым снижая нагрузку на источник питания, реле и конденсаторы после контроллера с горячей заменой.

Пример дребезга контактов реле ( Рисунок 2 ) показывает три дребезга с пиковым пусковым током почти 30 А. (Верхняя кривая — выходное напряжение при 10 В/дел, нижняя кривая — входной ток при 5 А/дел, а выходная нагрузка — 54 Ом параллельно с 100 мкФ.) Использование схемы на рис. 1 в этих условиях дает лучшую картину ( Рисунок 3 ). Отчетливо виден отложенный рост выходного напряжения, без скачков из-за дребезга контактов. Входной ток показывает гораздо меньше изменений, достигая пика ниже 1.5А, прежде чем установить установившееся значение 500 мА.


Рис. 2. Механическое реле K1 само по себе имеет дребезг контактов при замыкании.


Рисунок 3. Схема, показанная на рисунке 1, устраняет дребезг контактов реле и снижает пусковой ток.

© , Максим Интегрейтед Продактс, Инк.
Содержание этой веб-страницы защищено законами об авторском праве США и других стран.Для запросов на копирование этого контента, свяжитесь с нами.
ПРИЛОЖЕНИЕ 3743:
ПРИМЕЧАНИЕ ПО ПРИМЕНЕНИЮ 3743, АН3743, АН 3743, APP3743, приложение3743, Приложение 3743

maxim_web:en/products/power,maxim_web:en/products/power/supervisors-voltage-monitors-sequencers,maxim_web:en/products/power/protection-control/hot-swap,maxim_web:en/products/power/supervisors -мониторы-напряжения-секвенсоры/кнопки-дебаунсеры

maxim_web:en/products/power,maxim_web:en/products/power/supervisors-voltage-monitors-sequencers,maxim_web:en/products/power/protection-control/hot-swap,maxim_web:en/products/power/supervisors -мониторы-напряжения-секвенсоры/кнопки-дебаунсеры

Часто задаваемые вопросы о защите от отказов

– Bank of Advance

В: Как работает защита от отказов?

A: Пока вы поддерживаете свою текущую учетную запись в хорошем состоянии (определяемой как: регулярное внесение депозитов и доведение вашего счета до положительного баланса не реже одного раза в 30 дней), Bank of Advance может учитывать овердрафты до предела защиты от отказов на ваш счет. Если вы используете защиту от отказов, вы должны помнить, что обычная комиссия банка за овердрафт для каждой транзакции будет вычтена из вашего лимита. Как и раньше, банк уведомит вас по почте, когда произойдет овердрафт.

В. Как узнать, когда я использую лимит овердрафта?

О: Вы будете получать по почте уведомление о перерасходе средств каждый раз, когда оплачиваете товары. В уведомлении будет указан номер чека, сумма и плата за овердрафт. Вы должны вычесть общую сумму сборов из своей чековой книжки.Помните, что плата за оплату товара такая же, как и за его возврат.

В: У меня два расчетных счета. Могу ли я получить защиту от отказов на обоих?

А: Да. Если у вас есть несколько учетных записей для вашей семьи, у вас может быть ограничение на все подходящие учетные записи.

В: Что делать, если я превышаю лимит защиты от отказов?

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

В. Каким образом я могу получить доступ к Защите от отказов?

A: Как правило, вы можете получить доступ к защите от отказов через:

  • Чеки и другие дебетовые счета, обналиченные в кассах
  • Дебетовые транзакции ACH
  • Чеки, выданные третьей стороне
  • Все транзакции, которые в настоящее время выполняются через вашу учетную запись
  • Операции с дебетовой/банкоматной картой (если разрешено)

Примечание. При транзакциях по дебетовым картам и картам через банкоматы вы не получите доступ к лимитам защиты от отказов без вашего предварительного разрешения.Вы можете авторизовать эти транзакции, связавшись с местным отделением.

В: Плата за овердрафт для защиты от отказов составляет 24 доллара США. Как быстро я должен погасить свою защиту от отказов?

О: Вы должны сделать все возможное, чтобы как можно быстрее довести свой счет до положительного баланса. Если в течение 30 дней подряд в вашем аккаунте остается превышение лимита, ваша привилегия Защиты от отказов будет приостановлена. Если ваш аккаунт остается перерасходованным в течение 70 дней подряд, он будет закрыт, и мы предпримем шаги для возврата средств.Предоставленные товары, которые не соответствуют вашему лимиту защиты от отказов, не будут оплачены.

В: Сколько стоит моя привилегия “Защита от отказов”?

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

В. Как использовать защиту от отказов?

A: Если вы являетесь новым владельцем учетной записи, вы можете использовать Защиту от отказов через 30 дней и после внесения не менее двух депозитов на общую сумму вашего лимита Защиты от отказов.

Примечание. Защита от отказов требует вашего предварительного разрешения. Вы можете авторизовать эту услугу, обратившись в местное отделение.

В: Когда я получаю доступ к круглосуточному банкомату Bank of Advance для снятия наличных, включается ли мой лимит защиты от отказов?

A: Если вы выбрали услугу Защиты от овердрафта дебетовой карты, позволяющую Bank of Advance разрешать и оплачивать овердрафт по вашей карте в банкомате, тогда ДА, ограничение Защиты от отказов включено. Если вы решите не использовать эту услугу, НЕТ, ваш лимит защиты от отказов не будет доступен в банкомате.

В: Когда я получаю доступ к круглосуточному банкомату Bank of Advance для запросов баланса, включается ли мой лимит защиты от отказов?

А: НЕТ. Текущий баланс, отраженный в нашем круглосуточном банкомате, не будет включать лимит защиты от отказов.

В. Что делать, если я больше не хочу использовать защиту от отказов или защиту от овердрафта дебетовой карты?

О: Вы можете отказаться от этой услуги в любое время, связавшись с местным отделением.

Защита от отскоков | Дополнительные услуги по проверке

29 января 2022 г.

Возврат платежа из-за нехватки средств может быть дорогостоящим и неприятным опытом.Вот почему мы предоставляем «Защиту от отказов SM » — специальную привилегию овердрафта для проверяющих клиентов The Bank of Elk River.

Защита от отказов SM обеспечивает дополнительный уровень защиты в случае ошибок сверки счетов. В The Bank of Elk River мы не поощряем овердрафт. Как всегда, мы призываем вас ответственно относиться к своим финансам. Цель этой привилегии состоит в том, чтобы избавить вас от смущения, дополнительных торговых сборов или других проблем, которые могут возникнуть в случае возврата платежа.

Что такое защита от отскока
SM ?

Защита от отказов SM — это привилегия овердрафта, которая автоматически присваивается вашей учетной записи. Никаких действий с вашей стороны не требуется. Вам не нужно ничего подписывать.

Как работает защита от бросков
SM ?

До тех пор, пока вы поддерживаете свою учетную запись в хорошем состоянии (определяемой как регулярное внесение депозитов и доведение вашего счета до положительного баланса не реже одного раза в 30 дней), The Bank of Elk River может оплачивать овердрафты до уровня защиты от отказов SM лимит на вашем счету.Это означает, что с вас не будет взиматься плата за возврат чека продавца, которую вы обычно должны платить.

Сколько стоит моя защита от бросков
SM ?

Дополнительная плата за эту привилегию не взимается, если вы ее не используете. Тем не менее, вы должны иметь в виду, что с вас будет взиматься комиссия за отказ в размере 33 долларов США за каждый оплаченный товар в рамках лимита.

Каков предел моей защиты от отказов
SM ? Если у меня два расчетных счета, могу ли я получить защиту от отказов SM на обоих?

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

Как скоро я смогу использовать защиту от бросков
SM ?

При открытии счета вам будет выплачено страховое покрытие в размере 200 долларов США. Если ваш текущий счет останется в хорошем состоянии в течение следующих 30 дней, ваш лимит защиты от отказов может увеличиться до максимального общего покрытия в размере 700 долларов США.

Расчетный счет Premier Rewards 200 долларов
Расчетный счет вознаграждений 200 долларов
Выберите расчетный счет
200 долларов

Приемлемое увеличение для всех учетных записей: 500 долларов США



Как узнать, когда я использую лимит овердрафта? Что делать, если я превышаю лимит защиты от отказов
SM ?

Вы будете получать уведомление об овердрафте по почте или электронной почте каждый раз при оплате товаров. Овердрафт сверх установленного предела защиты от отказов SM может привести к возврату платежа или платежей получателю платежа. Обычная плата за овердрафт будет взиматься за единицу товара и начисляться на ваш счет. Чтобы не превысить лимит, если вы используете Защиту от отказов SM , обратите внимание, что сумма овердрафта плюс наша стандартная комиссия за отказ в размере 33 долларов США за каждую позицию будет вычтена из вашего лимита овердрафта.

Как быстро я должен погасить свою защиту от отказов
SM ?

Вы должны приложить все усилия, чтобы вывести свой счет на положительный баланс в течение 30 дней.Если вы не сможете это сделать, вы получите письмо от The Bank of Elk River, в котором будет сообщено о ситуации и возможных вариантах. Если по прошествии некоторого времени ваш счет не будет доведен до положительного баланса, мы можем приостановить действие вашего лимита привилегий по овердрафту и предпринять другие шаги для возврата средств.

Каким образом я могу получить доступ к моему лимиту защиты от отказов
SM ? Будет ли мой лимит отражен в балансе, который я получу?

Приведенная ниже таблица предназначена для того, чтобы вы знали о различных способах доступа к лимиту защиты от отказов SM , а также о том, будет ли этот лимит отражен в предоставленном балансе.

Точки доступа Доступна ли моя привилегия овердрафта
?
Отражает ли предоставленный баланс

мой предел привилегий овердрафта
?
Кассир Да Нет
Выписка чека Да Н/Д
Банковская наличность и чековая карта Да* Н/Д
Снятие в банкомате Да* Нет
ACH-Автодебет Да Н/Д
Цифровой банкинг Да Нет
Информационная линия Да Нет
Запланированные внутренние автоматические переводы Нет Н/Д

*Чтобы получить защиту от отказов SM для транзакций The Bank Cash & Check Card, вам необходимо сообщить нам об этом. Пожалуйста, свяжитесь с нами по телефону 763.241.8522 для получения помощи.

Ведя точные записи и зная свой баланс, вы можете избежать ошибочного доступа к вашему лимиту и взимания комиссий. Лучший способ сделать это — использовать инструменты цифрового банкинга или другие методы для отслеживания ваших депозитов, письменных чеков, снятия средств, включая плату за обслуживание, операции с банкоматами и чековыми картами. Всегда сверяйте свои записи с ежемесячной банковской выпиской.

Что делать, если я не хочу использовать защиту от отказов
SM на моем расчетном счете?

Если вы хотите удалить эту услугу из своей учетной записи, вы можете сделать это, позвонив по номеру 763.241.8522. Однако, как только эта услуга будет удалена, вы должны иметь в виду, что если товар представлен к оплате, а на вашем счете недостаточно средств, товар может быть возвращен получателю платежа, и наша стандартная плата за овердрафт в размере 33 долларов США будет взиматься за каждый платеж. пункт.

Подтверждение/Отказ от участия

Чтобы получить защиту от отказов для транзакций The Bank Cash & Check Card, вы должны «подписаться» и согласиться с условиями программы привилегий овердрафта. Если вы решите «отказаться», вы больше не будете получать защиту от овердрафта при однократных транзакциях по дебетовой карте и снятии наличных в банкомате.Ежедневные транзакции по дебетовым картам и снятие наличных в банкоматах могут быть отклонены в торговой точке, если транзакция приведет к недостаточности средств. Чтобы подписаться или отказаться, позвоните в службу поддержки по телефону 763.241.8522.

Защита от отказов — CUSB Bank

Дебетовая карта не работает как раньше?

Вниманию клиентов:

Мы хотим, чтобы вы знали об изменении, которое повлияет на вашу текущую учетную запись с защитой от отказов и на то, как вы используете свою дебетовую карту.Защита от отказов – ценная услуга для многих владельцев наших аккаунтов, поэтому мы хотим убедиться, что вы знаете об этом изменении.
 
ЧТО ЭТО ПОКРЫВАЕТ
Наша программа защиты от отказов была разработана, чтобы защитить вас в случае чрезвычайной ситуации и избавить вас от затрат и смущения, связанных с отказом в транзакциях. К ним относятся покупки в продуктовом магазине, на заправочных станциях, в кабинетах врачей, аптеках и в любое время, когда вы используете свою карту для разовой транзакции, а также снятия наличных и других транзакций в банкомате.
 
ЧТО ИЗМЕНИЛОСЬ
В связи с правительственными постановлениями ваши банкоматы и ежедневные транзакции по дебетовым картам больше не будут покрываться защитой от отказов. Вы должны предоставить нам специальное разрешение на продолжение этой службы в вашей учетной записи.
 
ВЫБОР ЗА ВАМИ
Защита от отказов больше не будет предоставляться автоматически для банкоматов и повседневных транзакций по дебетовым картам. Поэтому, чтобы разрешить нам предоставлять вам эту услугу, заполните форму ниже и отправьте ее в банк, зайдите или позвоните нам сегодня по телефону (800) 397-9964. Благодарим вас за выбор CUSB-банка.
 
С уважением,
Дж. Скотт Томсон, Президент CUSB Bank

ОПТИМАЛЬНАЯ ФОРМА


ПОЛЕЗНЫЕ ОТВЕТЫ НА ВАШИ ВОПРОСЫ

В. Что произойдет, если я авторизую платежи по моей карте Deft & Adrabit?
A. Если вы разрешите нам оплачивать эти транзакции, бизнес будет продолжаться в обычном режиме. Если вы инициируете транзакцию по дебетовой карте или банкомату, которая может привести к отрицательному балансу вашего счета, у нас есть ваше разрешение на оплату этой транзакции, и может взиматься комиссия.


В. Что произойдет, если я не санкционирую оплату овердрафта по транзакциям через банкомат и дебетовую карту?
A. Если вы не разрешаете нам оплачивать овердрафт в вашем банкомате и дебетовой карте, мы не будем оплачивать банкомат или ежедневную транзакцию по дебетовой карте, которая приводит к отрицательному балансу вашего счета. Если на вашем счете недостаточно средств, транзакция будет отклонена. Чтобы завершить транзакцию, вам потребуется другая форма оплаты, такая как чек, наличные или кредитная карта, или вы можете отменить транзакцию.Независимо от того, разрешаете ли вы нам оплачивать банкоматы и ежедневные операции овердрафта по дебетовой карте или нет, все остальное в вашей учетной записи останется прежним.


В. Что делать, если я не могу решить или не хочу пользоваться этой услугой?
A. Мы будем рады обсудить с вами варианты управления вашей учетной записью. Позвоните по телефону (800) 397-9964 или посетите отделение, чтобы обсудить защиту от отказов, и если вы уверены, что не хотите, чтобы ваши повседневные транзакции по дебетовой карте авторизовались, когда у вас недостаточно средств, никаких дальнейших действий не требуется; служба была автоматически удалена из вашего аккаунта.


В. Как насчет автоматических платежей по дебетовой карте, которые я настроил у продавца?
A. Покупки с использованием дебетовой карты, для которых настроено автоматическое выставление счетов (например, счет за коммунальные услуги), могут по-прежнему разрешаться по нашему усмотрению, даже если вы не разрешаете нам покрывать банкоматы и повседневные операции с дебетовыми картами.


В. Когда мне нужно внести депозит, чтобы избежать платы за овердрафт?
A. У вас будет время до окончания рабочего дня* рабочего дня транзакции, чтобы внести депозит.Если ваши дебетовые транзакции происходят в нерабочий день, у вас будет время до окончания следующего рабочего дня.


В. Если я разрешаю оплату овердрафта в банкомате и транзакциях по дебетовой карте, всегда ли будут производиться платежи по моей дебетовой карте?
A. Нет. Будет ли транзакция оплачена, зависит от нашего решения, и мы оставляем за собой право не платить. Большинство овердрафтов оплачиваются, но гарантии нет. Сумма защиты от отказов обычно составляет 600 долларов.


В.Сколько это стоит?
A. Если вы превысите лимит своего счета и не внесете депозит или не переведете деньги в тот же рабочий день, вы будете платить 29 долларов США каждый раз, когда используете дебетовую карту без достаточного количества средств.

  • БЕСПЛАТНО за сохранение защиты от отказов в вашем аккаунте.
  • БЕЗ КОМИССИИ, если вы случайно превысили лимит, но вносите депозит или переводите в тот же рабочий день для покрытия покупок по дебетовой карте.
  • БЕСПЛАТНО, если вы никогда не используете его.

ВАЖНАЯ ИНФОРМАЦИЯ О ЗАЩИТЕ

Дата вступления изменения в силу 15 августа 2010 г. для счетов, открытых до 1 июля 2010 г.Для счетов, открытых после 1 июля 2010 г., изменение вступило в силу 1 июля 2010 г. Начиная с 15 августа 2010 г. мы не можем разрешать и оплачивать овердрафты в банкоматах и ​​повседневные транзакции по дебетовым картам без согласия владельца счета. Плата за овердрафт (OD) в размере 29,00 долларов США будет взиматься за покрытие овердрафта, который приводит к отрицательному балансу в конце дня. В настоящее время овердрафты могут быть созданы чеком, снятием средств лично, снятием средств в банкомате или другими электронными средствами. Повторяющиеся транзакции по дебетовой карте (платежи, которые настроены для автоматического выставления счетов и оплаты), такие как автоматический перевод из вашего клуба здоровья или страховой компании, могут по-прежнему покрываться вашей услугой овердрафта. После возникновения овердрафта вы должны довести свой счет до положительного баланса в течение 30 дней. Будет ли оплачен ваш овердрафт, решает CUSB Bank, и мы оставляем за собой право не платить. Например, мы обычно не выплачиваем овердрафт, если у вашего счета плохая репутация, или вы не вносите регулярные депозиты, или у вас были чрезмерные овердрафты.
 
* Крайний срок внесения депозита — 16:00 в офисах Cresco, Ridgeway, Lime Springs, Osage и Charles City, а также в банкоматах в рабочий день, когда мы открыты.Каждый день является рабочим днем, кроме субботы, воскресенья и государственных праздников.
Свяжитесь с нами, если у вас есть вопросы.


2016 Банк CUSB, член FDIC

Защита от овердрафта и услуги по овердрафту

Ключевая информация

Вы можете выбрать, как Wells Fargo будет обрабатывать ваши банкоматы и ежедневные (одноразовые) транзакции по дебетовой карте в случае, если у вас недостаточно денег на вашем расчетном счете или на связанных счетах. для защиты от овердрафта во время транзакции.Оплата транзакций в овердрафт является дискреционной, и мы оставляем за собой право не платить.

Право на участие

Некоторые текущие счета потребителей не имеют права на участие в услуге овердрафта дебетовой карты, , включая счета Clear Access Banking, Teen Checking SM и Opportunity Checking ® .

Расчетные счета предприятий (за исключением счетов IOLTA/RETA и счетов государственных организаций) автоматически регистрируются в услуге овердрафта дебетовой карты при открытии счета.Клиенты могут удалить эту услугу или повторно зарегистрироваться в любое время.

Плата

Наша стандартная комиссия за овердрафт в размере 35 долларов США за пункт будет применяться, если услуга овердрафта по дебетовой карте используется для подтверждения транзакции в овердрафт и покрывающий депозит или если перевод не сделан до окончания времени в тот же рабочий день. .

Если на вашем расчетном счете нет услуги овердрафта по дебетовой карте и у вас недостаточно денег на расчетном счете или на счетах, связанных для защиты от овердрафта, банкоматы и ежедневные (одноразовые) транзакции по дебетовой карте будут отклонены в то время. транзакции.Комиссия за отклоненные транзакции не взимается.

См. раздел «Как избежать овердрафта» ниже, чтобы узнать об услугах Wells Fargo, которые могут помочь вам управлять своим счетом и избегать отклоненных транзакций по дебетовой карте.

Добавление или удаление услуги овердрафта по дебетовой карте

Любой владелец счета, обладающий полномочиями по операциям с соответствующим текущим счетом, может добавить или удалить услугу, посетив банкомат Wells Fargo (выберите More Choices, Wells Fargo Services), через онлайн-банкинг, поговорив с банковскому отделению или по телефону 1-800-TO-WELLS (1-800-869-3557).Портфолио клиентов Wells Fargo звоните по телефону 1-800-742-4932, а бизнес-клиенты звонят по телефону 1-800-CALL-WELLS (1-800-225-5935).

Защита от отскока | Персональные кредиты для защиты от овердрафта

Защита от отказов предлагает защиту от возвращенных чеков и электронных транзакций из-за недостатка средств. Следующие типы транзакций могут быть защищены защитой от отказов.

  • Оплата чеков, дебетование ACH или другие запросы на снятие средств.
  • Операции с банкоматом или дебетовой картой.
  • Платежи, авторизованные клиентом.
  • Возврат неоплаченных товаров, сданных клиентом.
  • Депонирование предметов, которые в соответствии с Политикой наличия средств банка рассматриваются как еще не доступные или окончательно не оплаченные.

Пределы защиты от отказов зависят от типа вашей текущей учетной записи. За более подробной информацией обратитесь к специалисту по счетам.

Пределы защиты от отказов:

Бесплатная проверка Plus 500 долларов
Проверка образа жизни 1000 долларов
Процентный подшипник 1000 долларов
Проверка денежного рынка 1000 долларов
   
Бесплатная проверка бизнеса 500 долларов
Проверка бизнеса без процентов 500 долларов
Проверка наличия коммерческих процентов 500 долларов

Если вы используете защиту от отказов, с вашего счета будет взиматься плата в размере 30 долларов США за каждый пункт овердрафта, который мы оплачиваем, вплоть до вашего лимита защиты. Мы будем посылать вам уведомление каждый раз, когда ваши товары оплачиваются по овердрафту.

Счета с овердрафтом должны быть возвращены к положительному балансу в течение 20 дней после первого овердрафта. Невыполнение этого требования может привести к аннулированию ваших привилегий защиты от отказов.

Защита от отказов — это привилегия, предоставляемая клиентам, которые поддерживают учетную запись с хорошей репутацией. Мы не обязаны оплачивать какой-либо предмет, представленный к оплате, если на вашем счету недостаточно средств.Мы можем отказать вам в выплате овердрафта в любое время, даже если ранее мы уже выплачивали вам овердрафт.

Southwest Missouri Bank оставляет за собой право ограничить участие одним счетом на семью и прекратить использование этого продукта.

Позвоните намСообщите нам

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *