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

I2C на "длинной линии". Чего-то не работает.

Всем здрасьте. Вобчем есть гигрометр, цифровой, промышленнокитайского производства. Если кому интересны подробности, вот этот. Всё меряет, красиво показывает, но есть одно "но" - датчик в одном корпусе с показометром - что превращает измерение влажности и температуры в холодильнике в тот ещё квест.  Ну я и решил датчик вынести на проводах , чтоб,значит, датчик внутрях холодильника, а показометр снаружи.

Сам датчик представляет из себя маленькую плату с микросхемой HTU20D с обвязкой, как в даташите. Если кому лень в этот самый даташит глядеть, вот с него картинка

1693291103_ENG_DS_HPC202_7__08.thumb.png.7d4ae6d66cf969c4aa5ded46933f5f05.png

Взял я, стало быть, плоский шлейф, где-то метр длинной. Датчик на этот шлейф прилепил. Включаю прибор, прибор показывает, что он на Марсе, но чуть тёплый, т.е. данные с микросхемы не идут. "Наверное, шлейф дофига длинный" - подумалось мне, после чего я шлейф в два раза укоротил. А потом ещё. И ещё. Когда от шлейфа осталось примерно 10см, я догадался в SCK и DATA осциллографом потыкаться. И как только я осциллом в данные начал тыкать, сразу показания на приборе появились. Т.е. я щупом встаю на DATA или SCK, вижу красивые импульсы и в это же время на экранчике прибора отображаются температура и влажность близкие к реальным. Убираю щуп и тут же показания пропадают. Квантовая механика какая-то получается, а не влажность в холодильнике померять. Попробовал между выводами данных и землёй конденсаторы запаять. Меньше 300пФ не нашёл. Показания на приборе появились, но не имеющие отношения реальности.

Возникает вопрос. Чего надо сделать, чтоб это вот всё на длинном кабеле заработало?

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


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

Освятить, естественно.

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

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


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

1 минуту назад, one_eight_seven сказал:

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

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

Плата с микросхемой датчика и ейной обвязкой была отпаяна от основной платы и вынесена на проводах. Если это всё запаять на место, то прибор работает.

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


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

Ну тогда в первую очередь я бы обратил внимание на землю осциллографа, во вторую - посмотреть, если щуп x1, то переключить на x10, и посмотреть, сохранится ли волшебство.

P.S. Или, если есть изолированный щуп - ещё лучше. Именно им и попробовать волшебство повторить.

Изменено пользователем one_eight_seven

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


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

4 минуты назад, one_eight_seven сказал:

переключить на x10

Он у меня всегда х10. Зачем так сделал, не помню, но осцилл под этот делитель настроен. Заземление самого осциллографа через контакт PE на сетевом кабеле. Земля в розетке как положена подключена. Заземление здания согласно ПУЭ. Хотя, нет, вру - вместо трёх ломов мы в заземление четыре двутавра вколотили. Подопытный гигрометр вообще от батареек запитан.

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


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

6 minutes ago, Rodriges said:

Он у меня всегда х10. Зачем так сделал, не помню, но осцилл под этот делитель настроен. Заземление самого осциллографа через контакт PE на сетевом кабеле. Земля в розетке как положена подключена. Заземление здания согласно ПУЭ. Хотя, нет, вру - вместо трёх ломов мы в заземление четыре двутавра вколотили. Подопытный гигрометр вообще от батареек запитан.

Т.е. 10 MОм + 1.5pf делают погоду?

P.S. ну и, подключая щуп, вы свой прибор, запитанный от батареек заземляете на общее заземление через PE, что тоже может повлиять на помехи, которые из холодильника ловит ваш длинный кабель.

Изменено пользователем one_eight_seven

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


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

4 минуты назад, one_eight_seven сказал:

10 MОм + 1.5pf делают погоду?

Ну, учитывая длину измерительного кабеля, там вряд ли 1.5пФ.  А так, да - подключённый осциллограф заставляет всё это работать. Шлейф, если что, из плоского кабеля сделан, там где жилы с шагом 1,27мм.

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


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

резисторы поставьте на датчике с питания на SDA/SCL 2.2 - 4.7 K

На измерительной части найдите такие же и уберите их.

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


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

Если я правильно помню, то в спецификации от филипс явно сказано, что I2C - внутриплатный интерфейс и в цепях SCL/SDA не должно быть разъемов и проводов.

Если сильно хочется - то во первых нужен кабель с минимальной емкостью(и желательно с экраном), а во вторых подтяжки на обоих концах кабеля.

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


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

3 hours ago, Rodriges said:

Возникает вопрос. Чего надо сделать, чтоб это вот всё на длинном кабеле заработало?

У Вас на вынесенном датчике точно конденсатор 0.1 мкФ установлен по цепям питания? Помню, давным давно, сталкивался с подобной проблемой. Конденсатор и грал большую роль.

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


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

3 hours ago, Rodriges said:

Плата с микросхемой датчика и ейной обвязкой была отпаяна от основной платы и вынесена на проводах. Если это всё запаять на место, то прибор работает.

Про обвязку поподробнее, плз:

-- развязывающий конденсатор на плате датчика есть?

-- а развязывающий конденсатор на плате индикатора?

-- подтягивающие резисторы какой величины?

Попробуйте прокинуть еще один провод между землями двух плат. 

18 minutes ago, Intel4004 said:

Если я правильно помню, то в спецификации от филипс явно сказано, что I2C - внутриплатный интерфейс и в цепях SCL/SDA не должно быть разъемов и проводов.

Если сильно хочется - то во первых нужен кабель с минимальной емкостью(и желательно с экраном), а во вторых подтяжки на обоих концах кабеля.

В спецификации Филипс сказано, что длина проводов I2C может быть до 30 см. На практике работает примерно до полуметра, а если резисторы подтяжки уменьшить, то и до метра.

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

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


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

8 minutes ago, =AK= said:

В спецификации Филипс сказано, что длина проводов I2C может быть до 30 см. На практике работает примерно до полуметра, а если резисторы подтяжки уменьшить, то и до метра.

Да, не помню откуда я взял про внутриплатность. Сейчас там явно сказано, что можно:

In general, the wiring must be chosen so that crosstalk and interference to/from the bus
lines is minimized. The bus lines are most susceptible to crosstalk and interference at the
HIGH level because of the relatively high impedance of the pull-up devices.
If the length of the bus lines on a PCB or ribbon cable exceeds 10 cm and includes the
VDD and VSS lines, the wiring pattern should be:
SDA _______________________
VDD ________________________
VSS ________________________
SCL _______________________
 

10 minutes ago, =AK= said:

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

Я не про согласование, тут не те частоты.

SDA - двунаправленный (SCL теоретически тоже), т.ч. на стороне мастера хотя-бы кил 50 надо навесить.

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


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

10 minutes ago, Intel4004 said:

SDA - двунаправленный (SCL теоретически тоже), т.ч. на стороне мастера хотя-бы кил 50 надо навесить.

Зачем?

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


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

Just now, =AK= said:

Зачем?

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

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


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

3 minutes ago, Intel4004 said:

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

За счет чего? В чем состоит механизм такой компенсации? За счет сопротивления проводников или за счет их индуктивности? И то и другое настолько малы, что влияния 50к заметить будет невозможно.

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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