Блог Влада Вильгельма

Малинка температурит...

2017-05-21 18:17:11 /электроника/

 

Есть такая зверски удобная штукенция - микрокомпьютер Raspberry PI. Мало ест, много думает, входастый и интерфейсистый... Ну прям золото, а не писюк! Остается непонятным одно - с какого перепугу разработчики сего чуда не сделали порт GPIO толерантным к 5В? Сие, в частности, сильно огорчает при подключении устройств по шине 1-wire, ибо из "однопроводной" (требующей 2 провода для подключения устройств - земля и питание с данными) она автоматически начинает требовать 3 провода для устойчивой работы датчиков на приличном удалении. Весь кайф от встроенного функционала опроса 1-wire сети сразу же пропадает :(

Вот и зачесалась у меня репа - как же его таки заюзать?

Не стал мудрить с развязкой сквозь микроконтроллер (не люблю палить из пушек по канарейкам!) и сделал чисто аналоговый адаптер на небольшом количестве рассыпухи.

Фишка в том, чтобы сляпать двунаправленный усилитель, позволяющий кидаться единицами и нулями в обе стороны без дополнительного управления режимом "прием/передача". Вроде как несложно, но несколько минут шевеления "моском" таки потребовалось :)



Пробежимся по логике работы...

Определение "зачинщика" логического нуля вменяется в обязанность усилителя на транзисторах Q3 и Q4. Фишка в том, что при изначальной просадке 3.3В в линии микрокомпьютера, транзистору Q4 уже не с чего открываться - отсутствует ток в базе и усилитель остается безучастным. В случае инициации обмена сетью устройств, его база подпитывается линией 3.3В, что приводит к мгновенной реакции - сквозь транзистор Q1 просаживается линия микрокомпьютера, а смещение в базе Q4 формируется уже транзистором Q3 сквозь диод D1.

Микроскопические задержки в отработке усилительных ключей на транзисторах Q1 и сладкой парочке Q2 с Q5, а так же уровни отсечки в каскадах позволяют уверенно шуршать на скорости 10 килобит, чего мне и хотелось получить в результате.

Номиналы резисторов рассчитывались по принципу "достаточно, но одинаково", что упрощает закуп деталей и сборку. Подтяжка линии по паспорту 18B20 - 4.7К, но за счет усилителей ее можно значительно загрубить для повышения нагрузочной способности линии по питанию клиентских датчиков (тут я влепил 3.3К, но можно и еще меньше).

Дополнительным "ништяком" сего девайса является защита GPIO входа микроконтроллера.

Монтажная схема достаточно компактна и сильно упрощает сборку...


Рисунок печатки в разрешении 300DPI выглядит так:



Пользуйтесь на здоровье! :)


P.S. Если линия имеет значительную паразитную емкость, R3 лучше уменьшить до 1К, а R1, R6 и R9 увеличить до 33К. Это добавит "тормозов" в усилители и предотвратит возбуждение.


UPD

Руки таки дошли. Проверено. Фурычит...

настройки в /boot/config.txt (я использую другой вход)

dtoverlay=w1-gpio,gpiopin=18,pullup=on


замордобучить

powered by WILHELM.AZ