Перейти к содержанию
    

LPT порт в режиме чтения

Здравствуйте. Пишу драйвер для своего LPT устройства. Данные отправляются правильно, а назад ничего не приходит (точнее 0x00). Слышал, что надо перевести порт в режим чтения. Подскажите, как правильно нужно сделать. Метод проб и ошибок пока не применяю, т.к. не хочется палить LPT порт.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Слышал, что надо перевести порт в режим чтения.

В режиме SPP чтение с линий данных работать не будет. Вам нужны режимы EPP или ECP. Вот и поищите в Сети, как их задействовать.

А зачем вам свой драйвер ? Может, вам достаточно будет ознакомиться с тем, как, например, сделан программатор AVREAL и использовать поставляемый с ним драйвер ?

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В режиме SPP вполне себе можно принимать данные. Используя чтение линий состояния. :) А если поставить К589АП16 - то можно получить полноценный двунаправленный 4-битный порт :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Еще можно "отгрызть" несколько бит выходного порта и программно сканировать адрес входа/выхода :) запустить адрес на мультиплексор, типа КП1, и регистр - вроде ИР33, и несолько бит для выбора направления и фиксации.

Делал такое для управления термопласт-автоматом с компьютера, ну это уже немного извращение :laughing:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Перевёл порт в BIOS-е на bidirectional режим. Потихоньку начал давать напряжение. Ток резко поднялся. Т.е. там идёт сильная привязка к +5 В или 0 В. Попробовать хочу честно читать 8 бит через LPT. Но это так, вроде внеклассного чтения. Пишу свой драйвер, вот решил его для LPT сделать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Перевёл порт в BIOS-е на bidirectional режим. Потихоньку начал давать напряжение. Ток резко поднялся.

Куда давать ? От внешнего источника на ножки порта ? И ток при этом поднимается ? Так у вас конфликт, и порт работает на вывод, и ваш источник - тоже. Один выводит ноль, второй - единичку, вот и причина описанного вами эффекта. Вы прежде точно выясните, как переключить линии порта на ввод.

См. того же Кулакова, например, "Программирование на аппаратном уровне: специальный справочник" (вам нужен режим ECP):

 

http://www.ex.ua/272314

 

И еще. Не подавайте сигналы на ножки порта напрямую - сожжете порт или что-то еще. Подавайте через резисторы (килоом - вполне разумный номинал для начала) ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я думал как в микроконтроллере, тоже регистр режим должен быть - на ввод и на вывод. Типа Data Direction Redgister.

Спасибо, почитаю про ECP, EPP. Тему можно считать закрытой.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо, почитаю про ECP, EPP. Тему можно считать закрытой.

Не за что.

Еще Фроловых можете глянуть, у них целая книжная серия была: "Библиотека системного программиста". В какой-то из книг это должно быть расписано ...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...