Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Период (частота) опроса iButton
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Интерфейсы
Baser
Кто работал с Далласовскими ключами на iButton, подскажите,

какой оптимальный период (частоту) опроса iButton выбрать?

- с одной стороны хочется, чтобы пользователей не напрягала процедура (чтобы ждать не нужно было, прикоснулся и готово);

- с другой стороны хочется, чтобы было как можно реже, чтобы не нагружать процессор (эта задача - микроскопическая часть всего, что на нем крутится).

Что-то я не натыкался в аппликейшенах на подобные рекомендации.
Палыч
Цитата(Baser @ Oct 16 2008, 19:15) *
...какой оптимальный период (частоту) опроса iButton выбрать?...чтобы ждать не нужно было, прикоснулся и готово...
Про какой период опроса идет речь? Как этот период может влиять на время чтения информации? Если Вы желаете отлавливать импульс присутствия, то это можно сделать и аппаратно. Тогда контроллер будет загружен работой с iButton только, собственно, при чтении значения ключа.
WEST128
Чтобы пользователей не видели инерционности работы устройства, частота опроса должна быть порядка 20 Гц. В принципе, такой период опроса нужен для опознавания устройства, там нужно сформировать импульс (нулевой) длиной около 1 мс, а потом отловить импульс присутствия, который будет от 15 до 65 мкс после окончания первого, что отлично делается по прерыванию + таймер. Длина первого импульса не критична, можно и 10 мс, и 100, и больше. Даже на AVR

Чтобы пользователей не видели инерционности работы устройства, частота опроса должна быть порядка 20 Гц. В принципе, такой период опроса нужен для опознавания устройства, там нужно сформировать импульс (нулевой) длиной около 1 мс, а потом отловить импульс присутствия, который будет от 15 до 65 мкс после окончания первого, что отлично делается по прерыванию + таймер. Длина первого импульса не критична, можно и 10 мс, и 100, и больше. Даже на AVR это займет ничтожное количество времени при нормальной реализации, не более 1%.
Палыч
Цитата(WEST128 @ Oct 17 2008, 12:10) *
Чтобы пользователей не видели инерционности работы устройства, частота опроса должна быть порядка 20 Гц.
Следует помнить, что iButton выдаст импульс присутствия самостоятельно сразу же после того, как пользователь соединит его с контактами считывателя. Этот момент в документации опущен. Хотя понятно, что раз на пластинах таблетки нет напряжения в течении долгого времени - iButton воспринимает это так же как импульс сброса, и при появлении напряжения соответственно реагирует импульсом присутствия. Очень удобно завести линию на ногу INTx и не заморачиваться с периодическим опросом - нужно лишь аппаратно отлавливать импульс присутствия, который iButton сформирует при подключении к контактам. Ну, а уж потом - reset pulse, presence pulse и т.д.
Baser
Спасибо за ответы. Про импульс присутствия, который выдает iButton после подключения к шине, я совсем не подумал. Работал только с постоянно подключенными датчиками температуры. В даташитах этот вопрос прямиком тоже не описан.

Однако порылся в апликейшенах и нашел описание этого процесса:
App Note 937: Book of iButton Standards
стр.5 глава C.Sinchronization,
стр.38 глава D.Presence Detect

Но оказалось, что не все так хорошо, как пишут в описаниях. Есть и то, что сначала не получилось.
В частности, есть DS1990A и DS1990R. В первой выдача импульса присутствия после подачи напряжения не получилась (не гарантируется):
Цитата
Note 14: Presence pulse is guaranteed only after a preceding Reset Pulse (tRSTL).

Далласу пришлось делать улучшенную модель DS1990R, где этот дефект устранен:
Код
SPECIAL FEATURES:
Upgrade of DS1990A Guarantees Presence Pulse on Contact
In applications where a presence pulse on contact is critical the DS1990R should be preferred over the DS1990A.
Presence Detector Acknowledges when Reader First Applies Voltage
Note 13: Presence pulse after POR is guaranteed by design, not production tested.


Так что "теперь я вся в сомнениях". Нога у меня сейчас под прием 1-Wire задействована без прерывания, нужно передвигать. Да и неизвестно, какие iButton-ы будет применять конечный потребитель. Хотя можно написать в документации, что "работа с DS1990A не гарантируется".
Такие вот пироги.
WEST128
Если вам нужно просто следать устройство "для отмашки от начальства", то можете написать, что будет работать только с новыми приборами (с суффиксом R), а если вы заинтересованы в том, чтобы его продавать - лучше делать универсальным, тем более цена вопроса копеечная - дергать ногу контроллера (по таймеру или еще как), и ловить импульс присутствия.
Палыч
Цитата(Baser @ Oct 18 2008, 23:41) *
Есть и то, что сначала не получилось.
В частности, есть DS1990A и DS1990R. В первой выдача импульса присутствия после подачи напряжения не получилась (не гарантируется)
Чёрт его знает - насколько выдача импульса не гарантируется. Используются таблетки с буковкой А уже много лет - без нареканий...
Baser
Сделал по опросу в главном цикле 10 раз в секунду (100 мс период). Работает как часы. Никаких прерываний, обычная ножка.
Пробовал в два раза чаще - 20 раз в секунду - никакой разницы не заметил. При 100 мс также четко читает в одно касание.
WEST128
Если все ваши прерывания обрабатываются достаточно быстро, и вы согласны терять при каждом опросе порядка 1 мс времени - то почему бы и нет. Не зная задачи целиком и характерных особенностей ее решения, выбранных вами, вряд ли можно сказать большее.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.