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?
microcontroller
motherboard
Mohsen Salahshoor
fonte
fonte
Respostas:
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.
fonte
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.
fonte
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.
fonte
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.
fonte