Трудности I2C по проводам

Я хочу связать PIC16F1825 и датчик температуры TCN75 через I2C. Датчик температуры находится примерно в 1 м от MCU. Может ли кто-нибудь просветить меня, с какими трудностями я столкнусь, если запущу I2C по проводу? Я читал, что I2C может быть довольно чувствительным к шуму, особенно на более высоких скоростях и на больших расстояниях.

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

  • Ссылка будет работать на 5V.
  • Что я могу сделать, чтобы сделать эту ссылку как можно более простой по дизайну и работе?
  • Со стандартными сигнальными кабелями без TP я не узнаю их емкость. Как рассчитать подтягивающие резисторы?
  • Нужны ли мне какие-либо подтягивающие резисторы или достаточно тока подтяжки PIC16?

В качестве альтернативы, может ли кто-нибудь указать мне на AN, которая поможет мне с I2C по проводу?

Ответы (1)

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

Но для нарастающего фронта у нас есть только относительно высокое сопротивление подтягивающих элементов, и время нарастания этого сопротивления в сочетании с емкостью провода определяет время нарастания. Меньшее значение сопротивления лучше, но и здесь есть предел: устройство I2C не должно потреблять более 3 мА, поэтому при напряжении шины 5 В сопротивление не должно быть ниже 1,7 кОм.

введите описание изображения здесь

На графике показано максимальное сопротивление подтягивания для заданной емкости провода. На расстоянии 1 м эта емкость не будет высокой, если вы используете сигнальный провод, вероятно, менее 50 пФ, и даже для 100 пФ вы можете подняться до 12 кОм. Я бы остановился на нижнем пределе, не только у вас будут более быстрые края, но и более низкий импеданс также сделает провод менее чувствительным к шуму. Резисторы на 2,2 кОм, вероятно, подойдут.

Дальнейшее чтение
Спецификация
I2C Согласование I2C в зависимости от емкости