eu realmente preciso de um deslocador de nível se usar dispositivos de 5V em um barramento I2C que possua pull-ups para 3,3V? No meu entendimento, os dispositivos apenas puxam as linhas (SDA, SCL) para baixo (para o solo) e nunca direcionam sua tensão de alimentação para o barramento. Portanto, não vejo uma razão para uma mudança de nível, desde que todos os dispositivos detectem a tensão dos pull-ups (3,3V) como alta lógica. Esse deve ser o caso de dispositivos usando 5V como fonte.
No meu caso, eu tenho um IC cujas entradas não são tolerantes a 5V como mestre e eu poderia alimentar meus escravos com 3,3V, mas usar 5V é mais fácil no meu circuito e permite taxas de clock (internas) mais altas para os escravos.
voltage
i2c
level-shifting
Jannis
fonte
fonte
Respostas:
De acordo com a versão 4 doEu2C especificação ,
Mais detalhadamente nas especificações, você verá que esse é o0.7 × VD D mínimo de tensão lógica alta:
Para o seu sistema 5V:
Para mim, o pull-up de 3,3 V parece marginal, especialmente se algum dos seus dispositivos de 5V usar o 'novo' padrão de para a lógica HIGH.0.7 × VD D
Sua milhagem pode variar, mas é sempre melhor estar dentro das especificações sempre que possível ...
fonte
A resposta de Cees está incorreta, em particular o "sempre" e "qualquer". As E / Ss do microcontrolador podem precisar de 0,6 Vdd no mínimo para um nível alto, outras têm no mínimo 0,7 Vdd e, como Madmanguruman indica que esse é o padrão para o I2C. 0,7 Vdd é 3,5 V em uma fonte de 5 V, portanto 3,3 V já é muito baixo.
Mas é ainda pior. Os reguladores de tensão geralmente têm uma tolerância de 5% em sua tensão de saída nominal; portanto, no pior caso, 5 V podem ser 5,25 V e 0,7 Vdd se tornam 3,675 V. Entrada mínima para um nível alto. Se os 3,3 V tiverem uma tolerância negativa de 5%, então os 3,3 V se tornarão 3.135 V. Portanto, com as tolerâncias levadas em conta, a entrada pode muito bem ser meio voltagem muito baixa, ou 15%.
Então,
é uma conclusão prematura. Sempre verifique as folhas de dados e faça o cálculo.
fonte
Eu sinto que as outras respostas não responderam realmente à pergunta de Jannis. Ele perguntou sobre o uso de dispositivos de 5V em um barramento de 3.3V (presumivelmente 3.3V MCU). Concordo que ter as flexões ligadas a 3,3V será bom, por exemplo, seguro para o dispositivo mestre, uma vez que os pinos SDA / SCL somente serão puxados para baixo, como ele mencionou. Cuidado para que os escravos e o mestre precisem compartilhar um terreno comum (pinos Vss equipotenciais) para proteger o MCU da sobretensão, mas isso provavelmente seria o caso. Portanto, o método de Jannis deve funcionar, sem um deslocador de nível.
fonte