Есть ли у материнских плат настольных компьютеров GPIO? Если они делают, как читать или писать им

21

Я видел пару выводов, таких как выводы GPIO микроконтроллера на материнских платах настольных компьютеров, я хотел знать, во-первых, действительно ли они являются GPIO? если да, можно ли читать или писать в них?

Мохсен Салахсхур
источник
2
Это то, что указано в спецификации к материнской плате. Кроме этого, этот вопрос просто требует предположений.
1
@OlinLathrop хорошо, если они есть, как я могу с ними общаться? Есть ли в операционных системах встроенный API для этой цели? или есть какой-нибудь API для языков программирования?
2
"контакты как контакты GPIO микроконтроллера" Как они "похожи"? Все контакты выглядят одинаково ..
Евгений Ш.
Я не сталкивался с выводами GPIO на настольном компьютере, чаще всего это были периферийные расширения (USB-разъем, Audio-заголовок и т. Д.) Или входы для переключателей и выходы для светодиодов. Если бы это была обычная функция, Интернет не был бы завален рекомендациями о том, как использовать DTR последовательного порта в качестве GPIO или параллельного порта. Я бы сказал, что этот вопрос не принадлежит здесь.
2
Процессоры x86, как правило, не имеют выводов GPIO, причем каждый вывод направлен на определенную встроенную периферию без мультиплексирования PIO, что является обычным для MCU. ОДНАКО, функциональность, подобная GPIO, часто является частью архитектуры и обрабатывается (обычно с отображением памяти) на материнской плате. Чипсет часто будет иметь некоторые низкоуровневые шины (SPI и I2C для датчиков), а также доступные GPIO, точная природа зависит от используемой материнской платы и набора микросхем / архитектуры.
авария

Ответы:

15

Обычные ПК не имеют GPIO как такового в смысле «выводов, предназначенных для общего назначения». Разъемы на материнской плате ПК (будь то внутренние разъемы или внешние порты) были разработаны для определенных функций. Однако некоторые из них могут быть перенаправлены для ваших собственных целей.

Наиболее близкая вещь к GPIO, которую имеют ПК, - это, вероятно, параллельный порт принтера, который имеет несколько строк данных и линий рукопожатия. Эти линии чем-то похожи на выводы GPIO, хотя у вас меньше гибкости с точки зрения их направления. http://retired.beyondlogic.org/spp/parallel.htm

Линии квитирования на последовательных портах также могут использоваться в качестве общего ввода-вывода, хотя они имеют странные уровни напряжения.

Параллельные и последовательные порты встречаются реже, чем раньше, но все же довольно легко найти материнские платы, у которых они есть, если вы ходите по магазинам.

Вы также можете изменить расположение входов и выходов, предназначенных для светодиодов, кнопок и т. Д., Но я думаю, что детали будут очень специфичны для конкретной системы.

ПК используют шину на основе I2C под названием SMBUS для различных функций управления. Я уверен, что я уже видел сообщения о том, что люди подключали свои собственные устройства I2C к этой шине через пайку, но сейчас я не могу найти ссылки.

На видео портах есть еще одна шина I2C, используемая для идентификации монитора. Доступ к программному обеспечению зависит от того, какую операционную систему и видеооборудование вы используете. Http://www.instructables.com/id/Worlds-Cheapest-I2C-I-Squared-C-Adapter/step5/Software-and- Проекты /

И конечно же, есть USB. В настоящее время существуют дешевые микроконтроллеры с интерфейсами USB, которые можно использовать для подключения к этому.

plugwash
источник
2

Я думаю, что вопрос, если материнские платы имеют GPIO, очень специфичен для модели и марки. Некоторые могут, некоторые нет.

Например, на моей системной плате Asus он содержит Nuvoton NCT6775 для управления вентилятором и считывания температуры. Это доступно из утилит BIOS и Windows. Мне нужно запустить программное обеспечение Asus, чтобы управление вентиляторами работало, а это значит, что управление вентиляторами ШИМ осуществляется программным обеспечением. При установке Linux мне нужно настроить его вручную через этот модуль ядра и pwmconfig.

Если вы посмотрите таблицу данных Nuvoton NCT677xF, вы найдете стандартное оборудование для управления ШИМ, считывания температуры и напряжения, а также GPIO через SMBus. Оснащенный обоими дает вам достойное начало, чтобы заставить его работать. Теоретически вы можете использовать этот чипсет для функций GPIO.

Однако я бы не трогал это. Вы не знаете, какое оборудование подключено к нему, если не хотите погрузиться в очень специфическую модель материнской платы и перепроектировать ее (например, расположение, расположение выводов и т. Д.). На разъем тоже не пробивается.

Самое главное, если ваше приложение должно работать в течение нескольких лет, модель материнской платы также должна. Если нет, то привязка к очень специфическому оборудованию материнской платы не очень хорошая идея.

Hans
источник
2

Я знаю, что это старая тема, но в любом случае ...

Запрограммировав код BIOS, я могу сказать, что у каждой материнской платы есть GPIO, и они полностью доступны в адресном пространстве пользователя, а адрес порта обычно очень близок к параллельному порту. Я сделал пользовательские драйверы для пользовательских материнских плат, используя стандартные драйверы параллельного порта, все, что мне нужно было сделать, это изменить номер адреса, но я знал этот номер заранее.

Вы можете их использовать? Ну, это зависит от человека, который запрограммировал BIOS. Состояние всех GPIO должно быть установлено до компиляции, все неиспользуемые GPIO могут быть легко отключены.

Если GPIO не используется и не установлен, каково его состояние по умолчанию? Вполне вероятно, что просто плавающие (большинство из них с тремя состояниями, так что удачи) ..

У GPIO есть подтягивание / опускание? Кто знает, добавил ли EE один ..

Есть ли следы для неиспользованного GPIO? Я сомневаюсь в этом, но эй все возможно ..

Короче говоря, вам повезло, что неиспользованный GPIO был установлен таким образом, что вы можете использовать его; очень похоже на arduino (но без реальных значений по умолчанию), подумайте «INPUT / OUTPUT / TRI». На материнской плате должен быть полезный след, который, как мы надеемся, имеет булавку или пэд для пайки. Тогда, если вы знаете расположение адреса GPIO, вы можете легко использовать стандартный драйвер пространства пользователя.

Ян Иде
источник
0

ПК обычно имеют интерфейсы i2c, и вы можете найти микросхемы расширения ввода-вывода для i2c, такие как TI TCA9535DBR.

Таким образом, косвенно вы можете сделать это в зависимости от ваших требований к скорости. Если вы работаете на ПК, то точные временные требования все равно хитры.

Hans
источник