As placas-mãe de computadores de mesa possuem GPIO? Se o fizerem, como ler ou escrever para eles


21

Eu já vi alguns pinos, como pinos GPIO do microcontrolador, nas placas-mãe de computadores desktop por um par de vezes. Queria saber, primeiro, eles são realmente GPIOs? se sim, é possível ler ou escrever para eles?


2
Eles são o que a folha de dados da placa-mãe diz que são. Fora isso, esta pergunta está apenas pedindo especulações.

1
@OlinLathrop bem, se estiverem, como posso me comunicar com eles? os sistemas operacionais possuem uma API incorporada para esse fim? ou existe alguma API para linguagens de programação?

2
"pinos como pinos GPIO do microcontrolador" Como eles são "parecidos"? Todos os pinos têm a mesma aparência ..
Eugene Sh.

Não encontrei pinos GPIO em um computador de mesa, coisas parecidas com essas eram, na maioria das vezes, algumas extensões periféricas (conector USB, conector de áudio etc.) ou as entradas dos comutadores e saídas dos LEDs. Se esse fosse um recurso comum, a Internet não receberia conselhos sobre como usar o DTR da porta serial como GPIO ou porta paralela. Eu diria que esta pergunta não pertence aqui.

2
Geralmente, as CPUs x86 não têm pinos GPIO, com cada pino sendo direcionado para um periférico específico da matriz, sem a multiplexação PIO, comum nos MCUs. NO ENTANTO, a funcionalidade do tipo GPIO geralmente faz parte da arquitetura e é manipulada por periféricos (normalmente mapeados na memória) na placa-mãe, o chipset geralmente possui alguns barramentos de baixo nível (SPI e I2C para sensores), bem como os GPIO disponíveis, a natureza exata depende da placa-mãe e do chipset / arquitetura usada.
Crasic 29/10/2015

Respostas:


15

PCs normais não possuem GPIO como tal no sentido de "pinos destinados a serem de uso geral". Os conectores em uma placa-mãe de PC (se internos ou externos) foram projetados para funções específicas. No entanto, alguns deles podem ser adaptados para seus próprios fins.

A coisa mais próxima do GPIO dos PCs é provavelmente a porta paralela da impressora, que possui várias linhas de dados e linhas de handshake. Essas linhas são um pouco como pinos GPIO, embora você tenha menos flexibilidade em termos de suas direções. http://retired.beyondlogic.org/spp/parallel.htm

As linhas de handshake nas portas seriais também podem ser usadas como E / S geral, embora tenham níveis de tensão estranhos.

As portas paralela e serial são menos comuns do que costumavam ser, mas ainda é muito fácil encontrar placas-mãe que as possuam, se você comprar por aí.

Você também poderá redirecionar as entradas e saídas destinadas aos LEDs, botões, etc., mas imagino que os detalhes serão muito específicos para um sistema específico.

Os PCs usam um barramento I2C chamado SMBUS para várias funções de gerenciamento. Tenho certeza de que já vi relatos de pessoas colocando seus próprios dispositivos I2C neste barramento através de fios de solda, mas não consigo encontrar links no momento.

Há outro barramento I2C nas portas de vídeo usadas para identificação do monitor. A possibilidade de obter acesso ao software depende do SO e hardware de vídeo que você estiver usando http://www.instructables.com/id/Worlds-Cheapest-I2C-I-Squared-C-Adapter/step5/Software-and- Projetos /

E, claro, há USB. Agora existem microcontroladores baratos com interfaces USB que você pode usar para conectar-se a isso.


2

Eu acho que a pergunta se as placas-mãe têm GPIO é muito específica para o modelo e a marca. Alguns podem, outros não.

Por exemplo, na minha desktop board Asus, ela contém um Nuvoton NCT6775 para controle do ventilador e leitura da temperatura. Isso pode ser acessado nos utilitários de área de trabalho (personalizados dos fabricantes) BIOS e Windows. Preciso executar o software da Asus para que o controle do ventilador funcione, o que significa que o controle do ventilador PWM é feito por software. Em uma instalação do Linux, preciso configurá-lo manualmente através deste módulo do kernel e pwmconfig.

Se você olhar a folha de dados do Nuvoton NCT677xF , encontrará um hardware genérico para controlar o PWM, ler a temperatura e as tensões e também o GPIO via SMBus. Equipado com os dois, você terá um começo decente para fazê-lo funcionar. Em teoria, você pode usar esse chipset para funções GPIO.

No entanto, eu não tocaria. Você não sabe qual hardware está conectado a ele, a menos que queira mergulhar em um modelo muito específico de placa-mãe e fazer engenharia reversa (por exemplo, layout, alocação de pinos etc.). Também não está quebrado em um conector.

Mais importante, se o seu aplicativo precisar durar vários anos, o modelo da placa-mãe também deve. Caso contrário, vincular-se a hardware muito específico da placa-mãe não é uma boa ideia.


2

Eu sei que este é um tópico mais antigo, mas de qualquer maneira ...

Tendo programado o código do BIOS, posso dizer que todas as placas-mãe possuem GPIOs e estão completamente disponíveis no espaço de endereço do usuário e o endereço da porta geralmente fica muito próximo da porta paralela. Criei drivers personalizados para placas-mãe personalizadas usando drivers de porta paralela padrão; tudo o que eu precisava fazer era modificar o número do endereço, mas eu sabia esse número com antecedência.

Você pode usá-los? Bem, isso depende da pessoa que programou o BIOS. O estado de todos os GPIOs deve ser definido como pré-compilação, todos os GPIOs não utilizados podem ser facilmente configurados para serem desativados.

Se um GPIO não for usado e não estiver definido, qual é o seu estado padrão? Muito provavelmente flutuando (a maioria é tri-state, então boa sorte) ..

Um GPIO tem um pullup / pulldown? Quem sabe se o EE adicionou um ..

Existem vestígios para qualquer um dos GPIO não utilizados? Duvido, mas ei, tudo é possível ..

Em resumo, você deve ter sorte de ter definido um GPIO não utilizado de uma maneira que você possa usá-lo; muito parecido com o arduino (mas sem padrões reais), pense em "INPUT / OUTPUT / TRI". Ele precisa ter um traço utilizável na placa-mãe que, esperançosamente, possui um alfinete ou almofada para soldar. Então, se você souber o local do endereço do GPIO, poderá usar facilmente um driver de espaço do usuário padrão.


0

Os PCs geralmente têm interfaces i2c e você pode encontrar chips expansores IO para i2c como o TI TCA9535DBR.

Então, indiretamente, você pode fazer isso, dependendo dos requisitos de velocidade. Se você estiver em um PC, os requisitos de tempo exato são difíceis de qualquer maneira.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.