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

 
 
> Помехи на линии I2C при подключении оборудования
A-10
сообщение Sep 28 2016, 07:54
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 79
Регистрация: 11-06-09
Из: Санкт-Петербург
Пользователь №: 50 207



Всем доброго времени суток.

Суть проблемы следующая - есть плата с ARM-овым процессором (от NXP) и тремя линиями I2C, подтянутыми 4.7К резисторами к питанию 1.8В. Частота I2C 100КГц.

На плате крутится линукс, пробую по i2cdetect/i2cget получить данные с подключенных к линии микросхем - ID возвращается нормально.
Подключаю преобразователь уровня с камерой - сообщения не приходят (подтягивающие резисторы только на борде). Иногда SCL "залипает" в нуле до сброса.

На одной линии I2C без подключенных устройств подсоединился осциллографом к SCL/SDA. Пока нет подключения к SCL - сообщение нормально уходит, как только подключаю щуп, происходит следующая картина:
Прикрепленное изображение

Прикрепленное изображение


Грешу на избыточную емкость на линии, но может быть еще какие-то варианты? Перепаивать резисторы такого типоразмера сложновато..
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Димон Безпарольн...
сообщение Oct 1 2016, 18:58
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 734
Регистрация: 29-11-10
Пользователь №: 61 247



У мну конечно частоты пониже но проблема схожая. STM32L151 как источник I2C на одной плате, разъем - шлейф -разъем и пять микросхем - абонентов I2C на другой плате. Шлейф отдельными проводами. Подтягивающие резисторы не на конце линии, а у начала цепочки микросхем - абонентов шины.

Так вот, из - за отражения 3-4 микросхемы отказываются выдавать данные. Хотя на шине видны. И почему - то защелкивается в нуле SDA. Пока нашел кривое решение: просканировал шину на разных частотах и нашел что при 170КГц все исправно работает. Хорошо видно как при смене частот отваливаются разные абоненты. Причем это единственный диапазон 120 - 170 Кгц из возможного 10КГц - 1МГц.

Согласен, решение кривое. Может перенести резисторы (1к, 3.3В) на конец линии?

Сообщение отредактировал Димон Безпарольный - Oct 1 2016, 20:45
Go to the top of the page
 
+Quote Post
A-10
сообщение Oct 3 2016, 07:00
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 79
Регистрация: 11-06-09
Из: Санкт-Петербург
Пользователь №: 50 207



Цитата(Димон Безпарольный @ Oct 1 2016, 21:58) *
Так вот, из - за отражения 3-4 микросхемы отказываются выдавать данные. Хотя на шине видны. И почему - то защелкивается в нуле SDA.

А уж было думал, что проблема решилась полностью, но нет -)
После добавления второй микросхемы для согласования уровня (на обратной стороне платы припаял проводами, закрепив клеем) i2c стала сбоить снова.
Причем ситуация такая, на линии i2c-1, где помимо камеры висит hdmi, при старте платы и линуха, пытается инициализироваться этот hdmi, но заваливается SDA:
Прикрепленное изображение

Прикрепленное изображение


На пустой линии i2c-0, если туда вешать камеру, вылазит такое (на этот раз SCL):
Прикрепленное изображение

Причем, иногда проходит несколько команд, находятся фантомные устройства на линии, но потом неизменно SCL падает.

Вероятно, дело в наводках на линию I2C с обратной частоты 27МГц, которая идет по проводу к разъему.
Go to the top of the page
 
+Quote Post
Jury093
сообщение Oct 4 2016, 09:04
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 959
Регистрация: 11-01-06
Из: Санкт-Петербург
Пользователь №: 13 050



Цитата(A-10 @ Oct 3 2016, 10:00) *
А уж было думал, что проблема решилась полностью, но нет -)
После добавления второй микросхемы для согласования уровня (на обратной стороне платы припаял проводами, закрепив клеем) i2c стала сбоить снова.
Причем ситуация такая, на линии i2c-1, где помимо камеры висит hdmi, при старте платы и линуха, пытается инициализироваться этот hdmi, но заваливается SDA:

я уже запутался, откуда вторая микросхема? был же левелшифтер на дискретах..
вы бы примитивную функционалку нарисовали с номиналами и длинами шин, а то сам черт ногу сломит..
если на ваш проц (аналог imx6) нет никаких еррат, то пройдите по цепочке:
- отключите от проца всё и подвесьте что-то типа eeprom на 1.8в - убедитесь, что корка проца работает безукоризненно..
- повесьте ту же eeprom за левелшифтером на коротких проводках - проверяете исправность канала
- наращивайте длину проводов до появления ошибок, так узнаете критичную длину шины
потом пункты два и три делаете для камеры, начиная с минимальной длины, т.к. 27МГц после левелшифтера может звенеть и заваливать фронты
i2c отличная шинка и замечательно работает, если не наглеть с длиной, скоростью и емкостью физики..
да, пуллапы ставятся не от балды - у филипса (philips->nxp->qualcomm) была аппнота
ну и неоднократно упоминаемый вариант i2c-gpio, но панацея, но для независимой проверки сгодится..
по камере - при подключение никаких чудес нет? например висящий в воздухе shutdown или левые импульсы на reset камеры..
Go to the top of the page
 
+Quote Post
A-10
сообщение Oct 4 2016, 09:46
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 79
Регистрация: 11-06-09
Из: Санкт-Петербург
Пользователь №: 50 207



Цитата(Jury093 @ Oct 4 2016, 12:04) *
я уже запутался, откуда вторая микросхема? был же левелшифтер на дискретах..
вы бы примитивную функционалку нарисовали с номиналами и длинами шин, а то сам черт ногу сломит..
если на ваш проц (аналог imx6) нет никаких еррат, то пройдите по цепочке:
- отключите от проца всё и подвесьте что-то типа eeprom на 1.8в - убедитесь, что корка проца работает безукоризненно..
- повесьте ту же eeprom за левелшифтером на коротких проводках - проверяете исправность канала
- наращивайте длину проводов до появления ошибок, так узнаете критичную длину шины
потом пункты два и три делаете для камеры, начиная с минимальной длины, т.к. 27МГц после левелшифтера может звенеть и заваливать фронты
i2c отличная шинка и замечательно работает, если не наглеть с длиной, скоростью и емкостью физики..
да, пуллапы ставятся не от балды - у филипса (philips->nxp->qualcomm) была аппнота
ну и неоднократно упоминаемый вариант i2c-gpio, но панацея, но для независимой проверки сгодится..
по камере - при подключение никаких чудес нет? например висящий в воздухе shutdown или левые импульсы на reset камеры..

Микросхему (NOR) я напаял сверху и подключил ее вместо преобразователя (частота слишком высокой оказалась для такой схемы на мосфетах), для линии входной частоты. Старые дорожки разрезал, чтобы не было антенного эффекта. В это время i2c протокол работал хорошо, удалось обнаружить камеру по i2cdetect. Правда адрес отличался от того, что указан в ДШ, этот момент я не понял. После чего я допаял еще одну микросхему NOR, дабы пустить через нее обратный сигнал частоты от камеры. И начались (продолжились) вышеописанные глюки.

Длина линий не более 15см, номиналы со стороны проца ~2.35K(после допайки резисторов), со стороны камеры - 2.2К. Напряжение IO пинов камеры - 2.8В, проца - 1.8В.

На этой линии висит только лишь HDMI трансмиттер -по нему видно, что передача идет нормально, когда нет камеры на линии, иначе просто не идет сигнал на монитор.
Errata молчит. Про пулапы я почитал, все вписывается по расчетам.
С камерой все нормально, ресет подтянут к уровню, она выдает все сигналы синхронизации и данные.

Хочу передалать схему на полноценном преобразователе уровня, удалось найти из двунаправленных (без DIR пина) только txs0108e. По характеристикам подходит, поддерживает push/pull / open drain и по частоте тоже запас.

Сообщение отредактировал A-10 - Oct 4 2016, 09:52
Go to the top of the page
 
+Quote Post
AlexRayne
сообщение Oct 5 2016, 07:20
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 319
Регистрация: 27-09-07
Пользователь №: 30 877



Цитата(A-10 @ Oct 4 2016, 12:46) *
Микросхему (NOR) я напаял сверху и подключил ее вместо преобразователя (частота слишком высокой оказалась для такой схемы на мосфетах), для линии входной частоты. Старые дорожки разрезал, чтобы не было антенного эффекта. В это время i2c протокол работал хорошо, удалось обнаружить камеру по i2cdetect. Правда адрес отличался от того, что указан в ДШ, этот момент я не понял. После чего я допаял еще одну микросхему NOR, дабы пустить через нее обратный сигнал частоты от камеры. И начались (продолжились) вышеописанные глюки.

вы это о клоках или и2ц?
обратный левел-шифт из низковольтового домена в высоковольтовый надо делать микрухами т.н. "толерантными" к более высокому питанию. нетолерантные дадут вам как минимум большую утечку из сигнального входа на высокое питание, а в худшем случае дадут прямой ток диода. попробуйте врезать в сигнал клока перед входом вашего НОР резистор небольшой - 50-100ом.

по поводу адресов - это частенько происходит от того что неучитывается сдвиг на младший бит адресный - который указывает тип транзакции чтение/запись.
Go to the top of the page
 
+Quote Post
A-10
сообщение Oct 5 2016, 08:02
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 79
Регистрация: 11-06-09
Из: Санкт-Петербург
Пользователь №: 50 207



Цитата(AlexRayne @ Oct 5 2016, 10:20) *
вы это о клоках или и2ц?
обратный левел-шифт из низковольтового домена в высоковольтовый надо делать микрухами т.н. "толерантными" к более высокому питанию. нетолерантные дадут вам как минимум большую утечку из сигнального входа на высокое питание, а в худшем случае дадут прямой ток диода. попробуйте врезать в сигнал клока перед входом вашего НОР резистор небольшой - 50-100ом.

по поводу адресов - это частенько происходит от того что неучитывается сдвиг на младший бит адресный - который указывает тип транзакции чтение/запись.

Это именно клоки камеры. Просто после модификации обратного клока i2c опять пошла вразнос.

Не совсем понял. Толерантность по питанию требуется же при преобразовании из high->low, когда на вход подается более высокое напряжение.
А при преобразовании low-to-high питание идет высокое, а открывается "низким" уровнем.
И судя по сигналам, по части клока все нормально. На линии данных приходят нули (там уровень так же задавлен до 1В и не воспринимается входными буферами), поэтому картинка черная (точнее, зеленая, т.к. YUV цвет. пространство).
Сейчас нет под рукой названия микросхемы, дома посмотрю.

Попробую найти TXS0108E и повесить на плату, пропущу i2c и клоки в обе стороны, чтобы убедиться, что не будет сюрпризов.

p.s. Вы правы по части адреса, 0x42 >> 1 = 0x21
Go to the top of the page
 
+Quote Post
AlexRayne
сообщение Oct 7 2016, 06:54
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 319
Регистрация: 27-09-07
Пользователь №: 30 877



Цитата(A-10 @ Oct 5 2016, 11:02) *
Это именно клоки камеры. Просто после модификации обратного клока i2c опять пошла вразнос.

Не совсем понял. Толерантность по питанию требуется же при преобразовании из high->low, когда на вход подается более высокое напряжение.
А при преобразовании low-to-high питание идет высокое, а открывается "низким" уровнем.
И судя по сигналам, по части клока все нормально. На линии данных приходят нули (там уровень так же задавлен до 1В и не воспринимается входными буферами), поэтому картинка черная (точнее, зеленая, т.к. YUV цвет. пространство).
Сейчас нет под рукой названия микросхемы, дома посмотрю.

вы же сказали что как раз добавили переход от камеры->борде, тоесть ваш преобразователь обязан быть запитан более низким питанием борды, а значит быть толерантным к напряжению камеры.

Цитата(A-10 @ Oct 5 2016, 11:02) *
Попробую найти TXS0108E и повесить на плату, пропущу i2c и клоки в обе стороны, чтобы убедиться, что не будет сюрпризов.

чем искать такую диковину лучше програмный режим делать, ибо сдается мне ваши беды не от клоков.
Go to the top of the page
 
+Quote Post
A-10
сообщение Oct 7 2016, 07:45
Сообщение #9


Частый гость
**

Группа: Участник
Сообщений: 79
Регистрация: 11-06-09
Из: Санкт-Петербург
Пользователь №: 50 207



Цитата(AlexRayne @ Oct 7 2016, 09:54) *
вы же сказали что как раз добавили переход от камеры->борде, тоесть ваш преобразователь обязан быть запитан более низким питанием борды, а значит быть толерантным к напряжению камеры.

Вы писали: "обратный левел-шифт из низковольтового домена в высоковольтовый", а тут 2.8В от камеры в 1.8В, высоковольтный в низковольтный. Думаю, просто ошибка, но я понял о чем речь.

Цитата
чем искать такую диковину лучше програмный режим делать, ибо сдается мне ваши беды не от клоков.

Микросхемы уже сегодня-завтра будут, так что можно будет проверить и убедиться.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- A-10   Помехи на линии I2C при подключении оборудования   Sep 28 2016, 07:54
- - AlexRayne   Цитата(A-10 @ Sep 28 2016, 10:54) Гр...   Sep 28 2016, 10:37
|- - A-10   Цитата(AlexRayne @ Sep 28 2016, 13:37) У ...   Sep 28 2016, 19:05
|- - AlexRayne   Цитата(A-10 @ Sep 28 2016, 22:05) Al...   Sep 29 2016, 06:35
|- - A-10   Цитата(AlexRayne @ Sep 29 2016, 09:35) За...   Sep 29 2016, 07:37
|- - Jury093   Цитата(A-10 @ Sep 29 2016, 10:37) up...   Sep 29 2016, 10:22
||- - AlexRayne   Цитата(Jury093 @ Sep 29 2016, 13:22) согл...   Sep 29 2016, 12:13
|||- - Jury093   Цитата(AlexRayne @ Sep 29 2016, 15:13) и2...   Sep 29 2016, 15:05
||- - A-10   Цитата(Jury093 @ Sep 29 2016, 13:22) (воп...   Sep 29 2016, 14:40
|- - _3m   Цитата(A-10 @ Sep 29 2016, 10:37) up...   Sep 29 2016, 12:47
- - Jury093   Цитата(A-10 @ Sep 28 2016, 10:54) Су...   Sep 28 2016, 10:44
|- - AlexRayne   Цитата(Jury093 @ Sep 28 2016, 13:44) похо...   Sep 28 2016, 14:02
- - Raven   А какие у вас преобразователи лог. уровней стоят?   Sep 28 2016, 19:35
|- - A-10   Цитата(Raven @ Sep 28 2016, 22:35) А каки...   Sep 29 2016, 06:06
- - AnatolyT   Похоже на помехи при соединении шлейфом, данные и ...   Sep 28 2016, 19:36
- - Сергей Борщ   Вот из ит "борда"?   Sep 29 2016, 14:53
|- - A-10   Цитата(Сергей Борщ @ Sep 29 2016, 17:53) ...   Sep 29 2016, 14:55
- - A-10   Такой вопрос возник - как проще всего преобразоват...   Sep 30 2016, 06:17
|- - AlexRayne   Цитата(A-10 @ Sep 30 2016, 09:17) Та...   Sep 30 2016, 06:35
|- - _3m   Цитата(A-10 @ Sep 30 2016, 09:17) Та...   Sep 30 2016, 07:48
- - A-10   AlexRayne , _3m Спасибо, поставлю преобразователь....   Sep 30 2016, 08:10
|- - Сергей Борщ   QUOTE (A-10 @ Sep 30 2016, 11:10) Ил...   Sep 30 2016, 09:27
|- - A-10   Цитата(Сергей Борщ @ Sep 30 2016, 12:27) ...   Sep 30 2016, 09:36
|- - _3m   Цитата(A-10 @ Sep 30 2016, 12:36) На...   Sep 30 2016, 10:28
|- - A-10   Цитата(_3m @ Sep 30 2016, 13:28) Сигналы ...   Oct 1 2016, 17:41
|- - Сергей Борщ   QUOTE (Димон Безпарольный @ Oct 1 2016, 21...   Oct 1 2016, 21:03
||- - Димон Безпарольный   Цитата(Сергей Борщ @ Oct 2 2016, 00:03) О...   Oct 2 2016, 05:47
||- - ViKo   Цитата(Сергей Борщ @ Oct 2 2016, 00:03) О...   Oct 2 2016, 05:52
|- - AlexRayne   Цитата(A-10 @ Oct 3 2016, 10:00) Вер...   Oct 3 2016, 13:48
||- - A-10   Цитата(AlexRayne @ Oct 3 2016, 16:48) чет...   Oct 4 2016, 05:34
|- - Jury093   Цитата(A-10 @ Oct 4 2016, 12:46) В э...   Oct 4 2016, 10:59
||- - A-10   Цитата(Jury093 @ Oct 4 2016, 13:59) если ...   Oct 4 2016, 12:07
|- - AlexRayne   Цитата(A-10 @ Oct 7 2016, 10:45) Мик...   Oct 11 2016, 07:18
- - Димон Безпарольный   С резистором на SCL стало только хуже. Сейчас вспо...   Oct 2 2016, 06:17
- - Trashy_2   Была проблема, в одном МЕТАЛЛИЧЕСКОМ корпусе, один...   Oct 11 2016, 14:35
|- - A-10   Цитата(AlexRayne @ Oct 11 2016, 10:18) И ...   Oct 12 2016, 20:03
|- - Jury093   Цитата(A-10 @ Oct 12 2016, 23:03) Че...   Oct 12 2016, 20:07
|- - AlexRayne   Цитата(A-10 @ Oct 12 2016, 23:03) Че...   Oct 13 2016, 06:49
- - Сергей Борщ   Я бы уже давно провел простой эксперимент - замени...   Oct 13 2016, 07:52
- - AlexRayne   Цитата(Сергей Борщ @ Oct 13 2016, 10:52) ...   Oct 13 2016, 08:16
- - Сергей Борщ   QUOTE (AlexRayne @ Oct 13 2016, 11:16) пр...   Oct 13 2016, 08:34
- - Jury093   Цитата(Сергей Борщ @ Oct 13 2016, 11:34) ...   Oct 13 2016, 09:11
|- - A-10   Цитата(Jury093 @ Oct 12 2016, 23:07) посм...   Oct 14 2016, 21:32
- - AlexRayne   Цитата(Сергей Борщ @ Oct 13 2016, 11:34) ...   Oct 13 2016, 14:22


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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 15:03
Рейтинг@Mail.ru


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