Можно ли использовать контакты дисковода на любой материнской плате в качестве контактов GPIO?

Можно ли использовать контакты дисковода на любой материнской плате в качестве контактов GPIO?

Недавно я увидел некоторые функции raspberry-pi, и больше всего меня привлекли его контакты GPIO (General Purpose Input Output). Затем я подумал, что у меня есть старая материнская плата с контактами для дисковода, затем я подключил ее, запустил и установил на нее Ubuntu. Это сработало!

Теперь мой вопрос:

  1. Могу ли я использовать контакты дисковода в качестве контактов GPIO?
  2. Если нет, то, пожалуйста, дайте мне знать, какие контакты можно использовать как GPIO или для этого нет никаких приспособлений?

решение1

В общем, соединения для дискет не могут использоваться как контакты GPIO. Если у вас есть точная спецификация чипов, которые управляют дискетой, то иногда вы можете что-то с этим сделать, но это ни в коем случае не будет легко или гарантированно работать. Так что ответ, вероятно, нет.

Есть ли у вашей материнской платы контакты GPIO, нам узнать невозможно. Некоторые материнские платы Gigabyte, похоже, имеют их. Кроме того, если ваша материнская плата настолько старая, что у нее есть параллельный порт принтера, это был бы серьезный вариант.

Лучшим вариантом, кажется, будет использование адаптера GPIO-USB, если вы хотите управлять им напрямую. Они должны быть доступны примерно от 15 евро или эквивалента в вашей местной валюте. Другой вариант — взглянуть на Arduino. И, конечно, Pi zero W также возможен за эту цену.

решение2

старая материнская плата ... установлен ubuntu

Если Ubuntu работает из коробки, скорее всего, Floppy Controller довольно "современный". Последняя версия Ubuntu не очень хорошо работает на очень старых ПК.

Могу ли я использовать контакты дисковода в качестве контактов GPIO?

Вы можете использовать несколько. Посмотрите наразъем для гибкого диска, сравните это с техническим описанием, и вы увидите, что единственные, которые вы можете легко использовать, это Motor A Enable, Motor B Enable, и Drive Select, в качестве выходных контактов.

И вы, возможно, даже не сможете использовать их все; чип Super-I/O на одной из старых материнских плат, которые у меня есть, поддерживает только один диск (и, следовательно, один сигнал двигателя).

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

Итак, для начала вам нужно выяснить, какой именно контроллер гибких дисков (или микросхема Super-I/O) установлен на вашей материнской плате, и поискать в Google руководство или техническое описание.

Во-вторых, Linux не является ОС реального времени, поэтому управлять контактами, когда синхронизация имеет решающее значение, сложно.

В-третьих, современный Linux делает «простую передачу значений устройствам» все более сложной задачей; возможно, придется написать простой драйвер ядра.

Если на вашей старой материнской плате также имеются последовательные или параллельные порты: их гораздо проще использовать как GPIO.

И, как написано в другом ответе, самый простой способ — потратить несколько евро и купить USB-устройство GPIO — тогда вам не придется возиться со всем этим (хотя, конечно, в возне есть свои прелести).

Связанный контент