Re[6]: Как можно управлять пинами ide разъема ?
От: fk0 Россия https://fk0.name
Дата: 26.02.11 14:41
Оценка:
Здравствуйте, lomom, Вы писали:

fk0>> Не надо путать контроллер винчестера и собственно IDE-интерфейс. В момент исполнения процессором инструкции IN можно считать любой бит шины данны DataX, либо установить там любой уровень на время выполнения команды OUT (данные можно защёлкнуть во внешнем регистре сигналом I/O Write). Но подключать на IDE-шину всякое непотребство не стоит -- она подключается практически напрямую к параллельной шине компьютера. В момент когда нет чтения (сигнал I/O Read) там не должно быть ничего работающего на выход с низким выходным сопротивлением.


L>Что не хорошо подключать согласен, но плата будет заниматься только этим так-что не страшно, лишь-бы был результат.


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

L> нужно один стробирующий входящий сигнал,


Только если в разрыв шины (данных) поставить регистр типа 1533ИР23. Т.е. он по-стробу (вход /C) запоминает байт данных и он потом может быть считан пока сигнал /WRITE (с IDE разъёма) в нуле (подключается к /OE регистра).

L> отлично если на этот пин можно посадить прерывание.


Процессор на прерывание отреагирует очень небыстро. Хотя там есть вход IRQ -- и может быть использован для получения прерывания контроллером прерывания (интеловский аналог 1810ВН59) -- а дальше уже как контроллер запрограммируешь. Это если под досом. Под виндовсом надо делать свой драйвер и чтоб драйвер винта штатный не мешал (не обрабатывал прерывания и не лез в порты), под линуксом аналогично.

> Можно где пример посмотреть как считывают и пишут — или в моём случае дергают пинами ?


М. Гук "Аппаратные средства IBM-PC". Я бы советовал завести на машине дос. После того, как будет отлажено -- переносить на винду/линукс в виде драйвера. Может быть ralf brown interrupt list и другие "учебники" программирования под дос старых времён...

L>out 0x170, 0

L>out 0x170, 0xff
L>out 0x170, 0
L>так дернет пином с частотой шины ?

Пином /WRITE дёрнет 3 раза и быстро. Пинами D0-D7 дёрнет один раз и со скоростью выполнения команд процессора (между которыми вполне может возникнуть прерывание).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.