Всем доброго времени суток!
Имеется проблема следующего содержания с мультиплексором серии 4051.
Есть задача изменить алгоритм работы старой электронной пишушей машинки. В разрыв клавиатуры (матричная, 8х8) и собственных мозгов машинки решено было поставить контроллер. Для отладки используется плата Ардуино Мега 2560.
С чтением клавиатуры проблем нет, замыкания пар ног считываются отлично, а вот с имитацией замыкания тех же пар через контроллер беда выходит.
Я использую 2 мультиплексора: первый 8 в 1, второй 1 в 8. Выход первого соединен с входом второго.
Алгоритм следующий:
Допустим необходимо замкнуть 5 ногу одного шлейфа и 3 ногу другого.
1) выключаем мультиплексоры (выводы Inh = 1)
2) на выводы А В С пишем соответствующие уровни
3) включаем мультиплексоры (выводы Inh = 0)
При этом машинка печатает не одну букву, а 2-3, включая соседние (которые сидят на парах 5-2 или 4-3 ).
Задержки между пунктами 1-3 не помогают, в чем может быть проблема? Помогите, вроде пустяковая задача, а с товарищем весь день сегодня провозились. Прямое замыкание пар ног машинка воспринимает адекватно. Сопротивление между выводами клавиатуры порядка 200 Ом, Сопротивление замкнутых пар мультиплексора примерно 100 Ом. Какие могут быть тонкости еще?
Ссылка на даташит: http://lib.chipdip.ru/248/DOC000248632.pdf
Спасибо!
Проблема с мультиплексором 4051
- Реклама
Re: Проблема с мультиплексором 4051
1) Каковы уровни напряжений на выводах клавиатуры, к которым подключаются выводы 4051?
2) Соединен ли общий провод электроники пишущей машинки с общим проводом Вашего контроллера?
3) Как запитана м/сх 4051, в том числе ее ножка 7 (Vee)?
2) Соединен ли общий провод электроники пишущей машинки с общим проводом Вашего контроллера?
3) Как запитана м/сх 4051, в том числе ее ножка 7 (Vee)?
Re: Проблема с мультиплексором 4051
1) Уровни напряжений порядка 0,17В
2) Да, конечно. земля платы, контроллера и мультльтиплексора объединены.
3) Vee на землю, тк коммутируется однополярное напряжение. А запитана с блока питания, общего с контроллером. 5 вольт
2) Да, конечно. земля платы, контроллера и мультльтиплексора объединены.
3) Vee на землю, тк коммутируется однополярное напряжение. А запитана с блока питания, общего с контроллером. 5 вольт
Re: Проблема с мультиплексором 4051
Больше всего интересует каким образом происходит выбор конкретной ноги у мультиплексора? Такое чувство, что перед тем, как замкнуть нужную, он пробегает по всем предыдущим. Пусть по наносекунде на каждую, но некоторые успевают "щелкнуть" кнопку.
Re: Проблема с мультиплексором 4051
По поводу уровней напряжения "порядка 0,17В" не совсем понятно. По идее, должно быть хотя бы два разных уровня: при разомкнутой кнопке и при замкнутой. Обычно при постоении матричной клавиатуры ряды/столбцы подтягиваются резисторами или к питанию, или к общему проводу. Тут главное, чтобы напряжение питания электроники пишущей машинки не было больше чем питание Вашего контроллера и в частности микросхемы 4051.
По поводу "замыкания" каналов мультиплексора. Если на входах выбора канала (A, B, C) нужная комбинация устанавливается не одновременно на всех входах, а побитно (зависит от того, как это реализовано в программе), то действительно может включение "пробегать" по нескольким каналам. Но это будет только если подан разрешающий (низкий) уровень на вход Inh. Но при таком алгоритме, как Вы описали в первом сообщении - такого быть не должно. Перепроверьте еще раз, что в момент переключения уровней на A, B, C на входе Inh стабильно удерживается высокий уровень. А также неизменность уровней на A, B, C на протяжении всей длительности имитации замыкания (т.е. пока Inh=0).
На наносекундное и даже микросекундное замыкание выводов клавиатуры пишущая машинка не должна реагировать. Если она работала с механической клавиатурой, то наверняка в ней предусмотрено "подавление дребезга контактов", которое как раз и предназначено для предотвращения срабатывания от слишком коротких "замыканий".
По поводу "замыкания" каналов мультиплексора. Если на входах выбора канала (A, B, C) нужная комбинация устанавливается не одновременно на всех входах, а побитно (зависит от того, как это реализовано в программе), то действительно может включение "пробегать" по нескольким каналам. Но это будет только если подан разрешающий (низкий) уровень на вход Inh. Но при таком алгоритме, как Вы описали в первом сообщении - такого быть не должно. Перепроверьте еще раз, что в момент переключения уровней на A, B, C на входе Inh стабильно удерживается высокий уровень. А также неизменность уровней на A, B, C на протяжении всей длительности имитации замыкания (т.е. пока Inh=0).
На наносекундное и даже микросекундное замыкание выводов клавиатуры пишущая машинка не должна реагировать. Если она работала с механической клавиатурой, то наверняка в ней предусмотрено "подавление дребезга контактов", которое как раз и предназначено для предотвращения срабатывания от слишком коротких "замыканий".
- Реклама

