Перейти к содержанию
    

Помехи на линии I2C при подключении оборудования

Так вот, из - за отражения 3-4 микросхемы отказываются выдавать данные. Хотя на шине видны. И почему - то защелкивается в нуле SDA.

А уж было думал, что проблема решилась полностью, но нет -)

После добавления второй микросхемы для согласования уровня (на обратной стороне платы припаял проводами, закрепив клеем) i2c стала сбоить снова.

Причем ситуация такая, на линии i2c-1, где помимо камеры висит hdmi, при старте платы и линуха, пытается инициализироваться этот hdmi, но заваливается SDA:

post-50207-1475477705_thumb.jpg

post-50207-1475477711_thumb.jpg

 

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

post-50207-1475477788_thumb.jpg

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

 

Вероятно, дело в наводках на линию I2C с обратной частоты 27МГц, которая идет по проводу к разъему.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вероятно, дело в наводках на линию I2C с обратной частоты 27МГц, которая идет по проводу к разъему.

чето сдается мне что наводки тут не при делах - как они выглядят на вашем рисунке?.

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

Хотя если поборете - будет интересно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

чето сдается мне что наводки тут не при делах - как они выглядят на вашем рисунке?.

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

Хотя если поборете - будет интересно.

Согласен, наводки от тактовой визуально не видны и разницы до/после модификации по форме сигнала нету.

Попробую посмотреть в стороны i2c/gpio.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А уж было думал, что проблема решилась полностью, но нет -)

После добавления второй микросхемы для согласования уровня (на обратной стороне платы припаял проводами, закрепив клеем) i2c стала сбоить снова.

Причем ситуация такая, на линии i2c-1, где помимо камеры висит hdmi, при старте платы и линуха, пытается инициализироваться этот hdmi, но заваливается SDA:

я уже запутался, откуда вторая микросхема? был же левелшифтер на дискретах..

вы бы примитивную функционалку нарисовали с номиналами и длинами шин, а то сам черт ногу сломит..

если на ваш проц (аналог imx6) нет никаких еррат, то пройдите по цепочке:

- отключите от проца всё и подвесьте что-то типа eeprom на 1.8в - убедитесь, что корка проца работает безукоризненно..

- повесьте ту же eeprom за левелшифтером на коротких проводках - проверяете исправность канала

- наращивайте длину проводов до появления ошибок, так узнаете критичную длину шины

потом пункты два и три делаете для камеры, начиная с минимальной длины, т.к. 27МГц после левелшифтера может звенеть и заваливать фронты

i2c отличная шинка и замечательно работает, если не наглеть с длиной, скоростью и емкостью физики..

да, пуллапы ставятся не от балды - у филипса (philips->nxp->qualcomm) была аппнота

ну и неоднократно упоминаемый вариант i2c-gpio, но панацея, но для независимой проверки сгодится..

по камере - при подключение никаких чудес нет? например висящий в воздухе shutdown или левые импульсы на reset камеры..

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я уже запутался, откуда вторая микросхема? был же левелшифтер на дискретах..

вы бы примитивную функционалку нарисовали с номиналами и длинами шин, а то сам черт ногу сломит..

если на ваш проц (аналог 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В это время i2c протокол работал хорошо, удалось обнаружить камеру по i2cdetect. Правда адрес отличался от того, что указан в ДШ, этот момент я не понял.

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

На этой линии висит только лишь HDMI трансмиттер -по нему видно, что передача идет нормально, когда нет камеры на линии, иначе просто не идет сигнал на монитор.

а трансмитер гадить не может? он часом не мастерит в сторону smb hdmi вычитывая edid?

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

малость избыточно.. зачем вам двунаправленность? только для управления по i2c.. с камеры валит поток и синхра, в камеру тактовая и возможно gpio управление..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

а трансмитер гадить не может? он часом не мастерит в сторону smb hdmi вычитывая edid?
Возможно. Однако, есть линия I2C-0, на которой вообще пусто, но на ней тоже происходят подобные сбои (фантомные девайсы появляются, а потом линия падает в ноль).

Кроме того, после первого исправаления при тестировании hdmi не мешал абсолютно.

 

малость избыточно.. зачем вам двунаправленность? только для управления по i2c.. с камеры валит поток и синхра, в камеру тактовая и возможно gpio управление..
Большинство микросхем в наличии <= 8 бит, не удобно разбивать, 8 бит на данные входящие, а остальные сигналы разнонаправленные. Да и так больше шансов, что tpd у сигналов будет одинаковое..

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

вы это о клоках или и2ц?

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

 

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вы это о клоках или и2ц?

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

 

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

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

 

Не совсем понял. Толерантность по питанию требуется же при преобразовании из high->low, когда на вход подается более высокое напряжение.

А при преобразовании low-to-high питание идет высокое, а открывается "низким" уровнем.

И судя по сигналам, по части клока все нормально. На линии данных приходят нули (там уровень так же задавлен до 1В и не воспринимается входными буферами), поэтому картинка черная (точнее, зеленая, т.к. YUV цвет. пространство).

Сейчас нет под рукой названия микросхемы, дома посмотрю.

 

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

 

p.s. Вы правы по части адреса, 0x42 >> 1 = 0x21

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Не совсем понял. Толерантность по питанию требуется же при преобразовании из high->low, когда на вход подается более высокое напряжение.

А при преобразовании low-to-high питание идет высокое, а открывается "низким" уровнем.

И судя по сигналам, по части клока все нормально. На линии данных приходят нули (там уровень так же задавлен до 1В и не воспринимается входными буферами), поэтому картинка черная (точнее, зеленая, т.к. YUV цвет. пространство).

Сейчас нет под рукой названия микросхемы, дома посмотрю.

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

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

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

Микросхемы уже сегодня-завтра будут, так что можно будет проверить и убедиться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Микросхемы уже сегодня-завтра будут, так что можно будет проверить и убедиться.

И как успехи?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Была проблема, в одном МЕТАЛЛИЧЕСКОМ корпусе, один блок питания, несколько блоков. На линии i2c просеры по 2 вольта(как у тебя на фотке). В следствии этого залипал один из слэйвов. Проскоки оказались синфазны с работой импульсного БП. И их амплитуда зависела от нагрузки на БП. Грешили на неправильную разводку земли. Я всё перепробовал, улучшения были но незначительные. Затем думали наводки - хрен. Затем плату с процессорным модулем отвинтил от корпуса и включил её навесу не касаясь корпуса. И, вот! Помехи нет! Кароче, двухкиловольтным конденсатором 0,01мкФ GND зашунтировал на корпус и помеха почти исчезла. Насовав таких кондёров по периметру - устранило помеху.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И как успехи?

Честно говоря - никак. Припаять все пины у TSSOP микросхем нормально не получилось (провода тонкого нет, получаются спайки и ноги норовят отвалиться от перегрева).

 

На выходных попробую откопать кусок текстолита и вспомнить старый добрый ЛУТ, сделаю небольшой переходник и подпаяю нормально.

 

Затем плату с процессорным модулем отвинтил от корпуса и включил её навесу не касаясь корпуса.
То есть изначально земля процессорного модуля соединялась с корпусом? А корпус был заземлен?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Честно говоря - никак. Припаять все пины у TSSOP микросхем нормально не получилось (провода тонкого нет, получаются спайки и ноги норовят отвалиться от перегрева).

посмотрите пустышку в ближайшем лабазе - ЧипДип, Микроника, Радетали..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...