Здравствуйте! есть задача подключить i2c-датчик, работающий от 3.3 вольт к ардуине micro. сама ардуино использует 5 вольт. для связи логических уровней в i2c можно применить MOSFET. вот описание методики: http://ics.nxp.com/support/documents/interface/pdf/an97055.pdf я использую транзисторы IRF530, из набора, а в качестве программы которая с этим всем работает I2C Scanner. однако плата ведёт себя почти как покойник. синий диод светится, значит КЗ нет. но программа не печатает вообще ничего так, будто зависла на Wire.begin(); если разорвать соединение SDA и SCL с DRAIN транзисторов и снова включить стенд, то сканнер будет исправно печатать информацию о единственном подключённом устройстве. немного информации: в той части цепи которая работает от 3.3 вольт нет вообще ни одного устройства и SDA и SCL фактически просто висят в воздухе. подтягивающие резисторы в обоих частях цепи на 10 килоом. в качестве I2C устройства использую 24LC64. кто знает, или догадывается, или просто предполагает в чём проблема пожалуйста поделитесь советом.
На уровне догадки. IRF530 не может полностью открыться от 3,3 В, что необходимо по схеме из документа. Я собрал девайс из светодиода и IRF530, и попробовал подать на его затвор сигнал 3V3 с Arduino. Светодиод загорелся, что, противоречит этой теории с одной стороны, но с другой в случае с TWI всё устроено несколько иначе. Стоит попробовать использовать MOSFET серии IRL. Они не такие «силовые», но имеют меньший порог открытия.
О! BSS138. С ними нужно очень чутко соблюдать температурный режим: чуть перегреть и он открывается навсегда.
с чего бы ему перегреться на шине данных? это всё нужно на этапе разработки. вообще планирую и мк, и датчик запитать от 3.3 вольт. вроде у attiny на 1 MHz с этим проблем быть не должно.