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

12415
Mohsen Salahshoor

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

17
Это то, что указано в спецификации к материнской плате. Кроме этого, этот вопрос просто требует предположений. 8 лет назад 2
@OlinLathrop хорошо, если они есть, как я могу с ними общаться? Есть ли в операционных системах встроенный API для этой цели? или есть какой-нибудь API для языков программирования? 8 лет назад 1
"контакты как контакты GPIO микроконтроллера" Как они "похожи"? Все контакты выглядят одинаково .. Eugene Sh. 8 лет назад 1
Я не сталкивался с выводами GPIO на настольном компьютере, чаще всего это были периферийные расширения (USB-разъем, Audio-заголовок и т. Д.) Или входы для переключателей и выходы для светодиодов. Если бы это была обычная функция, Интернет не был бы завален рекомендациями о том, как использовать DTR последовательного порта в качестве GPIO или параллельного порта. Я бы сказал, что этот вопрос здесь не относится. 8 лет назад 0
Процессоры x86, как правило, не имеют выводов GPIO, причем каждый вывод направляется на конкретную встроенную периферию без мультиплексирования PIO, что является обычным для MCU. ОДНАКО, функциональность, подобная GPIO, часто является частью архитектуры и обрабатывается (обычно с отображением памяти) на материнской плате. Чипсет будет часто иметь несколько низкоуровневых шин (SPI и I2C для датчиков), а также доступные GPIO, точную природу зависит от используемой материнской платы и набора микросхем / архитектуры. crasic 8 лет назад 2
@EugeneSh. они расположены прямо рядом друг с другом, как моя плата Arduino Nano 8 лет назад 0
@ Crasic тогда, если вы скажете это, я думаю, что я получил ответ на свой вопрос 8 лет назад 0
И подумайте: если вы используете GPIO такой материнской платы и в своем эксперименте вы взорвете / уничтожите ее. Это будет дорого заменить. Если вы используете дешевый GPIO через USB или что-то еще и уничтожаете его, заменить его будет дешево. 8 лет назад 0
@Mohsen Их размещение практически ничего не говорит об их функции. Eugene Sh. 8 лет назад 0
@Mohsen на самом деле не так уж и много, как общее состояние потребительского оборудования, я уверен, что есть устройства x86, предназначенные для встраиваемых приложений, которые имеют встроенную gpio. Кстати, спецификации для процессоров Intel и AMD обычно доступны на их соответствующих веб-сайтах, вы можете увидеть, какие периферийные устройства доступны на кристалле. Общий вывод заключается в том, что высокопроизводительные потребительские устройства, такие как i7, имеют несколько высокоскоростных шин и стандартные интерфейсы для памяти. crasic 8 лет назад 0
Пакет linux «lm-sensor» позволяет считывать устройства на шине I2C; Обычно это набор датчиков температуры, контроллеров вентиляторов и идентификационных EPROMS на вашей DRAM. pjc50 8 лет назад 0
Ну, я знаю, что для этой цели будут использоваться встроенные платы или внешние USB-модули, но программе, которую я собираюсь разработать, нужны ресурсы, которые включены в настольный компьютер (Ram, CPU, ...), встроенное устройство не способен запустить его. 8 лет назад 0
Если вам нужен gpio, расширитель портов i2c, добавленный к одному из i2c или smbus, будет работать в крайнем случае. cde 8 лет назад 0

4 ответа на вопрос

12
plugwash

Обычные ПК не имеют 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, которые можно использовать для подключения к этому.

2
Hans

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

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

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

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

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

2
Ian Ide

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

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

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

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

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

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

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

0
Hans

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

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

Похожие вопросы