Согласовать логические уровни для 1-wire

Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
Ответить
bend
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Сб окт 10, 2009 02:49:27
Откуда: Krasnoyarsk
Контактная информация:

Согласовать логические уровни для 1-wire

Сообщение bend »

Вкратце проблема такая - есть роутер DIR-615 http://regul.orionnet.ruв нем я распаял USB и подключил китайский DS9097 USB, все работает 1-wire устройства определяються в OWFS. Но захотелось некого гламурства, делаю опять вскрытие роутеру и нащупываю GPIO порты которые управляют LED светодиодами. Выпаиваю один светодиод и вешаю на его место 1-wire_over_gpio, т.е. чтобы контроллер роутера сам управлял 1-wire посредством своего вывода GPIO а не через usb.
И тут случился облом, напряжение логической "1" на порту GPIO всего 2.2 В. Пробую подпаять подтягивающий резистор (к +5В или к +3.3.В)- ситуация не меняеться попрежнему 2.2В. Видимо порты GPIO подключены через шинный преобразователь напряжения и стабилитрон на выходе преобразователя не дает сделать подтяжку по питанию. А для 1-wire нужно минимум 2.8В.

Вопрос в том - как сделать преобразователь логического уровня напряжения с 2.2В до 3.3В~4.5В???
Аватара пользователя
hybroid
Друг Кота
Сообщения: 8007
Зарегистрирован: Вс ноя 14, 2010 19:24:26
Откуда: Лукалэнд

Re: Согласовать логические уровни для 1-wire

Сообщение hybroid »

"В лоб" - транзистором. И потом ещё раз перевернуть.
bend
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Сб окт 10, 2009 02:49:27
Откуда: Krasnoyarsk
Контактная информация:

Re: Согласовать логические уровни для 1-wire

Сообщение bend »

hybroid писал(а):"В лоб" - транзистором. И потом ещё раз перевернуть.


ну транзистором я могу поднять уровень на выходе GPIO, а как быть когда GPIO становится входом и принимает данные от устройств на шине? Нужена схема двунаправленного преобразователя....
Аватара пользователя
hybroid
Друг Кота
Сообщения: 8007
Зарегистрирован: Вс ноя 14, 2010 19:24:26
Откуда: Лукалэнд

Re: Согласовать логические уровни для 1-wire

Сообщение hybroid »

В другую сторону понизить стабилитроном, например. После диод или два прицепить, чтобы ещё ниже было.
Или делитель на резисторах и диод. На транзисторах, резисторах и диодах разрулите направления, чтобы не мешало друго другу.

Есть специализированные микросхемы для преобразования уровней, но в случае 1-wire они кажутся overhead'ом.
bend
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Сб окт 10, 2009 02:49:27
Откуда: Krasnoyarsk
Контактная информация:

Re: Согласовать логические уровни для 1-wire

Сообщение bend »

hybroid писал(а):В другую сторону понизить стабилитроном, например. После диод или два прицепить, чтобы ещё ниже было.
Или делитель на резисторах и диод. На транзисторах, резисторах и диодах разрулите направления, чтобы не мешало друго другу.

Есть специализированные микросхемы для преобразования уровней, но в случае 1-wire они кажутся overhead'ом.


Разрулить направления в случае 1-wire неполучится!!! :(
Вот нашел такую схемку Изображение но неуверен что будет работать с напряжениями ниже 3.3В.

Конечно желательно бы использовать соответствующую микросхему, но что-то ничего простого я не нагуглил, есть специфические микросхемы которых в продаже нету, а хочется простое решение с доступными в продаже элементами...
Аватара пользователя
Psych
Опытный кот
Сообщения: 848
Зарегистрирован: Ср мар 02, 2011 07:47:39
Откуда: Уфа

Re: Согласовать логические уровни для 1-wire

Сообщение Psych »

На картинке I2C.
Аватара пользователя
hybroid
Друг Кота
Сообщения: 8007
Зарегистрирован: Вс ноя 14, 2010 19:24:26
Откуда: Лукалэнд

Re: Согласовать логические уровни для 1-wire

Сообщение hybroid »

bend писал(а):Разрулить направления в случае 1-wire неполучится!!!

Диод пропускал в одну сторону с утра.. Чем плохо им разруливать?

bend писал(а):неуверен что будет работать с напряжениями ниже 3.3В.

У вас то, что справа, не среагирует на "единицу" от вашего GPIO. И там i2c.
bend
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Сб окт 10, 2009 02:49:27
Откуда: Krasnoyarsk
Контактная информация:

Re: Согласовать логические уровни для 1-wire

Сообщение bend »

ну понятно что на картинке i2c :) смысл то один. в роутере GPIO много можно и i2c и SPI организовать, вопрос то был о согласовании уровней...

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

Для подключения двух каскадов шинной системы I2C с различным напряжением питания и различными логическими уровнями необходим двунаправленный преобразователь уровня. В шинной системе на рисунке в левом каскаде имеются подтягивающие резисторы и микросхемы подключены к 3,3В-ому напряжению питания, а в правом каскаде предусмотрены подтягивающие резисторы и микросхемы с 5В-ым напряжением питания. Микросхемы каждого каскада содержат входы с логическими уровнями по отношению к напряжению питания и выходы с открытым стоком.

Изображение
1.3.1 Описание преобразования уровня

Преобразователь уровня можно описать в виде трех состояний, в которых он может находиться:

Состояние 1. Линия шины не подтягивается к низкому уровню ни одной из микросхем, а линия шины каскада пониженного напряжения подтягивается резисторами Rp к 3.3В. Затвор и исток МОП-транзистора имеют потенциал 3,3В, т.о. напряжение VGS меньше порогового напряжения и МОП-транзистор не пропускает ток. Это позволяет выполнить подтягивание линии шины каскада повышенного напряжения с помощью резистора Rp к 5В. Таким образом, линии шин обеих каскадов находятся в высоком состоянии, но имеют различные уровни напряжений.

Состояние 2. 3.3В-ая микросхема устанавливает низкий уровень на линии шины. Исток МОП-транзистора принимает низкий потенциал, но напряжение на затворе остается равным 3.3В. Напряжение VGS становится выше порогового и МОП-транзистор переходит в проводящее состояние. В этом случае линия шины каскада повышенного напряжения также подтягивается к низкому уровню через проводящий МОП-транзистор. Таким образом, линии обеих каскадов перешли в низкое состояние с одним и тем же уровнем напряжения.
Состояние 3. 5В-ая микросхема устанавливает низкий уровень на линии шины. Через диодный переход исток-подложка МОП-транзистора каскада пониженного напряжения вначале снижается напряжение до тех пор, пока напряжение VGS перейдет пороговый уровень, а затем, МОП-транзистор перейдет в проводящее состояние. Теперь, линия шины каскада пониженного напряжения подтягивается к низкому уровню через проводящий МОП-транзистор, открытый 5В-ой микросхемой. Таким образом, линии шины обеих каскадов находятся в низком состоянии и имеют один и тот же уровень напряжения.

Данные три состояния показывают, что логические уровни передаются в обоих направлениях шинной системы, независимо от каскадов управления. В состояниях 2 и 3 выполняется функция "монтажного И" между линиями шины обеих каскадов, что указывает на соответствие требованиям шины I2C.

К VDD1 и VDD2 может быть приложено другое напряжение, отличающееся от 3,3В и 5В, соответственно, например, 2В к VDD1 и 10В к VDD2. Для нормальной работы необходимо соблюдать условие превосходства или равенства VDD2 относительно VDD1. МОП-транзисторы допускают, чтобы напряжение VDD2 было меньше VDD1 в процессе снятия/подачи питании при условии неактивности в этот момент шинной системы.

Максимальное значение VDD2 ограничивается только характеристиками используемого МОП-транзистора. При использовании повышенных напряжений необходимо принять во внимание замедление падающих фронтов, возникающих при переходе в состояние 2 или 3, что происходит за счет увеличения времени разряда емкости линии шины.

Минимально возможное напряжение питания VDD1 зависит от порогового напряжения VGS(th) МОП-транзисторов. Если пороговое напряжение примерно на 1В ниже наименьшего VDD1, то преобразователь уровня будет работать корректно. Например, если наименьшее напряжение VDD1 равно 3В, то приемлемо использовать транзисторы с пороговым напряжением VGS(th) не более 2В.


Полный текст статьи http://www.gaw.ru/html.cgi/txt/publ/interface/97055.htm
Аватара пользователя
hybroid
Друг Кота
Сообщения: 8007
Зарегистрирован: Вс ноя 14, 2010 19:24:26
Откуда: Лукалэнд

Re: Согласовать логические уровни для 1-wire

Сообщение hybroid »

Минимально возможное напряжение питания VDD1 зависит от порогового напряжения VGS(th) МОП-транзисторов. Если пороговое напряжение примерно на 1В ниже наименьшего VDD1, то преобразователь уровня будет работать корректно. Например, если наименьшее напряжение VDD1 равно 3В, то приемлемо использовать транзисторы с пороговым напряжением VGS(th) не более 2В.

Я про это. Вам нужен полевик как минимум логический и на логический уровень не 5 вольт. И лучше искать те, которые используются во всякой мобильно-телефонной технике. Посмотрите даташиты, данный параметр документирован у большинства ширпотребных полевиков с немалым разбросом (2-4 вольта, 1-2 вольта, 1-3 вольта). Вам нужен тот, который будет себя очень уверенно чувствовать с напряжением единицы GPIO на затворе. И о большой частоте тут лучше вообще не говорить, т.к. характеристики паразитного диода в большинстве полевиков крайне грустные :(
bend
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Сб окт 10, 2009 02:49:27
Откуда: Krasnoyarsk
Контактная информация:

Re: Согласовать логические уровни для 1-wire

Сообщение bend »

Да впринципе в 1wire частоты не такие уж большие, но проблема в заваливании фронтов при возвращении из 0 в 1 из-за емкости самой сети + преобразователь судя по графикам дает задержку в 0.5 мкс все может быть очень грустно :( хотя нужно смотреть на практике.
По поводу диода, можно наверное взять полевик без диода и поставить внешний высокочастотный.
Попробую завтра вскрыть металлический экран над микросхемами роутера и поискать злосчастный преобразователь уровней, может удастся найти прямую ногу GPIO (хотя там напряжение может быть еще ниже)...
Аватара пользователя
hybroid
Друг Кота
Сообщения: 8007
Зарегистрирован: Вс ноя 14, 2010 19:24:26
Откуда: Лукалэнд

Re: Согласовать логические уровни для 1-wire

Сообщение hybroid »

bend писал(а):По поводу диода, можно наверное взять полевик без диода и поставить внешний высокочастотный.

Нету таких. Прочитайте про этот диод, он там образуется при изготовлении и будет в любом полевике с изолированным затвором. Можно поискать тот, где этот диод не кажется совсем печальным. Характеристики данного диода пишут в даташитах.

bend писал(а):поискать злосчастный преобразователь уровней

Вряд ли получится. У вас чип, по идее, с таким питанием работает, поэтому и такие уровни.
bend
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Сб окт 10, 2009 02:49:27
Откуда: Krasnoyarsk
Контактная информация:

Re: Согласовать логические уровни для 1-wire

Сообщение bend »

bend писал(а):поискать злосчастный преобразователь уровней
Вряд ли получится. У вас чип, по идее, с таким питанием работает, поэтому и такие уровничип


дак дело в том что на плате роутера присутствует питание 3.3 В я думаю чип работает на таком же питании и для 1wire 3.3 вольт вполне достаточно, а вот с выходов GPIO выходит 2.2В потому что стоит преобразователь и никак не дает "дотянуть" выводы до 3.3В, а вот если зацепиться перед преобразователем то все должно получиться...
Аватара пользователя
hybroid
Друг Кота
Сообщения: 8007
Зарегистрирован: Вс ноя 14, 2010 19:24:26
Откуда: Лукалэнд

Re: Согласовать логические уровни для 1-wire

Сообщение hybroid »

General Purpose Input/Output
Он может быть и 5 вольт. Он не стандартизирован по вольтам :) Если чип 3.3 - GPIO будет 3.3.
Вы там случайно не через резюк с выхода GPIO припаялись? Если вместо диода - то диод каг бы через резистор подключен.
Аватара пользователя
Ser60
Друг Кота
Сообщения: 3783
Зарегистрирован: Ср дек 24, 2008 09:58:58

Re: Согласовать логические уровни для 1-wire

Сообщение Ser60 »

Посмотрите на TCA9406.
bend
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Сб окт 10, 2009 02:49:27
Откуда: Krasnoyarsk
Контактная информация:

Re: Согласовать логические уровни для 1-wire

Сообщение bend »

hybroid писал(а):General Purpose Input/Output
Он может быть и 5 вольт. Он не стандартизирован по вольтам :) Если чип 3.3 - GPIO будет 3.3.
Вы там случайно не через резюк с выхода GPIO припаялись? Если вместо диода - то диод каг бы через резистор подключен.

там 5В только на усб идет, основная электроника на 3.3В
подключался напрямую отпаял светодиод и резюки...

ps: TCA9406. попробую найти у нас в городе такую микруху.... спасибо...
bend
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Сб окт 10, 2009 02:49:27
Откуда: Krasnoyarsk
Контактная информация:

Re: Согласовать логические уровни для 1-wire

Сообщение bend »

Схема заработала по картинке от i2c с mosfeet 2N7000 подтяжка на 3.3В резистор 2к2, подтяжка на 5В - 4к7.
Всем спасибо! :)
Ответить

Вернуться в «Интеграция с ПК»