|
|
  |
Шина I2C, отключение питания одного из slave на шине |
|
|
|
Aug 19 2008, 20:15
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Цитата(=GM= @ Aug 19 2008, 19:12)  Да? Это с какого припрыга? Посмотрите хотя бы назначение SCK для слейва, скажем, для атмега88 (документ 2545м, таблица 18-1, страница 164). Там чётко показано, что клок является входом. "Если бы это было да, так нет" А причём тут таблица 18-1 на странице 164 документа 2545M, если она касается интерфейса SPI, а не I2C ? Зато вот для I2C прописано в нескольких местах The SCL line is pulled low until TWINT is cleared.Для слейва это принципиально, ему надо обработать состояние конца передачи байта, а он может не сразу в прерывание войти и т.д., он вообще в слипе мог быть. Всё это время мастер должен покорно ждать. Цитата 21.7.3 Slave Receiver Mode ... In all sleep modes other than Idle mode, the clock system to the TWI is turned off. If the TWEA bit is set, the interface can still acknowledge its own slave address or the general call address by using the 2-wire Serial Bus clock as a clock source. The part will then wake up from sleep and the TWI will hold the SCL clock low during the wake up and until the TWINT Flag is cleared (by writing it to one). Further data reception will be carried out as normal, with the AVR clocks running as normal. Observe that if the AVR is set up with a long start-up time, the SCL line may be held low for a long time, blocking other data transmissions. Цитата(=GM= @ Aug 19 2008, 21:09)  По условию задачи плюсовая шина питания слейв-устройства отключена. Покажите путь тока, если сможете. "пуля дырочку найдёт" Как это шина питания "отключена" ? И от внутренностей микроконтроллера? И от остальных микросхем на плате, своим плюсовым выводом содединённый с плюсовым выводом микроконтроллера? Скажем, операционник какой-то ширпотребный, который при вольте питания работать, естественно, не будет, но вполне может кушать несколько сот микроампер от шины питания платы, которая "отключена" от блока питания, но подключена к микроконтроллеру и через "верхний" защитный диод - к той линии, к которой подключен вход. Элементарный тест - плата с мегой168, парой 74hc595 и ЖКИ на 44780, т.е. даже операционников нет. Подаём 5 вольт через 4.7к на ногу SCL контроллера (подключена только к контроллеру да к площадке от неприпаянных часов DS1338), имеем напряжение около 1,7 вольта. Т.е. нашёлся путь для тока (5-1,7)/4,7 = 0,7мА. Недозапущенный контроллер вполне может столько кушать. А был бы на плате ещё какой-нибудь LM358, так ещё что-то сожрал бы. А вот цитатка из документации на LPC2368 Цитата 7.18.1Features •I2C0 is a standard I2C compliant bus interface with open-drain pins. •I2C1 and I2C2 use standard I/O pins and do not support powering off of individual devices connected to the same bus lines. Т.е. фирма понимает суть проблемы и один канал I2C сделала с "истинно открытым стоком" (и они такие даже если I2C не используется), а не программно включаемым при активации I2C-контроллера, как на остальных двух и как это у AVR сделано. В результате нет не только специальных защитных диодов на питание, но и паразитных от верхнего МОП-транзистора.
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
Aug 19 2008, 20:35
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(=GM= @ Aug 19 2008, 21:54)  Ответ тут только минус-один, выкидывать такое устройство однозначно, поскольку защитные диоды создадут такой же ток утечки и при штатной работе, а это не годится. Куда утечки? Вам схемку с диодами нарисовали - покажите, куда потечет. Цитата(=GM= @ Aug 19 2008, 22:09)  По условию задачи плюсовая шина питания слейв-устройства отключена. Покажите путь тока, если сможете. Напряжение на шине питания отключенного устройства какое? Ток оно способно потреблять, или нет? Цитата(=GM= @ Aug 19 2008, 22:09)  ("Плюс" и "минус" диода это жаргон) Подобным жаргоном обычно пользуются люди далекие от электроники.
|
|
|
|
|
Aug 19 2008, 20:47
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(=GM= @ Aug 19 2008, 23:54)  Ответ тут только минус-один, выкидывать такое устройство однозначно, поскольку защитные диоды создадут такой же ток утечки и при штатной работе, а это не годится. Какой может быть ток утечки при штатной работе, если к "верхнему" защитному диоду прикладывается либо напряжение обратной полярности (лог.0 на шине) , либо напряжение близкое к нулю (лог.1 на шине). "Нижний" диод вообще всегда смещен в обратном направлении, т.к. отрицательных напряжений на шине быть не должно. А вот когда напряжение питания будет отсутствовать, то через "верхний" защитный диод ток и потечет. Причем этого тока может хватить, чтобы запитать малопотребляющие MCU. Например, в случае с MSP430 сам такое наблюдал неоднократно. Когда через внешний делитель, на который подается напряжение, MSP430 получает питание и при отсутствии супервизора работает. Ему ведь всего минимум 1,8В для работы достаточно. Кстати, это довольно старая "шутка" с паразитным питанием. На нее напоролись еще в те времена, когда только появились КМОП-микросхемы из серии К176. КМОП-микросхемы работали даже если у них забывали подать питание на соответствующий вывод. А выяснялось это только под нагрузкой какого-либо выхода или на высоких частотах.
|
|
|
|
|
Aug 19 2008, 21:20
|

Знающий
   
Группа: Свой
Сообщений: 723
Регистрация: 29-08-05
Из: Березовский
Пользователь №: 8 065

|
Всем здесь присутствующим предлагаю провести маленький тест.
Я на этот наткунлся года два назад, и оно меня очень сильно поразило. Не смотря на то, что я об этом явлении знал теоретически (практически как-то не удавалось сталкиваться, может просто везло?), я все же был крайне удивлен увиденному. Теперь позвольте поделиться этим с вами.
На семинаре Texas Instruments раздали eZ430 (в простонародии -- "ёжик"). Многие из вас тоже ходили на такие семинары и тоже получили такого же ежика. Теперь откройте ежика и достаньте платку с F2013. Возьмите любой цифровой тестер (у меня китайский M-838), и померяйте сопротивление питающей цепи на диапазоне 200 Ом или 2 кОм. Ничего не заметили? -- Устройство заработало от тестера!
Идем дальше. Гасим свет, делаем в комнате интим (девок в шею. У нас свои игрушки!) и вновь подцепляемся к плате тестером только на этт раз к земле и к ллюбой свободной ноге. Притушенный свет позволяет увидеть еле-еле мерцающий светодиодик. Устройство работает!
Те же самое можно проделать и с другой Тексавской демо-платкой с тех же семинаров. Я говорю о плате Touch Demo -- красная такая, с четырьмя квадратиками. Пороговое напряжение у красного ЛЭДа ниже, чем у зеленого, поэтому эффект питания микросхемы через входа более заметен.
Мы видим не только то, что через входы "выключенной" микросхемы утекают токи, способные зажечь ЛЭД, но также видим, что MSP430F20xx способна работать при низком напряжении питания. Нижний предел работоспособности у MSP430 я не проверял, а вот у TINY2313 -- проверял. Тайни сохраняет работоспособность до 1.2 В.
Еще вопросы есть?
--------------------
Хочешь рассмешить Бога -- расскажи ему о своих планах!
|
|
|
|
|
Aug 20 2008, 08:47
|

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

|
Цитата(DVR @ Aug 19 2008, 18:07)  А если неизвестна схемотехника слейва и из даташита про неё ничего не ясно? В даташите обычно приводят максимально допустимые напряжения на выводах. Если там для выводов I2C указано Vdd+0.3v, то диод есть. Если там абсолютное значение напряжения - скорее всего нет. Цитата(rezident @ Aug 19 2008, 23:47)  КМОП-микросхемы работали даже если у них забывали подать питание на соответствующий вывод. А выяснялось это только под нагрузкой какого-либо выхода или на высоких частотах. Угу. Или странно сбоили даже в статике. Расследование показало, что пока хоть на одном входе была единица - 561ЛА7 работала. Но вот когда в схеме возникало состояние, когда на все входы всех элементов подавались нули - на выходах "почему-то" единицы исчезали.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Aug 20 2008, 11:55
|

Ambidexter
    
Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282

|
Поисследовал входные сопротивления обесточенных I2C устройств. Скажу следующее.
1) Если выводы SCK и SDA ведомого (слейв) устройства выполнены в виде открытых стоков, как например в AT24C512, то вполне можно снимать с них питание.
2) Если на выводах SCK и SDA ведомого (слейв) устройства присутствуют защитные диоды, как например в Atmega8515, то снятие с них питания может привести к блокировке SCK и SDA линий, так что я поторопился сказать, что шина I2C всегда будет работать при снятии питания с одного из слейвов.
3) Правильный ответ дал aaarrr в посте #5: работоспособность зависит от схемотехники I2C слейва.
4) To aaarrr насчёт проводного И. Проводное И или ИЛИ, зависит от точки зрения на предмет, поскольку функции в некотором смысле дуальны, но вот цитата из дейташита на AT24C512 "The SDA pin is bidirectional for serial data transfer. This pin is open-drain driven and may be wire-ORed with any number of other open-drain or open collector devices" (doc1116o, c.3). Насколько помню, раньше это называлось Монтажное ИЛИ.
5) To aaarrr насчёт детского сада. Я не обижаюсь, но и не приветствую, поскольку атмосферу форума это не улучшает, да и вас не красит, прошу впредь держать себя в рамках приличия.
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Aug 20 2008, 16:07
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(=GM= @ Aug 20 2008, 15:55)  4) To aaarrr насчёт проводного И. Проводное И или ИЛИ, зависит от точки зрения на предмет, поскольку функции в некотором смысле дуальны, но вот цитата из дейташита на AT24C512 "The SDA pin is bidirectional for serial data transfer. This pin is open-drain driven and may be wire-ORed with any number of other open-drain or open collector devices" (doc1116o, c.3). Насколько помню, раньше это называлось Монтажное ИЛИ. Цитата из The I2C-bus specification: Цитата 5 GENERAL CHARACTERISTICS
...The output stages of devices connected to the bus must have an open-drain or open-collector to perform the wired-AND function. Еще раз повторю, что Атмел к стандарту I2C отношения не имеет никакого, и ссылаться на их документы не стоит.
|
|
|
|
|
Aug 20 2008, 16:31
|

Знающий
   
Группа: Свой
Сообщений: 723
Регистрация: 29-08-05
Из: Березовский
Пользователь №: 8 065

|
[code] Цитата(aaarrr @ Aug 20 2008, 22:07)  Еще раз повторю, что Атмел к стандарту I2C отношения не имеет никакого, и ссылаться на их документы не стоит. Замечу так же, что АТМЕЛ официально нигде не называет свои модули по имени "I2C", только как "TWI". А значит, что АТМЕЛ не обязан соблюдать стандард I2C.
--------------------
Хочешь рассмешить Бога -- расскажи ему о своих планах!
|
|
|
|
|
Aug 22 2008, 03:06
|
Участник

Группа: Свой
Сообщений: 68
Регистрация: 29-12-06
Из: Омск
Пользователь №: 23 999

|
Порты AVR многофункциональные, и на всех стоят неотключаемые диоды на питание и землю. Поэтому, отключенный AVR (и всё, что подключено снаружи к выводу Vcc меги) будет "питаться" от шины I2C, и ничего хорошего из этого не выйдет.
|
|
|
|
|
Aug 22 2008, 06:20
|
Частый гость
 
Группа: Участник
Сообщений: 165
Регистрация: 14-01-05
Из: РФ Приморский край (рег.25)
Пользователь №: 1 939

|
Цитата(zhevak @ Aug 21 2008, 01:31)  [code]
Замечу так же, что АТМЕЛ официально нигде не называет свои модули по имени "I2C", только как "TWI". А значит, что АТМЕЛ не обязан соблюдать стандард I2C. Сейчас не называет. А ранее называл (в старых аппликухах попадалось).
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|