реклама на сайте
подробности

 
 
> ADF4118, небольшая неожиданность
ivainc1789
сообщение Aug 24 2007, 22:16
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 175
Регистрация: 5-01-05
Пользователь №: 1 807



Имееется девайс:
1. Батарейный прибор, состоящий из нескольких модулей.
2. Каждый модуль имеет возможность отключения (микропроцессором).
3. Все модули сидят на шине I2C, шина подтянута к 5 вольт через резисторы 4к7.
4. В двух модулях применена ADF4118. Выводы Clock и Data соединены соответственно с SCL и SDA.

Проблема: если отключается питание модуля на ADF4118 шина подсаживается к GND до уровня 0.8 вольт, тем самым делая невозможным обмен данными между включенными модулями. При включенном питании на ADF4118 все нормально.

К сожалению, для меня такой факт оказался совершенно неожиданным при изготовлении прототипа и плата была разведена до осознания проблемы... Прибор батарейный и держать модульна ADF включенным только "ради норм работы шины" для других модулей естественно недопустимо. Вот думаю, как разрулить?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ivainc1789
сообщение Sep 11 2007, 08:37
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 175
Регистрация: 5-01-05
Пользователь №: 1 807



Проблема-то оказалось в том, что модуль отключается/включается с выхода HC595 !!! Поэтому, если вывод питания соед с землей в откл состоянии ДЕЙСТВИТЕЛЬНО открываются диоды к питанию на входах CLOCK и DATA.

Поэтому ИМХО наиболее очевидное решение - просто сделать ПОЛНОЦЕННЫЙ КЛЮЧ по питанию, чтобы РАЗРЫВАЛ цепь питания при отключении модуля.

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

Оказалось все серьезно... cranky.gif Пожалуй, ставить буферы действительно необходимо....
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 11 2007, 09:22
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(ivainc1789 @ Sep 11 2007, 11:37) *
Поэтому ИМХО наиболее очевидное решение - просто сделать ПОЛНОЦЕННЫЙ КЛЮЧ по питанию, чтобы РАЗРЫВАЛ цепь питания при отключении модуля.
Достаточно просто рвать CLOCK и DATA. sensor_ua предлагал вам простое решение - по одному полевику на каждую линию.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post



Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th June 2025 - 02:59
Рейтинг@Mail.ru


Страница сгенерированна за 0.01417 секунд с 7
ELECTRONIX ©2004-2016