Я пытаюсь подключить устройство 3.3VI 2 C к 5V Arduino.
У меня нет проблем с линией SCL. Я могу использовать простой делитель напряжения, но у меня проблема с линией SDA, так как она двунаправленная.
Я совсем не знаю, как с этим справиться. Я решил добавить пару диодов с делителем напряжения на стороне ведомого входа и ничего лишнего на ведущем входе.
Есть ли другие решения?
Хорошим документом по этому вопросу является двунаправленный переключатель уровня для шины I2C и других систем, в которых используется один MOSFET в качестве двунаправленного переключателя уровня.
Чтобы расширить ответ sivu, это обычное использование так называемых «переключателей шины», которые в основном представляют собой полевые МОП-транзисторы с логическим управлением. Использование дискретных МОП-транзисторов имеет некоторые недостатки (один из них — паразитная емкость/емкостная связь), и выбор хорошего МОП-транзистора может быть сложным. Коммутаторы шины оптимизированы для использования в высокоскоростных логических схемах.
Их производят несколько производителей, в том числе Fairchild, TI, IDT и Pericom. Взгляните на NC7SZ384 .
Среди прочего см. следующие приложения:
Многие платы Arduino имеют встроенную поддержку для работы при напряжении 3,3 В. На самом деле все они могут работать при напряжении 3,3 В, и схема микросхемы FTDI объясняет, как это делается в примере. Пол, который сделал Teensy USB Arduino , предложил мне соединить USB-кабель и подать напряжение 3,3 В вместо линии V CC кабеля. Вы можете попробовать это. Но есть и другие варианты.
Наконец, у нас есть обсуждение, которое может вас заинтересовать, здесь, на Chiphacker, об однонаправленных и двунаправленных решениях для понижения напряжения. Эта статья о SparkFun , упомянутая todbot, полезна, как и обсуждение статьи о двунаправленных полевых МОП -транзисторах, на которую ссылается SparkFun. Подводя итог статье SparkFun:
Существуют микросхемы, специально предназначенные для I2C со сдвигом уровня:
Я не знаю, какие ограничения у вас есть в вашем дизайне, но я думаю, что использовать выделенную ИС будет проще, чем придумывать собственное решение.
Фотон