Estou tentando fazer a interface de um dispositivo 3.3VI 2 C para um 5V Arduino.
Não tenho nenhum problema com a linha SCL. Posso usar um divisor de tensão simples, mas tenho um problema com a linha SDA, pois é bidirecional.
Não tenho certeza de como lidar com isso. Pensei em adicionar um par de diodos, com um divisor de tensão no lado da entrada escrava e nada extra na entrada mestre.
Existem outras soluções?
Respostas:
Um bom documento sobre o assunto é o deslocador de nível bidirecional para o barramento I2C e outros sistemas que usam um único mosfet como deslocador de nível bidirecional.
fonte
Para expandir a resposta da sivu, esse é um uso comum dos chamados "comutadores de barramento", que são basicamente MOSFETs controlados por lógica. O uso de MOSFETs discretos tem algumas desvantagens (capacitância parasita / acoplamento capacitivo sendo um) e pode ser complicado escolher um bom MOSFET. Os comutadores de barramento são otimizados para uso em circuitos lógicos de alta velocidade.
Vários fabricantes as fabricam, incluindo Fairchild, TI, IDT e Pericom. Dê uma olhada no NC7SZ384 .
Veja as seguintes notas de aplicativo, entre outras:
fonte
Muitos Arduinos têm suporte integrado para rodar a 3,3 V. Na verdade, todos podem rodar a 3,3 V e o esquema de chips FTDI explica como em um exemplo. Paul, que criou o Teensy USB Arduino , sugeriu que eu pudesse abrir o cabo USB e fornecer uma tensão de 3,3 V no lugar do V linha CC do cabo. Você poderia tentar isso. Mas também existem outras opções.
Por fim, temos uma discussão que pode lhe interessar aqui no Chiphacker sobre soluções unidirecionais e bidirecionais para redução de tensão. Este artigo sobre o SparkFun mencionado por todbot é útil, assim como a discussão sobre o artigo bidirecional do MOSFET vinculado ao SparkFun. Para resumir o artigo SparkFun:
fonte
Existem CIs disponíveis especificamente para o I2C de mudança de nível:
Não sei que tipo de restrições você tem no seu design, mas acho que seria mais fácil usar um IC dedicado do que criar sua própria solução.
fonte