Чи мають материнські плати настільних комп’ютерів GPIO? Якщо вони це роблять, як читати з них або писати їм


21

Я кілька разів бачив штифти, такі як шпильки GPIO мікроконтролера на материнських платах настільного комп’ютера, я хотів дізнатися, по-перше, чи це насправді GPIO? якщо так, то чи можна з них читати чи писати?


2
Вони є будь-якими таблицями даних для материнської плати. Крім цього, це питання просто вимагає спекуляцій.

1
@OlinLathrop добре, якщо вони є, як я можу спілкуватися з ними? чи мають операційні системи вбудований API для цієї мети щось? чи є API для мов програмування?

2
"шпильки, як GPIO-штифти мікроконтролера" Як вони "схожі"? Всі шпильки виглядають однаково ..
Євген Ш.

Я не натрапив на шпильки GPIO на настільному комп’ютері, такі речі виглядають так, як це були більшість часу деякі периферійні розширення (заголовок USB, аудіозаголовок тощо) або входи для перемикачів і виходів для світлодіодів. Якби це було загальною ознакою, Інтернет не був би завалений порадами щодо використання DTR послідовного порту як GPIO або паралельного порту. Я б сказав, що це питання тут не належить.

2
Загалом процесори x86 не матимуть GPIO-штифтів, при цьому кожен контакт спрямовується на певну периферійну модуль без мультиплексування PIO, що є звичайним для MCU. ЯКЩО, функціонал, подібний до GPIO, часто є частиною архітектури та керується (як правило, картами пам'яті) периферійними пристроями на материнській платі, чіпсет часто матиме кілька шин низького рівня (SPI та I2C для датчиків), а також наявні GPIO, точний характер залежить від використовуваної материнської плати та чіпсета / архітектури.
катастрофа

Відповіді:


15

Звичайні ПК не мають GPIO як такого в значенні "штифти, призначені для загального призначення". З'єднувачі материнської плати ПК (будь то внутрішні заголовки чи зовнішні порти) були розроблені для певних функцій. Однак деякі з них можна переробити для власних цілей.

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

Лінії рукостискання на послідовних портах також можуть використовуватися як загальний IO, хоча вони мають дивні рівні напруги.

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

Можливо, ви також зможете змінити входи та виходи, призначені для світлодіодів корпусу, кнопок тощо, але я думаю, що деталі будуть дуже специфічними для конкретної системи.

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

На відеопорти є ще одна шина I2C, яка використовується для ідентифікації монітора. Чи можете ви отримати доступ до програмного забезпечення, залежить від того, яку ОС та відео обладнання ви використовуєте http://www.instructables.com/id/Worlds-Cheapest-I2C-I-Squared-C-Adapter/step5/Software-and- Проекти /

І звичайно, є USB. Зараз є дешеві мікроконтролери з інтерфейсами USB, які можна використовувати для підключення до цього.


2

Я думаю, що питання про те, чи є материнські плати GPIO, дуже специфічний для моделі та моделі. Деякі можуть, деякі ні.

Наприклад, на моїй настільній панелі Asus вона містить Nuvoton NCT6775 для контролю вентилятора та зчитування температури. Це доступно через (спеціальні постачальники) BIOS та утиліти робочого столу Windows. Мені потрібно запустити програмне забезпечення Asus для того, щоб управління вентилятором працювало, а це означає, що керування вентилятором ШІМ здійснюється програмним забезпеченням. Під час встановлення Linux мені потрібно встановити його вручну через цей модуль ядра та pwmconfig.

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

Однак я б не торкнувся цього. Ви не знаєте, яке апаратне забезпечення підключено до нього, якщо ви не хочете зануритися в дуже специфічну модель материнської плати та реверсувати її (наприклад, макет, розподіл контактів тощо). Він також не розірваний на роз'єм.

Найголовніше, якщо вашій програмі потрібно тривати кілька років, так само повинна бути і модель материнської плати. Якщо ні, то прив'язка до дуже специфічного обладнання для материнської плати не є хорошою ідеєю.


2

Я знаю, що це давня тема, але все одно ...

Програмувавши код BIOS, я можу сказати, що на кожній материнській платі є GPIO, і вони повністю доступні в адресному просторі користувача, а адреса порту зазвичай дуже близька до паралельного порту. Я створив власні драйвери для індивідуальних материнських плат, використовуючи стандартні драйвери паралельних портів, все, що мені потрібно було, - це змінити номер адреси, але я знав це число заздалегідь.

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

Якщо GPIO не використовується та не встановлено, який його стан за замовчуванням? Цілком ймовірно просто плаваюче (більшість є тридержавними, так удачі) ..

Чи має GPIO підтягування / витягнення? Хто знає, чи додав EE.

Чи є сліди для будь-якого невикористаного GPIO? Я сумніваюся в цьому, але ей все можливо ..

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


0

ПК, як правило, мають інтерфейси i2c, і ви можете знайти мікросхеми розширення IO для i2c, наприклад TI TCA9535DBR.

Тож опосередковано ви могли це зробити, залежно від швидкості. Якщо ви працюєте на ПК, то точні вимоги до термінів все одно складні.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.