LINUX.ORG.RU

Подключение произвольных устройств к IDE или SATA портам

 


0

1

Уважаемые участники!

Возникла необходимость подключать устройство с параллельным обменом (байтовым, но можно и на последовательную передачу по одной-двум линиям перейти, устройство-то как раз можно перепрограммировать) к материнским платам под управлением Linux прежде всего. Но и под Win есть возможность начать эксперименты по крайней мере. По ситуации вариантов всего два: SATA порт на плате или IDE порт через переходник SATA -> IDE. Реализацию протокола обмена пока опустим, это более или менее решаемо, если остальное возможно. Ни USB, ничего другого нет - остался только SATA порт. Вот посмотрел сейчас пока на свой компьютер - на моей матери 2017 г.в. вообще нет никаких «Legacy», PCI-IDE, а есть только AHCI и какой-то Intel RST Premium.

Подскажите, пожалуйста - реально через адреса PCI или чего-то подобного сделать так, что бы, обращаясь как бы к SATA (раз на порты из диапазона 1xx сейчас рассчитывать уже нельзя, особенно на новых платах), на выходе переходника в IDE появлялись нужные мне логические сигналы?

Нет, это фантастика. SATA разъем подключён к контроллеру, контроллер к шине PCI, на шине он реализует протокол AHCI. AHCI не даёт произвольно задавать «логические сигналы» на SATA разъёме.

Предпосылки не верны. На твоей материнке 2017 года есть наверняка LPT хедер, парочка COM хедеров, и десяток портов USB на заднице и в хедерах. Полистай мануал на материнку. Воткни USB serial adapter. Вместо фантазий про SATA.

iliyap ★★★★★
()

Подключение произвольных устройств к IDE или SATA портам

Возможно, но разработка устройства может выйти существенно дороже любой мамки.

Ни USB, ничего другого нет

Мамка 2017г без USB? Модель в студию!

PS Во молодежь пытливая пошла, один AIO переизобретает, другой - GPIO

kindof
()
Ответ на: комментарий от iliyap

Да нет же. Свой комп я привел как пример (что в 2017 уже небыло legacy режимов для SATA), это только для разработки. Целевая материнкая плата ТОЧНО не имеет внутри ни USB, ни COM - ничего. Это типа нового промышленного компа. Снаружи корпуса все есть. Но кастомную плату расширения нужно поставить именно внутрь. Наружные хвосты недопустимы. Вот такая вот ситуация. Внутри на плате только SATA один свободен, front panel connector и Audio. Честное слово,т.к. обмен с кастомной платой будет совсем медленный и только от компа к плате, то я, если бы мог заставить по моему хотению моргать Power Led (все равно этот разъем незадействован) передачу организовал бы через этот канал! Думал даже через audio сделать, (что получится не сомневаюсь), но аналоговую передачу вводить нехочется, и да вдруг звуковой выход когда-то потреюуется… а там что то типа модема звучит ;-)

furlong
() автор топика
Последнее исправление: furlong (всего исправлений: 1)
Ответ на: комментарий от furlong

Целевая материнкая плата ТОЧНО не имеет внутри ни USB, ни COM - ничего. Это типа нового промышленного компа. Снаружи корпуса все есть.

Снаружи есть а внутри нет? Столько написать кроме одного - модели матери?

kindof
()
Ответ на: комментарий от kindof

Разве это как-то поможет? - https://www.ixbt.com/platform/hiper-m11-review.html

Можно конечно и импульсами на разъеме для куллера управлять, и воз можно, что-то через слот для SIM придумать. Но завтра они уберут эти разъемы - и все. Можно даже через Wi-Fi внутренний. Но! Если через SATA это конечно сложно и мегаколхоз, это остальное это вообще фантастика. Ну что им стоило USB внутри сделать…

furlong
() автор топика
Последнее исправление: furlong (всего исправлений: 1)

Ну какие-то сигналы на IDE разъёме появляться будут, но наверное не такие, как надо. И придётся вешать на IDE какой-нибудь микроконтроллер и писать прошивку, чтобы он притворялся НЖМД. И не факт, что SATA->IDE будет поддерживать PIO 0, может захотеть UDMA. И с AHCI режимом могут быть проблемы: https://mysku.club/blog/aliexpress/74615.html

Делайте лучше через audio, если знаете как. Хотя каждый может делать что хочется, вот один кадр хочет сделать самодельную плату SATA НЖМД WD caviar 21000 https://blog.rlab.ru/tags/wd21000 , куда только санитары смотрят...

mky ★★★★★
()
Ответ на: комментарий от furlong

Разве это как-то поможет? - https://www.ixbt.com/platform/hiper-m11-review.html

Импортозамещаем на 50% за рупь контроллером с неонкой? )

USB там как грязи. Даже miniPCIe есть

kindof
()
Последнее исправление: kindof (всего исправлений: 1)
Ответ на: комментарий от kindof

Делаю для себя, и уверен, подобное решение сработало бы не раз. Да и к SATA давно подступался. А где там внутренние USB, моджет, я что-то пропустил? Паять что-то на материнской плате не хочу принципиально. miniPCIe занят Wi-Fi адаптером в стоке. Да и сделать кастомную miniPCIe та еще задача.

furlong
() автор топика
Ответ на: комментарий от furlong

Возьми другую плату. Сейчас этих «индустриальных» плат формата 4x4 дюйма кто только не делает. Широкий ассортимент. Пример платы с COM хедером: https://www.asrockind.com/en-gb/4X4-R1000V. Китайские минипк на али как грязи. Пример с gpio гребенкой на плате: https://aliexpress.ru/item/1005004661644072.html

iliyap ★★★★★
()
Ответ на: комментарий от iliyap

Это все так, но, во-первых, этих ПК было полно в Ситилинк и других местах, а не на Алике. Кроме того, это уже готовый комп очень удачной конструкции. Достаточно только переделать лицевые панели, и внутрь можно засунуть еще несколько реле и остальное, что мне нужно на одной плате.

furlong
() автор топика
Ответ на: комментарий от furlong

Делаю для себя

Это типа нового промышленного компа. Снаружи корпуса все есть. Но кастомную плату расширения нужно поставить именно внутрь. Наружные хвосты недопустимы. Вот такая вот ситуация.

Удачи! И заказчикам привет 😂

kindof
()
Ответ на: комментарий от kindof

"Это типа нового промышленного компа. Снаружи корпуса все есть. "

А что не так, мистер Разоблачение? Тут сначала никак не могли понять, что я привел свою плату в настольном компе 2017 г.в. как пример (в котором уже 6 лет назад выпилили как SATA legacy), а этот комп дествительно Новый (2022г) И действительно Промышленный (по крайней мере по верии хобота и изготовителя): https://www.ixbt.com/platform/hiper-m11-review.html

Для меня он новый хотя бы потому, что часть, отвечающая за SATA там наверняка не поддерживает legacy IDE-штучки. Если бы там, да и вообще до сих пор, можно было бы работать с портами 170 или 1F0 я бы давно уже все сделал. Но на это лучше не рассчитывать, мне нужн то, что будет работать и сегодня и завтра.

А так да, я любитель странных конструкций, недавно запилил себе 80486 в деревянном корпусе размером с коробку от маленькой пиццы.

Однако, когда предстоит большой объем работы, я все-таки прикидываю, что бы это можно было потом с пользой использовать не один год. Смысл мне изучать, как это можно было бы сделать лет 15 назад…

furlong
() автор топика
Последнее исправление: furlong (всего исправлений: 3)
Ответ на: комментарий от furlong

А что не так, мистер Разоблачение?

все так, мистер Любитель странных конструкций

мне нужн то, что будет работать и сегодня и завтра.

Единственно, жаль, что Вы не написали ЧТО же там будет работать

А так да, я любитель странных конструкций, недавно запилил себе 80486 в деревянном корпусе размером с коробку от маленькой пиццы.

Надеюсь, из березки? Фото можно? На память.

kindof
()
Ответ на: комментарий от kindof

Фото - пожалуйста: https://cloud.mail.ru/public/DRGs/WTBE8totg

Хрен его знает, березка это или не березка, но лазерный станок ее режет очень точно. Обратите внимание, вся конструкция питантся только от 5 вольт, от внешнего БП. Сейчас делаю подобный комп, только еще меньше. На высокоинтегрированной плате Intel 1997 г.в. с Pentium 100.

А с этой идеей… ладно,что делать, пожертвую Wi-Fi и поставлю miniPCIe в RS-232, далее дело техники.

furlong
() автор топика
Последнее исправление: furlong (всего исправлений: 1)
Ответ на: комментарий от furlong

Паять что-то на материнской плате не хочу принципиально. miniPCIe занят Wi-Fi адаптером в стоке. Да и сделать кастомную miniPCIe та еще задача.

на правах оператора броузера: вбиваешь в поиск miniPCIe expansion и методично выбираешь себе по вкусу.

вот на первой странице выдаёт подобное: https://www.gateworks.com/products/mini-pcie-expansion-cards/gw16113-mini-pcie-expansion-card/

там miniPCIe транзитом/стеком насколько понимаю. То есть её втыкаешь в свой микро-комп, а в неё уже WiFi. Обретаешь GPIO

ищите и обрящите, вы не первый сталкиваетесь с нехваткой интерфейсов и всяких разных решений в мире полно

MKuznetsov ★★★★★
()
Ответ на: комментарий от MKuznetsov

То есть её втыкаешь в свой микро-комп, а в неё уже WiFi. Обретаешь GPIO

Спасибо, да, типа этого мне тоже уже приходило с утра в голову, когда я копался на Алике. Чтоб и Fi-Wi сохранить. Однако, я в дальнем уголке буду держать такую возможную реализацию (на правах бреда пока) Итак, предположим: если реализовать переходнике что-то типа виртуального SATA - накопителя и хотя бы просто создавать файл с заданным именем, а из Altera наружу по тому же RS233 (это уже детали) передавать имя файла, которое на самом деле команда (или содержимое файла, что бы не столкнуться с ограничением на символы в именах файлов) далее на микроконтроллер платы расширения - все без сомнения взлетело бы. Но это я размечтался, на это уйдет вероятно не один месяц. Хотя было бы здорово, в любом компе свободные SATA не редкость.

furlong
() автор топика
Ответ на: комментарий от furlong

накопителя и хотя бы просто создавать файл с заданным именем

Это то вам зачем? Просто всё записываемое в сектор 0 идёт в микроконтроллер. В любом случае со стороны user-space нужен специальный софт, которых пишет с O_DIRECT и O_SYNC (и работает от root).

mky ★★★★★
()
Ответ на: комментарий от mky

Это то вам зачем? Просто всё записываемое в сектор 0 идёт в микроконтроллер. В любом случае со стороны user-space нужен специальный софт, которых пишет с O_DIRECT и O_SYNC (и работает от root).

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

furlong
() автор топика
Ответ на: комментарий от furlong

хотя было бы здорово, в любом компе свободные SATA не редкость.

в любом компе более не редкость свободные USB, распинованные но не выведенные на морду RS и некоторые GPIO (достаточно воткнуть проводочки), пропаенные но не распинованные LPT и доп.GPIO (посадочные места есть, просто штырёчек не воткнули)

зачем решать через проблемы ж-пу ?

PS/ а вот SATA «в любом компе», это дифицит, мне например их вечно нехватает..

MKuznetsov ★★★★★
()
Ответ на: комментарий от furlong

моджет, я что-то пропустил?

https://www.ixbt.com/img/r30/00/02/57/16/IMG9701.jpg

Разноцветно-жёлтые штырьки похожи на разъём для com-порта. Сравни с другими платами лучше. А может это usb, а com рядом.

grem ★★★★★
()
Последнее исправление: grem (всего исправлений: 2)
Ответ на: комментарий от kindof

Уважаемые участники - на плате цветной это Front Panel Connector, увы.

А вот платы внутри выложил туда же, файл с длинным именем: https://cloud.mail.ru/public/DRGs/WTBE8totg

Это обычная плата формата LPX, конкретно этот экземпляр сделан Siemens в 1994 или 1995. Проц из довольно поздних серий, 80486DX2-66 5V c кэшем WB. И сделана плата обалденно - даже все надписи золоченные. Что интересно, она заработала только от 5 вольт сразу. Потребление - 18 ватт. Но, естественно, не работали COM-порты. Для порядка прикрутил туда плату-переходник и на нее маленький DC-DC преобразователь +12 и -12 вольт из +5, и тогда и порты заработали.

Сейчас нарыл плату LPX от одной из моделей Vist-1000 1997 года. Так там на плате Pentium-100, S3-VirgeDX и Sound Yamaha, USB. причем плата гораздо меньше этой! Думаю сделать примерно то же самое, но еще аккуратнее. Пока не промерял плату, но думаю, не более 40 ватт. Единственно, надо будет прикинуть потребление по 12 и возможно -5 вольт (хотя -5 врядли нужно), что бы работал линейный выход на звучке.

furlong
() автор топика
Последнее исправление: furlong (всего исправлений: 2)
Ответ на: комментарий от furlong

Только у ядра файловый кеш. Если просто запись в файл, то неведомо когда данные будут на физическом носителе. А запись имени файла ещё неведомее. И при обычной записи ядро запросто может писать блоки в другом порядке.

mky ★★★★★
()
Ответ на: комментарий от mky

Только у ядра файловый кеш. Если просто запись в файл, то неведомо когда данные будут на физическом носителе. А запись имени файла ещё неведомее. И при обычной записи ядро запросто может писать блоки в другом порядке.

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

furlong
() автор топика
Последнее исправление: furlong (всего исправлений: 1)
Ответ на: комментарий от furlong

P.S. У меня еще как-то мелькнула мысль распечать на 3D принтере как бы ножки, по периметру, для этого 486 компьютера (и покрасить их из балончика золотой краской), что бы получился типа процессор! Но вовремя остановился.

furlong
() автор топика
Ответ на: комментарий от furlong

Если уж совсем извращаться то можно найти на материнке/видюшке и т. д., а из онтопика гнать трафик на него. Конечно, это не GPIO, но обойтись микроконтроллером средней паршивости вполне можно ))

Minoru ★★★
()
Ответ на: комментарий от pihter

Или syncfs()? И какую проблему вы этим решаете? Напомню, тут рассматривается гипотетический МК, притворяющийся НЖМД, да ещё и с эмуляцией ФС. Помимо передчи данных из компа в МК, наверняка захочется ещё читать из МК, и как читать без O_DIRECT?

mky ★★★★★
()
Ответ на: комментарий от pihter

VGA выведен внутрь корпуса? Или вы главное требование ТС пропустили?

И вобще, i2c в VGA это не интерестно, вы к DDR-модулю подпаяйтесь, там ведь тоже i2c на SPD...

mky ★★★★★
()
Последнее исправление: mky (всего исправлений: 1)
Ответ на: комментарий от mky

VGA выведен внутрь корпуса?

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

С высокой вероятностью разъём vga вообще не используется и может быть выпаян, а вместо него - запаять вертикальное гнездвшко, или DuPont штырьки или прям специально так платку разработать чтоб туда втыкалась. I2с зато, - бери и пользуйся без вот этого вот всего

И вобще, i2c в VGA это не интерестно, вы к DDR-модулю подпаяйтесь, там ведь тоже i2c на SPD…

Ну на памяти то оно занято, а на vga свободно, если предположить что монитор в этот разъём не воткнут

pihter ★★★★★
()
Ответ на: комментарий от MKuznetsov

Это для какой-то конкретной экзотической платы. А универсальным решением могли бы быть, скажем, miniPCI-e в USB, в него хаб, а в него Wi-Fi и ардуинку.

t184256 ★★★★★
()
Последнее исправление: t184256 (всего исправлений: 1)
Ответ на: комментарий от pihter

Ну, пока что всё чисто гипотетически. А ваша позиция занятна, с одной стороны вы пишете про sync(), то есть отстаиваете позицию ТС по реализации не только эмуляции НЖМД, но и файловой системы, что и затратнее и сложнее, так нужно ещё и кеш ОС обходить, а потом раз и:

овчинка выделки не стоит

mky ★★★★★
()
Ответ на: комментарий от pihter

Исходно ТС против пайки материнки, а если уж паяться, то к USB.

С высокой вероятностью разъём vga вообще не используется

Ну кому как, с точки зрения автоматизации на коленке, найти старый, который не жалко, VGA монитор проще, чем HDMI.

Ну на памяти то оно занято

Дак на i2c шине куча устройств ведь может быть. Почему на материнках не выводят i2c? (комментарий) там на lm-sensors фото подпаивания к модулю памяти...

mky ★★★★★
()