Easyelectronics.ru

Электроника для всех
Текущее время: 24 сен 2020, 20:55

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
 Заголовок сообщения: Сенсорная кливиатура на MCS-51
СообщениеДобавлено: 04 мар 2015, 02:24 
Старожил
Аватара пользователя

Зарегистрирован: 11 апр 2014, 13:25
Сообщения: 982
Откуда: Earth
Доброго времени суток. Возможно ли сделать сенсорную клавиатуру на микроконтроллерах данной архитектуры. Почему так ставлю воппрос? Потому что по AVR нарыл кучу примеров, даже на Бейсике и Алгоритм Билдере, а вот на MCS-51 ни одного.
Вот найденый алгоритм для AVR:
1. Порт ножки переводится на вывод (1 -> DDRxn) и сбрасывается в ноль (0 -> PORTxn);
2. Порт ножки переводится на ввод, в высокоимпедансное Z-состояние (0 -> DDRxn). Так как до этого на ножке был ноль, а элементы электрической цепи ножки имеют определенную емкость, то начинается процесс заряда этой емкости через внешний резистор подтяжки;
3. С момента переключения ножки на ввод начинается отсчет времени с контролем состояния ножки (PINxn), как только на ножке появилась единица (PINxn = 1) – останавливается счетчик;
4. Полученное значение счетчика и есть емкость ножки в относительных единицах. По величине этого значения и можно судить о том есть ли прикосновение к сенсору или нет.

Как я вычитал, порты в MCS-51 квазидвунаправленые, и по сути всегда настроены на выход, просто подтяжка к + у них сделана более слабой, и потому ее легко можно пересилить, и считать, что же на самом деле пришло на вход. Но она (эта подтяжка) неоключаемая, и сопротивление резисторов на порядок меньше нужных мне 1 мОм. Только порт Р0 не имеет внутренных резисторов на + (и можно влепить внешние нужного номинала). Получаеться, я только на него могу повесить сенсорные клавиши, остальные порты в пролете ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сенсорная кливиатура на MCS-51
СообщениеДобавлено: 04 мар 2015, 03:39 
Старожил
Аватара пользователя

Зарегистрирован: 30 янв 2010, 01:03
Сообщения: 650
Откуда: Херсон
Похоже на то.

_________________
Если руки золотые, то не важно с какого места они растут.
Изображение
Изображение


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сенсорная кливиатура на MCS-51
СообщениеДобавлено: 04 мар 2015, 14:39 
Старожил
Аватара пользователя

Зарегистрирован: 28 янв 2010, 11:56
Сообщения: 3958
Откуда: Винница
Есть масса МК с 51 архитектурой, имеющих на борту соответствующий узел ("capacitive sense").
http://www.silabs.com/products/mcu/Page ... rface.aspx

_________________
Китайская комплектация - европейское качество!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сенсорная кливиатура на MCS-51
СообщениеДобавлено: 04 мар 2015, 17:08 
Старожил
Аватара пользователя

Зарегистрирован: 11 апр 2014, 13:25
Сообщения: 982
Откуда: Earth
Katz писал(а):
...

Мне просто жалко для таких вспомогательных целей (выносной блок клаватуры) крутой контроллер гробить. Я бы и на базе простого AVR бы уже склепал (готовых проектов хватает), так просто хочу это барахло (АТ89S52) применить. Видимо придеться для экономии пробовать делать 8 сенсорных клавиш, а остальные - обычные тактовые кнопки ставить.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сенсорная кливиатура на MCS-51
СообщениеДобавлено: 04 мар 2015, 18:22 
Старожил
Аватара пользователя

Зарегистрирован: 28 янв 2010, 11:56
Сообщения: 3958
Откуда: Винница
Ну если S52, то да. :)
А те контроллеры по цене сопоставимы с AVR-ками. Например: http://www.findchips.com/search/C8051F990

_________________
Китайская комплектация - европейское качество!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сенсорная кливиатура на MCS-51
СообщениеДобавлено: 27 авг 2015, 23:55 
Старожил
Аватара пользователя

Зарегистрирован: 11 апр 2014, 13:25
Сообщения: 982
Откуда: Earth
Доброго времени суток. Опять я со своими MCS-51. Наверное это стоило запостить в "Алгоритмы", но раз уж есть эта тема, то решил сюда.
Немного подумав, решил сделать немного другой алгоритм, и прежде чем пытаться травить макет (все равно сейчас в отъезде) решил спросить, будет ли оно вообще работать. Новый алгоритм таков:
1. Тупо весь порт сажать в ноль, потом 1 ноп для устаканивания, потом поднимаем весь порт, и запускаем таймер.
2. Так как нажатый сенсор все равно зарядиться последним, то первые 7 мы тупо пропускаем, а вот на последнем 8 останавливаем таймер и сравниваем его с предварительно калиброваным значением, если такое же (или меньше), то не было нажатия, а если больше, то было.
3. Ну а там дальше понятно, обработка факта нажатия, присвоение кода клавиши и т.д.

Будет ли работать такой алгоритм ?
В коде вот что получилось:
Show


П.С. Кстатии, а по-русски как правильно читается: МКС-51 или МЦС-51 ???


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сенсорная кливиатура на MCS-51
СообщениеДобавлено: 28 авг 2015, 02:04 
Старожил
Аватара пользователя

Зарегистрирован: 28 дек 2011, 11:24
Сообщения: 4335
Откуда: г. Липецк
Gnusmas писал(а):
...П.С. Кстатии, а по-русски как правильно читается: МКС-51 или МЦС-51 ???

Мне встречалась такая транскрипция - Micro Controler System, а уж как перевести, решайте сами...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сенсорная кливиатура на MCS-51
СообщениеДобавлено: 28 авг 2015, 16:05 
Заглядывает иногда

Зарегистрирован: 10 май 2011, 12:39
Сообщения: 73
Откуда: Ижевск
Gnusmas писал(а):
Будет ли работать такой алгоритм ?

Никто не мешает проверить в железе.
ЭмСиЭс.

Про АВР. Делал настройку порта на ввод. Периодически опрашивал. (От пальца идут наводки.) За определенный кусок времени подсчет "1". Если количество более N, то принимаем решение о прикосновении. Один минус - при питании от батарейки система не работает.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сенсорная кливиатура на MCS-51
СообщениеДобавлено: 25 сен 2015, 22:45 
Старожил
Аватара пользователя

Зарегистрирован: 11 апр 2014, 13:25
Сообщения: 982
Откуда: Earth
Дошли руки вытравить платку под это дело, а также написать свой алгортм на ассемблере. Но оно не взлетело. Ну не то что чтобы совсем не взлетело, но летит оно как-то криво и очень низко. Короче при касании разных сенсоров по UART шлется мусор из разных комбинаций "E0" и "00" (хотя должен слатся ASCII код символа). Подозреваю что это из-за того, что UART написан без применения прерываний, просто на основе анализа флагов TI/RI. Если касания нет, мусор не шлется, то есть сам факт касания распознается (прада пока только при непосредственном контакте к площадкам, или при наличии очень тонкой изолирующей прокладки. С обратной стороны, через текстолит реагировать не хочет).
Код (только модуля клавиатуры, основной цикл и юарт в отдельных модулях):
Show


Вложения:
Комментарий к файлу: Лут не совсем удался
100_46051.jpg
100_46051.jpg [ 211.29 Кб | Просмотров: 4651 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сенсорная кливиатура на MCS-51
СообщениеДобавлено: 26 сен 2015, 13:20 
Старожил
Аватара пользователя

Зарегистрирован: 28 дек 2011, 11:24
Сообщения: 4335
Откуда: г. Липецк
Сенсоры похожи на обычные пятачки для нажимных кнопок, рядом проходят сигнальные дорожки. Их бы окружить кольцом из земляного полигона. ИМХО.
P.S. Сенсорных клавиатур делать не приходилось...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сенсорная кливиатура на MCS-51
СообщениеДобавлено: 26 сен 2015, 14:33 
Старожил
Аватара пользователя

Зарегистрирован: 11 апр 2014, 13:25
Сообщения: 982
Откуда: Earth
Хорошая мысль, надо будет попробовать. Я ориентировалкся на такую конструкцию. Просто это опять плату новую травить, а у меня с этим проблемы, так что это будет не скоро.


Вложения:
061-make-sense-touch-key.jpg
061-make-sense-touch-key.jpg [ 23.62 Кб | Просмотров: 4580 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сенсорная кливиатура на MCS-51
СообщениеДобавлено: 26 сен 2015, 17:00 
Старожил
Аватара пользователя

Зарегистрирован: 11 апр 2014, 13:25
Сообщения: 982
Откуда: Earth
Оно работает. Дело было не в бобине. Это я скорость юарта неправильно настроил. Пока проблема в том, что сенсоры нестабильно отрабатывают нажатие (держишь палец - нет символа, и тут вдруг бац, и 2-3 символа проскочило) + надо фактически прикасатся к сенсорам (низкая чувствительность). Но начало положено))


Последний раз редактировалось Gnusmas 26 сен 2015, 18:49, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сенсорная кливиатура на MCS-51
СообщениеДобавлено: 26 сен 2015, 17:04 
Старожил
Аватара пользователя

Зарегистрирован: 28 дек 2011, 11:24
Сообщения: 4335
Откуда: г. Липецк
У Silabs есть аппноты для расчета сенсорной клавиатуры для собственных камней MCS-51.
AN367-Руководство по определению соотношения сигнал/шум и выбору требуемого порога срабатывания при разработке сенсорных клавиатур (Understanding Capacitive Sensing signal to noise ratios and setting reliable thresholds)
AN376-Описание эффективности типовых методик защиты от статического электричества при разработке сенсорных клавиатур (Effects of ESD Protection Devices on Capacitive Sensing Performance
AN447-Руководство по дизайну кнопок для реализации сенсорных клавиатур на базе микроконтроллеров C8051F70x/71x и C8051F80x-83x (Printed Circuit Design Notes for Capacitive Sensing with the CS0 Module)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сенсорная кливиатура на MCS-51
СообщениеДобавлено: 26 сен 2015, 17:22 
Старожил
Аватара пользователя

Зарегистрирован: 11 апр 2014, 13:25
Сообщения: 982
Откуда: Earth
anakost писал(а):
У Silabs есть ...

Вау, за последний документ особенное спасибо. Мне кажется, что если я все сделаю по тем рекомендациям, все параметры должны улучшится)))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сенсорная кливиатура на MCS-51
СообщениеДобавлено: 26 сен 2015, 17:42 
Старожил
Аватара пользователя

Зарегистрирован: 28 дек 2011, 11:24
Сообщения: 4335
Откуда: г. Липецк
Правильнее, на мой взляд, переделать логику фиксации срабатывания не на касание сенсора, а на его отпускание. Т.е. регистрируем касание (запускаем счетчик), в течении 200-300мс его подтверждаем (если помеха, сбрасываем счетчик), реагируем на отпускание (счетчик досчитал и входной сигнал пропал).


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 15 ] 


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB