Не работает лпт порт

Не могу заставить работать LPT-порт в Windows 7 x64

Столкнулся с проблемой, не могу заставить работать LPT порт в Windows 7 64 Bit, до это работал на WindowsXP все работало отлично, тут же просто не хочет включаться порт, компьютер его видит и говорит что могу работать с портом, на самом деле это не так. Ему все равно, он ни на что не реагирует если с него попытаться что-то прочитать или записать, с подключенным устройством. Взял я даже драйвер от WindowsXP, все равно никак не хочет, не знаю что делать.

Помогите кто чем может, очень нужно!

Если тему не там создал, прошу перенести туда, где ей было бы место

Заставить софт работать на windows 7 x64
Написал программу, но народ жалуется, мол на x64 не запускается. Гуглил, сказали, что там пути до.

Как заставить работать программу на Фортране 77 в Windows 10 x64?
Как заставить работать программу на Фортране 77 в Windows 10 x64 ? Программа отлично работала в ХР.

LPT под Windows 7 (x86-x64)
Доброго времени суток! Есть ли у кого ни будь рабочий пример программы, для работы с LPT портом.

Программа работы с LPT-портом в Windows 7 x64
Есть программка, работающая с определенным оборудованием через порт LPT. Исходный код программки мы.

Читайте также:  Не работает виртуальный хост apache2

Я не уверен, но где-то читал, что в биосе нужно сменить режим LPT. попробуйте, хуже не станет, там их всего вроде бы три режима. И в диспетчере устройств посмотрите, не конфликтует ли порт с другими устройствами.

Добавлено через 1 минуту
еще как вариант у вас не стоят родные драйвера на чипсет. Взять их можно на официальном сайте производителя материнки, только под семерку берите, хрюшные не прокатят никак. удачи

Источник

cnc-club.ru

Статьи, обзоры, цены на станки и комплектующие.

Не работает LPT порт в Mach3

Не работает LPT порт в Mach3

Сообщение new_design » 27 мар 2019, 22:15

Re: Не работает LPT порт в Mach3

Сообщение hmnijp » 27 мар 2019, 23:31

при установке он сам предлогает поставить драйвер лпт, может этого не сделали, галку сняли.

А вообще непонятно что там с совместимостью настроек между версиями, по настройкам пробежаться проверить нужно

Re: Не работает LPT порт в Mach3

Сообщение Евжений » 28 мар 2019, 00:08

Re: Не работает LPT порт в Mach3

Сообщение dima138 » 28 мар 2019, 09:53

Re: Не работает LPT порт в Mach3

Сообщение new_design » 28 мар 2019, 20:49

Удалил более старый Мач с компа, но сохранил отдельно папку его содержимого в другой папке на диске. Затем установил новый Мач. Переключал разные режимы LPT порта в биосе — не помогло. Затем запускал из папки Мача SpecialDriver.bat — при запуске сразу черный экран и рестарт компа — не помогло.
В папке нового Мача не нашел программу DriverTest.exe, зато нашел ее в сохраненной папке старого Мача, оттуда ее запустил — она увидела, что у меня в папке system32/drivers уже стоит более новая версия mach3.sys от нового Мача — попросила ее перезаписать на более старую, я это сделал, проверил тестом LPT — сигнал хороший. Затем сделал рестарт компа — запускаю новый Мач — снова LPT не работает в новом Маче.

Теперь последнее, в папке system32/drivers я перезаписываю теперь уже наооборот файл mach3.sys от старого Мача на файл mach3.sys нового Мача (я сделал его резервную копию), и теперь запускаю Мач и всё заработало!

Странно, почему приходится делать столько манипуляций, чтобы заработал новый Мач с LPT? А если бы у меня не было файла mach3.sys со старого Мача, то как бы запустил новый Мач с LPT? При этом в итоге старый файл mach3.sys уже не нужен, а нужен снова новый в последствии, но старый нужен как промежуточный, чтобы в итоге всё заработало с новым. Какой-то корявый процесс.

Источник

Работа с LPT-портом в Win NT/2000/XP

LPT-порт (Line PrinTer) — порт параллельного интерфейса, который изначально создавался для подключения принтера. BIOS обеспечивает поддержку LPT-порта, необходимую для организации вывода по интерфейсу Centronics. Адресное пространство порта занимает диапазон &H378-&H37F

LPT-порт имеет 12 выходных и 5 входных линий. Такое довольно большое количество линий делает возможным подключение к порту несложной аппаратуры, возможно даже не имеющей своего микроконтроллера. Поэтому этот порт, несмотря на исчезновение принтеров с LPT-интерфейсом, активно используется для подключения простых программаторов микросхем памяти, JTAG-интерфейсов для перепрошивки (замены программного обеспечения) спутниковых рессиверов, DVD-плееров и другой электронной техники. Популярен LPT-порт и у моддеров, поскольку позволяет подключить к компьютеру LCD-дисплеи без изготовления сложных плат-интерфейсов.

Windows 2000/XP не позволяет приложениям обращаться к портам ввода-вывода напрямую. Для этого нужно использовать драйвер, работающий в KERNEL-mode (в режиме ядра операционной системы).

Ограничение доступа к портам ввода-вывода для обычных прикладных программ (работающих в пользовательском режиме) позволяет сделать операционную систему более стабильной. Хотя с другой стороны никто не мешает программисту написать драйвер, обращающийся к портам.

Интересно, что для процессора Intel x86 можно написать драйвер, использующий один из двух принципиально разных подходов. Первый вариант — драйвер сам обращается к портам, а прикладная программа только указывает драйверу, что делать. Этот вариант в общем случае является стандартным и предпочтительным.

Для решения проблемы существуют четыре популярных варианта драйверов, позволяющих прикладной программе обращаться к портам ввода-вывода: драйвер DLPortIO, драйвер UserPort, драйвер GiveIO.sis, драйвер Port95nt.

Все четыре варианта практически равноценны.

Драйвер DLPortIO

DLportIO — драйвер доступа к портам из пакета DriverLINX от Scientific Software Tools, Inc. (http://www.sstnet.com) в сокращённом виде (без описания и лишней документации). Для нормальной работы программ обслуживания LCD-индикаторов можно порекомендовать именно этот вариант драйвера.

Собственно драйвер состоит из двух составляющих:
• DLPortIO.dll — Win32 DLL, обеспечивающая аппаратные функции ввода/вывода и
• DLPortIO.sys — драйвер для WinNT, работающий в режиме ядра ОС (не требуется для Win95/98)

В установочном пакете драйвера, помимо этих двух компонентов, есть ещё файл Install.exe, перемещающий два вышеназванных в папку драйверов Windows и регистрирующий их в системе.

Больше писать про этот драйвер и нечего. Настройка не требуется. Скачали, установили, пользуемся. Не забываем заглянуть в конец статьи и почитать о дополнительных мерах обеспечения работоспособности LPT-порта.

Установка элементарная — запускаем файл Install.exe, устанавливаем. По окончанию установки заглядываем в папку C:\Windows\System32\drivers и проверяем наличие двух файлов драйвера (DLPortIO.sys и DLPortIO.dll). Если видим, что эти файлы так и не скопировались, берем их из установочного пакета и копируем вручную. Не переживайте, с компьютером ничего плохого не случится. Перегружаем компьютер и работаем с LPT-портом.

Если вдруг, в результате манипуляций с оборудованием, вы получите от драйвера сообщение такого плана: «dlportio.sys device driver not loaded. Port I/O will have no effect», не стоит паниковать. Исправляется эта проблема так:
• Запускаем regedit.
• Заходим в реестре в ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ .
• В папке dlportio изменяем значение параметра Start на 1.
• Перезагружаем компьютер.

Драйвер UserPort

Драйвер UserPort открывает доступ к портам в Win NT/2000/XP для программ. Этим вариантом драйвера LPT-порта чаще всего пользуются «технари», работающие с программаторами и JTAG’ами, поскольку драйвер имеет хоть какие-то конфигурирующие настройки. Для работы программ обслуживания LCD-индикаторов его так же можно использовать.

В архиве драйвера имеются три файла:
• UserPort.sys — драйвер для WinNT, работающий в режиме ядра ОС,
• UserPort.exe — программа для настройки драйвера и
• UserPort.pdf — файл описания.

Установка UserPort:
• 1. Распакуйте архив в отдельную папку.
• 2. Скопируйте файл UserPort.sys в C:\Windows\System32\drivers

Настройка UserPort:
• Запустите UserPort.exe.
• Перед нами появится панель с 2-мя окошками.

Левое окошко относится к работе программы в ДОС окне, правое на полном экране. По умолчанию в них прописаны номера портов LPT — все их можно удалить с помощью кнопки «Remove». В оба окна нужно вписать нужные номера портов, которые планируется использовать.

Для использования с драйвера с большинством программаторов, JTAG’ов и программ обслуживания дисплеев, добавьте в левую колонку следующие параметры:
378, 379 и 37A для LPT1
278, 279 и 27A для LPT2 (Если в BIOS’е переназначен адрес LPT-порта).

Поясню, что означают цифры. 0x378 — это адрес порта.
• Адрес 0x378 называется базовым и служит для записи и чтения данных в порт и из порта, по шине данных D0-D7.
• Адрес 0x379 (базовый+1) предназначен для чтения битов состояния из устройства, подключеного к LPT-порту.
• Адрес 0x37A (базовый+2) служит для записи битов управления устройства, подключенного к LPT-порту.

Добавляем так:
0x378-0x378
0x37A-0x37A

Добавлять адреса порта в список нужно через окно ввода и с помощью кнопки «Add». Адрес 0x379 чаще всего не нужен и его можно не вписывать, поскольку он предназначен для чтения битов состояния из устройства, подключеного к LPT-порту, а большинство устройств (программаторы, JTAG’и и LCD-индикаторы тем более) сигналы состояния не формируют. При желании можно наоборот вписать весь диапазон адресов, отведённых системой под LPT-порт 0x378-0x37F.

Заходим в Панель Управления , Система , выбираем закладку Оборудование , Диспетчер устройств , заходим в Порты (COM и LPT) и смотрим свойства LPT порта, по которому вы хотите установить соединение. В Свойствах открываем закладку Ресурсы и смотрим значение параметра Диапазон ввода/вывода (I/O) . (Обычно в Windows XP оно равно 378 — 37F)

После формирования списка адресов, нужно нажать кнопку «Start», драйвер будет запущен и появится сообщение:

Затем нажать кнопку «Update», при этом драйвер будет зарегистрирован в системе, затем «Exit». Разумеется, кнопку «Stop», пока мы пользуемся драйвером, нажимать не нужно.

Если при нажатии кнопки «Update» система уходит в перезагрузку, нужно пробовать запускать регистрацию драйвера в системе с правами администратора или попытаться временно отключить файрволл или антивирус, которые могут блокировать вмешательство в системные процессы. Если что-то не получилось, читайте UserPort.pdf

Для проверки, появился ли доступ к портам, можно запустить программу «lpt-test.exe».

После старта программы появится окно со следующим содержанием:

LPT-TEST v1.03 1995-2003 Copyright (C) С.Б.Алеманов. Москва «БИНАР».
Во время тестирования к портам не должно быть подключено периферийных устройств.
Dx — рег. данных (out), Ux — рег. управления (out), Sx — рег. статуса (inp).

Тестируется порт LPT1 (Адрес 378h)

Отсутствует порт LPT2

Отсутствует порт LPT3

Отсутствие сообщения «Тестируется порт LPT (Адрес XXXh)» и последующих за ним строк говорит о том, что драйвер не работает.

Эта программа просто посылает в регистр данных Dx и регистр управления Ux порта LPT различные числа, а потом их же считывает. Регистр статуса Sx порта LPT только считывается. На экран выводится номер и адрес тестируемого порта LPT. Если порт исправный, то для регистров Dx и Ux не должно выдаваться никаких сообщений.

LPT-TEST v1.03 1995-2003 Copyright (C) С.Б.Алеманов. Москва «БИНАР».
Во время тестирования к портам не должно быть подключено периферийных устройств.
Dx — рег. данных (out), Ux — рег. управления (out), Sx — рег. статуса (inp).

Тестируется порт LPT1 (Адрес 378h)
2-й контакт (D0) — нет «1»
3-й контакт (D1) — нет «1»
4-й контакт (D2) — нет «1»
5-й контакт (D3) — нет «1»
6-й контакт (D4) — нет «1»
7-й контакт (D5) — нет «1»
8-й контакт (D6) — нет «1»
9-й контакт (D7) — нет «1»
1-й контакт (U0) — нет «1»
14-й контакт (U1) — нет «1»
17-й контакт (U3) — нет «1»
1-й контакт (U0) — нет «0»
14-й контакт (U1) — нет «0»
17-й контакт (U3) — нет «0»
15-й контакт (S3) — нет «0»

Если регистры Dx или Ux неисправны, то выводится сообщение «нет 0» или «нет 1» и указывается номер контакта на LPT-разъеме (сигналы на этом контакте можно посмотреть осциллографом). На входе регистра статуса Sx может быть как «0» так и «1», но обычно, когда к порту LPT ничего не подключено, на всех входах регистра статуса имеется «1». Появление же на входе регистра статуса «0» может являться признаком того, что вход пробит, если раньше там всегда была «1».
На некоторых машинах, если регистр данных или регистр управления неисправны, то доступ к LPT-порту вообще не появляется. Видимо, BIOS при включении компьютера тестирует порт LPT и, если он неисправный, то отключает его.

Если возникают проблемы, возможно, работе мешают какие-то драйвера, периодически посылая импульсы в порт LPT (это можно увидеть осциллографом). Например, можно в настройках принтера отключиться от порта LPT:
выключить LPT1: Порт принтера
включить FILE: Печатать в файл

После того, как все проблемы устранены и тест пройден, должен появиться доступ к портам и можно запускать программу, использующую LPT-порт. В противном случае устройство, подключеное к порту на такой машине работать не будет.

Драйвер GiveIO.sys

В далеком 1996 году американский программист Дейл Робертс, провел серию экспериментов, результатом которых стал драйвер GiveIO.sys. До сих пор этот драйвер остается одним из популярных инструментов, позволяющих прикладной программе обращаться к портам ввода-вывода.

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

Однако, если вы абсолютно уверены в том, что требуемые порты ввода-вывода никто кроме вас не использует (например, у вас нет принтера, подключенного к LPT), вы можете спокойно пользоваться драйвером GiveIO.sys.

• 1. Скачайте архив, распакуйте и скопируйте файл GiveIO.sys в каталог C:\Windows\System32\Drivers (подразумевается, что ваша Windows установлена в каталог C:\Windows) .
• 2. Запустите файл install.reg. На экране появится следующее сообщение:


• 3. Отвечаем утвердительно. При этом появится сообщение об успешном внесении информации в реестр. При желании, можно убедиться в этом. Запускаем редактор реестра regedit.exe и в ветви HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\giveio проверяем наличие следующих записей:


• 4. Перегружаем компьютер и проверяем работу программ, пользующихся драйвером.

Драйвером GiveIO.sys народ активно пользуется, и, со временем, появились и другие варианты его установки.

Например — драйвер GiveIO.sys при наличии файла с «информацией об оборудовании» GiveIO.inf можно установить через апплет «Установка оборудования».

Драйвер GiveIO.sys мы покажем операционной системе, чтобы она поверила в существование оборудования «GiveIO».

Скачать комплект файлов для такого варианта установки драйвера GiveIO.sys (giveio_sys_v2.rar — 78kb). Архив содержит файлы GiveIO.sys и GiveIO.inf, а так же подробную инструкцию по установке с иллюстрациями.

Помимо вариантов «ручной» установки драйвера, написано несколько вариантов инсталлятора, выполняющего установку в автоматическом режиме.

Скачать комплект файлов для автоматической установки драйвера GiveIO.sys (giveio_sys_install.rar — 28kb). Архив содержит файлы GiveIO.sys и instdrv.exe, а так же файл remove-giveio.cmd, с помощью которого драйвер GiveIO.sys можно удалить из системы.

Драйвер Port95nt

Термин «драйвер Port95nt» здесь будет не совсем корректен. По сути, это тот же драйвер DLPortIO из пакета DriverLINX от Scientific Software Tools, Inc, только в полном варианте, с парой утилит управления портом, с описанием и множеством примеров для программистов. Рядовому пользователю никакой пользы от дополнительных компонентов нет, а компоненты драйвера DLPortIO.sys и DLPortIO.dll абсолютно такие же, как и в сокращённой версии.

Упомянул о Port95nt, как о драйвере, по двум причинам. Первая — для полноты перечня встречающихся в интернете упоминаний о драйверах LPT-порта.

Вторая причина — в некоторых случаях могут быть проблемы с установкой сокращённой версии DLPortIO под WinXP. Обычно, но нечасто, это происходит в урезанных «авторских» сборках WinXP. В таком случае можно взять полную версию инсталлятора (1.5МБ). Хотя, по моему мнению, быстрее получится вручную положить в нужную папку DLPortIO.sys и DLPortIO.dll, чем заморачиваться с подбором инсталлятора, который сможет это сделать за вас.

Дополнительные меры

Кроме установки одного из вышеназванных драйверов, для нормальной работы порта LPT под ОС WinXP необходимо сделать правку реестра с помощью REG-файла xp_stop_polling.reg (xp_stop_polling.rar — 0,48kb)

Под WinXP иногда нестабильно работают устройства, использующие LPT-порт. Причиной таких сбоев может быть работа подсистемы Plug-and-Play (PnP) в Windows, периодически опрашивающей LPT с целью обнаружения подключенных устройств. Такой опрос производится при загрузке системы, но оно может происходить и при работе. К сожалению, драйвер DLportIO.sys и другие варианты драйверов не блокируют доступ к LPT от других программ при работе с портом клиента данного драйвера и подсистема PnP уверена, что порт не занят, обращается к нему и нарушает работу внешних устройств. Для устранения проблемы и служит REG-файл xp_stop_polling.reg. Этот файл прописывает в реестре Windows ключ, запрещающий такой опрос (poll) во время работы системы.

Помимо установки драйвера и ограничения одновременного доступа к порту для программ, для обеспечения аппаратной совместимости и нормальной работы оборудования с LPT-портом, необходимо в BIOS выставить правильный адрес и режим работы порта («Normal», SPP или ЕРР, но не ECP).

Конфигурированию через BIOS Setup подлежат следующие параметры:

• Базовый адрес, который может иметь значение 378h, 278h и 3BCh. При инициализации BIOS проверяет наличие портов по адресам именно в этом порядке и, соответственно, присваивает обнаруженным портам логические имена LPT1, LPT2, LPT3. Адрес 3BCh имеет адаптер порта, расположенный на плате MDA или HGC (предшественники современных видеокарт). Большинство портов по умолчанию конфигурируются на адрес 378h и могут переключаться на 278h.

• Используемая линия запроса прерывания, для LPT1 обычно используется IRQ7, для LPT2 — IRQ5. Во многих «настольных» применениях прерывания от принтера не используются, и этот дефицитный ресурс PC можно сэкономить. Однако при использовании скоростных режимов ЕСР (Fast Centronics) работа по прерываниям может заметно повысить производительность и снизить загрузку процессора.

В то же время, режим ЕСР нельзя использовать с устройствами, требующими жёстких таймингов (программаторами и JTAG-интерфейсами).

В завершение немного о терминологии:

SPP (Standard Parallel Port — стандартный параллельный порт). Нередко, для упрощения понимания, в BIOS’е обозначается термином «Normal«.
EPP (Enhanced Parallel Port — расширенный параллельный порт) — скоростной двунаправленный вариант интерфейса. Изменено назначение некоторых сигналов, введена возможность адресации нескольких логических устройств и 8-разрядного ввода данных, 16-байтовый аппаратный FIFO-буфер. Максимальная скорость обмена — до 2 Мб/с.
ECP (Enhanced Capability Port — порт с расширенными возможностями) — интеллектуальный вариант EPP. Введена возможность разделения передаваемой информации на команды и данные, поддержка DMA и сжатия передаваемых данных методом RLE (Run-Length Encoding — кодирование повторяющихся серий).

Источник

Оцените статью