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

 
 
> Помехи на линии 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
Jury093
сообщение Oct 4 2016, 10:59
Сообщение #6


Знающий
****

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



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

если у камеры есть селектор адреса, то у вас (у камеры) видимо уровень болтается.. если конечно это не дефект таймингов на шине при передаче адреса камеры по i2c..
Цитата
На этой линии висит только лишь HDMI трансмиттер -по нему видно, что передача идет нормально, когда нет камеры на линии, иначе просто не идет сигнал на монитор.

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

малость избыточно.. зачем вам двунаправленность? только для управления по i2c.. с камеры валит поток и синхра, в камеру тактовая и возможно gpio управление..
Go to the top of the page
 
+Quote Post
A-10
сообщение Oct 4 2016, 12:07
Сообщение #7


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

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



Цитата(Jury093 @ Oct 4 2016, 13:59) *
если у камеры есть селектор адреса, то у вас (у камеры) видимо уровень болтается.. если конечно это не дефект таймингов на шине при передаче адреса камеры по i2c..
Тут нет селектора и все линии у меня к чему-то подтянуты..

Цитата(Jury093 @ Oct 4 2016, 13:59) *
а трансмитер гадить не может? он часом не мастерит в сторону smb hdmi вычитывая edid?
Возможно. Однако, есть линия I2C-0, на которой вообще пусто, но на ней тоже происходят подобные сбои (фантомные девайсы появляются, а потом линия падает в ноль).
Кроме того, после первого исправаления при тестировании hdmi не мешал абсолютно.

Цитата(Jury093 @ Oct 4 2016, 13:59) *
малость избыточно.. зачем вам двунаправленность? только для управления по i2c.. с камеры валит поток и синхра, в камеру тактовая и возможно gpio управление..
Большинство микросхем в наличии <= 8 бит, не удобно разбивать, 8 бит на данные входящие, а остальные сигналы разнонаправленные. Да и так больше шансов, что tpd у сигналов будет одинаковое..
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
|- - AlexRayne   Цитата(A-10 @ Oct 4 2016, 12:46) Мик...   Oct 5 2016, 07:20
|- - A-10   Цитата(AlexRayne @ Oct 5 2016, 10:20) вы ...   Oct 5 2016, 08:02
|- - AlexRayne   Цитата(A-10 @ Oct 5 2016, 11:02) Это...   Oct 7 2016, 06:54
|- - A-10   Цитата(AlexRayne @ Oct 7 2016, 09:54) вы ...   Oct 7 2016, 07:45
|- - 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
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 08:34
Рейтинг@Mail.ru


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