[an error occurred while processing this directive] [an error occurred while processing this directive]
Вопрос по Dallas 1-Wire Bus
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Baser 31 января 2002 г. 13:53

Просмотрел описание физического уровня протокола 1-Wire Bus в Data Sheet на DS18S20 и тотчас возникли вопросы по его программной реализации.

Шина асинхронная, требует соблюдения временнЫх параметров.
При реализации чтения бита проблем вроде не видно: Запрещаешь прерывания на 15мкс и читаешь. Ограничения на паузы между битами вроде нет.

Видится проблема при передаче мастером на шину "0": необходимо удержать "0" на время 60...120мкс. Как это лучше делать?
Запрещать прерывания на 70-80мкс на мой взгляд нельзя, время уже достаточно большое. А не запрещать тоже нельзя: где гарантия, что не произойдут несколько прерываний, которые вынесут меня за пределы "time slot". Я тут вижу только один выход: применение аппаратного Compare для формирования импульса.

Два вопроса:

1.Как кто формирует физический уровень протокола 1-Wire Bus?
2.Что будет, если "time slot" превысит 120мкс, но будет меньше времени ресета (480мкс)?

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru