Як боротися з декількома підтягуючими резисторами на модулях


9

Я думав про те, щоб зробити модулі для плати розробки, яку я зробив кілька днів тому, яка буде включати інтерфейси spi / i2c.

Проблема полягає в тому, що я не включав підключувальні резистори до штифтів MCU на головній платі і думав додати їх у модулі, щоб зробити їх "загальнішими", щоб кожен користувач міг їх використовувати без необхідності додавати додаткові резистори в плата-прототип.

Але тоді я зіткнувся з наступною проблемою. Якщо я додаю резистори, що підтягуються, до додаткових модулів і підключую, наприклад, два або більше модулів до тієї ж шини, я отримаю ці резистори паралельно, тому опір знизиться і не виконає їх функції.

Але якщо я додати підключувальні резистори до основної плати, у мене будуть ці штифти в MCU завжди настільки низько активні.

Тож головне питання:

Як підключити до однієї шини кілька модулів, що мають на кожному з них підтягуючі резистори, але не отримувати їх паралельно, коли у вас більше одного модуля? Це можливо?

Або найкращим рішенням є ввімкнути резистори підключення в MCU і не включати їх у модулі?

Дякую.-


Створіть окремий модуль, який буде містити лише підтягуючі резистори :)
Олександр Зарубкін

Відповіді:


14

Я припускаю, що загальна довжина кожного з ваших автобусів становить менше 1 метра, що характерно для звичайних I 2 C та SPI. Також ємність шини знаходиться в межах специфікації.

Має бути лише один (1) набір підтягуючих резисторів. Як результат, найкраще місце для них - на головній платі контролера. Не ставте підвісні модулі.

Якщо ви хочете мати підтягування в одних випадках, а не мати їх в інших випадках.

  • Не заповнюйте підтягуючі резистори, коли вони вам не потрібні.
  • Створіть основну плату контролера таким чином, щоб підтягувачі були підключені до сигнальних ліній через перемички. Видаліть блоки, що стискають, коли вам не потрібні підтяжки.

редагувати: Чесно кажучи, я думаю, що помилка в тому, що Sparkfun ставить підключення на підлеглі модулі I 2 C. На жаль, не кожен, хто купує модулі, розуміє, що надмірне підтягування може бути проблемою. Було б приємніше, якби на платах контролера (замість периферійних плат невільників) були підтягувачі з припоями перемичок. О ... Зачекайте ... Ардуїно не несе (необов'язково) підтяжки (хоча, можливо, і слід). Отже, давайте скрізь підтягувати. Простіший початковий досвід роботи поза коробкою. Але додайте кілька підлеглого модулів, і шина перестане працювати.

update (травень 2015 р.):
- Пов’язана дискусія в коментарях в іншій темі.
- У своїх останніх модулях SparkFun почав додавати перемички для припою між Vcc та резисторами I 2 C ( наприклад ). Це дозволяє відключити підтягувачі легше.

update (грудень 2015 р.):
Подібні запитання щодо усунення несправностей I 2 C з декількома модулями постійно з’являються на дошках оголошень. Спроба розгорнутої загальної відповіді.


Так, справді мій випадок був прикладом. Наприклад, всі модулі rtc, що продаються в деяких магазинах, включають резистори для підключення, так що ... як поводитися з цими модулями в такому випадку. Ось чому я виділив жирним шрифтом головне питання. :)
Sein Oxygen

1
@SeinOxygen Якщо у вас є модулі з резисторами, що підтягуються, а також контролер з власними підтягувачами, то всі ці резистори з'являться паралельно і представлятимуть більш жорстке підтягування (менший опір). Припустимо, у вас є підсумки 3x (три) 2,2 кОм резистори. Загальний опір підтягування - 733 Ом. Це порушує специфікацію I2C. Що робити? Видаліть зайві підтяжки з модулів (можливо, вони не повинні були там бути в першу чергу).
Нік Алексєєв

@SeinOxygen Детальніше про значення підтягування I2C у цій темі .
Нік Алексєєв

4

Одним із варіантів є використання пакетів резисторів SIL або DIL та розміщення їх у розетках кожного модуля. Створюючи систему з декількома модулями, витягніть їх з кожного модуля, крім останнього. Це економить трохи місця на дошці над перемичками.

Варіанти цієї теми можуть включати перемикачі FET для підключення або відключення резисторів, керованих однією перемичкою, або запасний штифт на роз'ємі (так що якщо підключений інший модуль, резистори автоматично відключаються)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.