Страница 1 из 1
конфигурация ds2408 для опроса клавиатуры
Добавлено: Ср июн 27, 2012 17:38:31
maloicds
Добрый день. Помогите сконфигурировать микросхему для получения значения нажатой кнопки на клавиатуре (3x4). Схема собрана из даташита.
Для получения значения в режиме 8ми канального ключа использую следущий алгоритм:
Код: Выделить всё
tx reset
rx presence
tx $CC Issue Skip ROM command (микросхема одна на линии)
tx $CC Issue Write Conditional Search Register command
tx $8D TA1, target address = 8Dh
tx $00 TA2, target address = 008Dh
tx $04 Write byte to Control/Status Register
tx reset
rx precence
tx $CC Issue Skip ROM command
tx $F5 Issue Channel-access Read command
rx значение
tx reset
где tx-передача, rx-приём.
Re: конфигурация ds2408 для опроса клавиатуры
Добавлено: Чт июн 28, 2012 07:13:50
Ser60
Опять эта DS-ка

Одним чтением байта из нее вы нажатую кнопку не идентифицируете. Если схема с Fig. 20, то нужно подавать 0 на один из выводов P4 - P7 и читать значения P0 - P3. Там где будет 0 - та кнопка и нажата. У меня сложилось впечатление, что Вы никогда еще не занимались сканированием клавиатуры. Если так, почитайте тогда для начала литературу по принципам сканирования, тогда будет ясно что в ДС-ку засылать и принимать. Например, здесь:
http://easyelectronics.ru/matrichnaya-klaviatura.html
Re: конфигурация ds2408 для опроса клавиатуры
Добавлено: Чт июн 28, 2012 10:18:48
Minor/2
Re: конфигурация ds2408 для опроса клавиатуры
Добавлено: Чт июн 28, 2012 13:45:27
maloicds
Схема из fig.20. Про сканирование клавиатур есть небольшие знания, у меня вопрос в большей части про конфиг ds.
Есть статья
http://www.rlocman.ru/shem/schematics.html?di=106270 и там описывается конфиг для Conditional Search. Я же хочу сделать это простым обращением к клавиатуре (понятно что придётся сканировать кнопки) с возможностью работы в режиме защёлки.
Re: конфигурация ds2408 для опроса клавиатуры
Добавлено: Чт июн 28, 2012 14:54:19
maloicds
Немного поразмыслив

родилась другая идея.
На мк пишем прошивку, которая будет заниматься сканированием кнопок. При нажатии какой либо кнопки на выходе другого порта устанавливается двоичное значение кода нажатой кнопки, например 00011000 (как шифратор). Эти выходы соединяем с P0-P3 ds'ки. Теперь при считывании инфы с ds мы будем знать код нажатой нопки. Думаю ещё одну ногу мк и ds задействовать для сброса значений с порта мк.
Нажали кнопку - значение стоит на выходе порта мк (тем самым мы будем знать это значение в любое время при обращении к ds, например раз в 5 сек).
Обратились к ds - считали P0-P3 (код кнопки).
Записали, например 0 в P4 ds, тем самым сбросили данные с порта мк.
Ждём следующее нажатие.
Какие мысли по этому поводу?
p.s. Работу с 1-wire осуществляет программа на delphi. Помимо клавиатуры есть ещё куча устройств, которые тоже необходимо опрашивать. А заставить ds'ку сканировать клавиатуру думаю нет смысла да и вся сеть будет занята только опросом этой клавиатуры.
Re: конфигурация ds2408 для опроса клавиатуры
Добавлено: Чт июн 28, 2012 17:26:58
Ser60
Согласен - очень разумное решение. Знаете-ли Вы какой-либо МК, где есть аппаратный драйвер интерфейса 1-wire?
Re: конфигурация ds2408 для опроса клавиатуры
Добавлено: Чт июн 28, 2012 17:30:23
maloicds
На сколько я знаю в любом можно реализовать программно, но вот аппаратно....... Да и зачем?
Re: конфигурация ds2408 для опроса клавиатуры
Добавлено: Чт июн 28, 2012 17:53:42
Ser60
По разным причинам. Например, при программной реализации задействуется лишком много вычислительных ресурсов, что неблагопрятно сказывается на токопотреблении - процессору надо быть включенным гораздо больше, чем в случае аппаратного драйвера.
Кстати, помню Вы упоминали, что используете 1-wire потому что делаете разводку телефонным кабелем. Вы имели в виду "лапшу"? Спрашиваю, потому что современный телефонный кабель имеет 4 жилы. На накой и I2C повесить можно.
Re: конфигурация ds2408 для опроса клавиатуры
Добавлено: Чт июн 28, 2012 18:14:06
maloicds
Такой мк мне незнаком.
Сейчас у меня всё прекрасно работает на usb-uart-1wire, а через свою программу "я говорю кому что делать и кого спрашивать". Единственный минус это пока не удалось заставить сеть работать в режиме overdrive (142кб\с) и поэтому вывод информации на LCD 4x20 занимает аж 10 секунд

Думаю что проблема кроется в моём мастере, который отказывается работать на такой скорости. Позже планирую перейти на ds2490.
Насчёт кабеля.
Да, я использую телефонный кабель (4 жилы) и они все задействованы: gnd, +5v, +12v, 1w.
Насчёт i2c. Я не уверен что i2c сможет работать на большом расстоянии да и топология сети у меня не заявленная dallas'ом линия, а что то похожее на древовидную структуру.
Re: конфигурация ds2408 для опроса клавиатуры
Добавлено: Чт июн 28, 2012 19:59:08
Ser60
Может лучше было-бы вместо телефонного кабеля использовать "витую пару" с 8 жилами? Конечно, дороже, но по ней и скорости большей добиться через тот-же I2C (пусть даже с топологией дерева) или CAN. Хотя, если провода проложены может уже поздно.
Re: конфигурация ds2408 для опроса клавиатуры
Добавлено: Чт июн 28, 2012 20:14:42
maloicds
Витая соединяет хаб-хаб, всё остальное 4 жилы. В своё время рассматривал все протоколы и решил остановится на 1w. В каждом случае есть свои плюсы и минусы. Пока всё устраивает за исключением 1w-LCD. У людей есть готовые решения с LCD и выводом текста за 1.5с но с мастером DS9490R. Так что есть к чему двигаться
Ser60 спасибо за советы!
Re: конфигурация ds2408 для опроса клавиатуры
Добавлено: Сб июн 30, 2012 14:22:57
coredumped
Если линия достаточно длинная (десятки метров), я применил бы RS485 - драйвер копеечный, UART в большинстве контроллеров имеется, и не требуется уже упомянутых выше ресурсов процессора и программных танцев с 1-wire. Если все "вертится" в одном корпусе - I2C отличный выбор, опять-же с целью экономии ресурсов. UART и TWI(I2C) имеют прерывания, и при правильном драйвере не требует бизи-лупов и прочих блевотных приемов. Я думаю, 1-wire есть смысл использовать только в случае, если других вариантов нет.
И еще у Maxim имеются микросхемки - конвертеры 1-wire в I2C, например DS2482 - подключается к МК по I2C, и имеет 1 порт 1-wire master. Есть подобные чипы и на 8 1-wire шин. Это, для тех, кто не хочет долбаться с программным 1-wire

Re: конфигурация ds2408 для опроса клавиатуры
Добавлено: Сб июн 30, 2012 14:28:23
maloicds
coredumped спасибо за советы, но я уже сделал свой выбор в пользу 1-wire.