Como um Uno 5v pode falar com um vencimento de 3.3v?

9

Atualmente, tenho um Uno (que opera em 5v) e estou pensando em comprar um Due (que opera apenas em 3,3v). Gostaria de fazê-los se comunicar via Serial ou SPI ou similar, mas presumivelmente conectá-los diretamente não é uma opção (acho que os pinos do Due seriam danificados).

Existe alguma maneira de tornar a conexão segura? Ou existe uma forma alternativa de comunicação que eu poderia usar com segurança entre eles?

Peter Bloomfield
fonte

Respostas:

8
  • Para uma saída lógica de 5V para uma entrada lógica de 3V3, você pode usar um divisor resistivo para diminuir a tensão.
  • Quando descarregada, uma saída lógica de 3V3 é suficiente para acionar uma entrada lógica de 5V. Verifique a folha de dados do AVR para as tensões exatas (0,6 × Vcc = 3V, encontradas em Características da CC na folha de dados).

Em outras palavras, com um pouco de cuidado especial, pode funcionar.

Para construir uma solução mais confiável e bidirecional, use um deslocador de nível. Existem vários listados nesta página, mas outros fabricantes fabricam dispositivos semelhantes.

Este documento descreve como um MOSFET pode ser usado para converter bidirecionalmente níveis lógicos entre tensões de alimentação diferentes.

jippie
fonte
+1 para a referência da solução MOSFET. Não achei que a mudança de nível bidirecional pudesse funcionar. Fascinante.
Jfpoilpret
Para adicionar, para o conversor de nível MOSFET, não há necessidade de componentes discretos - existem dispositivos como o FET duplo FDC6301N. Ou existem shifters de nível dedicados como o PCA9306.
Cybergibbons
11
A Adafruit possui um shifter de nível MOSFET pronto para uso ( adafruit.com/products/757 ) que também funciona muito bem na comunicação I2C, na qual você precisa ter uma tradução de nível bidirecional.
Mike WP