|
SPI клавиатура, SPI рессурс под N*8 кнопок! |
|
|
3 страниц
1 2 3 >
|
 |
Ответов
(1 - 35)
|
Jul 5 2006, 10:11
|
Участник

Группа: Новичок
Сообщений: 35
Регистрация: 4-07-06
Пользователь №: 18 578

|
Я делел аналогичное решение на 4 кнопки и 12 светодиодов (всего два регистра). Провод от кнопок завел на прерывание и сканировал только при возникновении оного. За счет этого паразитное мигание светодиодов было только в момент нажатия кнопки и очень ненадолго.
|
|
|
|
|
Jul 5 2006, 11:49
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
Может на данный предмет стоит пролистнуть книгу Шевкопляса "Микропроцессорные структуры и решения" Как работать с кнопками много решений при нехватке линий ввода/вывода P.S. Название книги мог немного переврать
|
|
|
|
|
Jul 5 2006, 13:17
|

Ambidexter
    
Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282

|
Цитата(Мур @ Jul 5 2006, 07:41)  В 1999 году, когда AVR только начинался боролись за каждую ножку. Как-то само собой получилось оригинальное решение на 8 кнопок. Идея понятна,-прогон унарного нолика по сдвиговому регистру. Поскольку аппаратно след нажатия собирается сам в регистре приёма,-программа предельно проста. Каждый это сделает легко, зная SPI...Ну а дальше 1533ИР31,-на 24 кнопки(как пример!) Удобно, что разъём под SPI программирование-это уже и под клаву... Отличная идея! Её можно распространить на использование матричных кнопок. Скажем, ставите второй столбец с кнопками (матрица 8 х 2) и мультиплексер на 2, который переключается с помощью SS. При необходимости, можно поставить мультиплексер, который переключается от фронта SS и т.п. Логика программы немного усложнится, конечно.
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Jul 6 2006, 07:18
|

Знающий
   
Группа: Свой
Сообщений: 815
Регистрация: 7-06-06
Из: Харьков
Пользователь №: 17 847

|
 ***Как-то само собой получилось ,говоришь???***(Сам себе!  )ХА! Для полноты картины уместно подробнее расписать. Смотрю, народ умняки гоняет, потому и решил ещё раз повторить, что тут главное ИДЕЯ! Стояли у меня для кормёжки катодов 4х семисегментных индикаторов пара ИР16(100мА!) на выходе SPI. Тут и ключи для перебора анодов...(Сразу предупреждаю, что в цикле сдвига все ключи отключаются,-подъём уровня на стыке между ИР16ми!!!) Как всегда заказчику захотелось шось нажать... В итоге доп резистор и диодики по числу кнопок. Програмка ненамного усложнилась, ну и индикаторы чуть туше стали. Вот так и было.... Ну а сейчас  у SPI появилась буферизация данных, регистры ТРIС595 от TI(для индикации) под боком. Ваяй!!! При SPI-буферизации можно сгородить последовательный тендем отдельно индикация и клава без вынужденного гашения на все 16 бит(0xfe+cod_indication)...В приёмнике---> 0xкод нажатия+хх Как говоритя,-нет предела совершенству!!! Понятно, что здесь задействуется не только SPI...
|
|
|
|
|
Jul 8 2006, 16:23
|
Участник

Группа: Свой
Сообщений: 56
Регистрация: 12-04-06
Из: Haifa
Пользователь №: 16 042

|
Это не SPI подключение, но тоже позволяет подключить 16 кнопок по 2 (3 с интераптом) проводам.
Эскизы прикрепленных изображений
|
|
|
|
|
Jul 8 2006, 20:33
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
zltigoЕсли не секрет, то сколько можно сделать кнопок? Цитата Кто меньше :-). Меньше будет на общей шине I2C через PCF8574 или PCF8575. Кто меньше?
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Jul 8 2006, 20:47
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(GetSmart @ Jul 8 2006, 23:33)  Если не секрет, то сколько можно сделать кнопок? Ну, например, на практически любом 12 битном до 256 кнопок (или их комбинаций) получится без особого напряга. Хватит? Цитата Меньше будет на общей шине I2C через PCF8574 или PCF8575. Кто меньше? Ну а I2C это _два_ провода, а если речь идет об расшаривании ресурса, то и ADC можно использовать для других целей в промежутках между разборками с кнопками. Дале следуют I/O чипы с OW интерфейсом...
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jul 8 2006, 21:05
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(zltigo @ Jul 9 2006, 02:47)  ...то и ADC можно использовать для других целей в промежутках между разборками с кнопками. Без коментариев :-). Пардон, всё-таки я не понял, как можно использовать один вход АЦП для подключения двух и более источников сигнала, при этом не задействуя ни одного дополнительного выхода проца? В I2C - легко!
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Jul 8 2006, 21:11
|
Профессионал
    
Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387

|
Цитата(GetSmart @ Jul 9 2006, 00:05)  Цитата(zltigo @ Jul 9 2006, 02:47)  ...то и ADC можно использовать для других целей в промежутках между разборками с кнопками.
Без коментариев :-). Пардон, всё-таки я не понял, как можно использовать один вход АЦП для подключения двух и более источников сигнала, при этом не задействуя ни одного дополнительного выхода проца? В I2C - легко! Учимся читать http://www.ustr.net/electronics/akeys.shtml
--------------------
aka Vit
|
|
|
|
|
Jul 8 2006, 21:12
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(GetSmart @ Jul 9 2006, 00:05)  Пардон, всё-таки я не понял, как можно использовать один вход АЦП для подключения двух и более источников сигнала, при этом не задействуя ни одного дополнительного выхода проца? Ну, например, источники сигнала разных уровней - полдиапазона на кнопки, полдиапазона на контроль батареи. Кроме того, почему вывод именно всегда AЦП? Можно, например, периодически использовать как выход и светодиодиком моргать.. А можно и OW интерфейсик эмулировать... Достаточно?
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jul 8 2006, 21:52
|
Профессионал
    
Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387

|
Цитата(GetSmart @ Jul 9 2006, 00:43)  sensor_ua, учитесь сами читать. Повторить вопрос? Может, Вам и показался мой тон резким, но где Ваш вопрос? Сколько кнопок на АЦП - пишу, а Вы не читаете - пример даю с расчётами на 9 кнопок. То, что Вы категорично заявили, что больше 8-и (к чему интересно?) не получить, опровергнуто. Если можете предложить что-либо для обсуждения, а не предлагать разбираться в Вашем непонимании, прошу
--------------------
aka Vit
|
|
|
|
|
Jul 8 2006, 22:09
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
sensor_uaМой вопрос понял zltigo, но не поняли Вы. Я не виноват. Что больше 8 кнопок можно я понял, но как это сделать в матрице R-2R я пока не догадался. Вашу схему посмотрел. Способна ли она обнаружить одновременное нажатие нескольких кнопок - пока не понял. Цитата Если можете предложить что-либо для обсуждения, а не предлагать разбираться в Вашем непонимании, прошу Я уже предложил клавиатуру на шине I2C. На общей шине. Что не требует ни одного дополнительного входа/выхода. Ещё один вопрос в посте #20 для zltigo.
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Jul 9 2006, 15:49
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(GetSmart @ Jul 9 2006, 01:09)  Я уже предложил клавиатуру на шине I2C. Обычное стандартно-лобовое решение к тому-же более затратное по ресурсам в случае если других I2C нафиг не надо. Да и по стоимости тоже не рекордное. А тут вроде больше как в сторону некоторых легких извращений разговор идет? Цитата Ещё один вопрос в посте #20 для zltigo. Да все просто - при ненажатых кнопках напряжение пропорционально напряжению питания, при нажатии фиксируется _резкое_ изменение оного и начинается разборки с определением нажатой кнопки.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jul 9 2006, 17:59
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(zltigo @ Jul 9 2006, 02:47)  Цитата(GetSmart @ Jul 8 2006, 23:33)  Если не секрет, то сколько можно сделать кнопок?
Ну, например, на практически любом 12 битном до 256 кнопок (или их комбинаций) получится без особого напряга. Хватит? Я извиняюсь что вмешиваюсь. Мне просто любопытно стало. А вы реальную клавиатуру хотя бы на 64 кнопки делали на таком принципе с 12 разрядным АЦП? Какой точности резисторы ставили? 0,1% и ТКС 25ppm/ºС достаточно для такого случая?
|
|
|
|
|
Jul 9 2006, 19:00
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(rezident @ Jul 9 2006, 20:59)  Я извиняюсь что вмешиваюсь. Мне просто любопытно стало. А вы реальную клавиатуру хотя бы на 64 кнопки делали на таком принципе с 12 разрядным АЦП? Какой точности резисторы ставили? 0,1% Не делал, поскольку сфера моей деятельности бесконечно далека от этого, правда очень близка и измерительным системам :-). Но это все незачем "делать", поскольку можно и посчитать. Если внимательно посмотрите, то я для большого количества кнопок предлагал классическую R-2R матрицу, что конечно не позволит использовать банальную кнопочную матрицу, но зато требования к точности резисторов и температурной стабильности (при 64 комбинациях - не кнопках! ) будут просто "никакие". Если нужно имено 64 кнопки, придется :-( добавить шифратор 64 кнопок в 6 бит.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jul 9 2006, 19:44
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(zltigo @ Jul 10 2006, 01:00)  Цитата(rezident @ Jul 9 2006, 20:59)  Я извиняюсь что вмешиваюсь. Мне просто любопытно стало. А вы реальную клавиатуру хотя бы на 64 кнопки делали на таком принципе с 12 разрядным АЦП? Какой точности резисторы ставили? 0,1%
Не делал, поскольку сфера моей деятельности бесконечно далека от этого, правда очень близка и измерительным системам :-). Но это все незачем "делать", поскольку можно и посчитать. Если внимательно посмотрите, то я для большого количества кнопок предлагал классическую R-2R матрицу, что конечно не позволит использовать банальную кнопочную матрицу, но зато требования к точности резисторов и температурной стабильности (при 64 комбинациях - не кнопках! ) будут просто "никакие". Если нужно имено 64 кнопки, придется :-( добавить шифратор 64 кнопок в 6 бит. Ага! Так все-таки 256 комбинаций, а не кнопок! А то я уж подумал, что мне мерещится  Помнится мы рассчитывали сколько датчиков (например, пожарных) подключенных по R-2R можно цеплять к каждому аналоговому каналу нашего контроллера и получили что при обычных 5% резисторах их может быть не более 8 (если я правильно помню, завтра уточню). Причем аналоговый канал контроллера калиброванный, с точностью измерения тока 0-20мА не хуже 0,05%. Естественно в расчет закладывали нестабильность питания которым запитывалась эта цепь датчиков.
|
|
|
|
|
Jul 9 2006, 21:25
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(GetSmart @ Jul 9 2006, 23:31)  Ну теперь ясно, почему я так и не догадался, как сделать больше 8-ми кнопок на R-2R Зато как на PCF8574 "догадались" - навесить чипов в "нужном" количестве... Цитата zltigo любит критиковать чужие идеи выставляя... Вы себе льстите, если я и _отмечал_, то отсутствие :-( идеи как таковой. И вообще "бурная" переписка началась с Вашей попытки в "удобных" условиях использования нескольких I2C устройств побить "рекорд" однопроводности. Цитата Теперь по поводу контроля питания. Где гарантия, что все клавиши будут отжатыми чтобы можно было померить это самое питание? Гарантии в том, что прежде чем делать нужно думать о том какое состояние будет основным. Цитата Почему это наличие I2C в устройстве является большЕй редкостью, чем наличие АЦП в процессоре? А где хоть слово про редкость в контроллере? А вот использование нескольких (для побития "рекорда" однопроводности ) I2C девайсов имеет уже много меньшую вероятнось. Цитата Когда появится объективность? Попробуйте спокойно перечитать переписку, возможно Вам удастся достичь объективности :-) в _своих_ взглядах на раздутую Вами ""ПРОБЛЕМУ"". P.S. Я ни в коем случае не настаиваю на использовании кем либо аналоговогого варианта клавиатуры, как и на неиспользовании любых других явных или нет решений для минималистичного подключения кнопок.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jul 9 2006, 21:39
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(zltigo) Зато как на PCF8574 "догадались" - навесить чипов в "нужном" количестве... Зачэм? На один чип можно поставить сразу стандартную матрицу. PCF8574 - квазидвунаправленная. Аналогично портам 51-ых процов. Одновременно и защита логических уровней для матрицы. Цитата А где хоть слово про редкость в контроллере? В самом первом посте про АЦП-клавиатуру. Цитата И вообще "бурная" переписка началась с Вашей попытки в "удобных" условиях использования нескольких I2C устройств побить "рекорд" однопроводности. И мне это почти удалось :-)
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Jul 9 2006, 21:46
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(GetSmart @ Jul 10 2006, 00:39)  Цитата А где хоть слово про редкость в контроллере? В самом первом посте про АЦП-клавиатуру. Ну просто ради справедливости привожу первый пост ЦЕЛИКОМ: Цитата ADC есть почти у всех. К нему его-же опорник через R/2R резисторную матрицу и все это ОДИН вывод. Кто меньше :-). Нету там букв I2C. И "критики" чьих-либо идей нет. Совсем нет.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jul 10 2006, 09:09
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Мур @ Jul 10 2006, 10:51)  ВАУ!!! Какие страсти кипят!... Мне нравятся оба варианта и конечно выбрал бы какой-то под определённый расклад рессурса в конкрктной задаче, И это правильно!!! Цитата АЦП ущербен при одновременном нащатии нескольких клавиш Смотря, как делать. При массовых ADC и количестве кнопок 8..9 ну до 10 Можно и все комбинации получить. Cоответственно возможны и комбинированные (максимально приближенные к реальности) варианты, когда распознавть комбинации только нескольких кнопок с остальными.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jul 10 2006, 16:44
|
Участник

Группа: Свой
Сообщений: 48
Регистрация: 5-11-04
Пользователь №: 1 053

|
Какой R-2R на кнопках, что за бред.
Весь смысл работы R2-R заключается в том. что ряд входов притянуты к 0, а ряд входов к питанию. Как вы на обычной тактовой кнопке сделаете безразрывное переключение с 0 до Uпит ?
|
|
|
|
|
Jul 10 2006, 17:16
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(lazycamel @ Jul 10 2006, 19:44)  Как вы на обычной тактовой кнопке сделаете безразрывное переключение с 0 до Uпит ? 1.Кнопки разные бывают. 2.Можно и не городить из дискретов матрицу а взять интегральную в комплекте с ключами. 3.Собственно такая матрица эффективна при необходимости комбинаций кнопок и не является единственно возможным решением. Думать и выбирать надо. 4.Безразрывность ни нафиг не нужна - все покроет механизм защиты от дребезга.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|