С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
В случае NEMO-IDE тайминги формируются аппаратно. В софте я мееееедленно кладу команду в порт, а накопитель её не получает. Т.е. программно фактически одно простое действие: я записываю в порт командного регистра байт 0ECh и всё! Дальше жду ответ накопителя (смотрю его регистр статуса). Ответа никакого нет.
И вот тут уже надо разбираться, а как аппаратно контроллер с помощью одной команды МП реализует целый алгоритм действий?
Через контроллер-затычку я делаю это так:
1) Выставляю в регистре данных 00ECh (именно два байта, т.к. ШД в IDE 16-разрядная);
2) Активирую линию /CS1FX (выборка блока командного регистра накопителя);
3) Активирую линию /IOW (импульс записи данных в регистр накопителя);
4) Жду немного (7+ тактов МП);
5) Деактивирую линию /IOW;
6) Деактивирую линию /CS1FX.
Каким чудесным образом NEMO делает это всё одной командой МП? Может всё таки есть те, кто в курсе как работает этот контроллер?
- - - Добавлено - - -
Пытаюсь понять работу нэмо-схемы...
При записи в регистр команд HDD, дёргаются оба чипселекта регистров данных, стало быть на ШД IDE выставляется инфа из обоих регистров. Что, в общем-то, логично. Но при этом в старший регистр со стороны МП ничего не записывается, стало быть в HDD выдаётся мусор, который был в этом регистре от предыдущих операций.
Могу предположить, что десктопные "винты" игнорируют инфу в MSB, а ноутбучный хочет всё по-честному. Но не уверен, что я правильно понял работу схемы...
- - - Добавлено - - -
Есть инфа , что мой вариант нэмы скопипастен с Profi 3+.
- - - Добавлено - - -
Не подтвердилось! Попробовал подсовывать мусор в варианте с "затычкой", всё равно работает. В чём-то другом проблема.
Последний раз редактировалось Denn; 28.03.2018 в 13:11.
Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)