|
|
  |
Помехи на линии I2C при подключении оборудования |
|
|
|
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 3 2016, 13:48
|
Местный
  
Группа: Участник
Сообщений: 319
Регистрация: 27-09-07
Пользователь №: 30 877

|
Цитата(A-10 @ Oct 3 2016, 10:00)  Вероятно, дело в наводках на линию I2C с обратной частоты 27МГц, которая идет по проводу к разъему. чето сдается мне что наводки тут не при делах - как они выглядят на вашем рисунке?. если дорого время - сделайте програмную реализацию. по крайней мере поймете кто виноват - мастер вашего процессора или абоненты на шине. Хотя если поборете - будет интересно.
|
|
|
|
|
Oct 4 2016, 05:34
|
Частый гость
 
Группа: Участник
Сообщений: 79
Регистрация: 11-06-09
Из: Санкт-Петербург
Пользователь №: 50 207

|
Цитата(AlexRayne @ Oct 3 2016, 16:48)  чето сдается мне что наводки тут не при делах - как они выглядят на вашем рисунке?. если дорого время - сделайте програмную реализацию. по крайней мере поймете кто виноват - мастер вашего процессора или абоненты на шине. Хотя если поборете - будет интересно. Согласен, наводки от тактовой визуально не видны и разницы до/после модификации по форме сигнала нету. Попробую посмотреть в стороны i2c/gpio.
|
|
|
|
|
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 4 2016, 10:59
|
Знающий
   
Группа: Участник
Сообщений: 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 управление..
|
|
|
|
|
Oct 4 2016, 12:07
|
Частый гость
 
Группа: Участник
Сообщений: 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 у сигналов будет одинаковое..
|
|
|
|
|
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В, высоковольтный в низковольтный. Думаю, просто ошибка, но я понял о чем речь. Цитата чем искать такую диковину лучше програмный режим делать, ибо сдается мне ваши беды не от клоков. Микросхемы уже сегодня-завтра будут, так что можно будет проверить и убедиться.
|
|
|
|
|
Oct 11 2016, 07:18
|
Местный
  
Группа: Участник
Сообщений: 319
Регистрация: 27-09-07
Пользователь №: 30 877

|
Цитата(A-10 @ Oct 7 2016, 10:45)  Микросхемы уже сегодня-завтра будут, так что можно будет проверить и убедиться. И как успехи?
|
|
|
|
|
Oct 12 2016, 20:03
|
Частый гость
 
Группа: Участник
Сообщений: 79
Регистрация: 11-06-09
Из: Санкт-Петербург
Пользователь №: 50 207

|
Цитата(AlexRayne @ Oct 11 2016, 10:18)  И как успехи? Честно говоря - никак. Припаять все пины у TSSOP микросхем нормально не получилось (провода тонкого нет, получаются спайки и ноги норовят отвалиться от перегрева). На выходных попробую откопать кусок текстолита и вспомнить старый добрый ЛУТ, сделаю небольшой переходник и подпаяю нормально. Цитата(Trashy_2 @ Oct 11 2016, 17:35)  Затем плату с процессорным модулем отвинтил от корпуса и включил её навесу не касаясь корпуса. То есть изначально земля процессорного модуля соединялась с корпусом? А корпус был заземлен?
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|