Jump to content

    
Sign in to follow this  
A-10

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

Recommended Posts

Так вот, из - за отражения 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МГц, которая идет по проводу к разъему.

Share this post


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

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

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

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

Share this post


Link to post
Share on other sites
чето сдается мне что наводки тут не при делах - как они выглядят на вашем рисунке?.

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

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

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

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

Share this post


Link to post
Share on other sites
А уж было думал, что проблема решилась полностью, но нет -)

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

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

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

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

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

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

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

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

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

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

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

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

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

 

Share this post


Link to post
Share on other sites
я уже запутался, откуда вторая микросхема? был же левелшифтер на дискретах..

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

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

Edited by A-10

Share this post


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

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

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

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

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

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

Share this post


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

 

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

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

 

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

 

Share this post


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

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

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

 

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

 

Share this post


Link to post
Share on other sites
вы это о клоках или и2ц?

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

 

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

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

 

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

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

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

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

 

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

 

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

Share this post


Link to post
Share on other sites
Это именно клоки камеры. Просто после модификации обратного клока i2c опять пошла вразнос.

 

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

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

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

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

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

 

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

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

Share this post


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

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

 

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
И как успехи?

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

 

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

 

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

 

Share this post


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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this