Драйвер шины 1-Wire для контроллеров питанием меньше 5V

в 15:02, , рубрики: 1wire, active pullup, arduino, avr, diy или сделай сам, ds1820, DS18B20, level shifter, Raspberry Pi, преобразователь уровней, умный дом, Электроника для начинающих, метки:

Предлагаемый Вашему вниманию драйвер шины 1-Wire не является чем-то революционным, все использованные схемотехнические решения давно известны. Причиной публикации стало желание не загромождать статью о программной реализации примитивов 1-Wire-master на основе PWM и ICP.

Принципиальная схема

Драйвер шины 1-Wire

Драйвер шины используется в одном из моих проектов, поэтому нумерация элементов начинается не с «1».

Назначение сигналов:

ICP — входной сигнал для микроконтроллера, предназначенный для приема данных с шины 1-Wire;
OCRA — выходной сигнал для микроконтроллера, предназначенный для модуляции передаваемых на шину 1-Wire данных;
PULLUP — выходной сигнал для микроконтроллера, предназначенный для реализации на шине 1-Wire режима «ACTIVE PULLUP»;
3V3 — напряжение питания, к которому толерантны пины микроконтроллера ICP, OCRA и PULLUP. Это напряжение не обязательно должно быть именно 3.3V, оно может быть больше или меньше.

Двумя обязательными критериями являются:

— напряжение 3V3 должно быть строго меньше напряжения 5V0 (как минимум на величину падения напряжения на паразитном диоде MOSFET Q3 в случае его прямого включения);
— напряжение 3V3 должно быть больше напряжения между затвором и истоком используемых MOSFET, гарантирующих их стабильное открытие.

ONEWIRE — сигнал шины 1-Wire;
5V0 — питание для шины 1-Wire.

Компоненты Q2 и R19 обеспечивают модуляцию сигнала на шине 1-Wire со стороны низковольтной части драйвера. R18 предназначен для гарантированного закрытия Q2 при отсутствии модулирующего сигнала и, в некоторой степени, для защиты от ESD (electrostatic discharge) в случае исполнения драйвера в виде отдельного модуля.

Диодная сборка D8 предназначена исключительно для защиты от ESD в том невероятном случае, если кому-то захочется подключить 1-Wire устройства с низковольтным питанием. Например DS18B20 допускает диапазон питающих напряжений от 3.0V до 5.5V. Однако следует заметить, что режим «ACTIVE PULLUP» возможен только со стороны шины 1-Wire с питанием +5V (т.е. низковольтные 1-Wire устройства не стоит использовать в режиме parasite power). Кроме того, для улучшения параметров помехоустойчивости низковольтной шины 1-Wire возможно понадобится уменьшить номинал R19 до значения 1K включительно. «Вишенка на торте» — оба варианта шины 1-Wire могут использоваться одновременно.

На компонентах R19, Q3 и R20 собран тривиальный двунаправленный преобразователь уровней (разъяснение принципов его работы см. в списке литературы).

На компонентах R21, Q4, R22 собран однонаправленный инвертирующий преобразователь уровней для управления Q5, реализующим режим «ACTIVE PULLUP».

Резисторы R23 и R24 предназначены для ограничения протекающего тока (например, в случае подключения нового устройства на шину 1-Wire в тот момент, когда она находится в режиме «ACTIVE PULLUP»).

Диодная сборка D9 обеспечивает защиту от ESD со стороны шины 1-Wire.

Внешний вид устройства (на макетной плате)

Драйвер шины 1-Wire на макетной плате

Список литературы:

  1. Guidelines for Reliable Long Line 1-Wire Networks
  2. APPLICATION NOTE 4255
  3. DS18B20 datasheet
  4. Согласование логических уровней 5В и 3.3В устройств

Автор: Vedga

Источник

Поделиться

* - обязательные к заполнению поля