Аппаратное подавление дребезга CD, DSR, CTS в RS-232 - имеет ли место быть?

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем Megakoteyka, 9 окт 2013.

  1. Megakoteyka

    Megakoteyka Оракул Модератор

    Сижу на работе, никого не трогаю, примус починяю ваяю тройку аппаратных кнопок для ПК, подключаемых к COM-порту.
    Программно ставлю в высокий уровень DTR и RTS, первый через кнопку повешен на CD (Carrier Detect), второй через 2 кнопки на DSR и CTS соответственно. Поначалу хотел еще использовать RI, но он, собака, только на передний фронт срабатывает, что для меня категорически неприемлемо.
    При нажатии тактовых кнопок Винды генерят соответствующие события изменения состояния пинов, которые я ловлю в программе (SerialPort.PinChanged в .Net). Причем ни разу не ловил нескольких событий за одно нажатие. А сейчас подключил осцилограф и увидел, что дребезг иногда все же есть, но программа его не видит.
    В связи с этим назрел вопрос к знатокам: в ПК где-то есть аппаратная или (о, ужас!) программная давилка дребезга на данных сигналах? Или причина такого поведения в чем-то еще и мне пока просто везло?
     
  2. roggedhorse

    roggedhorse Гик

    :)
    Вам же эту задачу на 328-ой меге решить - раз плюнуть.
    ИМХО, аппаратное подавление дребезга в цифровых трактах вряд ли присутствует.
     
    Nickstalker нравится это.
  3. Nickstalker

    Nickstalker Нерд

    Возможно где-то на входе стоит компаратор, причем "подвешенный" не к земле а к, предположим, половине напряжения питания?
    P.S.: Спасибо, не знал, что SerialPort.PinChanged (и SerialPort вообще) реагирует на RS-232.
     
  4. Megakoteyka

    Megakoteyka Оракул Модератор

    :D
    Там просто кнопки, которые вешаются напрямую на порт (через кабель, конечно), контроллер туда пихать - как микроскопом по гвоздям :)
    Дребезг в итоге словил - в момент отпускания кнопок. Когда вместо кнопок поставлю нормальную педаль - обязательно словлю еще и в момент нажатия.
    Можно и программно под виндами задачу решить, но не считаю хорошим тоном обрабатывать прерывания, которых не должно возникать по определению.
    Курю построение RS-триггера на логических элементах - чтобы спортивнее было :D
     
    Последнее редактирование: 12 окт 2013
    Nickstalker нравится это.
  5. Megakoteyka

    Megakoteyka Оракул Модератор

    Всегда пожалуйста. Только придется дернуть Invoke() из обработчика PinChanged или DataReceived, чтобы событие на форме отобразить - обработчик из своего собственного потока вызывается, а мы знаем, чем это чревато под виндами :)
    Потому и использую .Net + C# - можно не писать пару экранов кода, а получить требуемое несколькими строками, сосредоточившись на решении задачи и не теряя лишнего времени :)
     
    Nickstalker нравится это.
  6. lerik2703

    lerik2703 Гик

    а что с конденсаторами ни как?
     
  7. Megakoteyka

    Megakoteyka Оракул Модератор

    Отсюда
    Я и на работе у спецов интересовался - они согласны.
    К тому же триггер интересней, как ни крути :)
     
  8. roggedhorse

    roggedhorse Гик

    Nickstalker и Megakoteyka нравится это.
  9. Megakoteyka

    Megakoteyka Оракул Модератор

    Спасибо. А я курю http://www.radioman.ru/teoria/1/mop_drebezg.php, там на всех схемах резисторы висят.
    Что это дает? Просто ток ограничивают или смысл более глубокий?
     
  10. roggedhorse

    roggedhorse Гик

    я делал на 155-ой серии (ТТЛ)
    а в вашем мане 561-я - это КМОП
    если я не ошибаюсь, входы КМОП не любят "висячего" положения, поэтому их подтягивают к чему-нибудь
     
  11. Megakoteyka

    Megakoteyka Оракул Модератор

    Я давеча в Амперке купил парочку CD4011BE (которые там значатся как "микросхема булевой логики").
    Погуглил, Чип и Дип сказал: "CMOS Quad 2-Input NAND Gate PDIP14 (КР1561ЛА7)". Стало быть, КМОП.
    Я правильно понимаю, что схемы с рис. 1.2 а) и рис. 1.2 б) отсюда различаются только подтяжкой к питанию и к земле и можно выбирать любую, тупо исходя из удобства разводки?
     
    Nickstalker нравится это.
  12. Nickstalker

    Nickstalker Нерд

    Если я не ошибаюсь, то по сути да.
     
  13. Nickstalker

    Nickstalker Нерд

    Можно попытаться спаять нечто на подобии сего:
    filtr.PNG
    Внимание!!! Элементы указаны без учёта ВАШИХ требований - так как эта схема изначально использовалась для подавления шумов в совершенно другой системе.
    P.S. Извиняюсь- второй оу подключон к 'верхнему' выводу кондера!!!
     
    Последнее редактирование: 15 окт 2013
  14. Megakoteyka

    Megakoteyka Оракул Модератор

    Я рисую в SprintLayout триггер на микросхеме CD4011BE, но все время получается лажа какая-то. Схемотехник из меня никакой :)
     
  15. Nickstalker

    Nickstalker Нерд

    Не расстраивайтесь!!!
     
  16. Megakoteyka

    Megakoteyka Оракул Модератор

    А я не расстраиваюсь, я продолжаю пытаться, когда свободная минутка выдается :)
     
  17. Megakoteyka

    Megakoteyka Оракул Модератор

    roggedhorse, а как быть, если кнопка тактовая?
    Все схемы, какие нашел, сделаны под кнопку с переключающимися контактами.
    Для обычной тактовой кнопки решение на триггере существует? Я окончательно запутался :)
     
  18. roggedhorse

    roggedhorse Гик