Uma nota sobre GPIOs do Raspberry Pi

image_pdfimage_print

Os pinos GPIO do Raspberry Pi são bastante versáteis e você pode modificar muitas de suas características a partir do software. Você pode ligar / desligar a histerese do pino de entrada, limitar a taxa de variação da saída e controlar a capacidade da fonte e do inversor de corrente de 2 mA para 16 mA em incrementos de 2 mA. Essas propriedades são definidas para o bloco GPIO como um todo, não em uma base de pino a pino.

A capacidade de corrente de fonte / sumidouro não limita a corrente dentro ou fora do pino, mas apenas especifica a corrente máxima para a qual as especificações de alta / baixa tensão do sinal de saída serão atendidas. Se mal utilizado, os pinos de saída podem ser danificados por corrente excessiva, independentemente da corrente de fonte / dissipador programada. Após um reset, o RPi vem com as saídas do GPIO configuradas para a capacidade de 8 mA.

O diagrama a seguir mostra um esquema simplificado dos circuitos de pinos de E / S:

Existem algumas sutilezas e características notáveis ​​do circuito:

  • Os diodos internos mostrados na figura não são realmente diodos de substrato, mas na verdade são FETs parasitas. Eletricamente, sua característica I-V parece com um diodo, mas com uma queda maior para a frente e um joelho mais gradual. Eles podem proteger contra eventos transitórios de baixa corrente causados ​​por tensões transientes fora da faixa aplicadas aos pinos, mas eles não se destinam a proteger contra a aplicação de tensões maiores que a tensão de alimentação ou menos que o terra, mesmo com um resistor externo . Em resumo, você nunca deve deliberadamente encaminhar os “diodos”. Conseqüentemente, você não pode colocar com segurança um resistor de pull-up externo em 5 V no pino de E / S. Isso iria desviar um viés FET parasita e devido à sua impedância interna pobre ao trilho de energia interno do chip, ele pode superaquecer, ou pior, pode influenciar partes do chip para tensões maiores do que eles podem manipular. Então, não faça isso!
  • O gate de entrada detecta se o nível de tensão de entrada é baixo ou alto comparando-o com uma tensão limite. Normalmente, o limiar de tensão é de cerca de 1,8V, mas não é garantido; pode estar em qualquer lugar entre a entrada máxima baixa e a entrada mínima alta, ou seja, entre cerca de 0,8 e 2,0V.
  • Para fornecer imunidade a ruídos e evitar trepidação nas transições, você pode configurar o gate de entrada para atuar como um disparador de Schmitt, com histerese de entrada. Com histerese, existem diferentes tensões de limiar para transições de subida e descida. O Broadcom não especifica o grau de histerese, mas a Tabela 1 oferece alguns valores representativos de outros dispositivos baseados no ARM1176. Para uma melhor compreensão de como funciona, você pode ler nossa descrição mais detalhada da histerese do pino de entrada para o MCU Freescale 9S12 / HCS12. Essa descrição pertence a um processador diferente, mas a operação é a mesma.
  • A saída é acionada para 3,3V (alta) ou 0V (baixa). Apenas um driver é mostrado no esquema, mas na verdade existem vários ligados em paralelo, com controle de software que são habilitados, de modo que a impedância da unidade de saída pode ser variada para oferecer capacidade de corrente de fonte e dissipador de 2 mA a 16 mA, em 2 mA incrementos.
  • Enquanto um valor de resistor pull-up / down de 50 KΩ é mostrado na figura, a Broadcom não especifica seu valor. É provável que esteja na faixa de 40 a 100 KΩ, conforme mostrado na Tabela 1. Os transistores que permitem o resistor pull-up / down contribuem com sua apreciável resistência não linear a ele, portanto a resistência efetiva não é constante sobre a tensão do pino de entrada alcance. O comportamento pull-up é um pouco de um cruzamento entre a resistência constante e o comportamento atual constante.

Para saber mais, especificamente sobre tensão e correntes nas GPIOs do RPi, leia este outrom artigo.

 

Gostou? Tire um minutinho e dê sua contribuição para Drall Dev Community no Patreon!