Зміщення рівня I2C


11

В даний час я розробляю схему, яка може записувати дані з датчика і зберігати дані, записані в EEPROM. Мої два пристрої (EEPROM і для тестування RTC) підключені через шину I2C до PIC16F887 µC. Однак робочий діапазон напруги двох пристроїв не однаковий (5 В для EEPROM, 3,3 для RTC), а мій акумулятор - 9 В.

Тому я створив електронну схему з перемикачем рівня, що складається з MOSFET для електропроводки SDA / SDL. Крім того, я додав два регулятора напруги LM317 для живлення пристроїв (9 В-> 3,3 В і 9 В-> 5 В). Оскільки я не є експертом у розробці таких речей, я буду вдячний, якщо ви можете поглянути на те, що я зробив, і сказати мені, чи зробив я щось жахливо не так!

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


Тільки для довідки: electronics.stackexchange.com/q/708/4950
PetPaulsen

Відповіді:


3

Незважаючи на інші коментарі, саме рішення є прекрасним. Я бачу кілька незначних проблем.

  1. 10k підтягувальні резистори на шині майже не жорсткі, особливо якщо ви хочете використовувати більш високі швидкості шини.

  2. На лінійних регуляторах та цифрових ІМС вам потрібні конденсатори для введення та виведення. 100nF - це хороший старт для цифрових ІМС, а для лінійних регуляторів - 100nF на входах та 1μF на виходах.


Дякую за розв’язку наконечника конденсатора, насправді це показано на більшості лінійних регуляторів схематично, але я повністю пропустив цю частину! Під роз'єднувальним конденсатором для цифрових ІМС ви маєте на увазі один конденсатор між їх вхідною напругою та землею, це все в порядку? (Просто щоб бути впевненим, я зрозумів, що ви мали на увазі!) Останнє, ви говорите, що підтягуючі резистори 10k далеко не досить жорсткі, але на аркуші даних вони рекомендують ці значення для швидкості шини 400 кГц. Чи є проблема з перемикачем рівня? У всякому разі, ця порада була чудовою!
Аль-

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

Добре, дякую за все, я сподіваюся, що це допоможе людям грати з різними пристроями I2C!
Al_th

-4

Так, ви зробили на своїй схемі речі, які жахливо помиляються. Щоб правильно зрівняти рівень напруги, див . Невідомий підлеглий адресу I2C (іноді) ІС MAX3373E використовується для зміщення рівня. Зверніть увагу, що підтягуючі резистори відображаються на лініях SDA & SCK. Однак при використанні MAX3373E підтягувальні резистори не потрібні, оскільки MAX3373E має вбудовані підтягувачі з обох боків ліній вводу / виводу. Для зрушення рівня також доступні інші ІМС. Ви можете перейти до Digi Key або Mouser і здійснити пошук.


5
Підхід ОП чудово! NXP навіть має примітку до програми щодо цієї теми. Не варто так швидко судити.
Адам Лоуренс

Я бачу, де я пішов не так. Символ FET не відображається правильно, діод відсутній.
Suirnder

1
@Suirnder Існують ризики, що трапляються надто сильно з обмеженими знаннями. Я вважаю, це не перша з вас така посада.
Anindo Ghosh

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