Самодельный 1-wire

Post Reply
UR5FFR
Site Admin
Posts: 2187
Joined: 21 Apr 2012, 22:00
Позывной: UR5FFR
Location: Odessa

Самодельный 1-wire

Post by UR5FFR »

Обычно, если у Arduino не хватает портов то используют разного рода расширители на основе последовательных регистров 74HC164 или 74HC595. При этом для управления таким расширителем требуется в первом случае (HC164) 2 порта, а во втором - 3 порта, т.к. необходимо формировать еще и сигнал Latch.

Я провел небольшой ресерч на тему можно ли управлять такими регистрами используя всего лишь один порт. Идея схемы заключается в том, что "1" и "0" кодируются разной длительностью посылки. На приведенном ниже рисунке длительность "1" составляет 1мсек, а длительность "0" - 2 мсек. Вход инверсный. Y5 - формирователь входного сигнала, Y7 - лог."1"
1-wire-01.gif
1-wire-01.gif (6.53 KiB) Viewed 40593 times
Функционирование схемы понятно из следующиего рис. Видно, что при второй длительной посылке C1 успевает разрядится до 2в и в защелку попадает лог."0"
1-wire-02.gif
1-wire-02.gif (6.28 KiB) Viewed 40593 times
В случае если мы используем 74HC595, то нам необходимо сформировать так же сигнал для управления "защелкой" на выходе. Делаем согласно след. схеме.
Постоянная цепи R4C2 определяет макс. длительность между посылками, которую мы интерпретируем как завершение передачи
1-wire-03.gif
1-wire-03.gif (12.95 KiB) Viewed 40593 times
И эпюры сигналов, поясняющие принцип ее работы
1-wire-04.gif
1-wire-04.gif (11.15 KiB) Viewed 40593 times
Post Reply