|
Помехи на линии I2C при подключении оборудования |
|
|
|
Sep 28 2016, 07:54
|
Частый гость
 
Группа: Участник
Сообщений: 79
Регистрация: 11-06-09
Из: Санкт-Петербург
Пользователь №: 50 207

|
Всем доброго времени суток. Суть проблемы следующая - есть плата с ARM-овым процессором (от NXP) и тремя линиями I2C, подтянутыми 4.7К резисторами к питанию 1.8В. Частота I2C 100КГц. На плате крутится линукс, пробую по i2cdetect/i2cget получить данные с подключенных к линии микросхем - ID возвращается нормально. Подключаю преобразователь уровня с камерой - сообщения не приходят (подтягивающие резисторы только на борде). Иногда SCL "залипает" в нуле до сброса. На одной линии I2C без подключенных устройств подсоединился осциллографом к SCL/SDA. Пока нет подключения к SCL - сообщение нормально уходит, как только подключаю щуп, происходит следующая картина:
Грешу на избыточную емкость на линии, но может быть еще какие-то варианты? Перепаивать резисторы такого типоразмера сложновато..
|
|
|
|
|
 |
Ответов
|
Oct 3 2016, 07:00
|
Частый гость
 
Группа: Участник
Сообщений: 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МГц, которая идет по проводу к разъему.
|
|
|
|
|
Oct 4 2016, 09:04
|
Знающий
   
Группа: Участник
Сообщений: 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 камеры..
|
|
|
|
|
Oct 4 2016, 09:46
|
Частый гость
 
Группа: Участник
Сообщений: 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
|
|
|
|
|
Oct 5 2016, 07:20
|
Местный
  
Группа: Участник
Сообщений: 319
Регистрация: 27-09-07
Пользователь №: 30 877

|
Цитата(A-10 @ Oct 4 2016, 12:46)  Микросхему (NOR) я напаял сверху и подключил ее вместо преобразователя (частота слишком высокой оказалась для такой схемы на мосфетах), для линии входной частоты. Старые дорожки разрезал, чтобы не было антенного эффекта. В это время i2c протокол работал хорошо, удалось обнаружить камеру по i2cdetect. Правда адрес отличался от того, что указан в ДШ, этот момент я не понял. После чего я допаял еще одну микросхему NOR, дабы пустить через нее обратный сигнал частоты от камеры. И начались (продолжились) вышеописанные глюки. вы это о клоках или и2ц? обратный левел-шифт из низковольтового домена в высоковольтовый надо делать микрухами т.н. "толерантными" к более высокому питанию. нетолерантные дадут вам как минимум большую утечку из сигнального входа на высокое питание, а в худшем случае дадут прямой ток диода. попробуйте врезать в сигнал клока перед входом вашего НОР резистор небольшой - 50-100ом. по поводу адресов - это частенько происходит от того что неучитывается сдвиг на младший бит адресный - который указывает тип транзакции чтение/запись.
|
|
|
|
|
Oct 5 2016, 08:02
|
Частый гость
 
Группа: Участник
Сообщений: 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
|
|
|
|
|
Oct 7 2016, 06:54
|
Местный
  
Группа: Участник
Сообщений: 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 и клоки в обе стороны, чтобы убедиться, что не будет сюрпризов. чем искать такую диковину лучше програмный режим делать, ибо сдается мне ваши беды не от клоков.
|
|
|
|
|
Oct 7 2016, 07:45
|
Частый гость
 
Группа: Участник
Сообщений: 79
Регистрация: 11-06-09
Из: Санкт-Петербург
Пользователь №: 50 207

|
Цитата(AlexRayne @ Oct 7 2016, 09:54)  вы же сказали что как раз добавили переход от камеры->борде, тоесть ваш преобразователь обязан быть запитан более низким питанием борды, а значит быть толерантным к напряжению камеры. Вы писали: "обратный левел-шифт из низковольтового домена в высоковольтовый", а тут 2.8В от камеры в 1.8В, высоковольтный в низковольтный. Думаю, просто ошибка, но я понял о чем речь. Цитата чем искать такую диковину лучше програмный режим делать, ибо сдается мне ваши беды не от клоков. Микросхемы уже сегодня-завтра будут, так что можно будет проверить и убедиться.
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|