Предлагаемый Вашему вниманию драйвер шины 1-Wire не является чем-то революционным, все использованные схемотехнические решения давно известны. Причиной публикации стало желание не загромождать статью о программной реализации примитивов 1-Wire-master на основе PWM и ICP.
Драйвер шины используется в одном из моих проектов, поэтому нумерация элементов начинается не с «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.
Список литературы:
- Guidelines for Reliable Long Line 1-Wire Networks
- APPLICATION NOTE 4255
- DS18B20 datasheet
- Согласование логических уровней 5В и 3.3В устройств
Автор: Vedga